123456789101112131415161718192021222324252627282930 |
- import store from '@/store'
- function checkPermission(el, binding) {
- const { value } = binding
- const roles = store.getters && store.getters.roles
- if (value && value instanceof Array) {
- if (value.length > 0) {
- const permissionRoles = value
- const hasPermission = roles.some(role => {
- return permissionRoles.includes(role.roleCode)
- })
- if (!hasPermission) {
- el.parentNode && el.parentNode.removeChild(el)
- }
- }
- } else {
- throw new Error(`need roles! Like v-permission="['admin','editor']"`)
- }
- }
- export default {
- inserted(el, binding) {
- checkPermission(el, binding)
- },
- update(el, binding) {
- checkPermission(el, binding)
- }
- }
|