From bd25d9a8a058e8c618ee4188ed5f15a898c0f7e8 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 27 一月 2024 11:43:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
platform/src/components/business/OperaCompanyWindow.vue | 473 ++++++++++++++++++-----------------------------------------
1 files changed, 144 insertions(+), 329 deletions(-)
diff --git a/platform/src/components/business/OperaCompanyWindow.vue b/platform/src/components/business/OperaCompanyWindow.vue
index 44c6e69..0739250 100644
--- a/platform/src/components/business/OperaCompanyWindow.vue
+++ b/platform/src/components/business/OperaCompanyWindow.vue
@@ -1,335 +1,150 @@
<template>
- <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>
+ <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>
</template>
<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: '璇疯緭鍏ュ叕鍙歌处鍙�' }
- ]
- },
-
- 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
- }
- }
+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>
+
+<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>
--
Gitblit v1.9.3