feat(platform): link realtime rows to quality evidence

This commit is contained in:
lingniu
2026-07-04 12:06:46 +08:00
parent 276da59194
commit 4ef71c37f2
3 changed files with 147 additions and 3 deletions

View File

@@ -67,11 +67,13 @@ const serviceStatusLabel: Record<string, string> = {
export function Realtime({
onOpenVehicle,
onOpenHistory,
onOpenQuality,
onFiltersChange,
initialFilters = {}
}: {
onOpenVehicle: (vin: string, protocol?: string) => void;
onOpenHistory?: (vin: string, protocol?: string) => void;
onOpenQuality?: (filters: Record<string, string>) => void;
onFiltersChange?: (filters: Record<string, string>) => void;
initialFilters?: Record<string, string>;
}) {
@@ -107,6 +109,13 @@ export function Realtime({
onFiltersChange?.(nextFilters);
load(nextFilters, 1, pagination.pageSize);
};
const openQualityEvidence = (row: VehicleRealtimeRow) => {
if (!canOpenVehicle(row.vin)) return;
onOpenQuality?.({
keyword: row.vin,
protocol: filters.protocol || row.primaryProtocol || ''
});
};
const filterSummary = [
filters.keyword ? `关键词:${filters.keyword}` : '',
filters.protocol ? `数据来源:${filters.protocol}` : '',
@@ -232,6 +241,7 @@ export function Realtime({
<Space spacing={4} wrap>
<Button size="small" onClick={() => window.open(amapMarkerURL(row), '_blank', 'noopener,noreferrer')}></Button>
<Button size="small" onClick={() => onOpenHistory?.(row.vin, filters.protocol || row.primaryProtocol)}></Button>
<Button size="small" disabled={!onOpenQuality} onClick={() => openQualityEvidence(row)}></Button>
<Button size="small" onClick={() => onOpenVehicle(row.vin, filters.protocol || row.primaryProtocol)}></Button>
</Space>
</div>
@@ -293,9 +303,12 @@ export function Realtime({
{ title: '最后时间', dataIndex: 'lastSeen', width: 170 },
{
title: '操作',
width: 110,
width: 190,
render: (_: unknown, row: VehicleRealtimeRow) => (
<Button disabled={!canOpenVehicle(row.vin)} onClick={() => onOpenVehicle(row.vin, filters.protocol || row.primaryProtocol)}></Button>
<Space spacing={4} wrap>
<Button disabled={!canOpenVehicle(row.vin)} onClick={() => onOpenVehicle(row.vin, filters.protocol || row.primaryProtocol)}></Button>
<Button disabled={!canOpenVehicle(row.vin) || !onOpenQuality} onClick={() => openQualityEvidence(row)}></Button>
</Space>
)
}
]}