fix: speed up chat detail pagination
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -8,6 +8,7 @@ import type {
|
||||
AiLogRecord,
|
||||
ApiResponse,
|
||||
ChatDetail,
|
||||
ChatMessageRecord,
|
||||
ChatRecord,
|
||||
ChatRecordQuery,
|
||||
DashboardStats,
|
||||
@@ -203,6 +204,8 @@ export const api = {
|
||||
chats: (query: ChatRecordQuery = {}) => request<PageResult<ChatRecord>>(`/admin/chat/list${queryString(query)}`),
|
||||
chatDetail: (sessionId: number, query: { messagePage?: number; messagePageSize?: number } = {}) =>
|
||||
request<ChatDetail>(`/admin/chat/${sessionId}${queryString(query)}`),
|
||||
chatMessages: (sessionId: number, query: { page?: number; pageSize?: number } = {}) =>
|
||||
request<PageResult<ChatMessageRecord>>(`/admin/chat/${sessionId}/messages${queryString(query)}`),
|
||||
exportChats: (query: ChatRecordQuery = {}) => download(`/admin/chat/export${queryString(query)}`, "chat_records.csv"),
|
||||
aiLogs: (query: { sessionId?: number; userId?: number; status?: string; page?: number; pageSize?: number } = {}) =>
|
||||
request<PageResult<AiLogRecord>>(`/admin/ai-log/list${queryString(query)}`),
|
||||
|
||||
Reference in New Issue
Block a user