From cece17f846dca06261e4b56fb2b9789dec380670 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 26 一月 2024 15:20:16 +0800
Subject: [PATCH] Mr.Shi

---
 platform/src/components/business/OperaCompanyWindow.vue |  475 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 330 insertions(+), 145 deletions(-)

diff --git a/platform/src/components/business/OperaCompanyWindow.vue b/platform/src/components/business/OperaCompanyWindow.vue
index 0739250..44c6e69 100644
--- a/platform/src/components/business/OperaCompanyWindow.vue
+++ b/platform/src/components/business/OperaCompanyWindow.vue
@@ -1,150 +1,335 @@
 <template>
-  <GlobalAlertWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    width="750px"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" label-width="125px" :rules="rules">
-      <el-form-item label="浼佷笟鍏ㄧО" prop="name">
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴蜂紒涓氬叏绉帮紝涓嶈秴杩�30瀛�" v-trim/>
-        浼佷笟鍚嶇О闇�涓庡伐鍟嗛儴闂ㄧ櫥璁颁俊鎭竴鑷�
-      </el-form-item>
-      <el-form-item label="瀹㈡埛绠�绉�" prop="shortName">
-        <el-input v-model="form.shortName" placeholder="璇疯緭鍏ュ鎴风畝绉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCode">
-        <el-input v-model="form.creditCode" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim/>
-        缁熶竴淇$敤浠g爜闇�涓庡伐鍟嗛儴闂ㄧ櫥璁颁俊鎭竴鑷�
-      </el-form-item>
-      <el-form-item label="鐧诲綍璐﹀彿" prop="managerUserName">
-        <el-input v-model="form.managerUserName" :disabled="!!this.form.id" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�" v-trim/>
-      </el-form-item>
-      <el-form-item label="绯荤粺浣跨敤鏈夋晥鏈�" prop="oepnValidDate">
-        <el-date-picker v-model="form.oepnValidDate" value-format="yyyy-MM-dd" :disabled="!!this.form.id" placeholder="璇疯緭鍏ョ郴缁熶娇鐢ㄦ湁鏁堟湡"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="涓绘挱鏁伴噺闄愬埗" prop="userNum">
-        <el-input v-model="form.userNum" :disabled="!!this.form.id" placeholder="璇疯緭鍏ヤ富鎾暟閲忛檺鍒�" v-trim/>
-        杈撳叆0琛ㄧず涓嶉檺鍒�
-      </el-form-item>
-      <el-form-item label="閿�鍞汉鍛�" prop="salesmanId">
-        <!-- <el-input v-model="form.salesmanId" placeholder="璇疯緭鍏ラ攢鍞汉鍛樼紪鐮�" v-trim/> -->
-        <el-select v-model="form.salesmanId" clearable placeholder="璇烽�夋嫨" filterable >
-          <el-option v-for="item in sales" :label="item.realname" :key="item.id" :value="item.id"></el-option>
-        </el-select>
-      </el-form-item>
-
-      <div class="more">
-        <div class="more-title">鏇村璁剧疆</div>
-        <el-form-item label="鑱旂郴浜�" prop="linkname">
-          <el-input v-model="form.linkname" placeholder="璇疯緭鍏ヨ仈绯讳汉" v-trim/>
-        </el-form-item>
-        <el-form-item label="鑱旂郴浜虹數璇�" prop="linkephone">
-          <el-input v-model="form.linkephone" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" v-trim/>
-        </el-form-item>
-      </div>
-      
-      
-      
-    </el-form>
-  </GlobalAlertWindow>
+    <GlobalWindow
+        :title="title"
+        width="50%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <el-form :model="form" ref="form" :rules="rules" style="width: 50%;">
+            <el-form-item label="鍏徃鍚嶇О" prop="name">
+                <el-input v-model="form.name" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <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" v-if="form.type !== 1">
+                <el-input v-model="form.legalName" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <el-form-item label="缁戝畾鎵嬫満鍙�" prop="phone" v-if="form.type !== 1">
+                <div style="width: 100%; display: flex; align-items: center;">
+                    <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="captche" v-if="form.type !== 1">
+                <el-input v-model="form.captche" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <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" v-if="form.type !== 1">
+                <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="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/>
+            </el-form-item>
+            <el-form-item label="鍦板潃銆佺數璇�" prop="taxAddr">
+                <el-input v-model="form.taxAddr" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <el-form-item label="鐢靛瓙鍙戠エ鎺ユ敹鍦板潃" prop="invoiceEmail">
+                <el-input v-model="form.invoiceEmail" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <el-form-item label="绾歌川鍙戠エ鎺ユ敹鍦板潃" prop="invoiceAddr">
+                <el-input v-model="form.invoiceAddr" placeholder="璇疯緭鍏�" v-trim/>
+            </el-form-item>
+            <el-form-item label="钀ヤ笟鎵х収" prop="businessImg">
+                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
+            </el-form-item>
+            <el-form-item label="娉曚汉韬唤璇�" prop="idcardImgList">
+                <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="signImg">
+                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />
+            </el-form-item>
+        </el-form>
+        <el-button type="primary" style="margin-bottom: 15px;" @click="add" v-if="form.type !== 1">娣诲姞</el-button>
+        <el-table
+            v-if="form.type !== 1"
+            :data="form.solutionList"
+            border
+            style="width: 100%">
+            <el-table-column
+                label="搴忓彿"
+                align="center"
+                width="80">
+                <template slot-scope="scope">
+                    <span>{{scope.$index + 1}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                align="center"
+                label="淇濋櫓鏂规">
+                <template slot-scope="{row}">
+                    <el-select v-model="row.solutionBaseId" placeholder="璇烽�夋嫨">
+                        <el-option
+                            v-for="item in programme"
+                            :key="item.id"
+                            :label="item.name"
+                            :value="item.id">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-table-column>
+            <el-table-column
+                align="center"
+                label="鍔犲噺淇濆姛鑳�">
+                <template slot-scope="{row}">
+                    <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
+                label="鎿嶄綔"
+                align="center"
+                width="100">
+                <template slot-scope="scope">
+                    <el-button type="text" size="small" style="color: red;" @click="dele(scope.$index)">鍒犻櫎</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+    </GlobalWindow>
 </template>
 
 <script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import { findAllList } from '@/api/system/user'
-import { loginNameRule, creditCode } from '@/utils/form'
-export default {
-  name: 'OperaCompanyWindow',
-  extends: BaseOpera,
-  components: { GlobalAlertWindow },
-  data () {
-    return {
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        managerUserName: '',
-        name: '',
-        shortName: '',
-        remark: '',
-        managerId: '',
-        linkname: '',
-        linkephone: '',
-        creditCode: '',
-        userNum: '5',
-        oepnValidDate: '',
-        salesmanId: ''
-      },
-      sales: [],
-      // 楠岃瘉瑙勫垯
-      rules: {
-        name: [
-          { required: true, message: '璇疯緭鍏ュ鎴蜂紒涓氬叏绉�', tigger: 'blur'}
-        ],
-        managerUserName: [
-          { required: true, validator: loginNameRule, message: '璇疯緭鍏ョ櫥褰曡处鍙�', tigger: 'blur'}
-        ],
-        creditCode: [
-          { validator: creditCode, trigger: 'blur' }
-        ],
-        openUserNum: [
-          { pattern: /^[0-9]+$/, message: '鍙彲浠ヨ緭鍏ユ暟瀛�', trigger: 'change' }
-        ]
-      }
-    }
-  },
-  created () {
-    this.config({
-      api: '/business/company',
-      'field.id': 'id'
-    })
-    findAllList({ type: 0 })
-      .then(res => {
-        this.sales = res
-      })
-  },
-  methods: {
-    open(title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          let data = new Date(new Date().getTime() + 31536000000)
-          this.form.oepnValidDate = `${data.getFullYear()}-${data.getMonth() +1}-${data.getDate()}`
-          this.form[this.configData['field.id']] = null
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-        this.form.multifileList.forEach(item => {
-          item.url = item.filefullurl
-        })
-      })
-    },
-  },
-}
-</script>
+    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 {
+                // 琛ㄥ崟鏁版嵁
+                form: {
+                    id: null,
+                    name: '',
+                    code: '',
+                    legalName: '',
+                    taxCode: '',
+                    taxAccount: '',
+                    username: '',
+                    taxBank: '',
+                    taxAddr: '',
+                    invoiceEmail: '',
+                    invoiceAddr: '',
+                    phone: '',
+                    email: '',
+                    captche: '',
+                    businessImg: {
+                        fileurl: '',
+                        name: ''
+                    },
+                    idcardImgList: [],
+                    signImg: {
+                        fileurl: '',
+                        name: ''
+                    },
+                    solutionList: [
+                        {
+                            solutionBaseId: '',
+                            canAdd: 0,
+                            canReduce: 0
+                        }
+                    ],
+                    type: '',
+                    file: {
+                        imgurl: '',
+                        imgurlfull: ''
+                    },
+                    file1: {
+                        imgurl: '',
+                        imgurlfull: ''
+                    },
+                    file2: {
+                        imgurl: '',
+                        imgurlfull: ''
+                    },
+                    file3: {
+                        imgurl: '',
+                        imgurlfull: ''
+                    },
+                },
+                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: '璇疯緭鍏ュ叕鍙歌处鍙�' }
+                    ]
+                },
 
-<style lang="scss" scoped>
-.more {
-  margin-top: 40px;
-  
-  .more-title {
-    font-weight: 600;
-    font-size: 18px;
-    margin-bottom: 10px;
-  }
-}
-::v-deep .el-input {
-  width: 300px;
-  margin-right: 10px;
-}
-</style>
+                programme: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/company',
+                '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: '',
+                    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