All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
参考 https://bi.lnh2e.com/lingniu/decision/link/0iqP 重新设计: - 4 张高密度 KPI 卡:累计加氢量 / 累计加氢费 / 本月加氢 / 本日加氢 每张含主指标 + 2 行明细(我司/客户、加氢费/占比) - 新增年内月度加氢量柱图(缺失月份补 0) - 数字格式化:万元/亿元/T 单位自动切换,tabular-nums 对齐 - 后端 /hydrogen/overview 增加 monthly 字段 - 骨架屏同步更新 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { fetchJson } from '../../auth/api-client';
|
|
import type {
|
|
HydrogenKpi, HydrogenStationTop, HydrogenRegionShare, HydrogenMonthlyPoint, HydrogenDailyRow,
|
|
ElectricKpi, ElectricDailyRow, ElectricMonthGroup,
|
|
CustomerType, DateQuickPick,
|
|
} from './types';
|
|
|
|
const BASE = '/api/energy';
|
|
|
|
export interface HydrogenOverviewResponse {
|
|
kpi: HydrogenKpi;
|
|
top5: HydrogenStationTop[];
|
|
regions: HydrogenRegionShare[];
|
|
monthly: HydrogenMonthlyPoint[];
|
|
}
|
|
|
|
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()}`);
|
|
}
|