fix: 用 loading class 精确定位placeholder,修复RAG下loading不消失
上次用 :last-of-type 修复无效(:last-of-type 也是按元素类型div匹配, 系统消息也是div,一样命中不了placeholder)。 改用给 placeholder 加 .loading class 的方案: - appendAssistantPlaceholder 添加 .loading class - updateLastAssistantMessage 用 .message.assistant.loading 选择器 - 成功/失败后移除 .loading class 选择器不再依赖 DOM 位置,彻底不受 appendSystemMessage 影响。
This commit is contained in:
@@ -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');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user