yj
2024-12-05 c92c752491c6a1cc5c87f701e864f449a7149fc0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
import store from '@/store'
 
export default{
  inserted(el, binding, vnode) {
    const { value } = binding
    const perms = store.getters && store.getters.perms
 
    if (value && value instanceof Array && value.length > 0) {
      const permissions = value
 
      var hasPermission = false
 
      if (perms.indexOf('*') >= 0) {
        hasPermission = true
      } else {
        hasPermission = perms.some(perm => {
          return permissions.includes(perm)
        })
      }
 
      if (!hasPermission) {
        el.parentNode && el.parentNode.removeChild(el)
      }
    } else {
      throw new Error(`need perms! Like v-permission="['GET /aaa','POST /bbb']"`)
    }
  }
}