| 12345678910111213141516 |
- import { visualForStatus } from './pointStatus.js'
- export const POINT_ABNORMAL_BUCKETS = ['ALARM', 'WARNING', 'OFFLINE', 'EMPTY']
- export const METRIC_ABNORMAL_BUCKETS = ['WARNING', 'ALARM', 'EXPIRED', 'OFFLINE', 'UNKNOWN']
- const METRIC_LABELS = { WARNING: '预警', ALARM: '报警', EXPIRED: '过期', OFFLINE: '离线', UNKNOWN: '未发布' }
- /** Successful count distributions omit empty buckets; no totals across object types. */
- export function abnormalCountRows(rows, kind) {
- const source = new Map((Array.isArray(rows) ? rows : []).map((row) => [row.status, row.count]))
- const keys = kind === 'point' ? POINT_ABNORMAL_BUCKETS : METRIC_ABNORMAL_BUCKETS
- return keys.map((code) => ({
- code,
- label: kind === 'point' ? visualForStatus(code).label : METRIC_LABELS[code],
- count: typeof source.get(code) === 'number' && Number.isFinite(source.get(code)) ? source.get(code) : 0,
- }))
- }
|