From 83af3dd309889489f541fc8e21894c9f79e5788c Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期五, 22 八月 2025 16:09:58 +0800 Subject: [PATCH] 用户管理 --- src/views/mine/index.vue | 986 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 836 insertions(+), 150 deletions(-) diff --git a/src/views/mine/index.vue b/src/views/mine/index.vue index 647de0a..0bb79f7 100644 --- a/src/views/mine/index.vue +++ b/src/views/mine/index.vue @@ -1,174 +1,860 @@ <script setup lang="tsx"> -import { cusExtendInfo } from "@/api/mine"; import { message } from "@/utils/message"; -import { onMounted, reactive } from "vue"; -import { - addDialog, - closeDialog, - updateDialog, - closeAllDialog -} from "@/components/ReDialog"; -let state = reactive({ - userInfo: {} +import { useNav } from "@/layout/hooks/useNav"; +import { useUserStoreHook } from "@/store/modules/user"; +import type { FormInstance, FormRules, UploadProps } from "element-plus"; +import { cloneDeep } from "@pureadmin/utils"; +import { onMounted, reactive, ref, watch, computed, onBeforeUpdate } from "vue"; +import { getToken } from "@/utils/auth"; +const { route } = useNav(); +import { baseUrlApi } from "@/api/util"; +import { cusExtendInfo, changeCusExtend } from "@/api/mine"; +import { Edit } from "@element-plus/icons-vue"; +import { enterpriseTypes } from "@/api/register/index"; +import { initRouter, getTopMenu, handleAliveRoute } from "@/router/utils"; +const isManager = useUserStoreHook().isManager; +import { type CusExtendDto } from "@/utils/auth"; +const ruleFormRef = ref<FormInstance>(); +const isLoading = ref(false); +const showDialog = ref(false); +const nowRole = computed(() => { + if (!state?.ruleForm?.exRoles) { + return {}; + } + let nowRoleLiet; + let obj = {}; + let nowRole = useUserStoreHook()?.nowRole; + if (state?.ruleForm?.exRoles.length > 1) { + nowRoleLiet = state.ruleForm.exRoles.find(item => { + return item.exRoleId == nowRole.id; + }); + obj = Object.assign(nowRole, nowRoleLiet); + } else { + obj = Object.assign(nowRole, state.ruleForm.exRoles[0]); + } + return obj; +}); +const userInfo = computed<CusExtendDto>(() => { + let obj = useUserStoreHook().enterpriseInfo; + return obj; +}); +const state = reactive({ + userInfo: useUserStoreHook().enterpriseInfo, + headers: { + // Accept: "application/json, text/plain, */*", + // "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", + // "X-Requested-With": "XMLHttpRequest", + Authorization: `Bearer ${getToken()?.accessToken}` + }, + isShowPassword: false, + ruleForm: { + // 涓婚敭锛堝敮涓�鏍囪瘑锛� + id: null, // integer($int64)锛屽彲绌� + // 浼佷笟绫诲瀷锛堜粠棰勮浼佷笟绫诲瀷鍒楄〃涓�夋嫨锛� + enterpriseType: null, // string锛屽彲绌� + // 浜ゆ槗涓讳綋浠g爜锛堝悓瑙掕壊浠g爜锛屼笉鍙┖锛屾渶灏忛暱搴︿负1锛� + transactionCode: "", // string锛屽繀濉� + // 浜ゆ槗涓讳綋鍚嶇О + transactionName: "", // string锛屽彲绌� + // 钀ヤ笟鎵х収鏂囦欢璺緞 + businessLicense: null, // string锛屽彲绌� + // 浼佷笟鍚嶇О + enterpriseName: null, // string锛屽彲绌� + // 缁熶竴绀句細淇$敤浠g爜 + unifiedSocialCreditCode: null, // string锛屽彲绌� + // 娉ㄥ唽璧勯噾锛堝崟浣嶏細涓囧厓锛� + registeredCapital: null, // number($double)锛屽彲绌� + // 娉曞畾浠h〃浜哄鍚� + legalRepresentativeName: null, // string锛屽彲绌� + // 娉曞畾浠h〃浜鸿韩浠借瘉鏂囦欢璺緞 + legalRepresentativeIdCard: null, // string锛屽彲绌� + // 娉曞畾浠h〃浜鸿韩浠借瘉鍙风爜 + legalRepresentativeIdNumber: null, // string锛屽彲绌� + // 娉曞畾浠h〃浜鸿仈绯荤數璇� + legalRepresentativePhone: null, // string($tel)锛屽彲绌� + // 浼佷笟浣忔墍锛堜笅鎷夐�夋嫨锛屾殏浠ュ瓧绗︿覆鎺ユ敹锛� + residence: null, // string锛屽彲绌� + // 浼佷笟鑱旂郴鐢佃瘽 + enterprisePhone: null, // string($tel)锛屽彲绌� + // 浼佷笟鎴愮珛鏃堕棿锛堟牸寮忕ず渚嬶細2025-07-08 14:56:54锛� + establishmentTime: null, // string($date-time)锛屽彲绌� + // 浼佷笟涓昏惀涓氬姟 + mainBusiness: null, // string锛屽彲绌� + // 浼佷笟閭 + enterpriseEmail: null, // string锛屽彲绌� + // 涓氬姟缁忓姙浜哄鍚� + operatorName: null, // string锛屽彲绌� + // 涓氬姟缁忓姙浜鸿韩浠借瘉鏂囦欢璺緞鎴栨爣璇嗭紙涓婁紶鍚庡瓨鍌ㄤ俊鎭級 + operatorIdCard: null, // string锛屽彲绌� + // 涓氬姟缁忓姙浜鸿韩浠借瘉鍙风爜 + operatorIdNumber: null, // string锛屽彲绌� + // 涓氬姟缁忓姙浜鸿仈绯荤數璇� + operatorPhone: null, // string($tel)锛屽彲绌� + // 浼佷笟寮�鎴疯 + bankName: null, // string锛屽彲绌� + // 浼佷笟閾惰璐﹀彿 + bankAccount: null, // string锛屽彲绌� + bankAccountIMG: null, + exRoles: null + }, + enterpriseList: [], + type: "", + rules: { + enterpriseType: [ + { required: true, message: "璇烽�夋嫨浼佷笟绫诲瀷", trigger: "change" } + ], + businessLicense: [ + { required: true, message: "璇蜂笂浼犺惀涓氭墽鐓�", trigger: "change" } + ], + enterpriseName: [ + { required: true, message: "璇疯緭鍏ヤ紒涓氬悕绉�", trigger: "blur" } + ], + unifiedSocialCreditCode: [ + { required: true, message: "璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜", trigger: "blur" } + ], + registeredCapital: [ + { required: true, message: "璇疯緭鍏ユ敞鍐岃祫閲�", trigger: "blur" } + ], + legalRepresentativeName: [ + { required: true, message: "璇疯緭鍏ユ硶瀹氫唬琛ㄤ汉濮撳悕", trigger: "blur" } + ], + legalRepresentativeIdCard: [ + { required: true, message: "璇蜂笂浼犳硶瀹氫唬琛ㄤ汉韬唤璇�", trigger: "change" } + ], + legalRepresentativeIdNumber: [ + { + required: true, + message: "璇疯緭鍏ユ硶瀹氫唬琛ㄤ汉韬唤璇佸彿鐮�", + trigger: "blur" + } + ], + legalRepresentativePhone: [ + { required: true, message: "璇疯緭鍏ユ硶瀹氫唬琛ㄤ汉鑱旂郴鐢佃瘽", trigger: "blur" }, + { + type: "string", + pattern: /^1[3-9]\d{9}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur" + } + ], + residence: [ + { required: true, message: "璇烽�夋嫨浼佷笟浣忔墍", trigger: "change" } + ], + enterprisePhone: [ + { required: true, message: "璇疯緭鍏ヤ紒涓氳仈绯荤數璇�", trigger: "blur" }, + { + type: "string", + pattern: /^1[3-9]\d{9}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur" + } + ], + establishmentTime: [ + { required: true, message: "璇烽�夋嫨浼佷笟鎴愮珛鏃堕棿", trigger: "change" } + ], + mainBusiness: [ + { required: true, message: "璇疯緭鍏ヤ紒涓氫富钀ヤ笟鍔�", trigger: "blur" } + ], + enterpriseEmail: [ + { required: true, message: "璇疯緭鍏ヤ紒涓氶偖绠�", trigger: "blur" }, + { type: "email", message: "璇疯緭鍏ユ纭殑閭鍦板潃", trigger: "blur" } + ], + operatorName: [ + { required: true, message: "璇疯緭鍏ヤ笟鍔$粡鍔炰汉濮撳悕", trigger: "blur" } + ], + operatorIdCard: [ + { required: true, message: "璇蜂笂浼犱笟鍔$粡鍔炰汉韬唤璇�", trigger: "change" } + ], + operatorIdNumber: [ + { + required: true, + message: "璇疯緭鍏ヤ笟鍔$粡鍔炰汉韬唤璇佸彿鐮�", + trigger: "blur" + } + ], + operatorPhone: [ + { required: true, message: "璇疯緭鍏ヤ笟鍔$粡鍔炰汉鑱旂郴鐢佃瘽", trigger: "blur" }, + { + type: "string", + pattern: /^1[3-9]\d{9}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur" + } + ], + bankName: [ + { required: true, message: "璇疯緭鍏ヤ紒涓氬紑鎴疯", trigger: "blur" } + ], + bankAccount: [ + { required: true, message: "璇疯緭鍏ヤ紒涓氶摱琛岃处鍙�", trigger: "blur" } + ] + }, + loading: { + signIn: false + }, + captchaImage: "", + rotateVerifyVisible: false, + // rotateVerifyImg: verifyImg, + // rotateVerifyImg: themeConfig.value.logoUrl, + secondVerEnabled: false, + // captchaEnabled: false, + isPassRotate: false, + capsLockVisible: false, + hideTenantForLogin: false, + expirySeconds: 60, // 楠岃瘉鐮佽繃鏈熸椂闂� + phoneSeconds: 0, // 鎵嬫満楠岃瘉鐮佸�掕鏃� + roleList: [], + showDialog: false, + srcList: [] }); onMounted(async () => { - let res = await cusExtendInfo(); - if (res.code == 200) { - state.userInfo = res.result; + state.ruleForm = cloneDeep(state.userInfo); + state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); + // nowRole.value = useUserStoreHook()?.nowRole; + if (nowRole.value) { + state.ruleForm.transactionCode = nowRole.value.code; + // let nowRoleLiet; + // if (state.ruleForm.exRoles.length > 1) { + // nowRoleLiet = state.ruleForm.exRoles.find(item => { + // return item.exRoleId == nowRole.value.id; + // }); + // nowRole.value = Object.assign(nowRole.value, nowRoleLiet); + // } else { + // nowRole.value = Object.assign(nowRole.value, state.ruleForm.exRoles[0]); + // } + // state.userInfo.transactionName = nowRole.value.name; + } else { + state.ruleForm.transactionCode = route.query.code as string; + // state.userInfo.enterpriseTypeName = route.query.name; + } + let restypes = await enterpriseTypes(); + state.enterpriseList = restypes?.result; +}); +const showPreview = ref(false); +const showImg = (name: string | number) => { + showPreview.value = true; + state.srcList = [state.ruleForm[name]]; +}; +const isLeaf = data => { + data.forEach(item => { + if (!item.child) { + item.leaf = true; + } + }); +}; +const loadNode = (node, resolve) => { + if (node.level === 0) { + isLeaf(node.data); + return resolve(node.data); + } else if (node.level > 0 && node.data.child) { + isLeaf(node.data.child); + return resolve(node.data.child); + } else { + return resolve([]); + } +}; + +// const showImg = name => { +// addDialog({ +// width: "40%", +// title: "鏌ョ湅钀ヤ笟鎵х収", +// contentRenderer: () => <img src={state.userInfo[name]} />, // jsx 璇硶 锛堟敞鎰忓湪.vue鏂囦欢鍚敤jsx璇硶锛岄渶瑕佸湪script寮�鍚痩ang="tsx"锛� +// closeCallBack: ({ options, args }) => { +// // options.props 鏄搷搴斿紡鐨� +// // const { formInline } = options.props as FormProps; +// // const text = `濮撳悕锛�${formInline.user} 鍩庡競锛�${formInline.region}`; +// if (args?.command === "cancel") { +// // 鎮ㄧ偣鍑讳簡鍙栨秷鎸夐挳 +// // active.value -= 1; +// } else if (args?.command === "sure") { +// } else { +// } +// } +// }); +// }; +const handleAvatarSuccess: UploadProps["onSuccess"] = ( + response, + uploadFile +) => { + if (response.code == "200") { + // state.ruleForm.businessLicense = URL.createObjectURL(uploadFile.raw!); + let res = response.result; + state.ruleForm.businessLicense = res.url; // 钀ヤ笟鎵х収鏂囦欢璺緞 + state.ruleForm.enterpriseName = res.info.Name; // 浼佷笟鍚嶇О + state.ruleForm.unifiedSocialCreditCode = res.info.RegNum; // 缁熶竴绀句細淇$敤浠g爜 + state.ruleForm.registeredCapital = res.info.Capital; // 娉ㄥ唽璧勯噾锛堝崟浣嶏細涓囧厓锛� + state.ruleForm.legalRepresentativeName = res.info.Person; // 娉曞畾浠h〃浜哄鍚� + state.ruleForm.establishmentTime = res.info.SetDate; // 浼佷笟鎴愮珛鏃堕棿锛堟牸寮忕ず渚嬶細2025-07-08 14:56:54锛� + state.ruleForm.residence = res.info.Address; // 浼佷笟浣忔墍锛堜笅鎷夐�夋嫨锛屾殏浠ュ瓧绗︿覆鎺ユ敹锛� + state.ruleForm.mainBusiness = res.info.Business; // 浼佷笟涓昏惀涓氬姟 + } else { + message(response.message, { + type: "error" + }); + } + isLoading.value = false; +}; +const handleAvatarSuccessLegalRepresentative: UploadProps["onSuccess"] = ( + response, + uploadFile +) => { + console.log(response); + if (response.code == "200") { + // state.ruleForm.businessLicense = URL.createObjectURL(uploadFile.raw!); + let res = response.result; + state.ruleForm.legalRepresentativeIdCard = res.url; // 娉曞畾浠h〃浜鸿韩浠借瘉鏂囦欢璺緞 + state.ruleForm.legalRepresentativeIdNumber = res.info.IdNum; // 娉曞畾浠h〃浜鸿韩浠借瘉鍙风爜 + } else { + message(response.message, { + type: "error" + }); + } + isLoading.value = false; +}; + +const handleAvatarSuccessOperator: UploadProps["onSuccess"] = ( + response, + uploadFile +) => { + if (response.code == "200") { + // state.ruleForm.businessLicense = URL.createObjectURL(uploadFile.raw!); + let res = response.result; + state.ruleForm.operatorName = res.info.Name; // 涓氬姟缁忓姙浜哄鍚� + state.ruleForm.operatorIdCard = res.url; // 涓氬姟缁忓姙浜鸿韩浠借瘉鏂囦欢璺緞鎴栨爣璇嗭紙涓婁紶鍚庡瓨鍌ㄤ俊鎭級 + state.ruleForm.operatorIdNumber = res.info.IdNum; // 涓氬姟缁忓姙浜鸿韩浠借瘉鍙风爜 + } else { + message(response.message, { + type: "error" + }); + } + isLoading.value = false; +}; + +const beforeAvatarUpload: UploadProps["beforeUpload"] = rawFile => { + isLoading.value = true; + // if (rawFile.type !== "image/jpeg") { + // message(`璇蜂笂浼爅peg绫诲瀷鐨勫浘鐗嘸, { + // type: "error" + // }); + // return false; + // } else if (rawFile.size / 1024 / 1024 > 2) { + // message(`鍥剧墖澶у皬涓嶈兘瓒呰繃 2MB锛乣, { + // type: "error" + // }); + // return false; + // } + return true; +}; +// 鎻愪氦淇敼浼佷笟娉ㄥ唽淇℃伅 +const modifyData = async () => { + let obj = cloneDeep(state.ruleForm); + obj.enterpriseType = state.ruleForm.enterpriseType.join(","); + let res = await changeCusExtend(obj); + if (res.code == "200") { + showDialog.value = false; + await useUserStoreHook().changeLogoInExRule({ + ruleCode: useUserStoreHook().nowRole.code + }); + initRouter(); + message("淇敼鎴愬姛锛�", { + type: "success" + }); } else { message(res.message, { type: "error" }); } -}); -const showImg = name => { - addDialog({ - width: "40%", - title: "鏌ョ湅钀ヤ笟鎵х収", - contentRenderer: () => <img src={state.userInfo[name]} />, // jsx 璇硶 锛堟敞鎰忓湪.vue鏂囦欢鍚敤jsx璇硶锛岄渶瑕佸湪script寮�鍚痩ang="tsx"锛� - closeCallBack: ({ options, args }) => { - // options.props 鏄搷搴斿紡鐨� - // const { formInline } = options.props as FormProps; - // const text = `濮撳悕锛�${formInline.user} 鍩庡競锛�${formInline.region}`; - if (args?.command === "cancel") { - // 鎮ㄧ偣鍑讳簡鍙栨秷鎸夐挳 - // active.value -= 1; - } else if (args?.command === "sure") { - } else { - } - } - }); }; + +const handlebankAccountIMG: UploadProps["onSuccess"] = ( + response, + uploadFile +) => { + if (response.code == "200") { + // state.ruleForm.businessLicense = URL.createObjectURL(uploadFile.raw!); + state.ruleForm.bankAccountIMG = response.result; + } else { + message(response.message, { + type: "error" + }); + } + isLoading.value = false; +}; + defineOptions({ name: "mine" }); </script> <template> - <el-descriptions class="margin-top" title="" :column="3" :size="size" border> - <!-- <template #extra> + <div> + <el-descriptions + v-if="state.userInfo.enterpriseName" + class="margin-top" + title="" + :column="3" + border + > + <!-- <template #extra> <el-button type="primary">Operation</el-button> </template> --> - <el-descriptions-item :span="3"> - <template #label> - <div class="cell-item">浜ゆ槗涓讳綋</div> - </template> - {{ state.userInfo.transactionCode }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">浼佷笟鍚嶇О</div> - </template> - {{ state.userInfo.enterpriseName }} + <el-descriptions-item :span="3"> + <template #label> + <div class="cell-item">浜ゆ槗涓讳綋</div> + </template> + {{ nowRole?.name }} + <el-tag v-if="nowRole.steps == 2" type="success">瀹℃牳宸查�氳繃 </el-tag> + <el-tag v-else-if="nowRole.steps == 3" type="danger" + >璧勬枡鏈�氳繃 + </el-tag> + <el-tag v-else type="warning">璧勬枡瀹℃牳涓� </el-tag> + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">浼佷笟鍚嶇О</div> + </template> + {{ userInfo.enterpriseName }} - <span @click="showImg('businessLicense')"> - <el-link type="primary" underline>鏌ョ湅钀ヤ笟鎵х収</el-link> - </span> - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">缁熶竴绀句細淇$敤浠g爜</div> - </template> - {{ state.userInfo.unifiedSocialCreditCode }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">娉ㄥ唽璧勯噾</div> - </template> - {{ state.userInfo.registeredCapital }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">浼佷笟绫诲瀷</div> - </template> - {{ state.userInfo.enterpriseType }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">浣忔墍鍦�</div> - </template> - {{ state.userInfo.residence }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">鑱旂郴鐢佃瘽</div> - </template> - {{ state.userInfo.legalRepresentativePhone }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">鎴愮珛鏃堕棿</div> - </template> - {{ state.userInfo.establishmentTime }} - </el-descriptions-item> - <el-descriptions-item :span="2"> - <template #label> - <div class="cell-item">鐢靛瓙閭</div> - </template> - {{ state.userInfo.enterpriseEmail }} - </el-descriptions-item> - <el-descriptions-item :span="3" label-width="100"> - <template #label> - <div class="cell-item">涓昏惀涓氬姟</div> - </template> - {{ state.userInfo.mainBusiness }} - </el-descriptions-item> + <span @click="showImg('businessLicense')"> + <el-link type="primary" underline>鏌ョ湅钀ヤ笟鎵х収</el-link> + </span> + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">缁熶竴绀句細淇$敤浠g爜</div> + </template> + {{ userInfo.unifiedSocialCreditCode }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">娉ㄥ唽璧勯噾</div> + </template> + {{ userInfo.registeredCapital }} + </el-descriptions-item> + <el-descriptions-item :span="2"> + <template #label> + <div class="cell-item">浼佷笟绫诲瀷</div> + </template> + {{ userInfo.enterpriseType }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">浣忔墍鍦�</div> + </template> + {{ userInfo.residence }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">鑱旂郴鐢佃瘽</div> + </template> + {{ userInfo.enterprisePhone }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">鎴愮珛鏃堕棿</div> + </template> + {{ userInfo.establishmentTime }} + </el-descriptions-item> + <el-descriptions-item :span="2"> + <template #label> + <div class="cell-item">鐢靛瓙閭</div> + </template> + {{ userInfo.enterpriseEmail }} + </el-descriptions-item> + <el-descriptions-item :span="3" label-width="100"> + <template #label> + <div class="cell-item">涓昏惀涓氬姟</div> + </template> + {{ userInfo.mainBusiness }} + </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">娉曞畾浠h〃浜�</div> + <el-descriptions-item> + <template #label> + <div class="cell-item">娉曞畾浠h〃浜�</div> + </template> + {{ userInfo.legalRepresentativeName }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">韬唤璇�</div> + </template> + {{ userInfo.legalRepresentativeIdNumber }} + <span @click="showImg('legalRepresentativeIdCard')"> + <el-link type="primary" underline>鏌ョ湅韬唤璇�</el-link> + </span> + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">鑱旂郴鐢佃瘽</div> + </template> + {{ userInfo.legalRepresentativePhone }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">涓氬姟缁忓姙浜�</div> + </template> + {{ userInfo.operatorName }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">韬唤璇�</div> + </template> + {{ userInfo.operatorIdNumber }} + <span style="margin-right: auto" @click="showImg('operatorIdCard')"> + <el-link type="primary" underline>鏌ョ湅韬唤璇�</el-link> + </span> + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">鑱旂郴鐢佃瘽</div> + </template> + {{ userInfo.operatorPhone }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">寮�鎴烽摱琛�</div> + </template> + {{ userInfo.bankName }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">閾惰璐﹀彿</div> + </template> + {{ userInfo.bankAccount }} + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">閾惰鏀舵浜岀淮鐮�</div> + </template> + <span style="margin-right: auto" @click="showImg('bankAccountIMG')"> + <el-link type="primary" underline>鏌ョ湅浜岀淮鐮�</el-link> + </span> + </el-descriptions-item> + </el-descriptions> + <div v-if="isManager" class="m-5"> + <el-button type="primary" :icon="Edit" @click="() => (showDialog = true)" + >淇敼璧勬枡</el-button + > + </div> + <el-dialog + v-model="showDialog" + title="淇敼璧勬枡" + :width="1500" + draggable + :close-on-click-modal="false" + > + <div v-loading="isLoading" class="flex justify-center mt-5"> + <el-form + ref="ruleFormRef" + style="width: 95%" + :model="state.ruleForm" + :rules="state.rules" + label-width="auto" + > + <el-row> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="浼佷笟绫诲瀷" prop="enterpriseType"> + <el-tree-select + v-model="state.ruleForm.enterpriseType" + :data="state.enterpriseList" + multiple + node-key="name" + :render-after-expand="false" + show-checkbox + check-strictly + check-on-click-node + :load="loadNode" + lazy + :props="{ label: 'name', children: 'child', isLeaf: 'leaf' }" + /> + <!-- <el-select + v-model="state.ruleForm.enterpriseType" + placeholder="璇烽�夋嫨" + clearable + multiple + > + <el-option + v-for="item in state.enterpriseList" + :key="item.id" + :label="item.name" + :value="item.code" + /> + </el-select> --> + </el-form-item> + </el-col> + </el-row> + <el-row><div class="baseclass">鍩烘湰璧勬枡</div></el-row> + <!-- <el-row> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="浜ゆ槗涓讳綋"> + <el-input + v-model="state.ruleForm.transactionName" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> --> + <el-row> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="钀ヤ笟鎵х収" prop="businessLicense"> + <el-upload + :action="`${baseUrlApi('/api/upFile/upBizLicense')}`" + :show-file-list="false" + :on-success="handleAvatarSuccess" + :before-upload="beforeAvatarUpload" + :headers="state.headers" + > + <img + v-if="state.ruleForm.businessLicense" + :src="state.ruleForm.businessLicense" + width="80px" + height="50px" + /> + <el-button v-else type="primary">涓婁紶</el-button> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="浼佷笟鍚嶇О" prop="enterpriseName"> + <el-input + v-model="state.ruleForm.enterpriseName" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item + label="缁熶竴绀句細淇$敤浠g爜" + prop="unifiedSocialCreditCode" + > + <el-input + v-model="state.ruleForm.unifiedSocialCreditCode" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="娉ㄥ唽璧勯噾" prop="registeredCapital"> + <el-input + v-model="state.ruleForm.registeredCapital" + disabled + placeholder="璇疯緭鍏�" + > + <template #append>涓囧厓</template></el-input + > + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="8"> + <el-form-item label="娉曞畾浠h〃浜�" prop="legalRepresentativeName"> + <el-input + v-model="state.ruleForm.legalRepresentativeName" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + + <el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16"> + <el-form-item label="浣忔墍鍦�" prop="residence"> + <el-input + v-model="state.ruleForm.residence" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="鎴愮珛鏃堕棿" prop="establishmentTime"> + <el-input + v-model="state.ruleForm.establishmentTime" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="涓昏惀涓氬姟" prop="mainBusiness"> + <el-input + v-model="state.ruleForm.mainBusiness" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="enterprisePhone"> + <el-input + v-model="state.ruleForm.enterprisePhone" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="閭" prop="enterpriseEmail"> + <el-input + v-model="state.ruleForm.enterpriseEmail" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="寮�鎴疯" prop="bankName"> + <el-input + v-model="state.ruleForm.bankName" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="16" :xl="16"> + <el-form-item label="閾惰璐﹀彿" prop="bankAccount"> + <el-input + v-model="state.ruleForm.bankAccount" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="寮�鎴疯鏀舵浜岀淮鐮�" prop="bankAccountIMG"> + <el-upload + :action="`${baseUrlApi('/api/upFile/file')}`" + :show-file-list="false" + :on-success="handlebankAccountIMG" + :before-upload="beforeAvatarUpload" + :headers="state.headers" + > + <img + v-if="state.ruleForm.bankAccountIMG" + :src="state.ruleForm.bankAccountIMG" + width="85.6px" + height="5.4px" + /> + <el-button v-else type="primary">涓婁紶</el-button> + </el-upload> + </el-form-item> + </el-col> + </el-row> + + <el-row> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="娉曞畾浠h〃浜�" prop="legalRepresentativeIdCard"> + <el-upload + :action="`${baseUrlApi('/api/upFile/uploadIdCord?PageName=FRONT')}`" + :show-file-list="false" + :on-success="handleAvatarSuccessLegalRepresentative" + :before-upload="beforeAvatarUpload" + :headers="state.headers" + > + <img + v-if="state.ruleForm.legalRepresentativeIdCard" + :src="state.ruleForm.legalRepresentativeIdCard" + width="85.6px" + height="5.4px" + /> + <el-button v-else type="primary">涓婁紶韬唤璇�</el-button> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="濮撳悕" prop="legalRepresentativeName"> + <el-input + v-model="state.ruleForm.legalRepresentativeName" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="韬唤璇�" prop="legalRepresentativeIdNumber"> + <el-input + v-model="state.ruleForm.legalRepresentativeIdNumber" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="legalRepresentativePhone"> + <el-input + v-model="state.ruleForm.legalRepresentativePhone" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> + <el-form-item label="涓氬姟缁忓姙浜�" prop="operatorIdCard"> + <el-upload + :action="`${baseUrlApi('/api/upFile/uploadIdCord?PageName=FRONT')}`" + :show-file-list="false" + :on-success="handleAvatarSuccessOperator" + :before-upload="beforeAvatarUpload" + :headers="state.headers" + > + <img + v-if="state.ruleForm.operatorIdCard" + :src="state.ruleForm.operatorIdCard" + width="85.6px" + height="5.4px" + /> + <el-button v-else type="primary">涓婁紶韬唤璇�</el-button> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="濮撳悕" prop="operatorName"> + <el-input + v-model="state.ruleForm.operatorName" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="韬唤璇�" prop="operatorIdNumber"> + <el-input + v-model="state.ruleForm.operatorIdNumber" + disabled + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="operatorPhone"> + <el-input + v-model="state.ruleForm.operatorPhone" + placeholder="璇疯緭鍏�" + /> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <template #footer> + <span class="dialog-footer"> + <el-button @click="() => (showDialog = false)">鍙� 娑�</el-button> + <el-button type="primary" :disabled="isLoading" @click="modifyData" + >纭� 瀹�</el-button + > + </span> </template> - {{ state.userInfo.legalRepresentativeName }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">韬唤璇�</div> - </template> - {{ state.userInfo.legalRepresentativeIdNumber }} - <span @click="showImg('legalRepresentativeIdCard')"> - <el-link type="primary" underline>鏌ョ湅韬唤璇�</el-link> - </span> - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">鑱旂郴鐢佃瘽</div> - </template> - {{ state.userInfo.legalRepresentativePhone }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">涓氬姟缁忓姙浜�</div> - </template> - {{ state.userInfo.operatorName }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">韬唤璇�</div> - </template> - {{ state.userInfo.operatorIdNumber }} - <span style="margin-right: auto" @click="showImg('operatorIdCard')"> - <el-link type="primary" underline>鏌ョ湅韬唤璇�</el-link> - </span> - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">鑱旂郴鐢佃瘽</div> - </template> - {{ state.userInfo.operatorPhone }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">寮�鎴烽摱琛�</div> - </template> - {{ state.userInfo.bankName }} - </el-descriptions-item> - <el-descriptions-item> - <template #label> - <div class="cell-item">閾惰璐﹀彿</div> - </template> - {{ state.userInfo.bankAccount }} - </el-descriptions-item> - </el-descriptions> + </el-dialog> + <el-image-viewer + v-if="showPreview" + :url-list="state.srcList" + show-progress + @close="showPreview = false" + /> + </div> </template> <style lang="scss"> -- Gitblit v1.9.1