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