From c7114a4381905757a324996869695df516b0c05a Mon Sep 17 00:00:00 2001 From: sansenhoshi Date: Wed, 1 Jul 2026 11:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A6=82=E8=BF=B0=E6=96=87=E6=9C=AC=E8=A1=A5?= =?UTF-8?q?=E5=85=A8=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/composables/useWeatherStats.ts | 17 +++++++--- weather-data-ui/src/views/home.vue | 33 +++++++++---------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/weather-data-ui/src/composables/useWeatherStats.ts b/weather-data-ui/src/composables/useWeatherStats.ts index 7bf8244..09af5f3 100644 --- a/weather-data-ui/src/composables/useWeatherStats.ts +++ b/weather-data-ui/src/composables/useWeatherStats.ts @@ -58,6 +58,10 @@ export interface SummaryMeta { month: number; day: number; count: number; + /** 实际数据中最早年份 */ + dataFromYear?: number; + /** 实际数据中最晚年份 */ + dataToYear?: number; } // ---------- 纯函数 ---------- @@ -201,14 +205,17 @@ export function buildStatCards(stats: WeatherStats): StatCard[] { } export function buildSummary(stats: WeatherStats, meta: SummaryMeta): string { - const { stationName, fromYear, toYear, month, day, count } = meta; + const { stationName, fromYear, toYear, month, day, count, dataFromYear, dataToYear } = meta; const d = String(day).padStart(2, "0"); + const dataRange = dataFromYear != null && dataToYear != null + ? `(${dataFromYear}-${dataToYear})` + : ""; return [ - `${stationName}在 ${fromYear}~${toYear} 年间,每年${month}月${d}日这一天共回溯 ${count} 条单日记录。`, + `${stationName}在 ${fromYear}~${toYear} 年间,每年${month}月${d}日这一天共回溯 ${count} 条单日记录${dataRange}。`, `其中 ${stats.rainyCount} 年当天出现降水,历史平均单日降雨量 ${stats.avgRain}mm,`, `单日最大降雨 ${stats.maxRain}mm(${stats.maxRainYear}年)。`, - `气候整体${+stats.avgRain > 15 ? "偏湿润" : "较干燥"},`, - `需关注${stats.rainyCount / (count || 1) > 0.5 ? "短时强降水" : "高温干旱"}风险。` + `多年平均最高气温 ${stats.avgTmax}℃,多年平均最低气温 ${stats.avgTmin}℃,`, + `历史最高气温 ${stats.maxTmax}℃(${stats.maxTmaxYear}年),历史最低气温 ${stats.minTmin}℃(${stats.minTminYear}年)。` ].join(""); } @@ -237,7 +244,7 @@ export function useWeatherStats(displayRows: Ref) { } }); - const items = RAIN_LEVELS.map((l, i) => ({ + const items: { label: string; count: number; pct: string }[] = RAIN_LEVELS.map((l, i) => ({ label: l.label, count: counts[i], pct: total > 0 ? ((counts[i] / total) * 100).toFixed(1) : "0.0" diff --git a/weather-data-ui/src/views/home.vue b/weather-data-ui/src/views/home.vue index 93d57b2..ee55930 100644 --- a/weather-data-ui/src/views/home.vue +++ b/weather-data-ui/src/views/home.vue @@ -58,7 +58,8 @@ 历年「{{ anchorMonth }}月{{ padDay }}日」情况

- {{ currentAreaLabel }} 过去 {{ computedSpan }} 年间,每年此日的气象实况,共 {{ pageState.weatherData.length }} 条单日数据。 + {{ currentAreaLabel }} 过去 {{ computedSpan }} 年间,每年此日的气象实况,共 {{ pageState.weatherData.length }} 条单日数据 + 。 其中 {{ pageState.stats.rainyCount }} 年当天出现降水(占比 {{ pageState.stats.rainyPct }}%),最大单日降雨 {{ pageState.stats.maxRain }} mm({{ pageState.stats.maxRainYear }}年),历史单日最高温 {{ pageState.stats.maxTmax }}℃({{ pageState.stats.maxTmaxYear }}年), 历史单日最低温 {{ pageState.stats.minTmin }}℃({{ pageState.stats.minTminYear }}年)。 @@ -396,7 +397,7 @@ - +