feat: 添加里程管理 API 客户端

This commit is contained in:
kkfluous
2026-04-01 21:05:29 +08:00
parent a7e617bc6f
commit 5ff3372f2a

View File

@@ -0,0 +1,28 @@
import type { MonitoringData, TargetSummary, TargetVehicle, TrendPoint } from './types';
const BASE = '/api/mileage';
async function fetchJson<T>(url: string): Promise<T> {
const res = await fetch(url);
if (!res.ok) throw new Error(`API error: ${res.status} ${res.statusText}`);
return res.json();
}
export async function fetchMonitoring(): Promise<MonitoringData> {
return fetchJson<MonitoringData>(`${BASE}/monitoring`);
}
export async function fetchTargets(): Promise<TargetSummary[]> {
return fetchJson<TargetSummary[]>(`${BASE}/targets`);
}
export async function fetchTargetVehicles(targetId: number): Promise<TargetVehicle[]> {
return fetchJson<TargetVehicle[]>(`${BASE}/target/${targetId}/vehicles`);
}
export async function fetchTrend(targetId?: number, days = 7): Promise<TrendPoint[]> {
const params = new URLSearchParams();
if (targetId) params.set('targetId', String(targetId));
params.set('days', String(days));
return fetchJson<TrendPoint[]>(`${BASE}/trend?${params.toString()}`);
}