src/directive/permission/permission.js
(完整代码) 932B
import store from '@/store'
export default{
// inserted函数:当被绑定的元素插入到 DOM 中时……
inserted(el, binding, vnode) {
const { value } = binding // 获取指令绑定的值;
const roles = store.getters && store.getters.roles //用户本身的roles信息,arr;
if (value && value instanceof Array && value.length > 0) {
const permissionRoles = value
const hasPermission = roles.some(role => { // 只要有一个满足即返回true
return permissionRoles.includes(role)
})
// 没有该指令,直接删除掉该指令元素;即页面不显示没有指令权限的按钮;
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
// 因项目需要,本指令remove其父元素;一般情况下,只隐藏其本身;
}
} else {
throw new Error(`need roles! Like v-permission="['admin','editor']"`)
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
