feat(channel-monitor): redesign user dashboard as card grid

Reference check-cx UI: INTELLIGENCE MONITOR hero + 3-column card grid
with 60-point timeline bars.

Backend:
- Add PrimaryPingLatencyMs + Timeline[60] to UserMonitorView
- ListRecentHistoryForMonitors: batch CTE + ROW_NUMBER() window query
- indexLatestByModel / indexAvailabilityByModel helpers

Frontend:
- 7 new components: ProviderIcon, MonitorMetricPair, MonitorAvailabilityRow,
  MonitorTimeline, MonitorHero, MonitorCard, MonitorCardGrid
- ChannelStatusView 381→~180 lines (delegated to subcomponents)
- AbortController reload concurrency protection
- HSL 0-120° availability color mapping
- Replace emoji with Icon component (bolt / globe)
- i18n: monitorCommon.* shared namespace, channelStatus.hero.*

Bump VERSION to 0.1.114.24
This commit is contained in:
erio
2026-04-20 23:38:59 +08:00
parent 20a4e41872
commit a1425b457d
19 changed files with 1134 additions and 278 deletions

View File

@@ -871,7 +871,22 @@ export default {
},
extraModelsHeader: '附加模型',
extraModelsEmpty: '无附加模型',
latencyEmpty: '-'
latencyEmpty: '-',
availabilityPrefix: '可用性',
dialogLatency: '对话延迟',
endpointPing: '端点 PING',
history60pts: '近 {n} 次记录',
nextUpdateIn: '{n}s 后刷新',
past: 'PAST',
now: 'NOW',
maintenancePaused: '维护中 · 已暂停时间线采集',
extraModelsCount: '+ {n} 模型',
pollEvery: '{n}s 轮询',
updatedAt: '更新于 {time}',
relativeSecondsAgo: '{n} 秒前',
relativeMinutesAgo: '{n} 分钟前',
relativeHoursAgo: '{n} 小时前',
relativeDaysAgo: '{n} 天前'
},
// Channel Status (user-facing read-only view)
@@ -884,6 +899,22 @@ export default {
detailLoadError: '加载渠道详情失败',
detailTitle: '渠道详情',
closeDetail: '关闭',
hero: {
breadcrumb: '渠道 · 状态',
title: 'INTELLIGENCE MONITOR',
subtitleZh: '实时追踪各大 AI 模型对话接口的可用性、延迟与官方服务状态。',
subtitleEn: 'Advanced performance metrics for next-gen intelligence.'
},
windowTab: {
'7d': '7 天',
'15d': '15 天',
'30d': '30 天'
},
overall: {
operational: 'OPERATIONAL',
degraded: 'DEGRADED',
unavailable: 'UNAVAILABLE'
},
columns: {
name: '名称',
provider: '供应商',