perf: 实时监控改为缓存+分页架构

后端:
- 每2分钟刷新全量数据到内存缓存(并行查询两库)
- 预计算统计信息(totalToday/totalAll/onlineCount/vehicleCount)
- 预提取筛选选项(departments/customers/plates)
- API 直接从缓存读取,支持分页(每页50条)+筛选+排序

前端:
- KPI 统计使用后端返回的 stats
- 车辆列表分页,带翻页控件
- 筛选选项从后端 filters 获取

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
kkfluous
2026-04-01 22:23:25 +08:00
parent 1fb9d53873
commit aa024f1b64
4 changed files with 196 additions and 105 deletions

View File

@@ -12,7 +12,7 @@ export async function fetchMonitoring(params?: {
sortBy?: string;
sortOrder?: string;
limit?: number;
offset?: number;
page?: number;
search?: string;
dept?: string;
customer?: string;
@@ -21,7 +21,7 @@ export async function fetchMonitoring(params?: {
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?.page) query.set('page', String(params.page));
if (params?.search) query.set('search', params.search);
if (params?.dept) query.set('dept', params.dept);
if (params?.customer) query.set('customer', params.customer);