feat(platform): clarify quality vehicle lookup action

This commit is contained in:
lingniu
2026-07-04 00:05:25 +08:00
parent bfdfb5761a
commit 0503b03aa1
2 changed files with 39 additions and 23 deletions

View File

@@ -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) => (
<Button disabled={!qualityVehicleLookupKey(row)} onClick={() => onOpenVehicle(qualityVehicleLookupKey(row))}></Button>
)
width: 130,
render: (_: unknown, row: QualityIssueRow) => {
const lookup = qualityVehicleLookup(row);
return <Button disabled={!lookup.key} onClick={() => onOpenVehicle(lookup.key)}>{lookup.label}</Button>;
}
}
]}
/>

View File

@@ -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) => (
<Space spacing={4}>
<Button size="small" icon={<IconCopy />} onClick={() => copyText(row.phone, '手机号')}></Button>
<Button size="small" icon={<IconCopy />} onClick={() => copyText(row.sourceEndpoint, '来源')}></Button>
<Button
size="small"
disabled={!vehicleLookupKey(row)}
onClick={() => onOpenVehicle(vehicleLookupKey(row))}
>
</Button>
</Space>
)
render: (_: unknown, row: QualityIssueRow) => {
const lookup = vehicleLookup(row);
return (
<Space spacing={4}>
<Button size="small" icon={<IconCopy />} onClick={() => copyText(row.phone, '手机号')}></Button>
<Button size="small" icon={<IconCopy />} onClick={() => copyText(row.sourceEndpoint, '来源')}></Button>
<Button size="small" disabled={!lookup.key} onClick={() => onOpenVehicle(lookup.key)}>
{lookup.label}
</Button>
</Space>
);
}
}
]}
/>