功能:告警数据看板替换原告警汇总页

- 5 个 KPI 卡片(今日告警/待处理/已处理/平均响应/在线设备)
- 告警趋势面积图(7天/30天切换,按类型堆叠)
- 告警类型分布环形图(中心显示总数)
- 设备告警 Top10 横向条形图
- 告警级别分布柱状图
- 24小时时段分布图(高亮高峰时段)
- 最近告警滚动列表
- 60秒自动刷新

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-18 17:11:02 +08:00
parent 58db3c7eb4
commit d2a77079af
3 changed files with 712 additions and 60 deletions

View File

@@ -66,12 +66,38 @@ export namespace AiotAlarmApi {
export interface AlertStatistics {
total?: number;
todayCount?: number;
yesterdayCount?: number;
pendingCount?: number;
handledCount?: number;
avgResponseMinutes?: number | null;
byType?: Record<string, number>;
byStatus?: Record<string, number>;
byLevel?: Record<string, number>;
}
/** 告警趋势项 */
export interface TrendItem {
date: string;
total: number;
leave_post?: number;
intrusion?: number;
illegal_parking?: number;
vehicle_congestion?: number;
[key: string]: number | string | undefined;
}
/** 设备告警排行项 */
export interface DeviceTopItem {
deviceId: string;
deviceName: string;
count: number;
}
/** 时段分布项 */
export interface HourDistItem {
hour: number;
count: number;
}
}
// ==================== 告警管理 API ====================
@@ -115,6 +141,37 @@ export function getAlertStatistics(startTime?: string, endTime?: string) {
);
}
/** 获取告警趋势 */
export function getAlertTrend(days: number = 7) {
return requestClient.get<AiotAlarmApi.TrendItem[]>(
'/aiot/alarm/alert/trend',
{ params: { days } },
);
}
/** 获取设备告警排行 */
export function getAlertDeviceTop(limit: number = 10, days: number = 7) {
return requestClient.get<AiotAlarmApi.DeviceTopItem[]>(
'/aiot/alarm/alert/device-top',
{ params: { limit, days } },
);
}
/** 获取24小时告警分布 */
export function getAlertHourDistribution(days: number = 7) {
return requestClient.get<AiotAlarmApi.HourDistItem[]>(
'/aiot/alarm/alert/hour-distribution',
{ params: { days } },
);
}
/** 获取最近告警列表 */
export function getRecentAlerts(pageSize: number = 10) {
return requestClient.get<any>('/aiot/alarm/alert/page', {
params: { pageNo: 1, pageSize },
});
}
// ==================== 摄像头告警汇总 API ====================
/** 以摄像头维度获取告警汇总 */