un-pany/v3-admin-vite

权限指令写法有问题

Closed this issue · 1 comments

源码中是这样的:
import { type Directive } from "vue"
import { useUserStoreHook } from "@/store/modules/user"

/** 权限指令,和权限判断函数 checkPermission 功能类似 */
export const permission: Directive = {
mounted(el, binding) {
const { value: permissionRoles } = binding
const { roles } = useUserStoreHook()
if (Array.isArray(permissionRoles) && permissionRoles.length > 0) {
const hasPermission = roles.some((role) => permissionRoles.includes(role))
// hasPermission || (el.style.display = "none") // 隐藏
hasPermission || el.parentNode?.removeChild(el) // 销毁
} else {
throw new Error(need roles! Like v-permission="['admin','editor']")
}
}
}

hasPermission || el.parentNode?.removeChild(el)
不是很理解,这里有权限反而通过父级节点删除对应的元素

你理解错了,hasPermissiontrue 啥都不干,hasPermissionfalse 才删除对应元素