VUE项目的按钮级别的权限判断的实现

在后台管理项目中,往往会有多种角色的人员操作系统,这时就需要对每种角色进行分权限,我们简单讲下按钮级别的权限前端的实现思路,菜单权限鉴定请看:GO

1.页面展示需要鉴权的所有按钮,像有些查询功能的接口可直接用菜单控制权限,即可显示菜单即可查看数据。

2.勾选每个角色或者用户所能看的权限保存在数据库。该权限数据是一个权限字段的数组。

3.在main.js中定义判定按钮权限数据的方法,一般为vue的指令directive,登入时获取后端保存的数据权限数组。

4.在每个按钮中调用该指令,并传入该操作的权限字段和后端保存的权限字段进行匹配,能匹配则该操作按钮可显示。

具体代码为:

在main.js中定义权限方法

/** 权限指令,对按钮权限的控制 **/
Vue.directive('has', {
  bind: function(el, binding) {
    if (!Vue.prototype.$_has(binding.value)) {
      el.parentNode.removeChild(el)
    }
  }
})
// 权限检查方法(且把该方法添加到vue原型中)
Vue.prototype.$_has = function(value) {
  let isExist = false
  // 从浏览器缓存中获取权限数组(该数组在登入成功后拉取用户的权限信息时保存在浏览器的缓存中)
  var buttonpermsStr = sessionStorage.getItem('powerHandle')
  if (buttonpermsStr === undefined || buttonpermsStr == null) {
    return false
  }
  if (buttonpermsStr.indexOf(value) >= 0) {
    // 若在按钮中定义的权限字段能在后端返回的权限数组中能找到,则该按钮可显示
    isExist = true
  }
  return isExist
}

在页面中需要鉴权的按钮调用该指令方法v-has:

<el-button type="text" @click="addTable" v-has="'RolesAdd'" icon="el-icon-edit">新增</el-button>

后端保存的权限数组又该字段可显示,无该字段则不可显示

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值