Commit 26bd4aeba612e87f49e5b9694d3b4eeff5016a84

Authored by mfish
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): 解决隐藏菜单目录只能隐藏第一层目录的问题,递归隐藏所有子菜单
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 }
... ...