通过自定义指令去控制按钮权限

109 阅读1分钟

以下文件位置于src/directives/index.js

1.全局注册:
import * as directives from '@/directives/index'
Object.keys(directives).forEach((key) => {
  Vue.directive(key, directives[key])
})
import store from "@/store";

export const permissionBtn = {
  inserted(el, bind) {
    /*
    el: 为DOM
    bind.value:为你在页面中传过来的值
    */
    let permissionsArr = store.state.user.userinfo.privilege //取vuex中按钮权限名数组
    /* 判断:
    传过来的值(这个值是提前在权限管理时定义的,登录的时候会返回一个按钮权限数组,如果在权限管理定义过就会有)
    是不是已经包含在数组内,如果包含,则操作DOM显示;相反,同理
    */
    if (permissionsArr.includes(bind.value)) {
      el.style.display = 'block';
    } else {
      el.style.display = 'none';
    }
  },
}
2.使用方法:
   <el-button type="primary" @click="onSubmit" v-permissionBtn="'save'">保存</el-button>