From 64eecaa82296eafc3451571ee5e284a2b45bdec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=B4=80=E1=B4=8D=E1=B4=9B=E1=B4=8F=E1=B4=80=E1=B4=87?= =?UTF-8?q?=CA=80?= Date: Fri, 9 Jan 2026 18:14:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E8=BE=B9=E7=BC=98=E6=83=85=E5=86=B5=E7=9A=84=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=20(#592)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/bili_sync/src/api/response.rs | 1 + crates/bili_sync/src/api/routes/ws/mod.rs | 1 + web/src/lib/types.ts | 2 +- web/src/routes/+page.svelte | 40 +++++++++++------------ 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/crates/bili_sync/src/api/response.rs b/crates/bili_sync/src/api/response.rs index 3b2a558..67b990c 100644 --- a/crates/bili_sync/src/api/response.rs +++ b/crates/bili_sync/src/api/response.rs @@ -184,6 +184,7 @@ pub struct DashBoardResponse { #[derive(Serialize, Clone, Copy)] pub struct SysInfo { + pub timestamp: i64, pub total_memory: u64, pub used_memory: u64, pub process_memory: u64, diff --git a/crates/bili_sync/src/api/routes/ws/mod.rs b/crates/bili_sync/src/api/routes/ws/mod.rs index 3e297e1..def0634 100644 --- a/crates/bili_sync/src/api/routes/ws/mod.rs +++ b/crates/bili_sync/src/api/routes/ws/mod.rs @@ -262,6 +262,7 @@ impl WebSocketHandler { (available, total) }); let sys_info = SysInfo { + timestamp: chrono::Utc::now().timestamp_millis(), total_memory: system.total_memory(), used_memory: system.used_memory(), process_memory: process.memory(), diff --git a/web/src/lib/types.ts b/web/src/lib/types.ts index 2122a1e..371c274 100644 --- a/web/src/lib/types.ts +++ b/web/src/lib/types.ts @@ -328,6 +328,7 @@ export interface DashBoardResponse { } export interface SysInfo { + timestamp: number; total_memory: number; used_memory: number; process_memory: number; @@ -336,7 +337,6 @@ export interface SysInfo { total_disk: number; used_disk: number; available_disk: number; - uptime: number; } export interface TaskStatus { diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index 92ca4c5..445ac03 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -47,6 +47,15 @@ return `${cpu.toFixed(1)}%`; } + function formatTimestamp(timestamp: number): string { + return new Date(timestamp).toLocaleString('en-US', { + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + hour12: true + }); + } + async function loadDashboard() { loading = true; try { @@ -131,27 +140,28 @@ } } satisfies Chart.ChartConfig; - let memoryHistory: Array<{ time: Date; used: number; process: number }> = []; - let cpuHistory: Array<{ time: Date; used: number; process: number }> = []; + let memoryHistory: Array<{ time: number; used: number; process: number }> = []; + let cpuHistory: Array<{ time: number; used: number; process: number }> = []; $: if (sysInfo) { memoryHistory = [ - ...memoryHistory.slice(-19), + ...memoryHistory.slice(-14), { - time: new Date(), + time: sysInfo.timestamp, used: sysInfo.used_memory, process: sysInfo.process_memory } ]; cpuHistory = [ - ...cpuHistory.slice(-19), + ...cpuHistory.slice(-14), { - time: new Date(), + time: sysInfo.timestamp, used: sysInfo.used_cpu, process: sysInfo.process_cpu } ]; } + // 计算磁盘使用率 $: diskUsagePercent = sysInfo ? ((sysInfo.total_disk - sysInfo.available_disk) / sysInfo.total_disk) * 100 @@ -435,13 +445,8 @@ > {#snippet tooltip()} { - return v.toLocaleString('en-US', { - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - hour12: true - }); + labelFormatter={(timestamp: number) => { + return formatTimestamp(timestamp); }} valueFormatter={(v: number) => formatBytes(v)} indicator="line" @@ -502,13 +507,8 @@ > {#snippet tooltip()} { - return v.toLocaleString('en-US', { - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - hour12: true - }); + labelFormatter={(timestamp: number) => { + return formatTimestamp(timestamp); }} valueFormatter={(v: number) => formatCpu(v)} indicator="line"