import { router } from '@/router' import { useUserStore } from '@/store/modules/user' import { useAppMode } from '@/hooks/core/useAppMode' import { extractRouteAuthMarks, extractUserButtons, hasAuthPermission } from '@/hooks/core/useAuth' function checkAuthPermission(el, binding) { const authList = extractRouteAuthMarks(router.currentRoute.value.meta.authList) const buttons = extractUserButtons(useUserStore().getUserInfo) const { isBackendMode } = useAppMode() const hasPermission = hasAuthPermission(binding.value, { authList, buttons, isBackendMode: isBackendMode.value, routePath: router.currentRoute.value.path }) if (!hasPermission) { removeElement(el) } } function removeElement(el) { if (el.parentNode) { el.parentNode.removeChild(el) } } const authDirective = { mounted: checkAuthPermission, updated: checkAuthPermission } function setupAuthDirective(app) { app.directive('auth', authDirective) } export { setupAuthDirective }