diff --git a/src/router/guard/permissionGuard.ts b/src/router/guard/permissionGuard.ts index 4d394142..7e2c81ee 100644 --- a/src/router/guard/permissionGuard.ts +++ b/src/router/guard/permissionGuard.ts @@ -46,8 +46,7 @@ export function createPermissionGuard(router: Router) { next(); return; } - - // token does not exist + // token or user does not exist if (!token) { // You can access without permission. You need to set the routing meta.ignoreAuth to true if (to.meta.ignoreAuth) { diff --git a/src/router/menus/index.ts b/src/router/menus/index.ts index bf677214..014d7572 100644 --- a/src/router/menus/index.ts +++ b/src/router/menus/index.ts @@ -53,11 +53,21 @@ const staticMenus: Menu[] = []; async function getAsyncMenus() { const permissionStore = usePermissionStore(); + //递归过滤所有隐藏的菜单 + const menuFilter = (items) => { + return items.filter((item) => { + const show = !item.meta?.hideMenu && !item.hideMenu; + if (show && item.children) { + item.children = menuFilter(item.children); + } + return show; + }); + }; if (isBackMode()) { - return permissionStore.getBackMenuList.filter((item) => !item.meta?.hideMenu && !item.hideMenu); + return menuFilter(permissionStore.getBackMenuList); } if (isRouteMappingMode()) { - return permissionStore.getFrontMenuList.filter((item) => !item.hideMenu); + return menuFilter(permissionStore.getFrontMenuList); } return staticMenus; }