From d2bc6e096f0806b78ea92d4b90a21d3627d406c7 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 08 三月 2024 18:28:42 +0800
Subject: [PATCH] mrshi

---
 company/src/components/business/OperaCompanyWindow.vue |  359 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 268 insertions(+), 91 deletions(-)

diff --git a/company/src/components/business/OperaCompanyWindow.vue b/company/src/components/business/OperaCompanyWindow.vue
index 8294080..dc1baad 100644
--- a/company/src/components/business/OperaCompanyWindow.vue
+++ b/company/src/components/business/OperaCompanyWindow.vue
@@ -1,7 +1,7 @@
 <template>
     <GlobalWindow
         :title="title"
-        width="50%"
+        width="60%"
         :visible.sync="visible"
         :confirm-working="isWorking"
         @confirm="confirm"
@@ -13,26 +13,30 @@
             <el-form-item label="缁熶竴淇$敤浠g爜" prop="code">
                 <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
-            <el-form-item label="缁戝畾鎵嬫満鍙�" prop="phone">
+            <el-form-item label="娉曚汉濮撳悕" prop="legalName">
+                <el-input v-model="form.legalName" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <el-form-item label="缁戝畾鎵嬫満鍙�" prop="phone" v-if="!form.id">
                 <div style="width: 100%; display: flex; align-items: center;">
-                    <el-input v-model="form.phone" style="flex: 1;" placeholder="璇疯緭鍏�" v-trim/>
-                    <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;">鍙戦�侀獙璇佺爜</el-button>
+                    <el-input v-model="form.phone" maxlength="11" type="number" style="flex: 1;" placeholder="璇疯緭鍏�" v-trim/>
+                    <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" @click="send" v-if="num === 0">鍙戦�侀獙璇佺爜</el-button>
+                    <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button>
                 </div>
             </el-form-item>
-            <el-form-item label="楠岃瘉鐮�" prop="code">
-                <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
+            <el-form-item label="楠岃瘉鐮�" prop="captche" v-if="form.type !== 1">
+                <el-input v-model="form.captche" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
-            <el-form-item label="鍏徃璐﹀彿" prop="taxAccount">
-                <el-input v-model="form.taxAccount" placeholder="璇疯緭鍏�" v-trim/>
+            <el-form-item label="鍏徃璐﹀彿" prop="username" v-if="form.type !== 1">
+                <el-input v-model="form.username" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
-            <el-form-item label="璁よ瘉閭" prop="email">
+            <el-form-item label="璁よ瘉閭" prop="email" >
                 <el-input v-model="form.email" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
             <el-form-item label="绾崇◣浜鸿瘑鍒彿" prop="taxCode">
                 <el-input v-model="form.taxCode" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
-            <el-form-item label="閾惰璐﹀彿" prop="taxBank">
-                <el-input v-model="form.taxBank" placeholder="璇疯緭鍏�" v-trim/>
+            <el-form-item label="閾惰璐﹀彿" prop="taxAccount">
+                <el-input v-model="form.taxAccount" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
             <el-form-item label="寮�鎴疯" prop="taxBank">
                 <el-input v-model="form.taxBank" placeholder="璇疯緭鍏�" v-trim/>
@@ -46,34 +50,28 @@
             <el-form-item label="绾歌川鍙戠エ鎺ユ敹鍦板潃" prop="invoiceAddr">
                 <el-input v-model="form.invoiceAddr" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
-            <el-form-item label="钀ヤ笟鎵х収" prop="invoiceAddr">
-                <el-upload
-                    action="https://jsonplaceholder.typicode.com/posts/"
-                    list-type="picture-card"
-                    :on-remove="handleRemove">
-                    <i class="el-icon-plus"></i>
-                </el-upload>
+            <el-form-item label="钀ヤ笟鎵х収" prop="businessImg">
+                <div style="width: 100%; height: 100px; display: flex; align-items: center;">
+                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
+                </div>
             </el-form-item>
-            <el-form-item label="娉曚汉韬唤璇�" prop="invoiceAddr">
-                <el-upload
-                    action="https://jsonplaceholder.typicode.com/posts/"
-                    list-type="picture-card"
-                    :on-remove="handleRemove">
-                    <i class="el-icon-plus"></i>
-                </el-upload>
+            <el-form-item label="娉曚汉韬唤璇�" prop="idcardImgList"  style="height: 120px">
+                <div style="width: 100%; display: flex; align-items: center;">
+                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file1" @uploadSuccess="result1" />
+                    <div style="width: 15px;height: 100%;"></div>
+                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file2" @uploadSuccess="result2" />
+                </div>
             </el-form-item>
-            <el-form-item label="鐢靛瓙绛剧珷" prop="invoiceAddr">
-                <el-upload
-                    action="https://jsonplaceholder.typicode.com/posts/"
-                    list-type="picture-card"
-                    :on-remove="handleRemove">
-                    <i class="el-icon-plus"></i>
-                </el-upload>
-            </el-form-item>
+<!--            <el-form-item label="鐢靛瓙绛剧珷" prop="signImg">-->
+<!--                <div style="width: 100%; height: 100px; display: flex; align-items: center;">-->
+<!--                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />-->
+<!--                </div>-->
+<!--            </el-form-item>-->
         </el-form>
-        <el-button type="primary" style="margin-bottom: 15px;">娣诲姞</el-button>
+        <el-button type="primary" style="margin-bottom: 15px;" @click="add" v-if="form.type !== 1">娣诲姞</el-button>
         <el-table
-            :data="tableData"
+            v-if="form.type !== 1"
+            :data="form.solutionList"
             border
             style="width: 100%">
             <el-table-column
@@ -87,25 +85,23 @@
             <el-table-column
                 align="center"
                 label="淇濋櫓鏂规">
-                <template slot-scope="{row}">
-                    <el-select v-model="row.info" placeholder="璇烽�夋嫨">
-                        <el-option
-                            v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value">
-                        </el-option>
-                    </el-select>
+                <template slot-scope="scope">
+                  <el-select  v-model="scope.row.solution"  value-key="id" placeholder="璇烽�夋嫨" change="changeSolution($event,scope.$index)">
+                    <el-option
+                        v-for="item in programme"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item">
+                    </el-option>
+                  </el-select>
                 </template>
             </el-table-column>
             <el-table-column
                 align="center"
                 label="鍔犲噺淇濆姛鑳�">
                 <template slot-scope="{row}">
-                    <el-checkbox-group v-model="row.type">
-                        <el-checkbox label="1">鍔犱繚</el-checkbox>
-                        <el-checkbox label="2">鍑忎繚</el-checkbox>
-                    </el-checkbox-group>
+                    <el-checkbox :true-label="1" :false-label="0" v-model="row.canAdd">鍔犱繚</el-checkbox>
+                    <el-checkbox :true-label="1" :false-label="0" v-model="row.canReduce">鍑忎繚</el-checkbox>
                 </template>
             </el-table-column>
             <el-table-column
@@ -113,7 +109,7 @@
                 align="center"
                 width="100">
                 <template slot-scope="scope">
-                    <el-button type="text" size="small" style="color: red;">鍒犻櫎</el-button>
+                    <el-button type="text" size="small" style="color: red;" @click="dele(scope.$index)">鍒犻櫎</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -121,49 +117,230 @@
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import UploadAvatarImage from '@/components/common/UploadAvatarImage'
-    export default {
-        name: 'OperaCompanyWindow',
-        extends: BaseOpera,
-        components: { GlobalWindow, UploadAvatarImage },
-        data () {
-            return {
-                // 琛ㄥ崟鏁版嵁
-                form: {
-                    id: null,
-                    name: '',
-                    code: '',
-                    taxCode: '',
-                    taxAccount: '',
-                    taxBank: '',
-                    taxAddr: '',
-                    invoiceEmail: '',
-                    invoiceAddr: '',
-                    phone: '',
-                    email: ''
-                },
-                // 楠岃瘉瑙勫垯
-                rules: {
-                },
-                options: [],
-                tableData: [{
-                    type: [],
-                    info: ''
-                }]
-            }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadAvatarImage from '@/components/common/UploadAvatarImage'
+import { all } from '@/api/business/solutions'
+import { sendSms } from '@/api/business/smsEmail'
+export default {
+  name: 'OperaCompanyWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow, UploadAvatarImage },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      initParam:{
+        id: null,
+        name: '',
+        code: '',
+        legalName: '',
+        taxCode: '',
+        taxAccount: '',
+        username: '',
+        taxBank: '',
+        taxAddr: '',
+        invoiceEmail: '',
+        invoiceAddr: '',
+        phone: '',
+        email: '',
+        captche: '',
+        businessImg: {
+          fileurl: '',
+          name: ''
         },
-        created () {
-            this.config({
-                api: '/business/company',
-                'field.id': 'id'
-            })
+        idcardImgList: [],
+        signImg: {
+          fileurl: '',
+          name: ''
         },
-        methods: {
-            handleRemove(file, fileList) {
-                console.log(file, fileList);
-            }
-        }
+        solutionList: [
+          {
+            solution: null,
+            canAdd: 0,
+            canReduce: 0
+          }
+        ],
+        type: '0',
+        file: {
+          imgurl: '',
+          imgurlfull: ''
+        },
+        file1: {
+          imgurl: '',
+          imgurlfull: ''
+        },
+        file2: {
+          imgurl: '',
+          imgurlfull: ''
+        },
+        file3: {
+          imgurl: '',
+          imgurlfull: ''
+        },
+      },
+      form: {},
+      timer: null,
+      num: 0,
+      // 楠岃瘉瑙勫垯
+      rules: {
+        name: [
+          { required: true, message: '璇疯緭鍏ュ叕鍙稿悕绉�' }
+        ],
+        code: [
+          { required: true, message: '璇疯緭鍏ョ粺涓�淇$敤浠g爜' }
+        ],
+        captche: [
+          { required: true, message: '璇疯緭鍏ラ獙璇佺爜' }
+        ],
+        legalName: [
+          { required: true, message: '璇疯緭鍏ユ硶浜哄鍚�' }
+        ],
+        phone: [
+          { required: true, message: '璇疯緭鍏ユ墜鏈哄彿' }
+        ],
+        // taxAccount: [
+        //   { required: true, message: '璇疯緭鍏ラ摱琛屽崱' }
+        // ],
+        email: [
+          { required: true, message: '璇疯緭鍏ヨ璇侀偖绠�' }
+        ],
+        businessImg: [
+          { required: true, message: '璇蜂笂浼犺惀涓氭墽鐓�' }
+        ],
+        idcardImgList: [
+          { required: true, message: '璇蜂笂浼犳硶浜鸿韩浠借瘉' }
+        ],
+        signImg: [
+          { required: true, message: '璇蜂笂浼犵數瀛愮绔�' }
+        ],
+        username: [
+          { required: true, message: '璇疯緭鍏ュ叕鍙歌处鍙�' }
+        ]
+      },
+
+      programme: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/company',
+      'field.id': 'id'
+    })
+  },
+  watch: {
+    visible: {
+      handler (news) {
+        if (news) {
+          clearInterval(this.timer)
+          this.num = 0
+        }
+      }
+    }
+  },
+  methods: {
+    changeSolution(row,index){
+     this.form.solutionList[index].solution=row
+   //   console.log(this.form.solutionList)
+    },
+    send () {
+      if (!this.form.phone) {
+        this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
+        return
+      }
+      sendSms({ phone: this.form.phone })
+        .then(res => {
+          this.num = 60
+          this.setTime()
+        })
+    },
+    setTime () {
+      this.timer = setInterval(() => {
+        this.num -= 1
+        if (this.num === 0) {
+          clearInterval(this.timer)
+          this.num = 0
+        }
+      }, 1000)
+    },
+    open (title, target,type) {
+      this.title = title
+      this.visible = true
+      this.form = this.initParam
+      this.getAll()
+      // 鏂板缓
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+      })
+    },
+    // 鑾峰彇鍏ㄩ儴鏂规
+    getAll () {
+      all({})
+        .then(res => {
+          this.programme = res
+        })
+    },
+    dele (index) {
+      if (this.form.solutionList.length === 1) {
+        this.$message.warning('鑷冲皯淇濈暀涓�椤�')
+        return
+      }
+      this.form.solutionList.splice(index, 1)
+    },
+    add () {
+      this.form.solutionList.push({
+        solutionId:null,
+        solution: {},
+        canAdd: '',
+        canReduce: ''
+      })
+    },
+    handleRemove (file, fileList) {
+      console.log(file, fileList)
+    },
+    // 鎺ユ敹钀ヤ笟鎵х収鏁版嵁
+    result (data) {
+      this.form.businessImg = {
+        fileurl: '',
+        name: ''
+      }
+      this.form.businessImg.fileurl = data.imgurl
+      this.form.businessImg.name = data.name
+    },
+    // 韬唤璇佺収鐗�1
+    result1 (data) {
+      this.form.idcardImgList[0] = {
+        fileurl: '',
+        name: ''
+      }
+      this.form.idcardImgList[0] = { fileurl: data.imgurl, name: data.name }
+    },
+    // 韬唤璇佺収鐗�2
+    result2 (data) {
+      this.form.idcardImgList[1] = {
+        fileurl: '',
+        name: ''
+      }
+      this.form.idcardImgList[1] = { fileurl: data.imgurl, name: data.name }
+    },
+    // 鐢靛瓙绛剧珷
+    result3 (data) {
+      this.form.signImg = {
+        fileurl: '',
+        name: ''
+      }
+      this.form.signImg.fileurl = data.imgurl
+      this.form.signImg.name = data.name
+    }
+  }
+}
 </script>

--
Gitblit v1.9.3