All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- 后端 Range 类型精简到 thisWeek / thisMonth / last15 rangeClause 同步精简;删除 today / thisQuarter / last7 / last30 分支 - 新增 enumerateDates(range):列出 range 内全部日期,用于补零 - /hydrogen/daily:用 enumerateDates 补齐缺失日期 totalKg=0、stations=[] 补零后基于完整日期序列重算环比(0→上一日有值时显示 -100%) - /electric/monthly:增加 range 参数,扁平日聚合 + 月份分组 缺失日期同样补零;环比基于补零序列重算 - 默认 range 改 last15 前端 - HydrogenDaily QUICK_PICK_OPTIONS 收紧到 3 项,默认 last15 - ElectricDaily 之前没有日期速选,现按氢能样式加上同样 3 项 类型 DateQuickPick 改 'thisWeek' | 'thisMonth' | 'last15' Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { fetchJson } from '../../auth/api-client';
|
|
import type {
|
|
HydrogenKpi, HydrogenStationTop, HydrogenRegionShare, HydrogenDailyRow,
|
|
ElectricKpi, ElectricDailyRow, ElectricMonthGroup,
|
|
CustomerType, DateQuickPick,
|
|
} from './types';
|
|
|
|
const BASE = '/api/energy';
|
|
|
|
export interface HydrogenOverviewResponse {
|
|
kpi: HydrogenKpi;
|
|
top5: HydrogenStationTop[];
|
|
regions: HydrogenRegionShare[];
|
|
}
|
|
|
|
export function fetchHydrogenOverview(): Promise<HydrogenOverviewResponse> {
|
|
return fetchJson<HydrogenOverviewResponse>(`${BASE}/hydrogen/overview`);
|
|
}
|
|
|
|
export function fetchHydrogenDaily(range: DateQuickPick, customer: CustomerType): Promise<HydrogenDailyRow[]> {
|
|
const q = new URLSearchParams({ range, customer });
|
|
return fetchJson<HydrogenDailyRow[]>(`${BASE}/hydrogen/daily?${q.toString()}`);
|
|
}
|
|
|
|
export interface ElectricOverviewResponse {
|
|
kpi: ElectricKpi;
|
|
trend: ElectricDailyRow[];
|
|
}
|
|
|
|
export function fetchElectricOverview(): Promise<ElectricOverviewResponse> {
|
|
return fetchJson<ElectricOverviewResponse>(`${BASE}/electric/overview`);
|
|
}
|
|
|
|
export function fetchElectricMonthly(customer: CustomerType, range: DateQuickPick = 'last15'): Promise<ElectricMonthGroup[]> {
|
|
const q = new URLSearchParams({ customer, range });
|
|
return fetchJson<ElectricMonthGroup[]>(`${BASE}/electric/monthly?${q.toString()}`);
|
|
}
|