zhou zhou
15 小时以前 46d872c1a5b77aa8799de4a64888a0a24a1422d6
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
import { useUserStore } from '@/store/modules/user'
function checkRolePermission(el, binding) {
  const userStore = useUserStore()
  const userRoles = userStore.getUserInfo.roles
  if (!userRoles?.length) {
    removeElement(el)
    return
  }
  const requiredRoles = Array.isArray(binding.value) ? binding.value : [binding.value]
  const hasPermission = requiredRoles.some((role) => userRoles.includes(role))
  if (!hasPermission) {
    removeElement(el)
  }
}
function removeElement(el) {
  if (el.parentNode) {
    el.parentNode.removeChild(el)
  }
}
const rolesDirective = {
  mounted: checkRolePermission,
  updated: checkRolePermission
}
function setupRolesDirective(app) {
  app.directive('roles', rolesDirective)
}
export { setupRolesDirective }