From 26bd4aeba612e87f49e5b9694d3b4eeff5016a84 Mon Sep 17 00:00:00 2001 From: mfish Date: Sat, 7 Jan 2023 03:08:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=9A=90=E8=97=8F=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=9B=AE=E5=BD=95=E5=8F=AA=E8=83=BD=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=B1=82=E7=9B=AE=E5=BD=95=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E9=80=92=E5=BD=92=E9=9A=90=E8=97=8F=E6=89=80?= =?UTF-8?q?=E6=9C=89=E5=AD=90=E8=8F=9C=E5=8D=95=20(#2484)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(axiosSuccess): 操作成功后根据传入提示模式进行相应 * fix(axiosRetry): 解决get重试请求返回的headers造成无法成功请求的问题 * fix(axiosRetry): 参数首字母小写 * fix(useDataSource): 解决deleteTableRecord删除树形表格的行记录时,无法删除,无法找到子节点的问题 * feat(useDataSource): 删除之前提交代码遗留的console * fix(permissionGuard): 当获取用户信息失败时,不允许正常登陆返回登陆界面 * fix(permissionGuard): 代码还原 * fix(menu): 解决隐藏菜单目录只能隐藏第一层目录的问题,递归隐藏所有子菜单 --- src/router/guard/permissionGuard.ts | 3 +-- src/router/menus/index.ts | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) 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; }