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);
}
}