Преглед на файлове

解决隐藏菜单目录只能隐藏第一层目录的问题,递归隐藏所有子菜单 (#2484)

* feat(axiosSuccess): 操作成功后根据传入提示模式进行相应

* fix(axiosRetry): 解决get重试请求返回的headers造成无法成功请求的问题

* fix(axiosRetry): 参数首字母小写

* fix(useDataSource): 解决deleteTableRecord删除树形表格的行记录时,无法删除,无法找到子节点的问题

* feat(useDataSource): 删除之前提交代码遗留的console

* fix(permissionGuard): 当获取用户信息失败时,不允许正常登陆返回登陆界面

* fix(permissionGuard): 代码还原

* fix(menu): 解决隐藏菜单目录只能隐藏第一层目录的问题,递归隐藏所有子菜单
mfish преди 2 години
родител
ревизия
26bd4aeba6
променени са 2 файла, в които са добавени 13 реда и са изтрити 4 реда
  1. 1 2
      src/router/guard/permissionGuard.ts
  2. 12 2
      src/router/menus/index.ts

+ 1 - 2
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) {

+ 12 - 2
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;
 }