diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 285047d0..7f7226e6 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -14,6 +14,7 @@ import { router } from '/@/router'; import { usePermissionStore } from '/@/store/modules/permission'; import { RouteRecordRaw } from 'vue-router'; import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic'; +import { isArray } from '/@/utils/is'; interface UserState { userInfo: Nullable; @@ -118,10 +119,15 @@ export const useUserStore = defineStore({ }, async getUserInfoAction(): Promise { const userInfo = await getUserInfo(); - const { roles } = userInfo; - const roleList = roles.map((item) => item.value) as RoleEnum[]; + const { roles = [] } = userInfo; + if (isArray(roles)) { + const roleList = roles.map((item) => item.value) as RoleEnum[]; + this.setRoleList(roleList); + } else { + userInfo.roles = []; + this.setRoleList([]); + } this.setUserInfo(userInfo); - this.setRoleList(roleList); return userInfo; }, /**