如何在vue中实现按钮级别的权限控制

如何在vue中实现按钮级别的权限控制

在vuex中

const state = {
  routes: [],
  addRoutes: [],
  permissionList:[]
}

const mutations = {

  SET_ROUTES: (state, routes) => {
    state.addRoutes = routes
    state.routes = constantRoutes.concat(routes)
    // asyncRoutes = asyncRoutes.concat(routes)
    addRoutes(routes)
  },
  SET_PERMS: (state, permissionList) => {
    state.permissionList = permissionList
    // asyncRoutes = asyncRoutes.concat(routes)
  }
}

login时候调用

//设置权限
          GetPermissionesList().then(res=>{
            console.log(res)
            store.commit('permission/SET_PERMS', res.data)
          })

创建文件定义指令

import Vue from 'vue'
import store from '../store/index'
/**权限指令**/

Vue.directive('has', {
    bind: function(el, binding) {
     if (!Vue.prototype.$_has(binding.value)) {
        el.style.display = "none"
     }
    }
   });
   //权限检查方法
Vue.prototype.$_has = function(value) {

    var arr = JSON.parse(JSON.stringify(store.state.permission.permissionList))
    let isExist = false;
    arr.forEach(item => {
        if(item == value){
            isExist=true;
        }
    });
    return isExist;
};

具体页面使用指令

<el-button v-has="'sys:withdraw:export'" 
type="primary" size="small">导出EXCEL</el-button>

大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上天注定的姻缘最大嘛!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值