perf: 实时监控性能优化
- 后端:车辆关联信息缓存5分钟、两库并行查询、支持服务端 筛选/排序/分页(默认返回100条) - 前端:筛选和排序参数传给后端,不再加载全量数据 - 筛选选项(部门/客户/车牌)仅首次加载获取 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,8 +8,25 @@ async function fetchJson<T>(url: string): Promise<T> {
|
||||
return res.json();
|
||||
}
|
||||
|
||||
export async function fetchMonitoring(): Promise<MonitoringData> {
|
||||
return fetchJson<MonitoringData>(`${BASE}/monitoring`);
|
||||
export async function fetchMonitoring(params?: {
|
||||
sortBy?: string;
|
||||
sortOrder?: string;
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
search?: string;
|
||||
dept?: string;
|
||||
customer?: string;
|
||||
}): Promise<MonitoringData> {
|
||||
const query = new URLSearchParams();
|
||||
if (params?.sortBy) query.set('sortBy', params.sortBy);
|
||||
if (params?.sortOrder) query.set('sortOrder', params.sortOrder);
|
||||
if (params?.limit) query.set('limit', String(params.limit));
|
||||
if (params?.offset) query.set('offset', String(params.offset));
|
||||
if (params?.search) query.set('search', params.search);
|
||||
if (params?.dept) query.set('dept', params.dept);
|
||||
if (params?.customer) query.set('customer', params.customer);
|
||||
const qs = query.toString();
|
||||
return fetchJson<MonitoringData>(`${BASE}/monitoring${qs ? `?${qs}` : ''}`);
|
||||
}
|
||||
|
||||
export async function fetchTargets(): Promise<TargetSummary[]> {
|
||||
|
||||
Reference in New Issue
Block a user