|
@@ -4,7 +4,7 @@ import { defineStore } from 'pinia';
|
|
import { store } from '/@/store';
|
|
import { store } from '/@/store';
|
|
import { RoleEnum } from '/@/enums/roleEnum';
|
|
import { RoleEnum } from '/@/enums/roleEnum';
|
|
import { PageEnum } from '/@/enums/pageEnum';
|
|
import { PageEnum } from '/@/enums/pageEnum';
|
|
-import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum';
|
|
|
|
|
|
+import { ROLES_KEY, PERM_KEY, TOKEN_KEY, USER_INFO_KEY } 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';
|
|
// doLogout
|
|
// doLogout
|
|
@@ -23,6 +23,7 @@ interface UserState {
|
|
userInfo: Nullable<UserInfo>;
|
|
userInfo: Nullable<UserInfo>;
|
|
token?: string;
|
|
token?: string;
|
|
roleList: RoleEnum[];
|
|
roleList: RoleEnum[];
|
|
|
|
+ permList: number[];
|
|
sessionTimeout?: boolean;
|
|
sessionTimeout?: boolean;
|
|
lastUpdateTime: number;
|
|
lastUpdateTime: number;
|
|
}
|
|
}
|
|
@@ -36,6 +37,7 @@ export const useUserStore = defineStore({
|
|
token: undefined,
|
|
token: undefined,
|
|
// roleList
|
|
// roleList
|
|
roleList: [],
|
|
roleList: [],
|
|
|
|
+ permList: [],
|
|
// Whether the login expired
|
|
// Whether the login expired
|
|
sessionTimeout: false,
|
|
sessionTimeout: false,
|
|
// Last fetch time
|
|
// Last fetch time
|
|
@@ -54,6 +56,9 @@ export const useUserStore = defineStore({
|
|
getRoleList(): RoleEnum[] {
|
|
getRoleList(): RoleEnum[] {
|
|
return this.roleList.length > 0 ? this.roleList : getAuthCache<RoleEnum[]>(ROLES_KEY);
|
|
return this.roleList.length > 0 ? this.roleList : getAuthCache<RoleEnum[]>(ROLES_KEY);
|
|
},
|
|
},
|
|
|
|
+ getPermList(): number[] {
|
|
|
|
+ return this.permList.length > 0 ? this.permList : getAuthCache<number[]>(PERM_KEY);
|
|
|
|
+ },
|
|
getSessionTimeout(): boolean {
|
|
getSessionTimeout(): boolean {
|
|
return !!this.sessionTimeout;
|
|
return !!this.sessionTimeout;
|
|
},
|
|
},
|
|
@@ -72,6 +77,11 @@ export const useUserStore = defineStore({
|
|
console.log('setRoleList', roleList);
|
|
console.log('setRoleList', roleList);
|
|
setAuthCache(ROLES_KEY, roleList);
|
|
setAuthCache(ROLES_KEY, roleList);
|
|
},
|
|
},
|
|
|
|
+ setPermList(permList: number[]) {
|
|
|
|
+ this.permList = permList;
|
|
|
|
+ console.log('setPermList', permList);
|
|
|
|
+ setAuthCache(PERM_KEY, permList);
|
|
|
|
+ },
|
|
setUserInfo(info: UserInfo | null) {
|
|
setUserInfo(info: UserInfo | null) {
|
|
this.userInfo = info;
|
|
this.userInfo = info;
|
|
this.lastUpdateTime = new Date().getTime();
|
|
this.lastUpdateTime = new Date().getTime();
|
|
@@ -137,7 +147,8 @@ export const useUserStore = defineStore({
|
|
const userId: number = id || Number(this.getUserInfoCache.id);
|
|
const userId: number = id || Number(this.getUserInfoCache.id);
|
|
// debugger;
|
|
// debugger;
|
|
const userInfo = await getUserInfo(userId);
|
|
const userInfo = await getUserInfo(userId);
|
|
- const { roleIdList = [] } = userInfo;
|
|
|
|
|
|
+ const { roleIdList = [], permList = [] } = userInfo;
|
|
|
|
+ isArray(roleIdList) && this.setPermList(permList);
|
|
if (isArray(roleIdList)) {
|
|
if (isArray(roleIdList)) {
|
|
const roleList = roleIdList.map((item) => {
|
|
const roleList = roleIdList.map((item) => {
|
|
switch (item) {
|
|
switch (item) {
|