From bb576469eb1e2cb2bf8e1717902702ca28f5ef65 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 28 七月 2025 17:20:56 +0800 Subject: [PATCH] '-' --- src/store/modules/user.ts | 89 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 76 insertions(+), 13 deletions(-) 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) { -- Gitblit v1.9.1