UNPKG

gxd-vue-library

Version:

依赖与element Ui插件库,聚福宝福利PC端插件库

33 lines (28 loc) 874 B
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) } }