2021-10-18 14:20:48 +08:00

22 lines
582 B
TypeScript

import { DirectiveOptions } from 'vue'
import { UserModule } from '@/store/modules/user'
export const role: DirectiveOptions = {
inserted(el, binding) {
const { value } = binding
const roles = UserModule.roles
if (value && value instanceof Array && value.length > 0) {
const permissionRoles = value
const hasRole = roles.some(role => {
return permissionRoles.includes(role)
})
if (!hasRole) {
el.style.display = 'none'
}
} else {
throw new Error('need roles! Like v-role="[\'admin\',\'editor\']"')
}
}
}