spinner.vue 635 B

12345678910111213141516171819202122232425262728
  1. <script lang="ts" setup>
  2. import { VbenSpinner } from '@vben-core/shadcn-ui';
  3. import { cn } from '@vben-core/shared/utils';
  4. interface SpinnerProps {
  5. class?: string;
  6. /**
  7. * @zh_CN 最小加载时间
  8. * @en_US Minimum loading time
  9. */
  10. minLoadingTime?: number;
  11. /**
  12. * @zh_CN loading状态开启
  13. */
  14. spinning?: boolean;
  15. }
  16. defineOptions({ name: 'Spinner' });
  17. const props = defineProps<SpinnerProps>();
  18. </script>
  19. <template>
  20. <div :class="cn('relative min-h-20', props.class)">
  21. <slot></slot>
  22. <VbenSpinner
  23. :min-loading-time="props.minLoadingTime"
  24. :spinning="props.spinning"
  25. />
  26. </div>
  27. </template>