doum
10 天以前 0201c32312f6478b2bde706607c8c6338e9e1d06
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
export default {
  inserted: function (el, binding, vnode) {
    // 获取用户信息
    const userInfo = vnode.context.$store.state.userInfo
    if (userInfo == null) {
      el.parentNode && el.parentNode.removeChild(el)
      return
    }
    // 获取配置权限
    const configPermissions = binding.value
    if (configPermissions == null) {
      return
    }
    if (!(configPermissions instanceof Array)) {
      throw new Error('v-permissions的值必须为一个数组')
    }
    // 超级管理员(角色 code=admin)拥有全部按钮权限
    if (userInfo.roles && userInfo.roles.findIndex(code => code === 'admin') > -1) {
      return
    }
    // 验证权限
    if (!userInfo.permissions || configPermissions.findIndex(code => userInfo.permissions.findIndex(p => p === code) > -1) === -1) {
      el.parentNode && el.parentNode.removeChild(el)
    }
  }
}