import { ObjectDirective } from 'vue'; import { usePermission } from '@/hooks/web/usePermission'; export const perm: ObjectDirective = { mounted(el: HTMLButtonElement, binding) { if (binding.value == undefined) return; const { action, effect } = binding.value; const { hasSomePermission } = usePermission(); if (!hasSomePermission(binding.value)) { if (effect == 'disabled') { el.disabled = true; el.style['disabled'] = 'disabled'; el.classList.add('n-button--disabled'); } else { el.parentNode.removeChild(el) } } }, }; export const perms: ObjectDirective = { mounted(el: HTMLButtonElement, binding) { if (binding.value == undefined) return; const { action, effect } = binding.value; const { hasEveryPermission } = usePermission(); if (!hasEveryPermission(action)) { if (effect == 'disabled') { el.disabled = true; el.style['disabled'] = 'disabled'; el.classList.add('n-button--disabled'); } else { el.parentNode.removeChild(el) } } }, };