tree.vue 772 B

12345678910111213141516171819202122232425
  1. <script setup lang="ts">
  2. import type { TreeProps } from '@vben-core/shadcn-ui';
  3. import { Inbox } from '@vben/icons';
  4. import { $t } from '@vben/locales';
  5. import { treePropsDefaults, VbenTree } from '@vben-core/shadcn-ui';
  6. const props = withDefaults(defineProps<TreeProps>(), treePropsDefaults());
  7. </script>
  8. <template>
  9. <VbenTree v-if="props.treeData?.length > 0" v-bind="props">
  10. <template v-for="(_, key) in $slots" :key="key" #[key]="slotProps">
  11. <slot :name="key" v-bind="slotProps"> </slot>
  12. </template>
  13. </VbenTree>
  14. <div
  15. v-else
  16. class="flex-col-center text-muted-foreground cursor-pointer rounded-lg border p-10 text-sm font-medium"
  17. >
  18. <Inbox class="size-10" />
  19. <div class="mt-1">{{ $t('common.noData') }}</div>
  20. </div>
  21. </template>