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