vue directive 指令做按钮权限

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;

日常记录~~~ 如果对你有帮助请帮忙点下赞谢谢了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值