12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <script lang="ts" setup>
- import { computed } from 'vue';
- import { useAccess } from './use-access';
- interface Props {
-
- type?: 'code' | 'role';
-
- value?: string[];
- }
- defineOptions({
- name: 'AccessControl',
- });
- const props = withDefaults(defineProps<Props>(), {
- type: 'role',
- value: () => [],
- });
- const { hasAuthByCodes, hasAuthByRoles } = useAccess();
- const hasAuth = computed(() => {
- const { type, value } = props;
- return type === 'role' ? hasAuthByRoles(value) : hasAuthByCodes(value);
- });
- </script>
- <template>
- <slot v-if="!value"></slot>
- <slot v-else-if="hasAuth"></slot>
- </template>
|