diff --git a/web/app.js b/web/app.js index 095b75a..a8eb85c 100644 --- a/web/app.js +++ b/web/app.js @@ -1152,7 +1152,7 @@ function chevronSvg(expanded) { return ''; } -function renderDashDetail(payload, { expandFirst = true } = {}) { +function renderDashDetail(payload, { expandFirst = false } = {}) { const tbody = $("#dashDetailRows"); const title = $("#dashDetailTitle"); if (!tbody) return; @@ -1204,15 +1204,28 @@ function renderDashDetail(payload, { expandFirst = true } = {}) { tbody.replaceChildren(...rows); } +async function resolveDashStartDate() { + if (state.dashFrom) return state.dashFrom; + const response = await fetch("/api/admin/settings").catch(() => null); + if (response?.ok) { + const result = await response.json().catch(() => null); + const startDate = result?.settings?.start_date; + if (startDate) { + state.dashFrom = startDate; + return startDate; + } + } + return "2026-01-01"; +} + async function loadDashCompanyDetail(companyId) { if (!companyId) return; state.dashSelectedId = companyId; renderDashCompanyRows(state.dashCompanies || [], companyId); const tbody = $("#dashDetailRows"); if (tbody) tbody.innerHTML = '加载中…'; - const from = state.dashFrom || "2026-01-01"; - const cutoff = state.dashCutoff || "2026-08-20"; - const response = await fetch(`/api/admin/dashboard/companies/${companyId}?from=${encodeURIComponent(from)}&cutoff=${encodeURIComponent(cutoff)}`).catch(() => null); + const from = await resolveDashStartDate(); + const response = await fetch(`/api/admin/dashboard/companies/${companyId}?from=${encodeURIComponent(from)}`).catch(() => null); if (!response?.ok) { if (tbody) tbody.innerHTML = '明细加载失败'; return; @@ -1223,7 +1236,8 @@ async function loadDashCompanyDetail(companyId) { async function loadAdminDashboard() { if (!$("#dashCompanyRows")) return; - const response = await fetch("/api/admin/dashboard?from=2026-01-01&cutoff=2026-08-20").catch(() => null); + const from = await resolveDashStartDate(); + const response = await fetch(`/api/admin/dashboard?from=${encodeURIComponent(from)}`).catch(() => null); if (!response?.ok) { $("#dashCompanyRows").innerHTML = '总览加载失败'; return; @@ -1239,10 +1253,7 @@ async function loadAdminDashboard() { updateDashAuditCard(data.audit); state.dashAuditFromApi = true; const statusHead = $("#dashStatusHead"); - if (statusHead) { - // Align with the static「7 月账期」cards on the same page until monthly-close exists. - statusHead.textContent = "7月状态"; - } + if (statusHead && data.period_month) statusHead.textContent = `${data.period_month}月状态`; const listSub = $("#dashListSub"); if (listSub) listSub.textContent = `${data.from_date} 至 ${data.cutoff} · 单位:万元`; renderBarChart(state.dashCompanies);