Browse Source

fix: loading and spinner style fixed and improved (#5588)

pull/5591/head
Netfan 12 months ago
committed by GitHub
parent
commit
d49e3e81a4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      packages/@core/ui-kit/shadcn-ui/src/components/spinner/loading.vue
  2. 32
      packages/effects/common-ui/src/components/loading/loading.vue
  3. 24
      packages/effects/common-ui/src/components/loading/spinner.vue

2
packages/@core/ui-kit/shadcn-ui/src/components/spinner/loading.vue

@ -88,7 +88,7 @@ function onTransitionEnd() {
</span>
</slot>
<div v-if="text" class="mt-4 text-xs">{{ text }}</div>
<div v-if="text" class="text-primary mt-4 text-xs">{{ text }}</div>
<slot></slot>
</div>
</template>

32
packages/effects/common-ui/src/components/loading/loading.vue

@ -1,16 +1,36 @@
<script lang="ts" setup>
import { VbenLoading } from '@vben-core/shadcn-ui';
import { cn } from '@vben-core/shared/utils';
defineOptions({ name: 'Loading' });
defineProps<{
spinning: boolean;
interface LoadingProps {
class?: string;
/**
* @zh_CN 最小加载时间
* @en_US Minimum loading time
*/
minLoadingTime?: number;
/**
* @zh_CN loading状态开启
*/
spinning?: boolean;
/**
* @zh_CN 文字
*/
text?: string;
}>();
}
defineOptions({ name: 'Loading' });
const props = defineProps<LoadingProps>();
</script>
<template>
<div class="relative min-h-20">
<div :class="cn('relative min-h-20', props.class)">
<slot></slot>
<VbenLoading :spinning="spinning" :text="text">
<VbenLoading
:min-loading-time="props.minLoadingTime"
:spinning="props.spinning"
:text="props.text"
>
<template v-if="$slots.icon" #icon>
<slot name="icon"></slot>
</template>

24
packages/effects/common-ui/src/components/loading/spinner.vue

@ -1,14 +1,28 @@
<script lang="ts" setup>
import { VbenSpinner } from '@vben-core/shadcn-ui';
import { cn } from '@vben-core/shared/utils';
interface SpinnerProps {
class?: string;
/**
* @zh_CN 最小加载时间
* @en_US Minimum loading time
*/
minLoadingTime?: number;
/**
* @zh_CN loading状态开启
*/
spinning?: boolean;
}
defineOptions({ name: 'Spinner' });
defineProps({
spinning: Boolean,
});
const props = defineProps<SpinnerProps>();
</script>
<template>
<div class="relative min-h-20">
<div :class="cn('relative min-h-20', props.class)">
<slot></slot>
<VbenSpinner :spinning="spinning" />
<VbenSpinner
:min-loading-time="props.minLoadingTime"
:spinning="props.spinning"
/>
</div>
</template>

Loading…
Cancel
Save