Vue 自定义指令控制按钮权限

 

Vue自定义指令控制按钮权限

 

1. 定义自定义指令代码

1.1新建 directives.js 文件


import Vue from 'vue'
import store from '@/store/index'

// 自定义按钮控制指令
Vue.directive('permission', {
  // 当被绑定的元素插入到DOM中时
  inserted: function (el, attrs) {
    /**
     * 从Vuex中拿到按钮权限列表
     */
    const list = store.getters['account/btnList']

    /**
     * 标签上绑定的数据 arg是指令后面的数据
     * 例如 v-permission:upload
     * arg 就是'upload'
     */
    const { arg } = attrs

    /**
     * 如果权限列表中包含这个按钮的权限就什么都不做
     * 否则就 display:none 隐藏这个按钮
     * 也可以从Dom中删除这个按钮
     * 由于权限不是很敏感所以采用 display:none
     */

    el.style.display = list.includes(arg) ? '' : 'none'
  }
})

 

2. 如何使用

 <a-button type="primary" v-permission:custom_button @click="addItem">
    <a-icon type="plus" /> 新增
 </a-button>

 

3. 最后记得在main.js引入

 

如果有更好的方法欢迎指正.

posted @ 2022-03-28 14:18  祁腾飞  阅读(601)  评论(0编辑  收藏  举报