fix: speed up chat detail pagination

This commit is contained in:
2026-07-30 15:21:26 +08:00
parent 8e2dc1d781
commit 918ef5fa79
4 changed files with 64 additions and 3 deletions

View File

@@ -53,6 +53,7 @@ const previewKnowledgeId = ref<number | null>(null);
const chatDetail = ref<ChatDetail | null>(null);
const chatDetailOpen = ref(false);
const chatDetailLoading = ref(false);
const chatMessagesLoading = ref(false);
const chatDetailSessionId = ref<number | null>(null);
const selectedAiLog = ref<AiLogRecord | null>(null);
const aiLogDetailOpen = ref(false);
@@ -773,7 +774,21 @@ async function loadChatDetail(sessionId = chatDetailSessionId.value, page = chat
}
async function changeChatDetailMessagePage(page: number, pageSize: number) {
await loadChatDetail(chatDetailSessionId.value, page, pageSize);
if (!chatDetailSessionId.value || !chatDetail.value) return;
chatMessagesLoading.value = true;
try {
const result = await api.chatMessages(chatDetailSessionId.value, { page, pageSize });
chatDetail.value = {
...chatDetail.value,
messages: result.items,
messagesPage: result,
};
Object.assign(chatDetailMessagePager, { page: result.page, pageSize: result.pageSize, total: result.total });
} catch (error) {
ElMessage.error(error instanceof Error ? error.message : "聊天消息加载失败");
} finally {
chatMessagesLoading.value = false;
}
}
async function openAiLogDetail(row: AiLogRecord) {
@@ -1244,7 +1259,7 @@ function formatRecordDateTime(value: string, boundary: "start" | "end") {
</section>
<h3 class="detail-title">完整对话</h3>
<section class="conversation-list">
<section v-loading="chatMessagesLoading" class="conversation-list">
<article
v-for="message in chatDetail.messages"
:key="message.id"