Ver código fonte

优化代码

阿凌 6 anos atrás
pai
commit
bc8a4e3a41
1 arquivos alterados com 7 adições e 15 exclusões
  1. 7 15
      src/permission.js

+ 7 - 15
src/permission.js

@@ -84,24 +84,16 @@ const action = Vue.directive('action', {
   bind: function (el, binding, vnode) {
     const actionName = binding.arg
     const roles = store.getters.roles
-    const permissionId = vnode.context.$route.meta.permission
-    let actions = []
+    const elVal = vnode.context.$route.meta.permission
+    const permissionId = elVal instanceof String && [elVal] || elVal
     roles.permissions.forEach(p => {
-      //$route.meta.permission 是否配置Array类型
-      if (Array.isArray(permissionId)) {
-        if (!permissionId.includes(p.permissionId)) {
-          return
-        }
-      } else {
-        if (p.permissionId !== permissionId) {
-          return
-        }
+      if (!permissionId.includes(p.permissionId)) {
+        return
+      }
+      if (p.actionList && !p.actionList.includes(actionName)) {
+        el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none')
       }
-      actions = p.actionList
     })
-    if (!actions.includes(actionName)) {
-      el.parentNode && el.parentNode.removeChild(el) || (el.style.display = 'none')
-    }
   }
 })