From 2740254cf1ead0d75bc66ce83a899c86430ddf74 Mon Sep 17 00:00:00 2001 From: tbphp Date: Sun, 13 Jul 2025 23:50:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8A=98=E7=BA=BF?= =?UTF-8?q?=E5=9B=BE=E6=97=B6=E5=8C=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/dashboard_handler.go | 2 +- web/src/components/LineChart.vue | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/internal/handler/dashboard_handler.go b/internal/handler/dashboard_handler.go index cb1024c..f09102b 100644 --- a/internal/handler/dashboard_handler.go +++ b/internal/handler/dashboard_handler.go @@ -135,7 +135,7 @@ func (s *Server) Chart(c *gin.Context) { for i := 0; i < 24; i++ { hour := twentyFourHoursAgo.Add(time.Duration(i) * time.Hour).Truncate(time.Hour) - labels = append(labels, hour.Format("15:04")) + labels = append(labels, hour.Format(time.RFC3339)) if data, ok := statsByHour[hour]; ok { successData = append(successData, data["success"]) diff --git a/web/src/components/LineChart.vue b/web/src/components/LineChart.vue index 50b45f1..496c6f7 100644 --- a/web/src/components/LineChart.vue +++ b/web/src/components/LineChart.vue @@ -72,6 +72,16 @@ const yTicks = computed(() => { return Array.from({ length: tickCount }, (_, i) => min + i * step); }); +// 格式化时间标签 +const formatTimeLabel = (isoString: string) => { + const date = new Date(isoString); + return date.toLocaleTimeString(undefined, { + hour: "2-digit", + minute: "2-digit", + hour12: false, + }); +}; + // 生成可见的X轴标签(避免重叠) const visibleLabels = computed(() => { if (!chartData.value) { @@ -82,7 +92,9 @@ const visibleLabels = computed(() => { const maxLabels = 8; // 最多显示8个标签 const step = Math.ceil(labels.length / maxLabels); - return labels.map((label, index) => ({ text: label, index })).filter((_, i) => i % step === 0); + return labels + .map((label, index) => ({ text: formatTimeLabel(label), index })) + .filter((_, i) => i % step === 0); }); // 位置计算函数 @@ -266,7 +278,7 @@ const handleMouseMove = (event: MouseEvent) => { }; tooltipData.value = { - time: chartData.value.labels[closestTimeIndex], + time: formatTimeLabel(chartData.value.labels[closestTimeIndex]), datasets: datasetsAtTime, }; } else {