From 4157b22112dd8d87e907d9cb6d14f74b5d454b7a Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 23 七月 2025 16:59:09 +0800 Subject: [PATCH] '个人中心修改企业资料完善' --- src/layout/components/lay-navbar/index.vue | 6 + src/views/register/registernav.vue | 30 ++++++---- src/views/mine/index.vue | 31 ++++++---- src/utils/auth.ts | 12 ++++ src/views/login/index.vue | 2 src/store/modules/user.ts | 43 ++++++++++++- src/store/types.ts | 1 src/layout/hooks/useNav.ts | 4 - 8 files changed, 93 insertions(+), 36 deletions(-) diff --git a/src/layout/components/lay-navbar/index.vue b/src/layout/components/lay-navbar/index.vue index 339f84c..b9df6c4 100644 --- a/src/layout/components/lay-navbar/index.vue +++ b/src/layout/components/lay-navbar/index.vue @@ -19,6 +19,7 @@ username, userAvatar, avatarsStyle, + userRoles, toggleSideBar } = useNav(); </script> @@ -52,6 +53,7 @@ <!-- <img :src="userAvatar" :style="avatarsStyle" /> --> <p class="dark:text-white"> {{ username || "璇峰畬鍠勮祫鏂�" }} + <el-tag effect="plain">{{ userRoles.name }}</el-tag> </p> </span> <template #dropdown> @@ -66,13 +68,13 @@ </el-dropdown-menu> </template> </el-dropdown> - <span + <!-- <span class="set-icon navbar-bg-hover" title="鎵撳紑绯荤粺閰嶇疆" @click="onPanel" > <IconifyIconOffline :icon="Setting" /> - </span> + </span> --> </div> </div> </template> diff --git a/src/layout/hooks/useNav.ts b/src/layout/hooks/useNav.ts index 0937a9e..56cd593 100644 --- a/src/layout/hooks/useNav.ts +++ b/src/layout/hooks/useNav.ts @@ -53,9 +53,7 @@ /** 瑙掕壊 */ const userRoles = computed(() => { - return isAllEmpty(useUserStoreHook()?.exRoles) - ? useUserStoreHook()?.exRoles - : {}; + return useUserStoreHook()?.exRoles[0]; }); const avatarsStyle = computed(() => { diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 1912e18..2be8954 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -14,7 +14,14 @@ refreshTokenApi } from "@/api/user"; import { useMultiTagsStoreHook } from "./multiTags"; -import { type DataInfo, setToken, removeToken, userKey } from "@/utils/auth"; +import { + type DataInfo, + setToken, + removeToken, + userKey, + setEnterpriseInfo +} from "@/utils/auth"; +import { cusExtendInfo } from "@/api/mine"; export const useUserStore = defineStore("pure-user", { state: (): userType => ({ @@ -32,7 +39,10 @@ // 鏄惁鍕鹃�変簡鐧诲綍椤电殑鍏嶇櫥褰� isRemembered: false, // 鐧诲綍椤电殑鍏嶇櫥褰曞瓨鍌ㄥ嚑澶╋紝榛樿7澶� - loginDay: 7 + loginDay: 1, + // 浼佷笟璧勬枡 + enterpriseInfo: + storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {} }), actions: { /** 瀛樺偍澶村儚 */ @@ -63,6 +73,10 @@ SET_LOGINDAY(value: number) { this.loginDay = Number(value); }, + // 璁剧疆浼佷笟璧勬枡 + SET_ENTERPRISEINFO(value: object) { + this.loginDay = Number(value); + }, /** 鐧诲叆 */ async loginByUsername(data) { return new Promise<LoginResult>((resolve, reject) => { @@ -76,15 +90,34 @@ }); }); }, + async getCusExtendInfo() { + return new Promise<LoginResult>((resolve, reject) => { + cusExtendInfo() + .then(data => { + data.result.username = data.result.enterpriseName; + if (data?.code == 200) { + setEnterpriseInfo(data.result); + resolve(data); + } + }) + .catch(error => { + reject(error); + }); + }); + }, /** 鍓嶇鐧诲嚭锛堜笉璋冪敤鎺ュ彛锛� */ logOut() { this.username = ""; - this.exRoles = []; this.permissions = []; - removeToken(); useMultiTagsStoreHook().handleTags("equal", [...routerArrays]); resetRouter(); - router.push("/login"); + if (this.exRoles && this.exRoles.length == 1) { + router.push({ name: "Login", query: this.exRoles[0] }); + } else { + router.push({ name: "Login" }); + } + removeToken(); + this.exRoles = []; }, /** 鍒锋柊`token` */ async handRefreshToken(data) { diff --git a/src/store/types.ts b/src/store/types.ts index 73a1f57..0054a66 100644 --- a/src/store/types.ts +++ b/src/store/types.ts @@ -44,4 +44,5 @@ permissions?: Array<string>; isRemembered?: boolean; loginDay?: number; + enterpriseInfo: object; }; diff --git a/src/utils/auth.ts b/src/utils/auth.ts index fd8a4cc..37cda2f 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -115,6 +115,18 @@ } } +export function setEnterpriseInfo(data: DataInfo<Date>) { + useUserStoreHook().SET_ENTERPRISEINFO(data); + useUserStoreHook().SET_USERNAME(data.enterpriseName); + storageLocal().setItem("enterpriseInfo", data); + const obj = storageLocal().getItem(userKey); + obj.username = data.enterpriseName; + storageLocal().setItem(userKey, obj); +} +export function removeEnterpriseInfo() { + storageLocal().removeItem("enterpriseInfo"); +} + /** 鍒犻櫎`token`浠ュ強key鍊间负`user-info`鐨刲ocalStorage淇℃伅 */ export function removeToken() { Cookies.remove(TokenKey); diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 6fdd381..95a00b3 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -176,7 +176,6 @@ if (res.code == 200) { // 鑾峰彇鍚庣璺敱 return initRouter().then(() => { - console.log(res, "=-=-=-=", res.result.exRoles[0].hasFlsh); if (!res.result.exRoles[0].hasFlsh) { disabled.value = true; router @@ -191,6 +190,7 @@ } else { router.replace("welcome"); } + useUserStoreHook().getCusExtendInfo(); }); } else { message(res?.message || "鐧诲綍澶辫触", { type: "error" }); diff --git a/src/views/mine/index.vue b/src/views/mine/index.vue index f3643bf..b19de87 100644 --- a/src/views/mine/index.vue +++ b/src/views/mine/index.vue @@ -23,7 +23,7 @@ const isLoading = ref(false); const showDialog = ref(false); const state = reactive({ - userInfo: {}, + userInfo: useUserStoreHook().enterpriseInfo, headers: { // Accept: "application/json, text/plain, */*", // "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", @@ -188,17 +188,21 @@ 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 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; @@ -328,6 +332,7 @@ let res = await changeCusExtend(obj); if (res.code == "200") { showDialog.value = false; + await useUserStoreHook().getCusExtendInfo(); message("淇敼鎴愬姛锛�", { type: "success" }); @@ -379,7 +384,7 @@ <template #label> <div class="cell-item">浼佷笟绫诲瀷</div> </template> - {{ state.userInfo.enterpriseTypeName }} + {{ state.userInfo.enterpriseType }} </el-descriptions-item> <el-descriptions-item> <template #label> diff --git a/src/views/register/registernav.vue b/src/views/register/registernav.vue index c7ea3e5..5159c0a 100644 --- a/src/views/register/registernav.vue +++ b/src/views/register/registernav.vue @@ -612,18 +612,23 @@ }; // 椤甸潰鍒濆鍖� 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 res = await useUserStoreHook().getCusExtendInfo(); + // 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" + // }); + // } + state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo); + state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); + if (state.ruleForm.enterpriseType) { + isFirst.value = false; } let nowRole = useUserStoreHook()?.exRoles; if (nowRole.length >= 1 && !route.query.code) { @@ -698,6 +703,7 @@ ? await createrExRolsInformation(obj) : await changeCusExtend(obj); if (res.code == "200") { + await useUserStoreHook().getCusExtendInfo(); active.value = 3; } else { message(res.message, { -- Gitblit v1.9.1