feat(platform): add map vehicle handoff card
This commit is contained in:
@@ -513,6 +513,29 @@ function mapCustomerPackageText({
|
||||
].filter(Boolean).join('\n');
|
||||
}
|
||||
|
||||
function selectedMapVehicleHandoffText(row: VehicleRealtimeRow, protocol: string) {
|
||||
const vin = row.vin || '';
|
||||
const vehicle = `${row.plate || '-'} / ${vin || '-'} / ${protocol || row.primaryProtocol || '-'}`;
|
||||
const position = isValidCoordinate(row) ? `${row.longitude},${row.latitude}` : '无有效坐标';
|
||||
return [
|
||||
'【地图选中车辆交接卡】',
|
||||
`车辆:${vehicle}`,
|
||||
`服务状态:${vehicleServiceStatus(row).label}`,
|
||||
`在线状态:${row.online ? '在线' : '离线'}`,
|
||||
`最后上报:${row.lastSeen || '-'}`,
|
||||
`位置:${position}`,
|
||||
`速度:${row.speedKmh ?? '-'} km/h;SOC:${row.socPercent ?? '-'}%;总里程:${row.totalMileageKm ?? '-'} km`,
|
||||
`问题:${realtimeIssueLabels(row).join(';')}`,
|
||||
`建议动作:${realtimeIssueAction(row)}`,
|
||||
`车辆服务:${appURL(buildAppHash({ page: 'detail', keyword: vin, protocol }))}`,
|
||||
`实时地图:${appURL(buildAppHash({ page: 'map', keyword: vin, protocol }))}`,
|
||||
`轨迹回放:${appURL(buildAppHash({ page: 'history', keyword: vin, protocol }))}`,
|
||||
`统计查询:${appURL(buildAppHash({ page: 'mileage', keyword: vin, protocol }))}`,
|
||||
`历史数据:${appURL(buildAppHash({ page: 'history-query', keyword: vin, protocol, filters: { tab: 'raw', includeFields: 'true' } }))}`,
|
||||
`告警通知:${appURL(buildAppHash({ page: 'alert-events', keyword: vin, protocol }))}`
|
||||
].join('\n');
|
||||
}
|
||||
|
||||
function mapCustomerDecisionText({
|
||||
filters,
|
||||
rows,
|
||||
@@ -1065,6 +1088,13 @@ export function Realtime({
|
||||
filters: { tab: 'raw', includeFields: 'true' }
|
||||
});
|
||||
};
|
||||
const copySelectedMapVehicleHandoff = () => {
|
||||
if (!selectedMapRow || !canOpenVehicle(selectedMapRow.vin)) {
|
||||
Toast.warning('请先选择可交接的车辆');
|
||||
return;
|
||||
}
|
||||
copyText(selectedMapVehicleHandoffText(selectedMapRow, selectedVehicleProtocol), '选中车辆交接卡');
|
||||
};
|
||||
const mapVehicleWorkItems = [
|
||||
{
|
||||
title: '车辆服务',
|
||||
@@ -2213,6 +2243,17 @@ export function Realtime({
|
||||
<strong>历史导出</strong>
|
||||
<span>{selectedMapRow ? selectedVehicleProtocol || selectedMapRow.primaryProtocol || '全部通道' : '等待选择'}</span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className="vp-map-selected-service-action"
|
||||
disabled={!selectedMapRow || !canOpenVehicle(selectedMapRow.vin)}
|
||||
onClick={copySelectedMapVehicleHandoff}
|
||||
aria-label="地图选中车辆 交接卡 复制交接"
|
||||
>
|
||||
<Tag color="blue">交接卡</Tag>
|
||||
<strong>复制交接</strong>
|
||||
<span>{selectedMapRow ? realtimeIssueLabels(selectedMapRow)[0] : '等待选择'}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user