Browse Source

fix:vue 添加自定义指令

ly 10 months ago
parent
commit
ed68f92b17
2 changed files with 25 additions and 1 deletions
  1. 2 1
      src/directive/index.js
  2. 23 0
      src/directive/permission/hasPermi.js

+ 2 - 1
src/directive/index.js

@@ -1,5 +1,5 @@
 import hasRole from './permission/hasRole'
-import {hasPermi,hasNoPermi} from './permission/hasPermi'
+import {hasPermi,hasNoPermi,hasPermiView} from './permission/hasPermi'
 //import {hasNoPermi} from './permission/Permi'
 import copyText from './common/copyText'
 
@@ -8,4 +8,5 @@ export default function directive(app){
   app.directive('hasPermi', hasPermi)
   app.directive('hasNoPermi', hasNoPermi)
   app.directive('copyText', copyText)
+  app.directive('hasPermiView',hasPermiView)
 }

+ 23 - 0
src/directive/permission/hasPermi.js

@@ -48,4 +48,27 @@ export const hasNoPermi =  {
       throw new Error(`请设置操作权限标签值`)
     }
   }
+}
+export const hasPermiView =  {
+  mounted(el, binding, vnode) {
+    const { value } = binding
+    const all_permission = "*:*:*";
+    const permissions = useUserStore().permissions
+    // debugger
+
+    if (value && value instanceof Array && value.length > 0) {
+      const permissionFlag = value
+
+      const hasPermissions = permissions.some(permission => {
+        return all_permission === permission || permissionFlag.includes(permission)
+      })
+      if(!hasPermissions){
+        el.disabled = true;
+        el.style["color"] = "#c7c7c7";
+      }
+
+    } else {
+      throw new Error(`请设置操作权限标签值`)
+    }
+  }
 }