方法
export default (Vue) => {
Vue.directive('auth', {
mounted(el, binding) {
let vm = binding.instance;
let userAuthList = vm.$store.getters.authList;
if (!Vue.config.globalProperties.$_has(binding.value, userAuthList)) {
el.parentNode.removeChild(el)
}
},
})
Vue.config.globalProperties.$_has = (value, userAuthList) => {
let isExist = false
if (userAuthList.find(item => value.includes(item))) {
isExist = true
}
return isExist
}
}
main.ts
import { createApp } from "vue";
import direactive from '@/plugins/direactive.js';
app.use(direactive).mount("#app");
使用
<a-button v-auth="['D0detail']">查看明细</a-button>