Commit 26bd4aeba612e87f49e5b9694d3b4eeff5016a84
Committed by
GitHub
1 parent
61d6057f
解决隐藏菜单目录只能隐藏第一层目录的问题,递归隐藏所有子菜单 (#2484)
* feat(axiosSuccess): 操作成功后根据传入提示模式进行相应 * fix(axiosRetry): 解决get重试请求返回的headers造成无法成功请求的问题 * fix(axiosRetry): 参数首字母小写 * fix(useDataSource): 解决deleteTableRecord删除树形表格的行记录时,无法删除,无法找到子节点的问题 * feat(useDataSource): 删除之前提交代码遗留的console * fix(permissionGuard): 当获取用户信息失败时,不允许正常登陆返回登陆界面 * fix(permissionGuard): 代码还原 * fix(menu): 解决隐藏菜单目录只能隐藏第一层目录的问题,递归隐藏所有子菜单
Showing
2 changed files
with
13 additions
and
4 deletions
src/router/guard/permissionGuard.ts
... | ... | @@ -46,8 +46,7 @@ export function createPermissionGuard(router: Router) { |
46 | 46 | next(); |
47 | 47 | return; |
48 | 48 | } |
49 | - | |
50 | - // token does not exist | |
49 | + // token or user does not exist | |
51 | 50 | if (!token) { |
52 | 51 | // You can access without permission. You need to set the routing meta.ignoreAuth to true |
53 | 52 | if (to.meta.ignoreAuth) { | ... | ... |
src/router/menus/index.ts
... | ... | @@ -53,11 +53,21 @@ const staticMenus: Menu[] = []; |
53 | 53 | |
54 | 54 | async function getAsyncMenus() { |
55 | 55 | const permissionStore = usePermissionStore(); |
56 | + //递归过滤所有隐藏的菜单 | |
57 | + const menuFilter = (items) => { | |
58 | + return items.filter((item) => { | |
59 | + const show = !item.meta?.hideMenu && !item.hideMenu; | |
60 | + if (show && item.children) { | |
61 | + item.children = menuFilter(item.children); | |
62 | + } | |
63 | + return show; | |
64 | + }); | |
65 | + }; | |
56 | 66 | if (isBackMode()) { |
57 | - return permissionStore.getBackMenuList.filter((item) => !item.meta?.hideMenu && !item.hideMenu); | |
67 | + return menuFilter(permissionStore.getBackMenuList); | |
58 | 68 | } |
59 | 69 | if (isRouteMappingMode()) { |
60 | - return permissionStore.getFrontMenuList.filter((item) => !item.hideMenu); | |
70 | + return menuFilter(permissionStore.getFrontMenuList); | |
61 | 71 | } |
62 | 72 | return staticMenus; |
63 | 73 | } | ... | ... |