删除会话功能开发

This commit is contained in:
冯辉
2026-03-16 18:50:38 +08:00
parent 8e03d70e8e
commit f2e32a9afa
2 changed files with 75 additions and 5 deletions

View File

@@ -341,6 +341,41 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
messages.value = messages.value.filter(msg => msg.id !== messageId);
}
async function deleteSession(sessionId) {
if (!baseDB.isDBReady) await baseDB.initDB();
// 删除会话相关的所有消息
const messagesList = await baseDB.db.queryByField(massageName.value, 'parentGroupId', sessionId);
for (const msg of messagesList) {
await baseDB.db.delete(massageName.value, msg.id);
}
// 删除会话本身
const allSessions = await baseDB.db.getAll(tableName.value);
const sessionToDelete = allSessions.find(session => session.sessionId === sessionId);
if (sessionToDelete) {
await baseDB.db.delete(tableName.value, sessionToDelete.id);
}
// 更新会话列表
const result = await baseDB.db.getAll(tableName.value);
const [table] = insertSortData(result.reverse());
tabeList.value = table;
// 如果删除的是当前会话,切换到第一个会话或清空
if (chatSessionID.value === sessionId) {
if (tabeList.value.length > 0) {
const firstSession = tabeList.value.find(item => !item.isTitle);
if (firstSession) {
chatSessionID.value = firstSession.sessionId;
initMessage(firstSession.sessionId);
} else {
chatSessionID.value = '';
messages.value = [];
}
} else {
chatSessionID.value = '';
messages.value = [];
}
}
}
return {
messages,
isTyping,
@@ -355,7 +390,8 @@ const useChatGroupDBStore = defineStore("messageGroup", () => {
getStearm,
getHistory,
badFeedback,
deleteMessage
deleteMessage,
deleteSession
};
});