From 9df24dd94096b622e42230498e2f679f0c5dbb37 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 23 七月 2025 15:36:49 +0800 Subject: [PATCH] '个人中心修改企业资料' --- src/layout/components/lay-navbar/index.vue | 10 src/views/item/index.vue | 9 src/views/register/registernav.vue | 65 ++++ src/views/item/component/editDialog.vue | 2 src/views/mine/index.vue | 610 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/register/index.ts | 9 6 files changed, 675 insertions(+), 30 deletions(-) diff --git a/src/api/register/index.ts b/src/api/register/index.ts index 8e407e1..76589ef 100644 --- a/src/api/register/index.ts +++ b/src/api/register/index.ts @@ -46,6 +46,15 @@ ); }; +// 淇敼瑙掕壊鐢ㄦ埛璧勬枡 +export const createrExRolsInformation1 = (data?: object) => { + return http.request<Result>( + "post", + baseUrlApi("/api/customer/createrExRolsInformation"), + { data } + ); +}; + // 鑾峰彇浼佷笟绫诲瀷 export const enterpriseTypes = (data?: object) => { return http.request<Result>( diff --git a/src/layout/components/lay-navbar/index.vue b/src/layout/components/lay-navbar/index.vue index 21fd10f..339f84c 100644 --- a/src/layout/components/lay-navbar/index.vue +++ b/src/layout/components/lay-navbar/index.vue @@ -41,16 +41,18 @@ <div v-if="layout === 'vertical'" class="vertical-header-right"> <!-- 鑿滃崟鎼滅储 --> - <LaySearch id="header-search" /> + <!-- <LaySearch id="header-search" /> --> <!-- 鍏ㄥ睆 --> <LaySidebarFullScreen id="full-screen" /> <!-- 娑堟伅閫氱煡 --> - <LayNotice id="header-notice" /> + <!-- <LayNotice id="header-notice" /> --> <!-- 閫�鍑虹櫥褰� --> <el-dropdown trigger="click"> <span class="el-dropdown-link navbar-bg-hover select-none"> - <img :src="userAvatar" :style="avatarsStyle" /> - <p v-if="username" class="dark:text-white">{{ username }}</p> + <!-- <img :src="userAvatar" :style="avatarsStyle" /> --> + <p class="dark:text-white"> + {{ username || "璇峰畬鍠勮祫鏂�" }} + </p> </span> <template #dropdown> <el-dropdown-menu class="logout"> diff --git a/src/views/item/component/editDialog.vue b/src/views/item/component/editDialog.vue index ada8be4..56984a3 100644 --- a/src/views/item/component/editDialog.vue +++ b/src/views/item/component/editDialog.vue @@ -291,7 +291,7 @@ <template #footer> <span class="dialog-footer"> <el-button @click="() => (state.showDialog = false)">鍙� 娑�</el-button> - <el-button v-reclick="1000" type="primary" @click="submit" + <el-button type="primary" @click="submit" >纭� 瀹�</el-button > </span> diff --git a/src/views/item/index.vue b/src/views/item/index.vue index b976c49..c733f4c 100644 --- a/src/views/item/index.vue +++ b/src/views/item/index.vue @@ -266,12 +266,7 @@ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10"> <el-form-item> <el-button-group style="display: flex; align-items: center"> - <el-button - v-reclick="1000" - type="primary" - icon="Search" - @click="handleQuery" - > + <el-button type="primary" icon="Search" @click="handleQuery"> 鏌ヨ </el-button> <el-button @@ -316,7 +311,7 @@ 鏂板 </el-button> <!-- <el-dropdown :show-timeout="70" :hide-timeout="50" @command="exportProcurementComplaintCommand"> - <el-button type="primary" style="margin-left:5px;" icon="ele-FolderOpened" v-reclick="20000" + <el-button type="primary" style="margin-left:5px;" icon="ele-FolderOpened" v-auth="'procurementComplaint:export'"> 瀵煎嚭 </el-button> <template #dropdown> <el-dropdown-menu> diff --git a/src/views/mine/index.vue b/src/views/mine/index.vue index 647de0a..f3643bf 100644 --- a/src/views/mine/index.vue +++ b/src/views/mine/index.vue @@ -1,26 +1,235 @@ <script setup lang="tsx"> -import { cusExtendInfo } from "@/api/mine"; import { message } from "@/utils/message"; -import { onMounted, reactive } from "vue"; +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 } 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 { addDialog, closeDialog, updateDialog, closeAllDialog } from "@/components/ReDialog"; -let state = reactive({ - userInfo: {} + +const ruleFormRef = ref<FormInstance>(); +const isLoading = ref(false); +const showDialog = ref(false); +const state = reactive({ + userInfo: {}, + 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: null, // 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锛屽彲绌� + }, + 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 }); onMounted(async () => { let res = await cusExtendInfo(); if (res.code == 200) { state.userInfo = res.result; + state.userInfo.enterpriseTypeName = res.result.enterpriseType; + state.ruleForm = res.result; + state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); } else { message(res.message, { type: "error" }); } + let nowRole = useUserStoreHook()?.exRoles; + if (nowRole.length >= 1 && !route.query.code) { + state.ruleForm.transactionCode = nowRole[0].code; + state.userInfo.transactionName = nowRole[0].name; + } else { + state.ruleForm.transactionCode = route.query.code; + state.userInfo.enterpriseTypeName = route.query.name; + } + + let restypes = await enterpriseTypes(); + state.enterpriseList = restypes?.result; }); +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%", @@ -39,6 +248,95 @@ } }); }; +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; + message("淇敼鎴愬姛锛�", { + type: "success" + }); + } else { + message(res.message, { + type: "error" + }); + } +}; defineOptions({ name: "mine" }); @@ -53,7 +351,7 @@ <template #label> <div class="cell-item">浜ゆ槗涓讳綋</div> </template> - {{ state.userInfo.transactionCode }} + {{ state.userInfo.transactionName }} </el-descriptions-item> <el-descriptions-item> <template #label> @@ -77,11 +375,11 @@ </template> {{ state.userInfo.registeredCapital }} </el-descriptions-item> - <el-descriptions-item> + <el-descriptions-item :span="2"> <template #label> <div class="cell-item">浼佷笟绫诲瀷</div> </template> - {{ state.userInfo.enterpriseType }} + {{ state.userInfo.enterpriseTypeName }} </el-descriptions-item> <el-descriptions-item> <template #label> @@ -169,6 +467,304 @@ {{ state.userInfo.bankAccount }} </el-descriptions-item> </el-descriptions> + <div 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="200px" + height="150px" + /> + <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-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-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-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> + </el-dialog> </template> <style lang="scss"> diff --git a/src/views/register/registernav.vue b/src/views/register/registernav.vue index dc44e6f..c7ea3e5 100644 --- a/src/views/register/registernav.vue +++ b/src/views/register/registernav.vue @@ -128,7 +128,20 @@ <el-row> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24"> <el-form-item label="浼佷笟绫诲瀷" prop="enterpriseType"> - <el-select + <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 @@ -140,7 +153,7 @@ :label="item.name" :value="item.code" /> - </el-select> + </el-select> --> </el-form-item> </el-col> </el-row> @@ -420,6 +433,8 @@ import { cloneDeep } from "@pureadmin/utils"; import { getToken } from "@/utils/auth"; import { useRoute, useRouter } from "vue-router"; +import { cusExtendInfo, changeCusExtend } from "@/api/mine"; + const router = useRouter(); const { route } = useNav(); @@ -428,6 +443,7 @@ }); const ruleFormRef = ref<FormInstance>(); const isLoading = ref(false); +const isFirst = ref(true); const state = reactive({ headers: { // Accept: "application/json, text/plain, */*", @@ -596,6 +612,19 @@ }; // 椤甸潰鍒濆鍖� onMounted(async () => { + let res = await cusExtendInfo(); + if (res.code == 200) { + state.ruleForm = res.result; + if (res.result.enterpriseType) { + isFirst.value = false; + } + state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); + console.log(state.ruleForm.enterpriseType, "state.ruleForm.enterpriseType"); + } else { + message(res.message, { + type: "error" + }); + } let nowRole = useUserStoreHook()?.exRoles; if (nowRole.length >= 1 && !route.query.code) { state.ruleForm.transactionCode = nowRole[0].code; @@ -603,13 +632,29 @@ state.ruleForm.transactionCode = route.query.code; } - let res = await enterpriseTypes(); - state.enterpriseList = res?.result; + let resTypes = await enterpriseTypes(); + state.enterpriseList = resTypes?.result; }); +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([]); + } +}; let active = ref(0); const nextStep = async (formEl: FormInstance | undefined) => { - console.log(state.ruleForm); - if (active.value >= 1) { if (!formEl) return; await formEl.validate((valid, fields) => { @@ -636,14 +681,10 @@ } }); return; - } else { - return; - console.log("error submit!", fields); } }); return; } - active.value += 1; }; const backStep = () => { @@ -653,7 +694,9 @@ const sumbitData = async () => { let obj = cloneDeep(state.ruleForm); obj.enterpriseType = state.ruleForm.enterpriseType.join(","); - let res = await createrExRolsInformation(obj); + let res = isFirst.value + ? await createrExRolsInformation(obj) + : await changeCusExtend(obj); if (res.code == "200") { active.value = 3; } else { -- Gitblit v1.9.1