From b1700f242431aba9aa1ec6329497cadeb870a415 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Sun, 19 Apr 2026 23:04:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=E5=A2=9E=E5=8A=A0=20ResizeObserve?= =?UTF-8?q?r=20=E5=88=9D=E5=A7=8B=E5=8C=96=E5=BB=B6=E8=BF=9F=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=A6=96=E6=AC=A1=E6=8C=82=E8=BD=BD=E6=97=B6?= =?UTF-8?q?=E4=BE=A7=E8=BE=B9=E6=A0=8F=E6=84=8F=E5=A4=96=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/AgentChatComponent.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/web/src/components/AgentChatComponent.vue b/web/src/components/AgentChatComponent.vue index 78dc3533..51722734 100644 --- a/web/src/components/AgentChatComponent.vue +++ b/web/src/components/AgentChatComponent.vue @@ -813,6 +813,8 @@ const scrollController = new ScrollController('.chat-main') const chatMainRef = ref(null) const isSidebarFloating = ref(false) let chatMainResizeObserver = null +// 初始化延迟标志,避免首次挂载时 ResizeObserver 立即触发导致侧边栏意外关闭 +let isResizeObserverReady = false onMounted(() => { nextTick(() => { @@ -824,6 +826,9 @@ onMounted(() => { if (window.ResizeObserver && chatMainRef.value) { localUIState.chatMainWidth = chatMainRef.value.clientWidth || window.innerWidth chatMainResizeObserver = new ResizeObserver((entries) => { + // 初始化期间跳过检查,等待 layout 稳定 + if (!isResizeObserverReady) return + for (const entry of entries) { const width = entry.contentRect.width localUIState.chatMainWidth = width @@ -846,6 +851,11 @@ onMounted(() => { }) chatMainResizeObserver.observe(chatMainRef.value) } + + // 延迟 50ms 后启用 ResizeObserver 检查,确保 layout 已稳定 + setTimeout(() => { + isResizeObserverReady = true + }, 50) }) setTimeout(() => { localUIState.isInitialRender = false