Bladeren bron

Fix $route.meta.permission to Array type, invalid v-action management

Fix $route.meta.permission to Array type, invalid v-action management
阿凌 6 jaren geleden
bovenliggende
commit
7c4befbe5d
1 gewijzigde bestanden met toevoegingen van 10 en 3 verwijderingen
  1. 10 3
      src/permission.js

+ 10 - 3
src/permission.js

@@ -87,12 +87,19 @@ const action = Vue.directive('action', {
     const permissionId = vnode.context.$route.meta.permission
     let actions = []
     roles.permissions.forEach(p => {
-      if (p.permissionId !== permissionId) {
-        return
+      //$route.meta.permission 是否配置Array类型
+      if (Array.isArray(permissionId)) {
+        if (!permissionId.includes(p.permissionId)) {
+          return
+        }
+      } else {
+        if (p.permissionId !== permissionId) {
+          return
+        }
       }
       actions = p.actionList
     })
-    if (actions.indexOf(actionName) < 0) {
+    if (!actions.includes(actionName)) {
       el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none')
     }
   }