以下文件位置于
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>