Jelajahi Sumber

fix: `getUserinfo` is compatible with empty roles data

修复getUserinfo接口数据未携带roles字段时登录失败的问题
无木 3 tahun lalu
induk
melakukan
1ddfc31c3c
1 mengubah file dengan 9 tambahan dan 3 penghapusan
  1. 9 3
      src/store/modules/user.ts

+ 9 - 3
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<UserInfo>;
@@ -118,10 +119,15 @@ export const useUserStore = defineStore({
     },
     async getUserInfoAction(): Promise<UserInfo> {
       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;
     },
     /**