feat: Improve the front-end and back-end permission mode and useAccess
This commit is contained in:
@@ -9,7 +9,7 @@ import type {
|
||||
|
||||
type BreadcrumbStyleType = 'background' | 'normal';
|
||||
|
||||
type accessModeType = 'allow-all' | 'backend' | 'frontend';
|
||||
type AccessModeType = 'allow-all' | 'backend' | 'frontend';
|
||||
|
||||
type NavigationStyleType = 'plain' | 'rounded';
|
||||
|
||||
@@ -19,7 +19,7 @@ type AuthPageLayoutType = 'panel-center' | 'panel-left' | 'panel-right';
|
||||
|
||||
interface AppPreferences {
|
||||
/** 权限模式 */
|
||||
accessMode: accessModeType;
|
||||
accessMode: AccessModeType;
|
||||
/** 是否开启vben助手 */
|
||||
aiAssistant: boolean;
|
||||
/** 登录注册页面布局 */
|
||||
@@ -190,6 +190,7 @@ interface Preferences {
|
||||
type PreferencesKeys = keyof Preferences;
|
||||
|
||||
export type {
|
||||
AccessModeType,
|
||||
AppPreferences,
|
||||
AuthPageLayoutType,
|
||||
BreadcrumbPreferences,
|
||||
@@ -212,5 +213,4 @@ export type {
|
||||
ThemeModeType,
|
||||
ThemePreferences,
|
||||
TransitionPreferences,
|
||||
accessModeType,
|
||||
};
|
||||
|
@@ -29,6 +29,10 @@ interface BasicUserInfo {
|
||||
}
|
||||
|
||||
interface AccessState {
|
||||
/**
|
||||
* 权限码
|
||||
*/
|
||||
accessCodes: string[];
|
||||
/**
|
||||
* 可访问的菜单列表
|
||||
*/
|
||||
@@ -60,6 +64,9 @@ interface AccessState {
|
||||
*/
|
||||
const useCoreAccessStore = defineStore('core-access', {
|
||||
actions: {
|
||||
setAccessCodes(codes: string[]) {
|
||||
this.accessCodes = codes;
|
||||
},
|
||||
setAccessMenus(menus: MenuRecordRaw[]) {
|
||||
this.accessMenus = menus;
|
||||
},
|
||||
@@ -84,6 +91,9 @@ const useCoreAccessStore = defineStore('core-access', {
|
||||
},
|
||||
},
|
||||
getters: {
|
||||
getAccessCodes(): string[] {
|
||||
return this.accessCodes;
|
||||
},
|
||||
getAccessMenus(): MenuRecordRaw[] {
|
||||
return this.accessMenus;
|
||||
},
|
||||
@@ -102,12 +112,16 @@ const useCoreAccessStore = defineStore('core-access', {
|
||||
getUserRoles(): string[] {
|
||||
return this.userRoles;
|
||||
},
|
||||
string(): string[] {
|
||||
return this.accessCodes;
|
||||
},
|
||||
},
|
||||
persist: {
|
||||
// 持久化
|
||||
paths: ['accessToken', 'refreshToken'],
|
||||
paths: ['accessToken', 'refreshToken', 'accessCodes'],
|
||||
},
|
||||
state: (): AccessState => ({
|
||||
accessCodes: [],
|
||||
accessMenus: [],
|
||||
accessRoutes: [],
|
||||
accessToken: null,
|
||||
|
Reference in New Issue
Block a user