From be5078ae0dc75414779ba360e7cb4bd8a8a3d4a3 Mon Sep 17 00:00:00 2001 From: chenghuan Date: Thu, 22 Jan 2026 14:38:19 +0800 Subject: [PATCH] =?UTF-8?q?chore(auth):=20=E8=A7=A3=E5=86=B3ts=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=A3=80=E6=9F=A5=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/finance/src/api/core/auth.ts | 4 ++++ apps/finance/src/router/guard.ts | 4 ++-- apps/finance/src/store/auth.ts | 1 + packages/@core/base/typings/src/basic.d.ts | 6 +++++- packages/stores/src/modules/user.ts | 6 +++--- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/finance/src/api/core/auth.ts b/apps/finance/src/api/core/auth.ts index 84c21da..beb697d 100644 --- a/apps/finance/src/api/core/auth.ts +++ b/apps/finance/src/api/core/auth.ts @@ -14,6 +14,10 @@ export namespace AuthApi { * 最后登录时间 */ lastTime: string; + /** + * 角色列表 + */ + role: string; } /** 登录接口返回值 */ diff --git a/apps/finance/src/router/guard.ts b/apps/finance/src/router/guard.ts index a1ad6d8..f50f92f 100644 --- a/apps/finance/src/router/guard.ts +++ b/apps/finance/src/router/guard.ts @@ -93,7 +93,7 @@ function setupAccessGuard(router: Router) { // 生成路由表 // 当前登录用户拥有的角色标识列表 const userInfo = userStore.userInfo || (await authStore.fetchUserInfo()); - const userRoles = userInfo.roles ?? []; + const userRoles = userInfo?.roles ?? []; // 生成菜单和路由 const { accessibleMenus, accessibleRoutes } = await generateAccess({ @@ -109,7 +109,7 @@ function setupAccessGuard(router: Router) { accessStore.setIsAccessChecked(true); const redirectPath = (from.query.redirect ?? (to.path === preferences.app.defaultHomePath - ? userInfo.homePath || preferences.app.defaultHomePath + ? userInfo?.homePath || preferences.app.defaultHomePath : to.fullPath)) as string; return { diff --git a/apps/finance/src/store/auth.ts b/apps/finance/src/store/auth.ts index daac071..dc6c1e2 100644 --- a/apps/finance/src/store/auth.ts +++ b/apps/finance/src/store/auth.ts @@ -43,6 +43,7 @@ export const useAuthStore = defineStore('auth', () => { // ]); userInfo = userEntity; + userInfo.roles = userEntity.role ? [userEntity.role] : []; userStore.setUserInfo(userInfo); // accessStore.setAccessCodes(accessCodes); diff --git a/packages/@core/base/typings/src/basic.d.ts b/packages/@core/base/typings/src/basic.d.ts index 883f904..c488f59 100644 --- a/packages/@core/base/typings/src/basic.d.ts +++ b/packages/@core/base/typings/src/basic.d.ts @@ -27,11 +27,15 @@ interface BasicUserInfo { /** * 用户角色 */ - role?: string; + roles?: string[]; /** * 用户状态 */ state?: string; + /** + * 首页路径 + */ + homePath?: string; } type ClassType = Array | object | string; diff --git a/packages/stores/src/modules/user.ts b/packages/stores/src/modules/user.ts index 8a3dea5..78d1bc3 100644 --- a/packages/stores/src/modules/user.ts +++ b/packages/stores/src/modules/user.ts @@ -10,7 +10,7 @@ interface AccessState { /** * 用户角色 */ - userRoles: string; + userRoles: string[]; } /** @@ -22,12 +22,12 @@ export const useUserStore = defineStore('core-user', { // 设置用户信息 this.userInfo = userInfo; // 设置角色信息 - const roles = userInfo?.role ?? ''; + const roles = userInfo?.roles ?? []; // 存储信息到本地 localStorage.setItem('userInfo', JSON.stringify(userInfo)); this.setUserRoles(roles); }, - setUserRoles(roles: string) { + setUserRoles(roles: string[]) { this.userRoles = roles; }, },