Files
ba_web/src/directives/permission.js
2025-09-22 09:01:41 +08:00

35 lines
948 B
JavaScript

import store from '@/store'
function checkPermission(el,binding) {
//获取对应的权限
const { value } = binding;
//获取当前用户的所有功能权限
const buttonPermission = store.getters.userInfo?.permission?.buttonPermission;
//value必须是一个数组
if (value && value instanceof Array && buttonPermission.length > 0) {
//匹配对应的指令
const hasPermission = buttonPermission.some(item => {
return value.includes(item)
})
//匹配失败
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
} else {
throw new ErrorEvent('v-permisss value must 酱紫【"admin" ,"login"】...')
}
}
export default {
//在绑定 元素的父组件被挂载之后调用
mounted (el,binding) {
checkPermission(el,binding)
},
// 在包含组件的VNode 及其子组件的VNode更新后调用
update (el,binding) {
checkPermission(el,binding)
}
}