From 7010a9c76e2bf62c66c00dbba753a281942e504c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Sun, 17 Aug 2025 16:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=85=AC=E5=91=8A=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E4=BC=9A=E5=87=BA=E7=8E=B0=E4=B8=A4=E6=AC=A1=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index b6caa39..8f69ddc 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -530,6 +530,12 @@ const addedStocks = ref(new Set()); // 从stockList生成对话历史 const loadConversationsFromStockList = () => { + // 如果当前正在处理用户发送的消息,跳过加载以避免重复 + if (isRotating.value) { + console.log("正在处理用户消息,跳过对话历史加载"); + return; + } + // 检查是否有新的股票需要添加到对话中 emotionStore.stockList.forEach((stock) => { const stockKey = `${stock.stockInfo.code}_${stock.timestamp}`; @@ -2186,13 +2192,15 @@ async function handleSendMessage(input, onComplete) { isPageLoaded.value = true; // 使用nextTick确保DOM更新后清空对话显示并启动高度监听器 - nextTick(() => { - messages.value = []; - // 启动页面高度监听器,实时监听内容变化并自动滚动 - startHeightObserver(); - // 立即滚动到底部 - scrollToBottom(); - }); + nextTick(() => { + messages.value = []; + // 清空已添加股票的记录,避免重复添加 + addedStocks.value.clear(); + // 启动页面高度监听器,实时监听内容变化并自动滚动 + startHeightObserver(); + // 立即滚动到底部 + scrollToBottom(); + }); // 数据获取成功后,重新获取用户次数以实现实时更新 try {