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