Use DEB values in multi-day forecasts

This commit is contained in:
2569718930@qq.com
2026-03-23 21:41:27 +08:00
parent 6feb4ff489
commit 354d55f752
2 changed files with 13 additions and 2 deletions
+8 -1
View File
@@ -926,9 +926,12 @@ function renderDecision(detail) {
function renderForecast(detail) {
const symbol = detail?.temp_symbol || "°C";
const daily = Array.isArray(detail?.forecast?.daily) ? detail.forecast.daily : [];
const dailyDeb = detail?.multi_model_daily || {};
els.forecastRow.innerHTML = "";
for (let i = 0; i < Math.min(daily.length, 6); i += 1) {
const day = daily[i];
const debValue = dailyDeb?.[day?.date]?.deb?.prediction;
const displayTemp = debValue ?? day?.max_temp;
const card = document.createElement("div");
card.className = `forecast-card ${i === 0 ? "today" : ""}`;
@@ -939,7 +942,7 @@ function renderForecast(detail) {
const v = document.createElement("div");
v.className = "f-temp";
v.textContent = formatTemp(day?.max_temp, symbol);
v.textContent = formatTemp(displayTemp, symbol);
card.appendChild(v);
els.forecastRow.appendChild(card);
@@ -1023,6 +1026,10 @@ function normalizeAggregateDetail(payload) {
forecast: {
daily: Array.isArray(timeseries.forecast_daily) ? timeseries.forecast_daily : []
},
multi_model_daily:
timeseries.multi_model_daily && typeof timeseries.multi_model_daily === "object"
? timeseries.multi_model_daily
: {},
hourly: timeseries.hourly || { times: [], temps: [] },
metar_today_obs: timeseries.metar_today_obs || [],
settlement_today_obs: timeseries.settlement_today_obs || [],
@@ -711,6 +711,10 @@ export function ForecastTable() {
if (!data) return null;
const daily = data.forecast?.daily || [];
const resolveForecastTemp = (date: string, fallback: number | null | undefined) => {
const debPrediction = data.multi_model_daily?.[date]?.deb?.prediction;
return debPrediction ?? fallback ?? null;
};
return (
<section className="forecast-section">
<h3>{t("forecast.title")}</h3>
@@ -744,7 +748,7 @@ export function ForecastTable() {
: day.date.substring(5).replace("-", "/")}
</div>
<div className="f-temp">
{day.max_temp}
{resolveForecastTemp(day.date, day.max_temp)}
{data.temp_symbol}
</div>
</button>