diff --git a/js/components/chat-area.js b/js/components/chat-area.js index b9abb5a..3ad6f24 100644 --- a/js/components/chat-area.js +++ b/js/components/chat-area.js @@ -221,9 +221,10 @@ export function appendMessageDOM(msg, index) { /** 更新最后一条 assistant 消息(流式输出) */ export function updateLastAssistantMessage(content, think, stats, model) { - const lastMsg = messagesContainerEl.querySelector('.message.assistant:last-of-type'); + const lastMsg = messagesContainerEl.querySelector('.message.assistant.loading'); if (!lastMsg) return; + lastMsg.classList.remove('loading'); const loadingDots = lastMsg.querySelector('.loading-dots'); const loadingText = lastMsg.querySelector('.loading-text'); if (loadingDots) loadingDots.remove(); @@ -284,7 +285,7 @@ export function updateLastAssistantMessage(content, think, stats, model) { /** 追加临时的 assistant 消息占位 */ export function appendAssistantPlaceholder() { const div = document.createElement('div'); - div.className = 'message assistant'; + div.className = 'message assistant loading'; div.innerHTML = `
🤖
diff --git a/js/components/input-area.js b/js/components/input-area.js index 7411eae..13a5422 100644 --- a/js/components/input-area.js +++ b/js/components/input-area.js @@ -511,11 +511,12 @@ ${ragContext} console.error('[InputArea] 流式聊天错误:', err); if (err.name === 'AbortError') { - const placeholder = document.querySelector('#messagesContainer .message.assistant:last-of-type'); + const placeholder = document.querySelector('#messagesContainer .message.assistant.loading'); const loadingDots = placeholder?.querySelector('.loading-dots'); const loadingText = placeholder?.querySelector('.loading-text'); if (loadingDots) loadingDots.remove(); if (loadingText) loadingText.remove(); + placeholder?.classList.remove('loading'); const contentDiv = placeholder?.querySelector('.msg-content'); @@ -547,11 +548,12 @@ ${ragContext} return; } - const placeholder = document.querySelector('#messagesContainer .message.assistant:last-of-type'); + const placeholder = document.querySelector('#messagesContainer .message.assistant.loading'); const loadingDots = placeholder?.querySelector('.loading-dots'); const loadingText = placeholder?.querySelector('.loading-text'); if (loadingDots) loadingDots.remove(); if (loadingText) loadingText.remove(); + placeholder?.classList.remove('loading'); const contentDiv = placeholder?.querySelector('.msg-content');