{location ? {row.longitude.toFixed(6)}, {row.latitude.toFixed(6)} : 暂无经纬度}
@@ -173,7 +202,7 @@ const MonitorMobileVehicleCard = memo(function MonitorMobileVehicleCard({ row, o
&& before.mileageAvailable === after.mileageAvailable
&& before.totalMileageKm === after.totalMileageKm
&& before.primaryProtocol === after.primaryProtocol
- && before.protocols.join('|') === after.protocols.join('|')
+ && vehicleProtocolSignature(before) === vehicleProtocolSignature(after)
&& before.locationAvailable === after.locationAvailable
&& before.longitude === after.longitude
&& before.latitude === after.latitude;
@@ -185,7 +214,10 @@ function MonitorVehicleTable({ rows, total, page, totalPages, limit, loading, er
{ title: '速度', dataIndex: 'speedKmh', width: 120, render: (_value: number, row: VehicleRealtimeRow) => <>
{hasRealtimeSpeed(row) ? formatNumber(row.speedKmh, 1) : '—'}{hasRealtimeSpeed(row) ?
km/h : null}> },
{ title: '当日里程', dataIndex: 'todayMileageKm', width: 140, render: (_value: number, row: VehicleRealtimeRow) => <>
{hasTodayMileage(row) ? formatNumber(row.todayMileageKm, 1) : '—'}{hasTodayMileage(row) ?
km : null}> },
{ title: '总里程', dataIndex: 'totalMileageKm', width: 170, render: (_value: number, row: VehicleRealtimeRow) => <>
{hasRealtimeMileage(row) ? formatNumber(row.totalMileageKm, 1) : '—'}{hasRealtimeMileage(row) ?
km : null}> },
- { title: '协议来源', dataIndex: 'primaryProtocol', width: 150, render: (_value: string, row: VehicleRealtimeRow) =>
{row.protocols.length > 1 ?
+{row.protocols.length - 1} 路 : null}
},
+ { title: '协议来源', dataIndex: 'primaryProtocol', width: 150, render: (_value: string, row: VehicleRealtimeRow) => {
+ const sourceProtocols = vehicleProtocols(row);
+ return
{sourceProtocols.length > 1 ?
+{sourceProtocols.length - 1} 路 : null}
;
+ } },
{ title: '经纬度', dataIndex: 'longitude', width: 190, render: (_value: number, row: VehicleRealtimeRow) => hasRealtimeLocation(row) ?
{row.longitude.toFixed(6)}
{row.latitude.toFixed(6)} :
— },
{ title: '地理位置', dataIndex: 'vin', render: (_value: string, row: VehicleRealtimeRow) =>
}
], [onSelect]);
diff --git a/vehicle-data-platform/apps/web/src/v2/styles/workspace.css b/vehicle-data-platform/apps/web/src/v2/styles/workspace.css
index 9f050ce4..7c8ce9f6 100644
--- a/vehicle-data-platform/apps/web/src/v2/styles/workspace.css
+++ b/vehicle-data-platform/apps/web/src/v2/styles/workspace.css
@@ -26869,17 +26869,8 @@
gap: 6px !important;
}
- .v2-monitor-card-heading-actions > b {
- font-size: 15px;
- font-weight: 740;
- }
-
- .v2-monitor-card-heading-actions > b small {
- font-size: 9px;
- }
-
.v2-monitor-card-heading-actions > .v2-monitor-card-locate.semi-button {
- width: 46px;
+ width: 52px;
height: 28px;
min-height: 28px;
border-radius: 7px;
@@ -26889,7 +26880,7 @@
.v2-monitor-mobile-cards .v2-monitor-mobile-primary {
display: grid;
- grid-template-columns: .9fr 1.08fr 1.12fr;
+ grid-template-columns: .72fr 1fr 1.08fr 1.2fr;
gap: 0;
margin: 0;
border-top: 1px solid #edf1f5;
@@ -26935,6 +26926,12 @@
white-space: nowrap;
}
+ .v2-monitor-mobile-cards .v2-monitor-mobile-primary dd > small {
+ color: #8b99aa;
+ font-size: 8px;
+ font-weight: 600;
+ }
+
.v2-monitor-mobile-cards .v2-monitor-mobile-primary dd.is-today {
color: #1268df;
}