From 445c059cc3c0ce36269b84cd52298af378837913 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期二, 05 八月 2025 10:24:31 +0800 Subject: [PATCH] '个人中心状态判断' --- src/store/modules/user.ts | 126 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 108 insertions(+), 18 deletions(-) diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 877b4d8..b4f62ea 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -8,13 +8,27 @@ storageLocal } from "../utils"; import { - type UserResult, + type LoginResult, type RefreshTokenResult, getLogin, - refreshTokenApi + refreshTokenApi, + getChangeLogoInExRule } from "@/api/user"; import { useMultiTagsStoreHook } from "./multiTags"; -import { type DataInfo, setToken, removeToken, userKey } from "@/utils/auth"; +import { + type DataInfo, + type ResponseEnterprise, + type CusExtendDto, + setToken, + setRoleListInfo, + setNowRole, + removeToken, + userKey, + setEnterpriseInfo +} from "@/utils/auth"; +import { exRole } from "@/api/register/index"; +import { cusExtendInfo } from "@/api/mine"; +import type { nowRoleType } from "@/store/types"; export const useUserStore = defineStore("pure-user", { state: (): userType => ({ @@ -25,14 +39,19 @@ // 鏄电О nickname: storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "", // 椤甸潰绾у埆鏉冮檺 - roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [], + exRoles: storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [], // 鎸夐挳绾у埆鏉冮檺 permissions: storageLocal().getItem<DataInfo<number>>(userKey)?.permissions ?? [], // 鏄惁鍕鹃�変簡鐧诲綍椤电殑鍏嶇櫥褰� isRemembered: false, // 鐧诲綍椤电殑鍏嶇櫥褰曞瓨鍌ㄥ嚑澶╋紝榛樿7澶� - loginDay: 7 + loginDay: 1, + // 浼佷笟璧勬枡 + enterpriseInfo: + storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {}, + nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {}, + rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [] }), actions: { /** 瀛樺偍澶村儚 */ @@ -47,11 +66,17 @@ SET_NICKNAME(nickname: string) { this.nickname = nickname; }, - /** 瀛樺偍瑙掕壊 */ - SET_ROLES(roles: Array<string>) { - console.log(roles, "setroles"); - - this.roles = roles; + /** 瀛樺偍鐢ㄦ埛瑙掕壊 */ + SET_ROLES(exRoles: Array<string>) { + this.exRoles = exRoles; + }, + /** 瀛樺偍瑙掕壊褰撳墠瑙掕壊 */ + SET_NOW_ROLE(nowRole: nowRoleType) { + this.nowRole = nowRole; + }, + /** 瀛樺偍瑙掕壊鍒楄〃 */ + SET_ROLES_LIST(rolesList: Array<string>) { + this.rolesList = rolesList; }, /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */ SET_PERMS(permissions: Array<string>) { @@ -65,15 +90,80 @@ SET_LOGINDAY(value: number) { this.loginDay = Number(value); }, + // 璁剧疆浼佷笟璧勬枡 + SET_ENTERPRISEINFO(enterpriseInfo: CusExtendDto) { + this.enterpriseInfo = enterpriseInfo; + }, /** 鐧诲叆 */ - async loginByUsername(data) { - return new Promise<UserResult>((resolve, reject) => { - getLogin(data) + async loginByUsername(obj) { + return new Promise<LoginResult>((resolve, reject) => { + getLogin(obj) .then(data => { - console.log(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(async data => { + if (data?.code == 200) { + setToken(data.result); + this.getNowRole(obj.ruleCode); + await this.getCusExtendInfo(); + resolve(data); + } + }) + .catch(error => { + reject(error); + }); + }); + }, + async getCusExtendInfo() { + return new Promise<ResponseEnterprise>((resolve, reject) => { + cusExtendInfo() + .then(data => { + setEnterpriseInfo(data.result); + if (data?.code == 200) { + data.result.username = data.result?.enterpriseName; + resolve(data); + } }) .catch(error => { reject(error); @@ -83,12 +173,12 @@ /** 鍓嶇鐧诲嚭锛堜笉璋冪敤鎺ュ彛锛� */ logOut() { this.username = ""; - this.roles = []; + this.exRoles = []; this.permissions = []; removeToken(); useMultiTagsStoreHook().handleTags("equal", [...routerArrays]); resetRouter(); - router.push("/login"); + router.push("/index"); }, /** 鍒锋柊`token` */ async handRefreshToken(data) { -- Gitblit v1.9.1