fix: 修复loading动画不去掉的问题 - isRegenerating标志在user_message时被错误重置
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user