import type { PropType } from 'vue' import { defineComponent } from 'vue' import { getPrefixCls } from '../_utils/getPrefixCls' import Icon from '../icon' import './index.scss' export default defineComponent({ name: 'Spin', props: { loading: { type: Boolean, default: false }, opacity: { type: Number as PropType, default: 0.6 }, rounded: { type: Boolean, default: true }, icon: { type: String as PropType, default: 'mingcute:loading-line' }, size: { type: Number as PropType, default: 16 }, rotate: { type: Number as PropType, default: 360 }, tip: { type: String as PropType, default: '' }, }, setup(props, { slots }) { const prefixCls = getPrefixCls('spin') return () => { if (!props.loading && !slots.default) return null return (
{slots.default?.()} {props.loading && (
{props.tip && {props.tip}}
)}
) } }, })