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; }, },