Bläddra i källkod

菜单路由限制

@dongkboy 2 år sedan
förälder
incheckning
729d8c01da
1 ändrade filer med 39 tillägg och 20 borttagningar
  1. 39 20
      src/store/modules/menu.js

+ 39 - 20
src/store/modules/menu.js

@@ -1,28 +1,47 @@
 export default {
-    state: {
-        navTree: [],  // 导航菜单树
-        leftTree: [], //左侧菜单树
-    },
-    getters: {
+  state: {
+    navTree: [],  // 导航菜单树
+    leftTree: [], //左侧菜单树
+    filterList: [
+      "agreementManage/carInsurance/agreementHistoryRecord",
+      "agreementManage/carInsurance/agreementProductFee",
+      "agreementManage/carInsurance/agreementUnderwritingRule",
+      "agreementManage/carInsurance/agreementNonVehicleConfig",
+      "letter/wallet/amountManagement"
+    ]
+  },
+  getters: {
 
-    },
-    mutations: {
-        setNavTree(state, navTree) {  // 设置导航菜单树
-            state.navTree = navTree;
-            if (Array.isArray(navTree) && navTree.length > 0) {
-                state.leftTree = navTree[0].children;
-            }
-        },
-        changeLeftTree(state, id) {
-            for (let i = 0; i < state.navTree.length; i++) {
-                if (state.navTree[i].id === id) {
-                    state.leftTree = state.navTree[i].children;
-                    break;
-                }
+  },
+  mutations: {
+    setNavTree(state, navTree) {  // 设置导航菜单树
+      function filterTree(tree, filterList) {
+        return tree
+          .filter(item => !filterList.includes(item.url))
+          .map(item => {
+            // 如果项目有子项目,则递归过滤子树
+            if (item.children && item.children.length) {
+              return { ...item, children: filterTree(item.children, filterList) };
             }
+            return item;
+          });
+        };
+        const filteredNavTree = filterTree(navTree, state.filterList);
+        state.navTree = filteredNavTree;
+        if (Array.isArray(filteredNavTree) && filteredNavTree.length > 0) {
+          state.leftTree = filteredNavTree[0].children;
+        }
+      },
+      changeLeftTree(state, id) {
+        for (let i = 0; i < state.navTree.length; i++) {
+          if (state.navTree[i].id === id) {
+            state.leftTree = state.navTree[i].children;
+            break;
+          }
         }
+      }
     },
     actions: {
 
     }
-}
+  }