fix: 修复loading动画不去掉的问题 - isRegenerating标志在user_message时被错误重置

This commit is contained in:
2026-04-13 11:02:32 +08:00
parent 7fa143b5b0
commit e05233fb4f

View File

@@ -264,14 +264,14 @@
if (!isRegenerating) {
appendMessage('user', data.message.content);
}
isRegenerating = false; // 重置标志
// 注意:不要在这里重置 isRegenerating要等 assistant_message 处理后再重置
break;
case 'assistant_message':
if (isRegenerating && regeneratingMessageId) {
// 添加新版本到现有消息
addResponseVersion(regeneratingMessageId, data.message.content, data.message.thinking_content);
hideLoadingIndicator(regeneratingMessageId);
regeneratingMessageId = null;
isRegenerating = false; // 在这里重置标志
} else {
appendMessage('assistant', data.message.content, data.message.thinking_content, data.message.agent_name);
}
@@ -368,6 +368,9 @@
// 更新容器
const container = document.getElementById(`${messageId}_container`);
if (container) {
// 先移除loading如果有
hideLoadingIndicator(messageId);
// 添加思考块(如果有)
const messageBody = container.closest('.message-body');
if (thinking && messageBody) {
@@ -386,7 +389,7 @@
messageBody.insertAdjacentHTML('afterbegin', thinkingHtml);
}
// 隐藏所有旧版本,添加新版本
// 隐藏所有旧版本,显示最新版本
container.querySelectorAll('.response-version').forEach(v => v.classList.remove('active'));
const newVersionHtml = `<div class="response-version active" data-version="${newVersionIndex}">
<div class="markdown-body">${marked.parse(content)}</div>
@@ -401,7 +404,7 @@
if (copySource) copySource.value = content;
}
// 显示版本切换控件
// 显示版本切换控件并更新指示器
showVersionControls(messageId);
}
@@ -432,6 +435,14 @@
const versions = messageVersions[messageId];
if (controls && versions && versions.length > 1) {
controls.style.display = 'flex';
// 新生成的版本是最后一个,切换到最新版本
const container = document.getElementById(`${messageId}_container`);
if (container) {
// 隐藏所有版本,显示最后一个
container.querySelectorAll('.response-version').forEach(v => v.classList.remove('active'));
const lastVersion = container.querySelector(`.response-version[data-version="${versions.length - 1}"]`);
if (lastVersion) lastVersion.classList.add('active');
}
updateVersionIndicator(messageId);
}
}