const Permission = {
name: 'permission',
store: null,
inserted(el, binding) {
const { value } = binding; // 获取到 v-permission的值 这里也是个数组 [1]
const permissions = Permission.store && Permission.store.getters && Permission.store.getters.permissions; // 这里是按钮权限里包含的值,我是存到Vuex里,格式都是数组[1,2,3,4....]
if (value && value instanceof Array && value.length > 0) {
const permissionRoles = value;
const hasPermission = permissions.some(permission => {
return permissionRoles.includes(permission);
});
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el);
}
} else {
throw new Error(`need permissions! Like v-permission="['admin','editor']"`);
}
},
};
const install = function (Vue) {
Vue.directive(Permission.name, Permission);
};
if (window.Vue) {
window['Permission'] = Permission;
Vue.use(install); // eslint-disable-line
}
Permission.install = install;
export default Permission;
日常记录~~~ 如果对你有帮助请帮忙点下赞谢谢了!