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');