factory_mp/utils/directives.js

36 lines
762 B
JavaScript

import { auth } from '@/utils/auth.js'
/**
* 权限指令
* 使用方式:
* v-auth="'user:add'" // 单个权限
* v-auth="['user:add', 'user:edit']" // 多个权限(满足其一即可)
*/
export const authDirective = {
mounted(el, binding) {
checkAuth(el, binding)
},
updated(el, binding) {
checkAuth(el, binding)
}
}
/**
* 权限检查逻辑
*/
function checkAuth(el, binding) {
const hasAuth = auth.check(binding.value)
if (!hasAuth) {
// 没有权限时隐藏元素
el.style.display = 'none'
// 或者完全移除元素(根据需求选择)
// if (el.parentNode) {
// el.parentNode.removeChild(el)
// }
} else {
// 有权限时确保显示
el.style.display = ''
}
}