Procházet zdrojové kódy

fix: showLink is false,children menu 404

xiaoxian521 před 3 roky
rodič
revize
45c2c4a301
2 změnil soubory, kde provedl 9 přidání a 11 odebrání
  1. 8 1
      src/router/index.ts
  2. 1 10
      src/store/modules/permission.ts

+ 8 - 1
src/router/index.ts

@@ -49,6 +49,13 @@ export const constantRoutesArr: Array<RouteComponent> = ascending(
   constantRoutes
 ).concat(...remainingRouter);
 
+// 过滤meta中showLink为false的路由
+export const filterTree = data => {
+  const newTree = data.filter(v => v.meta.showLink);
+  newTree.forEach(v => v.children && (v.children = filterTree(v.children)));
+  return newTree;
+};
+
 // 过滤后端传来的动态路由 重新生成规范路由
 export const addAsyncRoutes = (arrRoutes: Array<RouteComponent>) => {
   if (!arrRoutes || !arrRoutes.length) return;
@@ -67,7 +74,7 @@ export const addAsyncRoutes = (arrRoutes: Array<RouteComponent>) => {
 
 export const router: Router = createRouter({
   history: createWebHashHistory(),
-  routes: ascending(constantRoutes).concat(...remainingRouter),
+  routes: filterTree(ascending(constantRoutes)).concat(...remainingRouter),
   scrollBehavior(to, from, savedPosition) {
     return new Promise(resolve => {
       if (savedPosition) {

+ 1 - 10
src/store/modules/permission.ts

@@ -1,7 +1,6 @@
 import { defineStore } from "pinia";
 import { store } from "/@/store";
-
-import { constantRoutesArr, ascending } from "/@/router/index";
+import { constantRoutesArr, ascending, filterTree } from "/@/router/index";
 
 export const usePermissionStore = defineStore({
   id: "pure-permission",
@@ -13,14 +12,6 @@ export const usePermissionStore = defineStore({
   }),
   actions: {
     asyncActionRoutes(routes) {
-      const filterTree = data => {
-        const newTree = data.filter(v => v.meta.showLink);
-        newTree.forEach(
-          v => v.children && (v.children = filterTree(v.children))
-        );
-        return newTree;
-      };
-
       if (this.wholeRoutes.length > 0) return;
       this.wholeRoutes = filterTree(
         ascending(this.constantRoutes.concat(routes))