feat: 产品菜单路由权限

This commit is contained in:
rd
2025-07-08 16:55:04 +08:00
parent ead209da4d
commit f87e5ff020
26 changed files with 263 additions and 102 deletions

View File

@ -11,12 +11,15 @@ import { useEnterpriseStore } from '@/stores/modules/enterprise';
interface sidebarState {
activeMenuId: number | null;
menuList: any[];
allowAccessRoutes: any[];
}
export const useSidebarStore = defineStore('sidebar', {
state: (): sidebarState => ({
activeMenuId: null,
menuList: [],
allowAccessRoutes: [], // 允许访问的路由列表
}),
actions: {
clearActiveMenuId() {
@ -25,12 +28,14 @@ export const useSidebarStore = defineStore('sidebar', {
setActiveMenuId(id: number) {
this.activeMenuId = id;
},
clearUserNavbarMenuList() {
this.menuList = [];
},
// navbar菜单列表由企业对应权限决定
getNavbarMenuList() {
getUserNavbarMenuList() {
const enterpriseStore = useEnterpriseStore();
const enterpriseInfo = enterpriseStore.getEnterpriseInfo();
this.menuList = MENU_LIST.filter(
(item) => !item.permissionKey || enterpriseInfo?.permissions?.includes(item.permissionKey),
(item) => !item.permissionKey || enterpriseStore.enterpriseInfo?.permissions?.includes(item.permissionKey),
);
},
// 根据当前路由自动设置 activeMenuId
@ -61,7 +66,7 @@ export const useSidebarStore = defineStore('sidebar', {
return null;
};
const menuId = findMenuGroup(appRoutes);
const menuId = findMenuGroup(appRoutes as any);
if (menuId !== null) {
this.activeMenuId = menuId;
}