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) } } }
只支持全“&&”或全“||”,混合甚至带括号的太复杂,暂不支持。
自己对照大概位置进行修改。
标签:el,boot,value,let,parentNode,testPerms,权限,jeecg From: https://www.cnblogs.com/Galaxy1/p/18142901