diff --git a/dashboard/src/components/chat/Chat.vue b/dashboard/src/components/chat/Chat.vue index c9261bf61..4141f232e 100644 --- a/dashboard/src/components/chat/Chat.vue +++ b/dashboard/src/components/chat/Chat.vue @@ -155,12 +155,12 @@ {{ tm('actions.editTitle') }} + hide-details class="mt-2" @keyup.enter="handleSaveTitle" autofocus /> {{ t('core.common.cancel') }} - {{ t('core.common.save') }} + {{ t('core.common.save') }} @@ -346,6 +346,16 @@ function openImagePreview(imageUrl: string) { imagePreviewDialog.value = true; } +async function handleSaveTitle() { + await saveTitle(); + + // 如果在项目视图中,刷新项目会话列表 + if (selectedProjectId.value) { + const sessions = await getProjectSessions(selectedProjectId.value); + projectSessions.value = sessions; + } +} + function handleReplyMessage(msg: any, index: number) { // 从消息中获取 id (PlatformSessionHistoryMessage 的 id) const messageId = msg.id; @@ -447,6 +457,12 @@ function handleNewChat() { async function handleDeleteConversation(sessionId: string) { await deleteSessionFn(sessionId); messages.value = []; + + // 如果在项目视图中,刷新项目会话列表 + if (selectedProjectId.value) { + const sessions = await getProjectSessions(selectedProjectId.value); + projectSessions.value = sessions; + } } async function handleSelectProject(projectId: string) { @@ -523,8 +539,16 @@ async function handleSendMessage() { } const isCreatingNewSession = !currSessionId.value; + const currentProjectId = selectedProjectId.value; // 保存当前项目ID + if (isCreatingNewSession) { await newSession(); + + // 如果在项目视图中创建新会话,立即退出项目视图 + if (currentProjectId) { + selectedProjectId.value = null; + projectSessions.value = []; + } } const promptToSend = prompt.value.trim(); @@ -556,12 +580,13 @@ async function handleSendMessage() { replyToSend ); - // 如果在项目视图中创建了新会话,自动添加到当前项目 - if (isCreatingNewSession && selectedProjectId.value && currSessionId.value) { - await addSessionToProject(currSessionId.value, selectedProjectId.value); - // 刷新项目会话列表 - const sessions = await getProjectSessions(selectedProjectId.value); - projectSessions.value = sessions; + // 如果在项目中创建了新会话,将其添加到项目 + if (isCreatingNewSession && currentProjectId && currSessionId.value) { + await addSessionToProject(currSessionId.value, currentProjectId); + // 刷新会话列表,移除已添加到项目的会话 + await getSessions(); + // 重新获取会话消息以更新项目信息(用于面包屑显示) + await getSessionMsg(currSessionId.value); } }