From ddf4278dd62142eeae82205053d5ffaa71e185d0 Mon Sep 17 00:00:00 2001 From: imxyy_soope_ Date: Sun, 14 Dec 2025 11:50:27 +0800 Subject: [PATCH] fix: request logs pagination --- frontend/src/api/client.ts | 6 ++++-- frontend/src/components/RequestLogs.tsx | 3 --- src/db/repositories/logs.rs | 10 +++++----- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index d830e93..85da4eb 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -107,7 +107,7 @@ export const authApi = { // Logs API export const logsApi = { - list: (params?: { method?: string; search?: string; page: number; limit: number }) => { + list: (params: { method?: string; search?: string; page: number; limit: number }) => { const query = new URLSearchParams(); if (params?.method) { query.set("method", params.method); @@ -115,8 +115,10 @@ export const logsApi = { if (params?.search) { query.set("search", params.search); } + query.set("page", params.page.toString()); + query.set("limit", params.limit.toString()); const queryString = query.toString(); - return request(`/logs${queryString ? `?${queryString}` : ""}`); + return request(`/logs?${queryString}`); }, methods: () => { return request("/logs/methods"); diff --git a/frontend/src/components/RequestLogs.tsx b/frontend/src/components/RequestLogs.tsx index 79dc46f..11aca4d 100644 --- a/frontend/src/components/RequestLogs.tsx +++ b/frontend/src/components/RequestLogs.tsx @@ -61,12 +61,10 @@ const RequestLogs: Component = () => { return new Date(dateStr).toLocaleString(); }; - // 辅助计算 const totalLogs = () => logsData()?.total || 0; const currentLogs = () => logsData()?.data || []; const totalPages = () => Math.ceil(totalLogs() / PAGE_SIZE); - // 分页操作 const goNext = () => { if (page() < totalPages()) setPage((p) => p + 1); }; @@ -161,7 +159,6 @@ const RequestLogs: Component = () => { - {/* 5. 底部添加分页控制条 */} 0}>
diff --git a/src/db/repositories/logs.rs b/src/db/repositories/logs.rs index a8649e2..a24b864 100644 --- a/src/db/repositories/logs.rs +++ b/src/db/repositories/logs.rs @@ -43,21 +43,21 @@ pub async fn list( total_builder.push(")"); } + builder.push(" ORDER BY created_at DESC"); + if let Some(limit) = limit { - builder.push("LIMIT "); + builder.push(" LIMIT "); builder.push(limit); } if let Some(offset) = offset { - builder.push("OFFSET "); + builder.push(" OFFSET "); builder.push(offset); } - builder.push(" ORDER BY created_at DESC"); - let query = builder.build_query_as(); let logs = query.fetch_all(&mut *tx).await?; - let total = builder + let total = total_builder .build_query_scalar::() .fetch_one(&mut *tx) .await? as usize;