自定义指令实现拦截按钮重复点击
1 | 1. 组件中的html |
自定义指令实现按钮级权限控制
最近做的一个后台系统,要求权限控制到按钮级别,也就是说对于不同的用户,可操作的按钮是不一样的,换言之,有些按钮对某些客户是不可见的.例如:用户A能看到”新增”按钮,而用户B看不到,假设”新增”按钮”的权限是”sys:add”,
定义一个全局方法,配合v-if实现;
directives 在全局main.js中注册
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28/**权限指令**/
Vue.directive('has', {
// 获取按钮权限
bind: function(el, binding) {
if (!Vue.prototype.$_has(binding.value)) {
el.parentNode.removeChild(el);
}
}
});
// 权限检查方法
Vue.prototype.$_has = function(value) {
let isExist = false;
let buttonperms = JSON.parse(localStorage.getItem('user')).accessPage;
if(buttonperms == undefined || buttonperms == null){
return false;
}
// let buttonperms = JSON.parse(buttonpermsStr);
for(let i=0;i<buttonperms.length;i++){
if (buttonperms[i].indexOf(value) > -1) {
isExist = true;
break;
}
}
return isExist;
};
/*页面中按钮只需加v-has即可*/