From 58c2e3e1dd75513b90f878684e913d85db41cc41 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 26 一月 2024 09:24:31 +0800
Subject: [PATCH] Mr.Shi

---
 company/src/components/business/OperaCompanyWindow.vue |  241 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 194 insertions(+), 47 deletions(-)

diff --git a/company/src/components/business/OperaCompanyWindow.vue b/company/src/components/business/OperaCompanyWindow.vue
index 8294080..0bfa100 100644
--- a/company/src/components/business/OperaCompanyWindow.vue
+++ b/company/src/components/business/OperaCompanyWindow.vue
@@ -13,17 +13,21 @@
             <el-form-item label="缁熶竴淇$敤浠g爜" prop="code">
                 <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
+            <el-form-item label="娉曚汉濮撳悕" prop="legalName">
+                <el-input v-model="form.legalName" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
             <el-form-item label="缁戝畾鎵嬫満鍙�" prop="phone">
                 <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">
+                <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">
+                <el-input v-model="form.username" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
             <el-form-item label="璁よ瘉閭" prop="email">
                 <el-input v-model="form.email" placeholder="璇疯緭鍏�" v-trim/>
@@ -31,8 +35,8 @@
             <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,23 @@
             <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">
+                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file" @uploadSuccess="result" />
             </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">
+                <div style="width: 100%; display: flex; align-items: center;">
+                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file1" @uploadSuccess="result1" />
+                    <div style="width: 15px;height: 100%;"></div>
+                    <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="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 label="鐢靛瓙绛剧珷" prop="signImg">
+                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="file3" @uploadSuccess="result3" />
             </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">娣诲姞</el-button>
         <el-table
-            :data="tableData"
+            :data="form.solutionList"
             border
             style="width: 100%">
             <el-table-column
@@ -88,12 +81,12 @@
                 align="center"
                 label="淇濋櫓鏂规">
                 <template slot-scope="{row}">
-                    <el-select v-model="row.info" placeholder="璇烽�夋嫨">
+                    <el-select v-model="row.solutionBaseId" placeholder="璇烽�夋嫨">
                         <el-option
-                            v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value">
+                            v-for="item in programme"
+                            :key="item.id"
+                            :label="item.name"
+                            :value="item.id">
                         </el-option>
                     </el-select>
                 </template>
@@ -102,10 +95,8 @@
                 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 +104,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>
@@ -124,6 +115,8 @@
     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,
@@ -135,23 +128,89 @@
                     id: null,
                     name: '',
                     code: '',
+                    legalName: '',
                     taxCode: '',
                     taxAccount: '',
+                    username: '',
                     taxBank: '',
                     taxAddr: '',
                     invoiceEmail: '',
                     invoiceAddr: '',
                     phone: '',
-                    email: ''
+                    email: '',
+                    captche: '',
+                    businessImg: {
+                        fileurl: '',
+                        name: ''
+                    },
+                    idcardImgList: [],
+                    signImg: {
+                        fileurl: '',
+                        name: ''
+                    },
+                    solutionList: [
+                        {
+                            solutionBaseId: '',
+                            canAdd: 0,
+                            canReduce: 0
+                        }
+                    ]
                 },
+                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: '璇疯緭鍏ュ叕鍙歌处鍙�' }
+                    ]
                 },
-                options: [],
-                tableData: [{
-                    type: [],
-                    info: ''
-                }]
+                file: {
+                    imgurl: '',
+                    imgurlfull: ''
+                },
+                file1: {
+                    imgurl: '',
+                    imgurlfull: ''
+                },
+                file2: {
+                    imgurl: '',
+                    imgurlfull: ''
+                },
+                file3: {
+                    imgurl: '',
+                    imgurlfull: ''
+                },
+                programme: []
             }
         },
         created () {
@@ -160,9 +219,97 @@
                 'field.id': 'id'
             })
         },
+        watch: {
+            visible: {
+                handler(news) {
+                    if (news) {
+                        clearInterval(this.timer)
+                        this.num = 0
+                    }
+                }
+            }
+        },
         methods: {
+            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) {
+                this.title = title
+                this.visible = true
+                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({
+                    solutionName: '',
+                    canAdd: '',
+                    canReduce: ''
+                })
+            },
             handleRemove(file, fileList) {
                 console.log(file, fileList);
+            },
+            // 鎺ユ敹钀ヤ笟鎵х収鏁版嵁
+            result(data) {
+                this.form.businessImg.fileurl = data.imgurl
+                this.form.businessImg.name = data.name
+            },
+            // 韬唤璇佺収鐗�1
+            result1(data) {
+                this.form.idcardImgList[0] = { fileurl: data.imgurl, name: data.name }
+            },
+            // 韬唤璇佺収鐗�2
+            result2(data) {
+                this.form.idcardImgList[1] = { fileurl: data.imgurl, name: data.name }
+            },
+            // 鐢靛瓙绛剧珷
+            result3(data) {
+                this.form.signImg.fileurl = data.imgurl
+                this.form.signImg.name = data.name
             }
         }
     }

--
Gitblit v1.9.3