Tong 2 лет назад
Родитель
Сommit
ca21ba1fd3

+ 9 - 0
src/api/sys/sysPortalApi.ts

@@ -9,6 +9,7 @@ enum Api {
   sysPortalRemove = '/sys/portal/removeByIds',
   sysPortalRemove = '/sys/portal/removeByIds',
   sysPortalAssign = '/sys/portal/assign',
   sysPortalAssign = '/sys/portal/assign',
   sysPortalQueryMenuTree = '/sys/portal/menu/list',
   sysPortalQueryMenuTree = '/sys/portal/menu/list',
+  userPortalList = '/user/listPortal',
 }
 }
 
 
 /**
 /**
@@ -119,3 +120,11 @@ export const sysPortalAssign = (params?: object) => {
 export const sysPortalQueryMenuTree = id => {
 export const sysPortalQueryMenuTree = id => {
   return defHttp.get({ url: Api.sysPortalQueryMenuTree + '/' + id });
   return defHttp.get({ url: Api.sysPortalQueryMenuTree + '/' + id });
 };
 };
+
+/**
+ * @description: 获取登录用户的门户列表
+ * @method: GET
+ */
+export const getUserPortalList = () => {
+  return defHttp.get({ url: Api.userPortalList });
+};

+ 1 - 1
src/api/sys/sysUserApi.ts

@@ -9,7 +9,7 @@ enum Api {
   sysUserRemove = '/sys/user/deleteByIds',
   sysUserRemove = '/sys/user/deleteByIds',
 
 
   userLoginInfo = '/user/loginInfo',
   userLoginInfo = '/user/loginInfo',
-  userListMenus = '/user/listMenus',
+  userListMenus = '/user/listMenus-',
   userPermCode = '/user/getPermissionInfo',
   userPermCode = '/user/getPermissionInfo',
   validatorUsername = '/sys/user/username/valid',
   validatorUsername = '/sys/user/username/valid',
 }
 }

+ 1 - 0
src/enums/cacheEnum.ts

@@ -33,6 +33,7 @@ export const APP_SESSION_CACHE_KEY = 'COMMON__SESSION__KEY__';
 
 
 export const EXPRISEIN_KEY = 'EXPRISEIN__';
 export const EXPRISEIN_KEY = 'EXPRISEIN__';
 
 
+export const PORTAL_KEY = 'PORTAL_KEY_';
 export enum CacheTypeEnum {
 export enum CacheTypeEnum {
   SESSION,
   SESSION,
   LOCAL,
   LOCAL,

+ 15 - 0
src/store/modules/user.ts

@@ -11,11 +11,13 @@ import {
   LOGINTYPE_KEY,
   LOGINTYPE_KEY,
   EXPRISEIN_KEY,
   EXPRISEIN_KEY,
   REFRESH_TOKEN_KEY,
   REFRESH_TOKEN_KEY,
+  PORTAL_KEY,
 } from '/@/enums/cacheEnum';
 } from '/@/enums/cacheEnum';
 import { getAuthCache, setAuthCache } from '/@/utils/auth';
 import { getAuthCache, setAuthCache } from '/@/utils/auth';
 import { GetUserInfoModel, LoginParams } from '/@/api/sys/model/userModel';
 import { GetUserInfoModel, LoginParams } from '/@/api/sys/model/userModel';
 import { Logout, Login, RefreshToken } from '/@/api/sys/oauthApi';
 import { Logout, Login, RefreshToken } from '/@/api/sys/oauthApi';
 import { userLoginInfo } from '/@/api/sys/sysUserApi';
 import { userLoginInfo } from '/@/api/sys/sysUserApi';
+import { getUserPortalList } from '/@/api/sys/sysPortalApi';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { router } from '/@/router';
 import { router } from '/@/router';
 import { usePermissionStore } from '/@/store/modules/permission';
 import { usePermissionStore } from '/@/store/modules/permission';
@@ -35,6 +37,7 @@ interface UserState {
   lastUpdateTime: number;
   lastUpdateTime: number;
   loginType: string | undefined;
   loginType: string | undefined;
   expiresIn?: number;
   expiresIn?: number;
+  portalList?: [];
 }
 }
 const globSetting = useGlobSetting();
 const globSetting = useGlobSetting();
 
 
@@ -57,6 +60,8 @@ export const useUserStore = defineStore({
     loginType: undefined,
     loginType: undefined,
     // 过期时间
     // 过期时间
     expiresIn: 0,
     expiresIn: 0,
+    // 门户列表
+    portalList: [],
   }),
   }),
   getters: {
   getters: {
     getUserInfo(): UserInfo {
     getUserInfo(): UserInfo {
@@ -97,6 +102,10 @@ export const useUserStore = defineStore({
       this.roleList = roleList;
       this.roleList = roleList;
       setAuthCache(ROLES_KEY, roleList);
       setAuthCache(ROLES_KEY, roleList);
     },
     },
+    setPortalList(portalList: []) {
+      this.roleList = portalList;
+      setAuthCache(PORTAL_KEY, portalList);
+    },
     setUserInfo(info: UserInfo | null) {
     setUserInfo(info: UserInfo | null) {
       this.userInfo = info;
       this.userInfo = info;
       this.lastUpdateTime = new Date().getTime();
       this.lastUpdateTime = new Date().getTime();
@@ -199,6 +208,11 @@ export const useUserStore = defineStore({
         userInfo.roles = [];
         userInfo.roles = [];
         this.setRoleList([]);
         this.setRoleList([]);
       }
       }
+      const portalList = await getUserPortalList();
+      if (portalList) {
+        this.setPortalList(portalList);
+        userInfo.portalList = portalList;
+      }
       this.setUserInfo(userInfo);
       this.setUserInfo(userInfo);
       return userInfo;
       return userInfo;
     },
     },
@@ -235,6 +249,7 @@ export const useUserStore = defineStore({
       this.setToken(undefined);
       this.setToken(undefined);
       this.setSessionTimeout(false);
       this.setSessionTimeout(false);
       this.setUserInfo(null);
       this.setUserInfo(null);
+      this.setPortalList(null);
       goLogin && router.push(PageEnum.BASE_LOGIN);
       goLogin && router.push(PageEnum.BASE_LOGIN);
     },
     },
 
 

+ 2 - 0
src/utils/cache/persistent.ts

@@ -16,6 +16,7 @@ import {
   LOGINTYPE_KEY,
   LOGINTYPE_KEY,
   REFRESH_TOKEN_KEY,
   REFRESH_TOKEN_KEY,
   EXPRISEIN_KEY,
   EXPRISEIN_KEY,
+  PORTAL_KEY,
 } from '/@/enums/cacheEnum';
 } from '/@/enums/cacheEnum';
 import { DEFAULT_CACHE_TIME } from '/@/settings/encryptionSetting';
 import { DEFAULT_CACHE_TIME } from '/@/settings/encryptionSetting';
 import { toRaw } from 'vue';
 import { toRaw } from 'vue';
@@ -31,6 +32,7 @@ interface BasicStore {
   [MULTIPLE_TABS_KEY]: RouteLocationNormalized[];
   [MULTIPLE_TABS_KEY]: RouteLocationNormalized[];
   [REFRESH_TOKEN_KEY]: string | number | null | undefined;
   [REFRESH_TOKEN_KEY]: string | number | null | undefined;
   [EXPRISEIN_KEY]: string | number | null | undefined;
   [EXPRISEIN_KEY]: string | number | null | undefined;
+  [PORTAL_KEY]: object[];
 }
 }
 
 
 type LocalStore = BasicStore;
 type LocalStore = BasicStore;