ソースを参照

update store/modules/permission.js

wudebin 11 ヶ月 前
コミット
1ab49c3393
1 ファイル変更28 行追加6 行削除
  1. 28 6
      Strides-Admin/src/store/modules/permission.js

+ 28 - 6
Strides-Admin/src/store/modules/permission.js

@@ -69,14 +69,36 @@ function filterRoutes(routes, parent) {
   routes.forEach((route) => {
     const authRoute = state.addRoutes.find(authRoute => (authRoute[permission.RESOURCE_KEY] === route.path))
     if (authRoute) {
-      route.hidden = false
-      if (route.meta) {
-        route.meta.onlyView = authRoute.onlyView || false
+      if (!route.disabled) {
+        route.hidden = false
+        if (route.meta) {
+          route.meta.onlyView = authRoute.onlyView || false
+        } else {
+          route.meta = { onlyView: authRoute.onlyView }
+        }
+        if (parent) {
+          parent.hidden = false;
+        }
       } else {
-        route.meta = { onlyView: authRoute.onlyView }
+        authRoute[permission.RESOURCE_KEY] = "";
+        route.hidden = true;
       }
-      if (parent) {
-        parent.hidden = false;
+    } else if (route.sharePath) {
+      const shareRoute = state.addRoutes.find(_route => _route[permission.RESOURCE_KEY] === route.sharePath);
+      if (shareRoute) {
+        route.hidden = false
+        if (route.meta) {
+          route.meta.onlyView = shareRoute.onlyView || false
+        } else {
+          route.meta = { onlyView: shareRoute.onlyView }
+        }
+        if (parent) {
+          parent.hidden = false;
+        }
+        state.addRoutes.push({
+          resourceName: route.name,
+          resourcePath: route.path
+        })
       }
     } else {
       route.hidden = true;