diff --git a/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx b/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx
index 153a35f9..d9620b01 100644
--- a/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx
+++ b/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx
@@ -15,12 +15,20 @@ function formatLag(value?: number | null) {
return value == null ? '未接入' : value.toLocaleString();
}
-function qualityVehicleLookupKey(row: QualityIssueRow) {
+function qualityVehicleLookup(row: QualityIssueRow) {
const vin = row.vin?.trim();
if (vin && vin !== 'unknown') {
- return vin;
+ return { key: vin, label: '车辆服务' };
}
- return row.plate?.trim() || row.phone?.trim() || '';
+ const plate = row.plate?.trim();
+ if (plate) {
+ return { key: plate, label: '按车牌查车' };
+ }
+ const phone = row.phone?.trim();
+ if (phone) {
+ return { key: phone, label: '按手机号查车' };
+ }
+ return { key: '', label: '车辆服务' };
}
export function Dashboard({ onOpenVehicle, onOpenQuality }: { onOpenVehicle: (vin: string) => void; onOpenQuality: () => void }) {
@@ -138,10 +146,11 @@ export function Dashboard({ onOpenVehicle, onOpenQuality }: { onOpenVehicle: (vi
{ title: '最后时间', dataIndex: 'lastSeen', width: 170 },
{
title: '操作',
- width: 110,
- render: (_: unknown, row: QualityIssueRow) => (
-
- )
+ width: 130,
+ render: (_: unknown, row: QualityIssueRow) => {
+ const lookup = qualityVehicleLookup(row);
+ return ;
+ }
}
]}
/>
diff --git a/vehicle-data-platform/apps/web/src/pages/Quality.tsx b/vehicle-data-platform/apps/web/src/pages/Quality.tsx
index 40f5deed..2e8f98aa 100644
--- a/vehicle-data-platform/apps/web/src/pages/Quality.tsx
+++ b/vehicle-data-platform/apps/web/src/pages/Quality.tsx
@@ -49,12 +49,20 @@ async function copyText(value: string, label: string) {
}
}
-function vehicleLookupKey(row: QualityIssueRow) {
+function vehicleLookup(row: QualityIssueRow) {
const vin = row.vin?.trim();
if (vin && vin !== 'unknown') {
- return vin;
+ return { key: vin, label: '车辆服务' };
}
- return row.plate?.trim() || row.phone?.trim() || '';
+ const plate = row.plate?.trim();
+ if (plate) {
+ return { key: plate, label: '按车牌查车' };
+ }
+ const phone = row.phone?.trim();
+ if (phone) {
+ return { key: phone, label: '按手机号查车' };
+ }
+ return { key: '', label: '车辆服务' };
}
export function Quality({
@@ -185,19 +193,18 @@ export function Quality({
{
title: '操作',
width: 250,
- render: (_: unknown, row: QualityIssueRow) => (
-
- } onClick={() => copyText(row.phone, '手机号')}>手机号
- } onClick={() => copyText(row.sourceEndpoint, '来源')}>来源
-
-
- )
+ render: (_: unknown, row: QualityIssueRow) => {
+ const lookup = vehicleLookup(row);
+ return (
+
+ } onClick={() => copyText(row.phone, '手机号')}>手机号
+ } onClick={() => copyText(row.sourceEndpoint, '来源')}>来源
+
+
+ );
+ }
}
]}
/>