vue 自定义指令前端功能(按钮)权限控制

在用户登陆后,根据用户id读取用户的所有权限数据,放入本地的sessionStorage进行存储(这里我是拿到权限按钮按钮的标识,英文名称。把他们合成一个字符串存储在 btnPowerString 中。),之后,定义指令,如果用户含有此按钮权限,则在页面显示出来:

/**权限指令**/
Vue.directive('has',{
  bind:function (el,binding) {
    let className = binding.value.class; //这个地方要注意了,看下面页面上的代码,对应取得相应的值
    if(!Vue.prototype.$_has(className)){
      el.parentNode.removeChild(el);
    }
  }
})
Vue.prototype.$_has = function (val) {
  let isShow = false;
  let btnPowerArr = sessionStorage.getItem('btnPowerString');
  if(btnPowerArr==undefined || btnPowerArr==null){
    return false;
  }
  if(btnPowerArr.indexOf(val) > -1){
    isShow = true;
  }
  return isShow;
}

页面上使用方式:

<el-button type="warning" @click="handleMod()" v-has="{class:'btn-mod'}">修改</el-button>
<el-button type="primary" @click="handleStart()" v-has="{class:'btn-del'}">启用</el-button>

因为 vue2.0 ,不橡之前版本可以在 v-has 中直接传个字符串,所以这里只能用对象的方式传值,这里大家要注意了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值