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 (
-
+
} onClick={() => copyText(row.phone, '手机号')}>手机号
} onClick={() => copyText(row.sourceEndpoint, '来源')}>来源
+