jeecg-boot前端v-has权限控制

v-has是一个很方便的前端权限控制标签,目前只支持一个授权标识,如果需要两个或以上的权限与或运算就不支持了。

解决:

修改路径下 src/utils/hasPermission.js 中的 filterGlobalPermission 方法

原代码

 修改后

 代码:

  let value = binding.value
  // 目前只支持全与、全或
  // 含“||”
  if (value.includes('||')) {
    let testPerms = value.split('||')
    for (let i = 0; i < testPerms.length; i++) {
      if (permissions.indexOf(testPerms[i]) != -1) {
        return
      }
    }
    el.parentNode.removeChild(el)
  }
  // 含“&&”
  else if (value.includes('&&')) {
    let testPerms = value.split('&&')
    for (let i = 0; i < testPerms.length; i++) {
      if (permissions.indexOf(testPerms[i]) == -1) {
        el.parentNode.removeChild(el)
      }
    }
  }
  //什么都不含
  // update--begin--autor:cyq------for:按钮权限,权限前加!表示没有这个权限时显示 -------
  else {
    if (value[0] === '!') {
      if (permissions.includes(value.slice(1))) {
        el.parentNode.removeChild(el)
      }
    } else {
      if (!permissions.includes(binding.value)) {
        el.parentNode.removeChild(el)
      }
    }
  }

 

只支持全“&&”或全“||”,混合甚至带括号的太复杂,暂不支持。

 

自己对照大概位置进行修改。

posted @ 2024-04-18 09:59  不爱学习的摆烂王  阅读(308)  评论(0编辑  收藏  举报