gxd-vue-library
Version:
依赖与element Ui插件库,聚福宝福利PC端插件库
33 lines (28 loc) • 874 B
JavaScript
import store from '@/store'
import permissions from "@/constant/permissions"
function checkPermission (el, binding) {
let { value } = binding
const roles = store.getters && store.getters.roles
const permissionRoles = value.concat([permissions.adminRoles, permissions.devRoles])
if (value && typeof value === 'string') value = [value]
if (value && value instanceof Array) {
if (value.length > 0) {
const hasPermission = roles.some(role => {
return permissionRoles.includes(role)
})
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
}
} else {
throw new Error(`need roles! Like v-permission="['SUPER_ADMIN_ROLE','SUPER_ADMIN_ROLE']"`)
}
}
export default {
inserted (el, binding) {
checkPermission(el, binding)
},
update (el, binding) {
checkPermission(el, binding)
}
}