From bb576469eb1e2cb2bf8e1717902702ca28f5ef65 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 28 七月 2025 17:20:56 +0800 Subject: [PATCH] '-' --- src/router/modules/error.ts | 2 src/views/login/index.vue | 22 + src/router/modules/item.ts | 2 src/store/modules/user.ts | 89 ++++ src/store/types.ts | 2 src/layout/components/lay-tag/index.vue | 2 src/api/register/index.ts | 1 src/api/user.ts | 8 src/layout/components/lay-navbar/index.vue | 13 src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue | 4 src/views/home/index.vue | 27 src/views/register/registernav.vue | 22 src/views/mine/index.vue | 808 ++++++++++++++++++++++---------------------- src/utils/auth.ts | 18 + src/layout/hooks/useTag.ts | 2 src/layout/hooks/useNav.ts | 38 + src/router/index.ts | 1 src/App.vue | 9 18 files changed, 607 insertions(+), 463 deletions(-) diff --git a/src/App.vue b/src/App.vue index 7294c44..d7af416 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,7 +6,7 @@ </template> <script lang="ts"> -import { defineComponent } from "vue"; +import { defineComponent, onMounted } from "vue"; import { ElConfigProvider } from "element-plus"; import { ReDialog } from "@/components/ReDialog"; import zhCn from "element-plus/es/locale/lang/zh-cn"; @@ -24,3 +24,10 @@ } }); </script> +<script lang="ts" setup> +import { onMounted } from "vue"; +import { useUserStoreHook } from "@/store/modules/user"; +onMounted(() => { + useUserStoreHook().getRoleList(); +}); +</script> diff --git a/src/api/register/index.ts b/src/api/register/index.ts index 76589ef..2611df4 100644 --- a/src/api/register/index.ts +++ b/src/api/register/index.ts @@ -65,3 +65,4 @@ } ); }; + diff --git a/src/api/user.ts b/src/api/user.ts index 638e201..f0e6242 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -70,3 +70,11 @@ export const refreshTokenApi = (data?: object) => { return http.request<RefreshTokenResult>("post", "/refresh-token1", { data }); }; + +// 鍒囨崲瑙掕壊 +export const getChangeLogoInExRule = params => { + return http.request<LoginResult>( + "post", + baseUrlApi(`/api/auth/changeLogoInExRule/${params.ruleCode}`) + ); +}; diff --git a/src/layout/components/lay-navbar/index.vue b/src/layout/components/lay-navbar/index.vue index f5bc706..8a966e4 100644 --- a/src/layout/components/lay-navbar/index.vue +++ b/src/layout/components/lay-navbar/index.vue @@ -21,6 +21,8 @@ userAvatar, avatarsStyle, userRoles, + userRolesList, + changRole, toggleSideBar } = useNav(); </script> @@ -60,11 +62,18 @@ </span> <template #dropdown> <el-dropdown-menu class="logout"> + <el-dropdown-item + v-for="item in userRolesList" + :key="item.code" + @click="changRole(item)" + > + {{ item.name }} + </el-dropdown-item> <el-dropdown-item @click="logout"> - <IconifyIconOffline + <!-- <IconifyIconOffline :icon="LogoutCircleRLine" style="margin: 5px" - /> + /> --> 閫�鍑虹郴缁� </el-dropdown-item> </el-dropdown-menu> diff --git a/src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue b/src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue index c73d5b9..4cbc24c 100644 --- a/src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue +++ b/src/layout/components/lay-sidebar/components/SidebarBreadCrumb.vue @@ -111,9 +111,7 @@ :key="item.path" class="inline! items-stretch!" > - <a @click.prevent="handleLink(item)"> - {{ item.meta.title }} - </a> + <a @click.prevent="handleLink(item)"> {{ item.meta.title }} </a> </el-breadcrumb-item> </transition-group> </el-breadcrumb> diff --git a/src/layout/components/lay-tag/index.vue b/src/layout/components/lay-tag/index.vue index a21e389..af563cf 100644 --- a/src/layout/components/lay-tag/index.vue +++ b/src/layout/components/lay-tag/index.vue @@ -647,7 +647,7 @@ > <li v-if="item.show" @click="selectTag(key, item)"> <IconifyIconOffline :icon="item.icon" /> - {{ item.text }} + {{ item.text }}11 </li> </div> </ul> diff --git a/src/layout/hooks/useNav.ts b/src/layout/hooks/useNav.ts index 56cd593..b1b0567 100644 --- a/src/layout/hooks/useNav.ts +++ b/src/layout/hooks/useNav.ts @@ -2,7 +2,7 @@ import { getConfig } from "@/config"; import { emitter } from "@/utils/mitt"; import Avatar from "@/assets/user.jpg"; -import { getTopMenu } from "@/router/utils"; +import { initRouter, getTopMenu, handleAliveRoute } from "@/router/utils"; import { useFullscreen } from "@vueuse/core"; import type { routeMetaType } from "../types"; import { useRouter, useRoute } from "vue-router"; @@ -14,6 +14,7 @@ import { usePermissionStoreHook } from "@/store/modules/permission"; import ExitFullscreen from "~icons/ri/fullscreen-exit-fill"; import Fullscreen from "~icons/ri/fullscreen-fill"; +import { unref } from "vue"; const errorInfo = "The current routing configuration is incorrect, please check the configuration"; @@ -53,7 +54,12 @@ /** 瑙掕壊 */ const userRoles = computed(() => { - return useUserStoreHook()?.exRoles[0]; + return useUserStoreHook()?.nowRole; + }); + + /** 瑙掕壊 */ + const userRolesList = computed(() => { + return useUserStoreHook()?.exRoles ?? []; }); const avatarsStyle = computed(() => { @@ -83,7 +89,29 @@ if (Title) document.title = `${meta.title} | ${Title}`; else document.title = meta.title; } - + /** 鍒锋柊璺敱 */ + function onFresh() { + const { fullPath, query } = unref(route); + router.replace({ + path: "/redirect" + fullPath, + query + }); + handleAliveRoute(route as ToRouteType, "refresh"); + } + /** 鍒囨崲瑙掕壊 */ + const changRole = item => { + useUserStoreHook() + .changeLogoInExRule({ + ruleCode: item.code + }) + .then(res => { + if (res.code == 200) { + // 鑾峰彇鍚庣璺敱 + initRouter(); + onFresh(); + } + }); + }; /** 閫�鍑虹櫥褰� */ function logout() { useUserStoreHook().logOut(); @@ -156,8 +184,10 @@ pureApp, username, userRoles, + userRolesList, userAvatar, avatarsStyle, - tooltipEffect + tooltipEffect, + changRole }; } diff --git a/src/layout/hooks/useTag.ts b/src/layout/hooks/useTag.ts index 1c2d254..2c40c44 100644 --- a/src/layout/hooks/useTag.ts +++ b/src/layout/hooks/useTag.ts @@ -8,6 +8,7 @@ getCurrentInstance } from "vue"; import type { tagsViewsType } from "../types"; +import { useUserStoreHook } from "@/store/modules/user"; import { useRoute, useRouter } from "vue-router"; import { responsiveStorageNameSpace } from "@/config"; import { useSettingStoreHook } from "@/store/modules/settings"; @@ -42,6 +43,7 @@ // 褰撳墠鍙抽敭閫変腑鐨勮矾鐢变俊鎭� const currentSelect = ref({}); const isScrolling = ref(false); + const hasFlash = useUserStoreHook()?.nowRole.hasFlsh; /** 鏄剧ず妯″紡锛岄粯璁ょ伒鍔ㄦā寮� */ const showModel = ref( diff --git a/src/router/index.ts b/src/router/index.ts index 353db8c..1d1dbca 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -195,7 +195,6 @@ } else { if (to.path !== "/login") { if (whiteList.indexOf(to.path) !== -1) { - console.log(to.path, "====1", noLoginList.indexOf(to.path)); next(); } else { // if (noLoginList.indexOf(to.path) == -1) { diff --git a/src/router/modules/error.ts b/src/router/modules/error.ts index 2a57a0d..497c0e6 100644 --- a/src/router/modules/error.ts +++ b/src/router/modules/error.ts @@ -3,7 +3,7 @@ redirect: "/error/403", meta: { icon: "ri/information-line", - // showLink: false, + showLink: false, title: "寮傚父椤甸潰", rank: 9 }, diff --git a/src/router/modules/item.ts b/src/router/modules/item.ts index 3d2aa47..28141ae 100644 --- a/src/router/modules/item.ts +++ b/src/router/modules/item.ts @@ -5,7 +5,7 @@ // redirect: "/error/403", meta: { icon: "ri/information-line", - // showLink: false, + // showLink: hasFlash, title: "椤圭洰绠$悊", rank: 9 } diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 2be8954..145823a 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -11,16 +11,20 @@ type LoginResult, type RefreshTokenResult, getLogin, - refreshTokenApi + refreshTokenApi, + getChangeLogoInExRule } from "@/api/user"; import { useMultiTagsStoreHook } from "./multiTags"; import { type DataInfo, setToken, + setRoleListInfo, + setNowRole, removeToken, userKey, setEnterpriseInfo } from "@/utils/auth"; +import { exRole } from "@/api/register/index"; import { cusExtendInfo } from "@/api/mine"; export const useUserStore = defineStore("pure-user", { @@ -42,7 +46,10 @@ loginDay: 1, // 浼佷笟璧勬枡 enterpriseInfo: - storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {} + storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}, + nowRole: storageLocal().getItem<DataInfo<number>>("nowRole") ?? {}, + rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [], + isFlsh: storageLocal().getItem<DataInfo<number>>("isFlsh") ?? false }), actions: { /** 瀛樺偍澶村儚 */ @@ -57,9 +64,21 @@ SET_NICKNAME(nickname: string) { this.nickname = nickname; }, - /** 瀛樺偍瑙掕壊 */ + /** 瀛樺偍鐢ㄦ埛瑙掕壊 */ SET_ROLES(exRoles: Array<string>) { this.exRoles = exRoles; + }, + /** 瀛樺偍瑙掕壊褰撳墠瑙掕壊 */ + SET_NOW_ROLE(nowRole: object) { + this.nowRole = nowRole; + }, + /** 瀛樺偍瑙掕壊鍒楄〃 */ + SET_ROLES_LIST(rolesList: Array<string>) { + this.rolesList = rolesList; + }, + /** 褰撳墠瑙掕壊鏄惁瀹℃牳 */ + SET_IS_FLSH(isFlsh: boolean | string) { + this.isFlsh = isFlsh; }, /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */ SET_PERMS(permissions: Array<string>) { @@ -78,11 +97,59 @@ this.loginDay = Number(value); }, /** 鐧诲叆 */ - async loginByUsername(data) { + async loginByUsername(obj) { return new Promise<LoginResult>((resolve, reject) => { - getLogin(data) + getLogin(obj) .then(data => { - if (data?.code == 200) setToken(data.result); + if (data?.code == 200) { + setToken(data.result); + this.getNowRole(obj.exRuleCode); + } + resolve(data); + }) + .catch(error => { + reject(error); + }); + }); + }, + /** 鑾峰彇瑙掕壊鍒楄〃 */ + async getRoleList() { + return new Promise<LoginResult>((resolve, reject) => { + exRole() + .then(data => { + if (data?.code == 200) { + setRoleListInfo(data.result); + if (this.nowRole.code) { + this.getNowRole(this.nowRole.code); + } + } + resolve(data); + }) + .catch(error => { + reject(error); + }); + }); + }, + /** 鑾峰彇褰撳墠瑙掕壊 */ + async getNowRole(code) { + return new Promise<LoginResult>((resolve, reject) => { + const data = this.rolesList.find(item => { + return item.code == code; + }); + setNowRole(data); + resolve(data); + }); + }, + /** 鍒囨崲瑙掕壊 */ + async changeLogoInExRule(obj) { + return new Promise<LoginResult>((resolve, reject) => { + getChangeLogoInExRule(obj) + .then(data => { + if (data?.code == 200) { + setToken(data.result); + this.getNowRole(obj.ruleCode); + this.getCusExtendInfo(); + } resolve(data); }) .catch(error => { @@ -108,16 +175,12 @@ /** 鍓嶇鐧诲嚭锛堜笉璋冪敤鎺ュ彛锛� */ logOut() { this.username = ""; + this.exRoles = []; this.permissions = []; + removeToken(); useMultiTagsStoreHook().handleTags("equal", [...routerArrays]); resetRouter(); - if (this.exRoles && this.exRoles.length == 1) { - router.push({ name: "Login", query: this.exRoles[0] }); - } else { - router.push({ name: "Login" }); - } - removeToken(); - this.exRoles = []; + router.push("/index"); }, /** 鍒锋柊`token` */ async handRefreshToken(data) { diff --git a/src/store/types.ts b/src/store/types.ts index 0054a66..5d7e060 100644 --- a/src/store/types.ts +++ b/src/store/types.ts @@ -45,4 +45,6 @@ isRemembered?: boolean; loginDay?: number; enterpriseInfo: object; + nowRole: object; + rolesList: object; }; diff --git a/src/utils/auth.ts b/src/utils/auth.ts index 37cda2f..bf688e0 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -123,6 +123,24 @@ obj.username = data.enterpriseName; storageLocal().setItem(userKey, obj); } + +export function setRoleListInfo(data: DataInfo<Date>) { + useUserStoreHook().SET_ROLES_LIST(data); + storageLocal().setItem("rolesList", data); +} + +export function setNowRole(data: DataInfo<Date>) { + const list = storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? []; + if (list.length > 0) { + const obj = list.find(item => { + return item.code == data.code; + }); + data = { ...obj, ...data }; + } + useUserStoreHook().SET_NOW_ROLE(data); + storageLocal().setItem("nowRole", data); +} + export function removeEnterpriseInfo() { storageLocal().removeItem("enterpriseInfo"); } diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 8b2c61f..4dd21ac 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -177,7 +177,7 @@ v-else :underline="false" class="hover:cursor-pointer" - @click="toApply" + @click="toApply(item)" ><span v-if="item.name !== '璇勫涓撳'">鐢宠</span></el-link ><span v-if="item.name !== '璇勫涓撳'" class="m-2">|</span> <el-link @@ -426,9 +426,10 @@ accessToken: "" }); onMounted(() => { - exRole().then(res => { - state.roleList = res.result; - }); + // exRole().then(res => { + // state.roleList = res.result; + // }); + state.roleList = useUserStoreHook().rolesList; getUseRoles(); state.accessToken = getToken()?.accessToken; }); @@ -441,17 +442,17 @@ useUserStoreHook().logOut(); }; // 鐢宠 -const toApply = () => {}; +const toApply = item => { + router.push({ name: "RegisterNav", query: { code: item.code } }); +}; // 鍘婚椤� -const toWelcome = item => { - let role = state.userInfo?.exRoles.find(ele => { - return item.code == ele.code; - }); - console.log(role); - if (role.hasFlsh) { - return router.push({ name: "Welcome" }); +const toWelcome = async item => { + if (useUserStoreHook().nowRole.code !== item.code) { + await useUserStoreHook().changeLogoInExRule({ + ruleCode: item.code + }); } - router.push({ name: "RegisterNav", query: { code: role.code } }); + router.push({ name: "Mine" }); }; // 鍘荤櫥褰� const toLogin = item => { diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 95a00b3..34e2230 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -176,19 +176,33 @@ if (res.code == 200) { // 鑾峰彇鍚庣璺敱 return initRouter().then(() => { - if (!res.result.exRoles[0].hasFlsh) { + if (res.result.exRoles.length == 0) { disabled.value = true; router .replace({ name: "RegisterNav", - query: { code: res.result.exRoles[0].code } + query: { code: state.ruleForm.exRoleCode } }) .then(() => { message("鐧诲綍鎴愬姛", { type: "success" }); }) .finally(() => (disabled.value = false)); - } else { - router.replace("welcome"); + } else if (res.result.exRoles.length > 0) { + let data = res.result.exRoles.find(item => { + return item.code == state.ruleForm.exRoleCode; + }); + console.log(data, "------------"); + + if (!data) { + router.replace({ + name: "RegisterNav", + query: { code: state.ruleForm.exRoleCode } + }); + } else if (data?.hasFlsh) { + router.replace("index"); + } else { + router.replace("mine"); + } } useUserStoreHook().getCusExtendInfo(); }); diff --git a/src/views/mine/index.vue b/src/views/mine/index.vue index b19de87..9e9b734 100644 --- a/src/views/mine/index.vue +++ b/src/views/mine/index.vue @@ -22,6 +22,7 @@ const ruleFormRef = ref<FormInstance>(); const isLoading = ref(false); const showDialog = ref(false); +const nowRole = ref({}); const state = reactive({ userInfo: useUserStoreHook().enterpriseInfo, headers: { @@ -188,25 +189,13 @@ showDialog: false }); onMounted(async () => { - // let res = await useUserStoreHook().getCusExtendInfo(); - // 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" - // }); - // } state.ruleForm = cloneDeep(state.userInfo); - console.log(state.userInfo); - state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); - let nowRole = useUserStoreHook()?.exRoles; - if (nowRole.length >= 1 && !route.query.code) { - state.ruleForm.transactionCode = nowRole[0].code; - state.userInfo.transactionName = nowRole[0].name; + nowRole.value = useUserStoreHook()?.nowRole; + console.log(nowRole.value); + if (nowRole.value) { + state.ruleForm.transactionCode = nowRole.value.code; + state.userInfo.transactionName = nowRole.value.name; } else { state.ruleForm.transactionCode = route.query.code; state.userInfo.enterpriseTypeName = route.query.name; @@ -348,167 +337,169 @@ </script> <template> - <el-descriptions class="margin-top" title="" :column="3" :size="size" border> - <!-- <template #extra> + <div> + <el-descriptions 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.transactionName }} - </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> + {{ state.userInfo.transactionName }} + <el-tag v-if="!nowRole.hasFlsh" type="danger">璧勬枡瀹℃牳涓� </el-tag> + </el-descriptions-item> + <el-descriptions-item> + <template #label> + <div class="cell-item">浼佷笟鍚嶇О</div> + </template> + {{ state.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 :span="2"> - <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> + {{ 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 :span="2"> + <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> - <el-descriptions-item> - <template #label> - <div class="cell-item">娉曞畾浠h〃浜�</div> - </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> - <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-descriptions-item> + <template #label> + <div class="cell-item">娉曞畾浠h〃浜�</div> + </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> + <div class="m-5"> + <el-button type="primary" :icon="Edit" @click="() => (showDialog = true)" + >淇敼璧勬枡</el-button > - <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 + </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 @@ -521,11 +512,11 @@ :value="item.code" /> </el-select> --> - </el-form-item> - </el-col> - </el-row> - <el-row><div class="baseclass">鍩烘湰璧勬枡</div></el-row> - <!-- <el-row> + </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 @@ -535,241 +526,242 @@ </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-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-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="璇疯緭鍏�" + </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" > - <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-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-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-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-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-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> + </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> + </div> </template> <style lang="scss"> diff --git a/src/views/register/registernav.vue b/src/views/register/registernav.vue index 5159c0a..1ccf111 100644 --- a/src/views/register/registernav.vue +++ b/src/views/register/registernav.vue @@ -433,7 +433,7 @@ import { cloneDeep } from "@pureadmin/utils"; import { getToken } from "@/utils/auth"; import { useRoute, useRouter } from "vue-router"; -import { cusExtendInfo, changeCusExtend } from "@/api/mine"; +import { changeCusExtend } from "@/api/mine"; const router = useRouter(); const { route } = useNav(); @@ -625,18 +625,15 @@ // type: "error" // }); // } - state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo); - state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); - if (state.ruleForm.enterpriseType) { + + let nowRole = useUserStoreHook()?.nowRole; + console.log(nowRole); + state.ruleForm.transactionCode = route.query.code; + if (nowRole?.code == useUserStoreHook().enterpriseInfo.transactionCode) { + state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo); + state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); isFirst.value = false; } - let nowRole = useUserStoreHook()?.exRoles; - if (nowRole.length >= 1 && !route.query.code) { - state.ruleForm.transactionCode = nowRole[0].code; - } else { - state.ruleForm.transactionCode = route.query.code; - } - let resTypes = await enterpriseTypes(); state.enterpriseList = resTypes?.result; }); @@ -703,6 +700,9 @@ ? await createrExRolsInformation(obj) : await changeCusExtend(obj); if (res.code == "200") { + await useUserStoreHook().changeLogoInExRule({ + ruleCode: state.ruleForm.transactionCode + }); await useUserStoreHook().getCusExtendInfo(); active.value = 3; } else { -- Gitblit v1.9.1