From 5e766cda51738281f7a77bb1a9706d8acc335cf8 Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Sun, 8 Mar 2026 22:33:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E5=90=8E=E9=80=89=E6=8B=A9=E5=AF=B9=E8=AF=9D=E6=97=B6?= =?UTF-8?q?=E4=BC=98=E5=85=88=E9=80=89=E6=8B=A9=E9=9D=9E=E7=BD=AE=E9=A1=B6?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getFirstNonPinnedChat 函数获取第一个非置顶对话 - 修改三处选择对话逻辑:初始加载、创建新对话、删除对话后 --- web/src/components/AgentChatComponent.vue | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/web/src/components/AgentChatComponent.vue b/web/src/components/AgentChatComponent.vue index b0625afe..5109d155 100644 --- a/web/src/components/AgentChatComponent.vue +++ b/web/src/components/AgentChatComponent.vue @@ -1270,10 +1270,15 @@ const isFirstChatEmpty = () => { return firstThreadMessages.length === 0 } -// 如果第一个对话为空,直接切换到第一个对话 +// 获取第一个非置顶的对话 +const getFirstNonPinnedChat = (chatList) => { + return chatList.find((chat) => !chat.is_pinned) || chatList[0] +} + +// 如果第一个对话为空,直接切换到第一个非置顶对话 const switchToFirstChatIfEmpty = async () => { if (threads.value.length > 0 && isFirstChatEmpty()) { - await selectChat(threads.value[0].id) + await selectChat(getFirstNonPinnedChat(threads.value).id) return true } return false @@ -1368,8 +1373,8 @@ const deleteChat = async (chatId) => { // 如果删除的是当前对话,自动创建新对话 await createNewChat() } else if (chatsList.value.length > 0) { - // 如果删除的不是当前对话,选择第一个可用对话 - await selectChat(chatsList.value[0].id) + // 如果删除的不是当前对话,选择第一个非置顶可用对话 + await selectChat(getFirstNonPinnedChat(chatsList.value).id) } } catch (error) { handleChatError(error, 'delete') @@ -1732,9 +1737,9 @@ const loadChatsList = async () => { chatState.currentThreadId = null } - // 如果有线程但没有选中任何线程,自动选择第一个 + // 如果有线程但没有选中任何线程,自动选择第一个非置顶对话 if (threads.value.length > 0 && !chatState.currentThreadId) { - await selectChat(threads.value[0].id) + await selectChat(getFirstNonPinnedChat(threads.value).id) } } catch (error) { handleChatError(error, 'load')