feat(platform): align realtime copy with vehicle monitoring

This commit is contained in:
lingniu
2026-07-06 04:44:31 +08:00
parent 77c5730e77
commit b9b5409acb
2 changed files with 18 additions and 18 deletions

View File

@@ -397,7 +397,7 @@ function realtimeDutyHandoffText({
})
.slice(0, 8);
const lines = [
'【实时运营交接包】',
'【车辆监控交付包】',
`当前筛选:${realtimeFilterSummary(filters).join('') || '全部实时车辆'}`,
`页面车辆:${rows.length.toLocaleString()} / 总计 ${total.toLocaleString()};版本:${runtimeRelease || '未标记'}`,
`在线:${onlineCount.toLocaleString()};离线:${(rows.length - onlineCount).toLocaleString()};定位有效:${locatedCount.toLocaleString()};需要关注:${degradedCount.toLocaleString()};超时:${staleCount.toLocaleString()};数据通道:${sourceTypeCount.toLocaleString()}`,
@@ -455,7 +455,7 @@ function realtimeImpactReportText({
const offlineCount = Math.max(0, rows.length - onlineCount);
const impactLevel = degradedCount > 0 || staleCount > 0 || offlineCount > 0 ? '需要处置' : '实时稳定';
return [
'【实时运营影响】',
'【车辆监控影响】',
`当前筛选:${realtimeFilterSummary(filters).join('') || '全部实时车辆'}`,
`运行版本:${runtimeRelease || '未标记'}`,
`影响等级:${impactLevel}`,
@@ -1004,7 +1004,7 @@ export function Realtime({
sourceTypeCount: primaryProtocols.size,
amapConfigured,
runtimeRelease: runtime?.platformRelease
}), '实时运营交接包');
}), '车辆监控交付包');
const realtimeImpactLevel = degradedCount > 0 || staleCount > 0 || rows.length - onlineCount > 0 ? '需要处置' : '实时稳定';
const realtimeImpactColor = realtimeImpactLevel === '实时稳定' ? 'green' as const : degradedCount > 0 || staleCount > 0 ? 'orange' as const : 'blue' as const;
const realtimeImpactItems = [
@@ -1050,7 +1050,7 @@ export function Realtime({
pageCoverageRate,
amapConfigured,
runtimeRelease: runtime?.platformRelease
}), '实时运营影响');
}), '车辆监控影响');
const selectRealtimeRow = (row: VehicleRealtimeRow) => {
const index = rows.indexOf(row);
if (index < 0) return;
@@ -1582,7 +1582,7 @@ export function Realtime({
];
const mapViewModeItems = [
{
label: '运营总览',
label: '车辆总览',
value: `${rows.length.toLocaleString()}`,
detail: `在线 ${onlineCount.toLocaleString()},有效定位 ${locatedCount.toLocaleString()},先确认客户能看到的车辆范围。`,
action: '当前页',
@@ -2057,7 +2057,7 @@ export function Realtime({
level: '交付',
title: '导出当前实时清单',
value: `${rows.length.toLocaleString()} 辆当前页`,
detail: '客户问询或运营交接时,先导出当前筛选的车辆在线、位置、速度和里程。',
detail: '客户问询或交付复盘时,先导出当前筛选的车辆在线、位置、速度和里程。',
action: '导出 CSV',
color: rows.length > 0 ? 'blue' as const : 'grey' as const,
disabled: rows.length === 0,
@@ -2592,7 +2592,7 @@ export function Realtime({
</Tag>
<Tag color={selectedMapRow ? 'blue' : 'grey'}>{selectedVehicleLabel}</Tag>
</Space>
<Typography.Text strong>使</Typography.Text>
<Typography.Text strong>使</Typography.Text>
<Typography.Text type="secondary">
</Typography.Text>
@@ -3072,7 +3072,7 @@ export function Realtime({
</Typography.Title>
<Typography.Text type="secondary">
</Typography.Text>
</div>
<div className="vp-realtime-priority-grid">
@@ -3165,7 +3165,7 @@ export function Realtime({
className="vp-realtime-next-action"
disabled={item.disabled}
onClick={item.onClick}
aria-label={`实时运营建议 ${item.title} ${item.action}`}
aria-label={`车辆监控建议 ${item.title} ${item.action}`}
>
<Tag color={item.color}>{item.level}</Tag>
<strong>{item.title}</strong>
@@ -3392,7 +3392,7 @@ export function Realtime({
<Tag color="green">{onlineCount.toLocaleString()} 线</Tag>
<Button size="small" theme="light" icon={<IconCopy />} aria-label="复制实时摘要" onClick={copyRealtimeSummary}></Button>
<Button size="small" theme="light" icon={<IconCopy />} aria-label="复制实时异常处置清单" onClick={copyRealtimeIssueChecklist}></Button>
<Button size="small" theme="light" icon={<IconCopy />} aria-label="复制实时运营交接包" onClick={copyRealtimeDutyHandoff}></Button>
<Button size="small" theme="light" icon={<IconCopy />} aria-label="复制车辆监控交付包" onClick={copyRealtimeDutyHandoff}></Button>
</Space>
</div>
<VehicleMap
@@ -3552,7 +3552,7 @@ export function Realtime({
</div>
<Card
bordered
title={<Space><span></span><Button size="small" icon={<IconCopy />} onClick={copyRealtimeImpact}></Button></Space>}
title={<Space><span></span><Button size="small" icon={<IconCopy />} onClick={copyRealtimeImpact}></Button></Space>}
style={{ marginBottom: 16 }}
>
<div className="vp-realtime-impact-board">