feat(platform): clarify quality vehicle lookup action
This commit is contained in:
@@ -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>;
|
||||
}
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
}
|
||||
]}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user