From b417a422c08ceabd31fa7feaba42fd8a7b1e86d2 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期六, 18 一月 2025 09:14:08 +0800
Subject: [PATCH] 1
---
admin/src/views/client/components/OperaYwCustomerWindow.vue | 289 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 219 insertions(+), 70 deletions(-)
diff --git a/admin/src/views/client/components/OperaYwCustomerWindow.vue b/admin/src/views/client/components/OperaYwCustomerWindow.vue
index 9776dda..c966c3f 100644
--- a/admin/src/views/client/components/OperaYwCustomerWindow.vue
+++ b/admin/src/views/client/components/OperaYwCustomerWindow.vue
@@ -1,81 +1,122 @@
<template>
- <GlobalWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
+ <GlobalWindow :title="title" width="800px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="绫诲瀷 0涓汉 1浼佷笟" prop="type">
- <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0涓汉 1浼佷笟" v-trim/>
- </el-form-item>
- <el-form-item label="瀹㈡埛" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴�" v-trim/>
- </el-form-item>
- <el-form-item label="鎵嬫満鍙�" prop="phone">
- <el-input v-model="form.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim/>
- </el-form-item>
- <el-form-item label="韬唤璇佸彿锛堝姞瀵嗭級" prop="idcardNo">
- <el-input v-model="form.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙凤紙鍔犲瘑锛�" v-trim/>
- </el-form-item>
- <el-form-item label="璇佷欢鏄剧ず淇℃伅" prop="idcardDecode">
- <el-input v-model="form.idcardDecode" placeholder="璇疯緭鍏ヨ瘉浠舵樉绀轰俊鎭�" v-trim/>
- </el-form-item>
- <el-form-item label="瀹㈡埛缂栫爜" prop="code">
- <el-input v-model="form.code" placeholder="璇疯緭鍏ュ鎴风紪鐮�" v-trim/>
- </el-form-item>
- <el-form-item label="鐘舵�� 0姝e父 1绂佺敤" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0姝e父 1绂佺敤" v-trim/>
- </el-form-item>
- <el-form-item label="韬唤 0鑰佹澘 1瓒呯骇绠$悊鍛�" prop="highCheckor">
- <el-input v-model="form.highCheckor" placeholder="璇疯緭鍏ヨ韩浠� 0鑰佹澘 1瓒呯骇绠$悊鍛�" v-trim/>
- </el-form-item>
- <el-form-item label="璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" prop="idcardType">
- <el-input v-model="form.idcardType" placeholder="璇疯緭鍏ヨ瘉浠剁被鍨� 0韬唤璇� 1娓境璇佷欢 2鎶ょ収" v-trim/>
- </el-form-item>
- <el-form-item label="寮�鎴烽摱琛�" prop="accountBank">
- <el-input v-model="form.accountBank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" v-trim/>
- </el-form-item>
- <el-form-item label="璐﹀彿" prop="accountNo">
- <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ヨ处鍙�" v-trim/>
- </el-form-item>
- <el-form-item label="璐︽埛鐢佃瘽" prop="accountPhone">
- <el-input v-model="form.accountPhone" placeholder="璇疯緭鍏ヨ处鎴风數璇�" v-trim/>
- </el-form-item>
- <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCard">
- <el-input v-model="form.creditCard" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim/>
- </el-form-item>
- <el-form-item label="榛樿鍙戠エ绫诲瀷 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" prop="fpType">
- <el-input v-model="form.fpType" placeholder="璇疯緭鍏ラ粯璁ゅ彂绁ㄧ被鍨� 0澧炲�肩◣鏅�氬彂绁� 1澧炲�肩◣涓撶敤鍙戠エ" v-trim/>
- </el-form-item>
- <el-form-item label="璐﹀彿娉ㄥ唽鍦板潃" prop="accountAddr">
- <el-input v-model="form.accountAddr" placeholder="璇疯緭鍏ヨ处鍙锋敞鍐屽湴鍧�" v-trim/>
- </el-form-item>
- <el-form-item label="韬唤绫诲瀷0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" prop="identityType">
- <el-input v-model="form.identityType" placeholder="璇疯緭鍏ヨ韩浠界被鍨�0鑰佹澘瓒呯骇绠$悊鍛�;1=浜轰簨绠$悊鍛�;2=鍛樺伐" v-trim/>
- </el-form-item>
- <el-form-item label="閭" prop="email">
- <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" v-trim/>
- </el-form-item>
- <el-form-item label="鑱旂郴浜虹紪鐮侊紙鍏宠仈member锛�" prop="memberId">
- <el-input v-model="form.memberId" placeholder="璇疯緭鍏ヨ仈绯讳汉缂栫爜锛堝叧鑱攎ember锛�" v-trim/>
- </el-form-item>
+ <div class="list">
+ <div class="title">鍩虹淇℃伅</div>
+ <el-form-item label="瀹㈡埛鍚嶇О" prop="name">
+ <div class="df">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴�" v-trim />
+ <el-checkbox v-model="form.type" class="ml10" :true-label="0" :false-label="1">涓汉</el-checkbox>
+ </div>
+ </el-form-item>
+ <el-form-item label="琛屼笟鍒嗙被" prop="industryId">
+ <el-select v-model="form.industryId" clearable filterable>
+ <el-option v-for="item in cateList" :value="item.id" :label="item.name" />
+ <div key="21" class="df_center mt10"><el-button type="primary" plain class="w200"
+ @click="openTrade">娣诲姞</el-button>
+ </div>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="瀹㈡埛缂栧彿" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim />
+ </el-form-item>
+ <template v-if="!form.id">
+ <div class="title">榛樿鑱旂郴浜�</div>
+ <el-form-item label="濮撳悕" prop="member.name">
+ <el-input v-model="form.member.name" placeholder="璇疯緭鍏�" v-trim />
+ </el-form-item>
+ <el-form-item label="鎵嬫満鍙�" prop="member.phone">
+ <el-input v-model="form.member.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿" v-trim />
+ </el-form-item>
+ <el-form-item label="韬唤">
+ <el-select v-model="form.member.highCheckor" filterable>
+ <el-option :value="0" label="鑰佹澘/瓒呯骇绠$悊鍛�" />
+ <el-option :value="1" label="浜轰簨/绠$悊鍛�" />
+ <el-option :value="2" label="鍛樺伐/鏅�氬憳宸�" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璇佷欢绫诲瀷">
+ <el-select v-model="form.member.idcardType" filterable>
+ <el-option :value="0" label="韬唤璇�" />
+ <el-option :value="1" label="娓境璇佷欢" />
+ <el-option :value="2" label="鎶ょ収" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璇佷欢鍙风爜" prop="member.idcardNo">
+ <el-input v-model="form.member.idcardNo" placeholder="璇疯緭鍏�" v-trim />
+ </el-form-item>
+ <el-form-item label="閭" prop="member.email" :rules="[
+ { required: false, type: 'email', message: '璇疯緭鍏ユ纭殑閭鏍煎紡'}
+ ]">
+ <el-input v-model="form.member.email" placeholder="璇疯緭鍏ラ偖绠�" v-trim />
+ </el-form-item>
+ </template>
+ <el-form-item v-else label="榛樿鑱旂郴浜�" prop="memberId">
+ <el-select v-model="form.memberId" clearable filterable>
+ <el-option v-for="item in clientList" :value="item.id" :label="item.name" />
+ <div key="11" class="df_center mt10"><el-button type="primary" plain class="w200"
+ @click="openClient">娣诲姞</el-button>
+ </div>
+ </el-select>
+ </el-form-item>
+ <template v-if="form.type == 1">
+ <div class="title">璐︽埛淇℃伅</div>
+ <el-form-item label="寮�鎴烽摱琛�" prop="accountBank">
+ <el-input v-model="form.accountBank" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" v-trim />
+ </el-form-item>
+ <el-form-item label="璐﹀彿" prop="accountNo">
+ <el-input v-model="form.accountNo" placeholder="璇疯緭鍏ヨ处鍙�" v-trim />
+ </el-form-item>
+ <el-form-item label="鐢佃瘽" prop="accountPhone">
+ <el-input v-model="form.accountPhone" placeholder="璇疯緭鍏ヨ处鎴风數璇�" v-trim />
+ </el-form-item>
+ <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCard">
+ <el-input v-model="form.creditCard" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim />
+ </el-form-item>
+ <el-form-item label="榛樿鍙戠エ绫诲瀷" prop="fpType">
+ <el-select v-model="form.fpType" clearable filterable>
+ <el-option :value="0" label="澧炲�肩◣鏅�氬彂绁�" />
+ <el-option :value="1" label="澧炲�肩◣涓撶敤鍙戠エ" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="娉ㄥ唽鍦板潃" prop="accountAddr">
+ <el-input v-model="form.accountAddr" placeholder="璇疯緭鍏ヨ处鍙锋敞鍐屽湴鍧�" v-trim />
+ </el-form-item>
+ <el-form-item label="钀ヤ笟鏈熼檺">
+ <div class="df">
+ <el-date-picker type="date" v-model="form.validity" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨" />
+ <el-checkbox v-model="form.selLangTime" @change="changeValid" class="ml10">闀挎湡</el-checkbox>
+ </div>
+ </el-form-item>
+ </template>
+
+ </div>
</el-form>
+ <!-- -->
+ <OperaCategoryWindow ref="OperaCategoryWindowRef" @success="initData" />
+ <StaffEdit ref="StaffEditRef" @success="getClient" />
</GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import { fetchCateList } from '@/api/business/category'
+import { rules } from './config'
+import { detailById } from '@/api/client/ywCustomer'
+import { fetchList } from '@/api/client/staff'
+import OperaCategoryWindow from './OperaCategoryWindow.vue'
+import StaffEdit from './staffEdit.vue'
export default {
name: 'OperaYwCustomerWindow',
extends: BaseOpera,
- components: { GlobalWindow },
- data () {
+ components: { GlobalWindow, OperaCategoryWindow, StaffEdit },
+ data() {
return {
// 琛ㄥ崟鏁版嵁
form: {
id: null,
+ validity: '',
creator: '',
createDate: '',
editor: '',
@@ -83,38 +124,146 @@
isdeleted: '',
remark: '',
industryId: '',
- type: '',
+ type: 1,
name: '',
phone: '',
idcardNo: '',
idcardDecode: '',
code: '',
status: '',
- highCheckor: '',
+ memberName: '',
+
lastLoginDate: '',
loginNum: '',
userId: '',
- idcardType: '',
+ memberId: '',
+
accountBank: '',
accountNo: '',
accountPhone: '',
creditCard: '',
fpType: '',
accountAddr: '',
- identityType: '',
+ // identityType: '0',
email: '',
- memberId: ''
+ member: {
+ name: "",
+ phone: "",
+ highCheckor: 0,
+ idcardType: 0,
+ idcardNo: '',
+ email: '',
+ }
},
+ title: '鏂板瀹㈡埛',
+ isShowTrade: false,
+
+ clientList: [],
+ cateList: [],
// 楠岃瘉瑙勫垯
- rules: {
- }
+ rules
}
},
- created () {
+ created() {
this.config({
api: '/client/ywCustomer',
'field.id': 'id'
})
+ },
+ methods: {
+ openTrade() {
+ this.$refs.OperaCategoryWindowRef.open('鏂板琛屼笟')
+ },
+ openClient() {
+ this.$refs.StaffEditRef.open('鏂板缓浜哄憳')
+ setTimeout(() => {
+ this.$refs.StaffEditRef.form.customerId = this.form.id
+ console.log('--', this.$refs.StaffEditRef.form);
+
+ // this.$update
+ }, 1200)
+ this.$refs.StaffEditRef.customerId = this.form.id
+ },
+ initData() {
+ fetchCateList({ type: 6 }).then(res => {
+ this.cateList = res
+ })
+ },
+ open(title, target) {
+ this.title = title
+ this.visible = true
+ this.initData()
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form.validity = ''
+ this.form.id = ''
+ this.form.member = {
+ name: "",
+ phone: "",
+ highCheckor: 0,
+ idcardType: 0,
+ idcardNo: '',
+ email: '',
+ }
+ })
+ this.form.type = 1
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ if (title == '缂栬緫瀹㈡埛') {
+ this.getClient(target.id)
+ detailById(target.id).then(res => {
+ this.form = res
+ })
+ }
+ })
+ },
+ getClient(customerId) {
+ fetchList({
+ capacity: 9999,
+ page: 1,
+ model: {customerId}
+ }).then(res => {
+ this.clientList = res.records
+ })
+ },
+ changeValid(e) {
+ this.$set(this.form, 'validity', e ? '2099-12-31' : '')
+ },
}
}
</script>
+<style lang='scss' scoped>
+@import '@/assets/style/variables.scss';
+
+div {
+ box-sizing: border-box;
+}
+
+.title {
+ width: 100%;
+ font-weight: 500;
+ font-size: 15px;
+ margin-top: 16px;
+}
+
+.list {
+ /* padding-top: 14px; */
+ display: flex;
+ flex-wrap: wrap;
+
+ .el-form-item {
+ width: 33.33%;
+ margin-bottom: 12px;
+ padding: 0 12px;
+
+ .la {
+ color: #7f7f7f;
+ margin-top: 2px;
+ }
+ }
+}
+</style>
--
Gitblit v1.9.3