role-authority.vue 499 B

1234567891011121314151617181920212223242526272829
  1. <!--
  2. Access control component for fine-grained access control.
  3. -->
  4. <script lang="ts" setup>
  5. import { useAccess } from './use-access';
  6. interface Props {
  7. /**
  8. * Specified role is visible
  9. * @default []
  10. */
  11. value?: string[];
  12. }
  13. defineOptions({
  14. name: 'RoleAuthority',
  15. });
  16. withDefaults(defineProps<Props>(), {
  17. value: undefined,
  18. });
  19. const { hasAuthByRoles } = useAccess();
  20. </script>
  21. <template>
  22. <slot v-if="!value"></slot>
  23. <slot v-else-if="hasAuthByRoles(value)"></slot>
  24. </template>