zhou zhou
昨天 5d31cb5f1fb32a478d5b751ebfe97d47db890778
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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 }