feat(platform): add time window monitoring workbench

This commit is contained in:
lingniu
2026-07-05 02:33:17 +08:00
parent f47475a1a9
commit e8d745949e
3 changed files with 147 additions and 0 deletions

View File

@@ -774,6 +774,40 @@ export function Dashboard({
const range = scope.dateFrom || scope.dateTo ? `${scope.dateFrom || '-'}${scope.dateTo || '-'}` : '全部时间';
return `${vehicle} / ${source} / ${range}`;
})();
const timeMonitorWorkbench = [
{
label: '轨迹回放',
value: `${formatCount(summary?.activeToday)} 活跃`,
detail: '查看时间窗内车辆位置、速度、里程和断点。',
action: '打开轨迹',
color: 'blue' as const,
onClick: openTimeMonitorHistory
},
{
label: '里程核对',
value: `${formatCount(serviceSummary?.totalVehicles)} 车辆`,
detail: '用同一范围核对区间里程和日统计闭合。',
action: '核对里程',
color: 'green' as const,
onClick: openTimeMonitorMileage
},
{
label: '历史证据',
value: `${formatCount(summary?.frameToday)}`,
detail: '按车辆、时间和字段裁剪导出 RAW 与解析字段。',
action: '导出证据',
color: 'blue' as const,
onClick: openTimeMonitorRaw
},
{
label: '告警复盘',
value: `${formatCount(summary?.issueVehicles)} 告警`,
detail: '查看该车辆或来源在当前范围内的风险事件。',
action: '查看告警',
color: (summary?.issueVehicles ?? 0) > 0 ? 'orange' as const : 'green' as const,
onClick: openTimeMonitorAlerts
}
];
const dataFlowStages = [
{
stage: '01',
@@ -1274,6 +1308,34 @@ export function Dashboard({
<Typography.Text type="secondary">
</Typography.Text>
<div className="vp-time-monitor-workbench">
<div className="vp-time-monitor-scope">
<Space wrap>
<Tag color="blue"></Tag>
<Tag color={timeMonitorScope().keyword ? 'green' : 'grey'}>{timeMonitorScope().keyword ? '单车' : '全域'}</Tag>
</Space>
<strong>{timeMonitorSummary}</strong>
<Typography.Text type="secondary">
BI
</Typography.Text>
</div>
<div className="vp-time-monitor-work-grid">
{timeMonitorWorkbench.map((item) => (
<button
key={item.label}
type="button"
className="vp-time-monitor-work-item"
onClick={item.onClick}
aria-label={`时间窗作业 ${item.label} ${item.action}`}
>
<Tag color={item.color}>{item.label}</Tag>
<strong>{item.value}</strong>
<span>{item.detail}</span>
<em>{item.action}</em>
</button>
))}
</div>
</div>
<div className="vp-time-monitor-grid">
{[
{ title: '今天车辆轨迹', detail: '查看当天活跃车辆的轨迹、速度和里程断点。', action: '查今天', onClick: openTimeMonitorHistory },