mirror of
https://github.com/vbenjs/vben-admin-thin-next.git
synced 2025-01-24 10:33:47 +08:00
feat: add spin prop for Icon (#477)
Co-authored-by: 刘亚 <liuya54892@outlook.com>
This commit is contained in:
parent
021c6364fa
commit
6dd7d0f928
@ -1,5 +1,9 @@
|
||||
<template>
|
||||
<svg :class="[prefixCls, $attrs.class]" :style="getStyle" aria-hidden="true">
|
||||
<svg
|
||||
:class="[prefixCls, $attrs.class, spin && 'svg-icon-spin']"
|
||||
:style="getStyle"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<use :xlink:href="symbolId" />
|
||||
</svg>
|
||||
</template>
|
||||
@ -23,6 +27,10 @@
|
||||
type: [Number, String],
|
||||
default: 16,
|
||||
},
|
||||
spin: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
setup(props) {
|
||||
const { prefixCls } = useDesign('svg-icon');
|
||||
@ -52,4 +60,8 @@
|
||||
vertical-align: -0.15em;
|
||||
fill: currentColor;
|
||||
}
|
||||
|
||||
.svg-icon-spin {
|
||||
animation: loadingCircle 1s infinite linear;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<SvgIcon :size="size" :name="getSvgIcon" v-if="isSvgIcon" :class="[$attrs.class]" />
|
||||
<SvgIcon :size="size" :name="getSvgIcon" v-if="isSvgIcon" :class="[$attrs.class]" :spin="spin" />
|
||||
<span
|
||||
v-else
|
||||
ref="elRef"
|
||||
:class="[$attrs.class, 'app-iconify anticon']"
|
||||
:class="[$attrs.class, 'app-iconify anticon', spin && 'app-iconify-spin']"
|
||||
:style="getWrapStyle"
|
||||
></span>
|
||||
</template>
|
||||
@ -39,6 +39,7 @@
|
||||
type: [String, Number] as PropType<string | number>,
|
||||
default: 16,
|
||||
},
|
||||
spin: propTypes.bool.def(false),
|
||||
prefix: propTypes.string.def(''),
|
||||
},
|
||||
setup(props) {
|
||||
@ -99,6 +100,12 @@
|
||||
.app-iconify {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
|
||||
&-spin {
|
||||
svg {
|
||||
animation: loadingCircle 1s infinite linear;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span.iconify {
|
||||
|
Loading…
Reference in New Issue
Block a user