From 115769e9ad3ddc64e21ad7285450c4c563c745ed Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 20 八月 2025 17:20:29 +0800 Subject: [PATCH] 用户管理页面 --- src/store/modules/user.ts | 109 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 68 insertions(+), 41 deletions(-) diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 152e9ec..0f59a5f 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -8,15 +8,16 @@ storageLocal } from "../utils"; import { - type LoginResult, - type RefreshTokenResult, getLogin, - refreshTokenApi, + // refreshTokenApi, getChangeLogoInExRule } from "@/api/user"; +import type { LoginData, RoleData, RoleItem } from "@/api/types"; import { useMultiTagsStoreHook } from "./multiTags"; import { type DataInfo, + type ResponseEnterprise, + type CusExtendDto, setToken, setRoleListInfo, setNowRole, @@ -26,6 +27,9 @@ } from "@/utils/auth"; import { exRole } from "@/api/register/index"; import { cusExtendInfo } from "@/api/mine"; +import type { nowRoleType } from "@/store/types"; +import { cloneDeep } from "@pureadmin/utils"; +import { message } from "@/utils/message"; export const useUserStore = defineStore("pure-user", { state: (): userType => ({ @@ -35,7 +39,7 @@ username: storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "", // 鏄电О nickname: storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "", - // 椤甸潰绾у埆鏉冮檺 + // 褰撳墠瑙掕壊鍒楄〃 exRoles: storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [], // 鎸夐挳绾у埆鏉冮檺 permissions: @@ -46,9 +50,13 @@ loginDay: 1, // 浼佷笟璧勬枡 enterpriseInfo: - storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}, - nowRole: storageLocal().getItem<DataInfo<number>>("nowRole") ?? {}, - rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [] + storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {}, + nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {}, + rolesList: storageLocal().getItem<RoleItem[]>("rolesList") ?? [], + // 椤甸潰绾у埆鏉冮檺 + roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [], + isManager: + storageLocal().getItem<DataInfo<number>>(userKey)?.isManager ?? false }), actions: { /** 瀛樺偍澶村儚 */ @@ -64,15 +72,19 @@ this.nickname = nickname; }, /** 瀛樺偍鐢ㄦ埛瑙掕壊 */ - SET_ROLES(exRoles: Array<string>) { + SET_EXROLES(exRoles: RoleItem[]) { this.exRoles = exRoles; }, + /** 瀛樺偍瑙掕壊 */ + SET_ROLES(roles: Array<string>) { + this.roles = roles; + }, /** 瀛樺偍瑙掕壊褰撳墠瑙掕壊 */ - SET_NOW_ROLE(nowRole: object) { + SET_NOW_ROLE(nowRole: nowRoleType) { this.nowRole = nowRole; }, /** 瀛樺偍瑙掕壊鍒楄〃 */ - SET_ROLES_LIST(rolesList: Array<string>) { + SET_EXROLES_LIST(rolesList: RoleItem[]) { this.rolesList = rolesList; }, /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */ @@ -88,17 +100,24 @@ this.loginDay = Number(value); }, // 璁剧疆浼佷笟璧勬枡 - SET_ENTERPRISEINFO(value: object) { - this.loginDay = Number(value); + SET_ENTERPRISEINFO(enterpriseInfo: CusExtendDto) { + this.enterpriseInfo = enterpriseInfo; + }, + SET_ISMANAGER(isManager: boolean) { + this.isManager = isManager; }, /** 鐧诲叆 */ async loginByUsername(obj) { - return new Promise<LoginResult>((resolve, reject) => { + return new Promise<LoginData>((resolve, reject) => { getLogin(obj) .then(data => { if (data?.code == 200) { - setToken(data.result); - this.getNowRole(obj.exRuleCode); + if (data.result.theLastLogo) { + const resObj = cloneDeep(data.result); + resObj.roles = [obj.exRuleCode]; + setToken(resObj); + this.getNowRole(obj.exRuleCode); + } } resolve(data); }) @@ -109,7 +128,7 @@ }, /** 鑾峰彇瑙掕壊鍒楄〃 */ async getRoleList() { - return new Promise<LoginResult>((resolve, reject) => { + return new Promise<RoleData>((resolve, reject) => { exRole() .then(data => { if (data?.code == 200) { @@ -127,25 +146,31 @@ }, /** 鑾峰彇褰撳墠瑙掕壊 */ async getNowRole(code) { - return new Promise<LoginResult>((resolve, reject) => { + return new Promise(resolve => { const data = this.rolesList.find(item => { return item.code == code; }); - setNowRole(data); - resolve(data); + if (data?.code) { + setNowRole(data); + resolve(data); + } }); }, /** 鍒囨崲瑙掕壊 */ async changeLogoInExRule(obj) { - return new Promise<LoginResult>((resolve, reject) => { + return new Promise<LoginData>((resolve, reject) => { getChangeLogoInExRule(obj) - .then(data => { + .then(async data => { if (data?.code == 200) { - setToken(data.result); + const resObj = cloneDeep(data.result); + resObj.roles = [obj.ruleCode]; + setToken(resObj); this.getNowRole(obj.ruleCode); - this.getCusExtendInfo(); + await this.getCusExtendInfo(); + resolve(data); + } else { + message(data?.message, { type: "warning" }); } - resolve(data); }) .catch(error => { reject(error); @@ -153,13 +178,14 @@ }); }, async getCusExtendInfo() { - return new Promise<LoginResult>((resolve, reject) => { + return new Promise<ResponseEnterprise>((resolve, reject) => { cusExtendInfo() .then(data => { - data.result.username = data.result.enterpriseName; + setEnterpriseInfo(data.result); if (data?.code == 200) { - setEnterpriseInfo(data.result); - resolve(data); + const resData = cloneDeep(data); + resData.result.username = data.result?.enterpriseName; + resolve(resData); } }) .catch(error => { @@ -171,6 +197,7 @@ logOut() { this.username = ""; this.exRoles = []; + this.roles = []; this.permissions = []; removeToken(); useMultiTagsStoreHook().handleTags("equal", [...routerArrays]); @@ -178,19 +205,19 @@ router.push("/index"); }, /** 鍒锋柊`token` */ - async handRefreshToken(data) { - return new Promise<RefreshTokenResult>((resolve, reject) => { - refreshTokenApi(data) - .then(data => { - if (data) { - setToken(data.data); - resolve(data); - } - }) - .catch(error => { - reject(error); - }); - }); + async handRefreshToken() { + // return new Promise<RefreshTokenResult>((resolve, reject) => { + // refreshTokenApi(data) + // .then(data => { + // if (data) { + // setToken(data.data); + // resolve(data); + // } + // }) + // .catch(error => { + // reject(error); + // }); + // }); } } }); -- Gitblit v1.9.1