diff --git a/packages/devui-vue/devui/alert/src/alert.tsx b/packages/devui-vue/devui/alert/src/alert.tsx index afd1b29f97..eee2030335 100644 --- a/packages/devui-vue/devui/alert/src/alert.tsx +++ b/packages/devui-vue/devui/alert/src/alert.tsx @@ -36,8 +36,9 @@ export default defineComponent({ const hide = ref(false) const closing = ref(false) const alertEl = ref() - + let dismissTimer: undefined | number = undefined; const close = (event?: MouseEvent) => { + dismissTimer && clearTimeout(dismissTimer) const dom = alertEl.value dom.style.height = `${dom.offsetHeight}px` // 重复一次后才能正确设置 height @@ -47,13 +48,14 @@ export default defineComponent({ } const afterLeave = () => { + dismissTimer = undefined; hide.value = true closing.value = false } onMounted(() => { if (props.dismissTime) { - setTimeout(() => { + dismissTimer = window.setTimeout(() => { close() }, props.dismissTime) } @@ -65,9 +67,8 @@ export default defineComponent({
{props.closeable ? (