From 2465bd7f1608f559ae32e777a1b199b1d48f3150 Mon Sep 17 00:00:00 2001 From: lingniu Date: Sat, 4 Jul 2026 12:10:28 +0800 Subject: [PATCH] feat(platform): link quality issues to realtime status --- vehicle-data-platform/apps/web/src/App.tsx | 2 +- .../apps/web/src/pages/Quality.tsx | 14 ++- .../apps/web/src/test/App.test.tsx | 87 +++++++++++++++++++ 3 files changed, 100 insertions(+), 3 deletions(-) diff --git a/vehicle-data-platform/apps/web/src/App.tsx b/vehicle-data-platform/apps/web/src/App.tsx index f05bdf0d..43d31192 100644 --- a/vehicle-data-platform/apps/web/src/App.tsx +++ b/vehicle-data-platform/apps/web/src/App.tsx @@ -379,7 +379,7 @@ export default function App() { detail: , history: , mileage: , - quality: setLinkIssueCount(health.linkHealth.filter((item) => item.status !== 'ok').length)} onFiltersChange={updateQualityFilters} initialFilters={qualityFilters} /> + quality: setLinkIssueCount(health.linkHealth.filter((item) => item.status !== 'ok').length)} onFiltersChange={updateQualityFilters} initialFilters={qualityFilters} /> }; return ( diff --git a/vehicle-data-platform/apps/web/src/pages/Quality.tsx b/vehicle-data-platform/apps/web/src/pages/Quality.tsx index 6fde9788..3afad5b1 100644 --- a/vehicle-data-platform/apps/web/src/pages/Quality.tsx +++ b/vehicle-data-platform/apps/web/src/pages/Quality.tsx @@ -263,6 +263,7 @@ async function copyQualityShareURL() { export function Quality({ onOpenVehicle, + onOpenRealtime, onOpenHistory, onOpenMileage, onHealthLoaded, @@ -270,6 +271,7 @@ export function Quality({ initialFilters = {} }: { onOpenVehicle: (vin: string, protocol?: string) => void; + onOpenRealtime?: (filters: Record) => void; onOpenHistory?: (filters: Record) => void; onOpenMileage?: (filters: Record) => void; onHealthLoaded?: (health: OpsHealth) => void; @@ -365,6 +367,13 @@ export function Quality({ ...(dateTo ? { dateTo } : {}) }); }; + const openIssueRealtime = (row: QualityIssueRow) => { + const lookup = qualityIssueVehicleLookup(row); + onOpenRealtime?.({ + keyword: lookup.key, + protocol: row.protocol + }); + }; const openIssueMileage = (row: QualityIssueRow) => { const lookup = qualityIssueVehicleLookup(row); const dateFrom = issueEvidenceDate(row.lastSeen); @@ -611,13 +620,14 @@ export function Quality({ }, { title: '操作', - width: 330, + width: 410, render: (_: unknown, row: QualityIssueRow) => { const lookup = qualityIssueVehicleLookup(row); return ( - + +