基于Ant Design Pro Vue 自定义按钮级别权限命令

  • 在main.js全局定义自定义权限指令 v-auth
/** 权限指令**/
const auth = Vue.directive('auth', {
  inserted: function (el, binding) {
    if (!Vue.prototype.$_has(binding.value)) {
      el.parentNode.removeChild(el)
      // el.setAttribute('disabled', 'disabled')
      // el.setAttribute('class', el.getAttribute('class').concat(' is-disabled'))
    }
  }
})
// 权限检查方法
Vue.prototype.$_has = function (value) {
  let isExist = false
  // TODO 对接
  const buttonpermsStr = sessionStorage.getItem('buttenPermAdmin')
  if (buttonpermsStr === undefined || buttonpermsStr === null) {
    return false
  }
  const buttonperms = JSON.parse(buttonpermsStr)

  const arr = value.split(',')
  arr.map(valueItem => {
    buttonperms.some(item => {
      if (item === valueItem) {
        isExist = true
      }
    })
  })

  • 用户登录后,保存用户按钮权限信息
getAuthorizedBtnAuthCode().then(res => {
            if (res.success) {
              const list = JSON.stringify(res.data)
              sessionStorage.setItem('buttenPermAdmin', list)
            }
          })
  • 给按钮绑定自定义权限指令即可
<template>
<a-button type="primary" icon="plus" v-auth="query">查询</a-button>
</template>
<script>
export default {
	data () {
    	return {
    		query: 'admin:user:query'
    	}
    }
}
</script>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值