diff --git a/vehicle-data-platform/apps/web/src/App.tsx b/vehicle-data-platform/apps/web/src/App.tsx index 4cadc42e..907b9def 100644 --- a/vehicle-data-platform/apps/web/src/App.tsx +++ b/vehicle-data-platform/apps/web/src/App.tsx @@ -395,7 +395,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 3afad5b1..f1007c35 100644 --- a/vehicle-data-platform/apps/web/src/pages/Quality.tsx +++ b/vehicle-data-platform/apps/web/src/pages/Quality.tsx @@ -265,6 +265,7 @@ export function Quality({ onOpenVehicle, onOpenRealtime, onOpenHistory, + onOpenRaw, onOpenMileage, onHealthLoaded, onFiltersChange, @@ -273,6 +274,7 @@ export function Quality({ onOpenVehicle: (vin: string, protocol?: string) => void; onOpenRealtime?: (filters: Record) => void; onOpenHistory?: (filters: Record) => void; + onOpenRaw?: (filters: Record) => void; onOpenMileage?: (filters: Record) => void; onHealthLoaded?: (health: OpsHealth) => void; onFiltersChange?: (filters: Record) => void; @@ -367,6 +369,18 @@ export function Quality({ ...(dateTo ? { dateTo } : {}) }); }; + const openIssueRaw = (row: QualityIssueRow) => { + const lookup = qualityIssueVehicleLookup(row); + const dateFrom = issueEvidenceDate(row.lastSeen); + const dateTo = nextDate(dateFrom); + onOpenRaw?.({ + keyword: lookup.key, + protocol: row.protocol, + ...(dateFrom ? { dateFrom } : {}), + ...(dateTo ? { dateTo } : {}), + includeFields: 'true' + }); + }; const openIssueRealtime = (row: QualityIssueRow) => { const lookup = qualityIssueVehicleLookup(row); onOpenRealtime?.({ @@ -620,7 +634,7 @@ export function Quality({ }, { title: '操作', - width: 410, + width: 480, render: (_: unknown, row: QualityIssueRow) => { const lookup = qualityIssueVehicleLookup(row); return ( @@ -629,6 +643,7 @@ export function Quality({ +