|
@@ -1,11 +1,12 @@
|
|
|
import { defineStore } from 'pinia';
|
|
|
import { UserMenuItem } from '@/api/types/user';
|
|
|
import { getUserPrivilegeMenu } from '@/api/user';
|
|
|
+import { RoleType } from '@/constants/enumerate';
|
|
|
import { AppState, AppMenuItem } from './types';
|
|
|
import { relateRoutes } from './relation';
|
|
|
+import { sysAdminMenus, adminMenus } from './menuData';
|
|
|
|
|
|
-// import { sysAdminMenus as menus } from './menuData';
|
|
|
-import { adminMenus as menus } from './menuData';
|
|
|
+type AllRoleType = RoleType | 'SYS_ADMIN';
|
|
|
|
|
|
function getMenu(privilegeData: UserMenuItem[]): {
|
|
|
menuList: AppMenuItem[];
|
|
@@ -82,13 +83,17 @@ const useAppStore = defineStore('app', {
|
|
|
setInfo(partial: Partial<AppState>) {
|
|
|
this.$patch(partial);
|
|
|
},
|
|
|
- fetchLocalMenu() {
|
|
|
- const userMenus = menus;
|
|
|
+ fetchLocalMenu(role: AllRoleType) {
|
|
|
+ const userMenus = role === 'SYS_ADMIN' ? sysAdminMenus : adminMenus;
|
|
|
const { menuList, validRoutes } = getMenu(userMenus);
|
|
|
this.appMenus = menuList;
|
|
|
this.validRoutes = validRoutes;
|
|
|
},
|
|
|
- async fetchServerMenu() {
|
|
|
+ async fetchServerMenu(role: AllRoleType) {
|
|
|
+ if (role === 'SYS_ADMIN') {
|
|
|
+ this.fetchLocalMenu(role);
|
|
|
+ return;
|
|
|
+ }
|
|
|
const userMenus = await getUserPrivilegeMenu();
|
|
|
const { menuList, validRoutes } = getMenu(userMenus);
|
|
|
this.appMenus = menuList;
|