vue 按钮权限的控制
在后台管理项目中,往往会有多种角色的人员操作系统,这时就需要对每种角色进行分权限,我们简单讲下按钮级别的权限前端的实现思路,菜单权限鉴定请看
1.页面展示需要鉴权的所有按钮,像有些查询功能的接口可直接用菜单控制权限,即可显示菜单即可查看数据。
2.勾选每个角色或者用户所能看的权限保存在数据库。该权限数据是一个权限字段的数组。
3.在main.js中定义判定按钮权限数据的方法,一般为vue的指令directive,登入时获取后端保存的数据权限数组。
4.在每个按钮中调用该指令,并传入该操作的权限字段和后端保存的权限字段进行匹配,能匹配则该操作按钮可显示。
具体代码为:
登录成功后,获取后台返回所有的按钮权限,存到sessionStorage中
getUserAuthTree() {this.$ajax.get("/auth/getUserAuthTree").then(res => {let authority = r.data.data; window.sessionStorage.setItem('authority', authority);});
}
在main.js中自定义指令
/** 权限指令,对按钮权限的控制 **/
Vue.directive('has', {bind: function(el, binding) {if (!Vue.prototype.$_has(binding.value)) {el.style.display="none";}}
})
// 权限检查方法(且把该方法添加到vue原型中)
Vue.prototype.$_has = function(value) {let isExist = false// 从浏览器缓存中获取权限数组(该数组在登入成功后拉取用户的权限信息时保存在浏览器的缓存中)var buttonpermsStr = sessionStorage.getItem('authority')if (buttonpermsStr === undefined || buttonpermsStr == null) {return false}if (buttonpermsStr.indexOf(value) > -1) {// 若在按钮中定义的权限字段能在后端返回的权限数组中能找到,则该按钮可显示isExist = true}return isExist
}
定义指令,如果用户含有此按钮权限,则在页面显示出来( v-has绑定进行逻辑判断 )
class="btnUpload"icon="iconfont icon-shujuxiazai"@click="uploadBtnChange">上传
数组有该字段可显示,无该字段则不显示
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
