diff --git a/src/layout/components/Aichat/ChatPopup.vue b/src/layout/components/Aichat/ChatPopup.vue index e1a9d4a..1857fb2 100644 --- a/src/layout/components/Aichat/ChatPopup.vue +++ b/src/layout/components/Aichat/ChatPopup.vue @@ -718,6 +718,10 @@ export default { this.inputMessage = '' this.sending = true + // 定义超时变量 + let streamTimeout = null + let noDataTimeout = null + // 添加到请求队列 const requestId = Date.now() this.requestQueue.push(requestId) @@ -730,6 +734,9 @@ export default { messageId: 'user-' + Date.now() } this.messages.push(userMsg) + + // 添加用户消息后立即滚动到底部 + this.scrollToBottom(false, true) // 立即滚动,强制执行 // 添加AI消息占位符 const aiMsg = { @@ -743,7 +750,7 @@ export default { } this.messages.push(aiMsg) - this.scrollToBottom(true) // 添加消息后使用平滑滚动 + this.scrollToBottom(true, true) // 添加消息后使用平滑滚动,强制执行 try { // 创建流式聊天 @@ -766,7 +773,7 @@ export default { }) // 添加额外的超时保护 - const streamTimeout = setTimeout(() => { + streamTimeout = setTimeout(() => { if (cancel) { cancel('流式响应超时') } @@ -781,7 +788,6 @@ export default { const { reader, decoder } = response let buffer = '' let lastUpdateTime = Date.now() - let noDataTimeout = null while (true) { // 设置无数据超时检测 @@ -907,7 +913,7 @@ export default { // 从监控系统中移除请求 this.activeRequests.delete(requestId) - this.scrollToBottom(true) // 发送完成后使用平滑滚动 + this.scrollToBottom(true, true) // 发送完成后使用平滑滚动,强制执行 } },