From 5ca6b51d0bb6bfeaa2c2b77ddee46b053579d8ca Mon Sep 17 00:00:00 2001 From: lingniu Date: Sat, 4 Jul 2026 17:04:32 +0800 Subject: [PATCH] feat(platform): surface map situation from dashboard --- vehicle-data-platform/apps/web/src/App.tsx | 8 +++++++- .../apps/web/src/pages/Dashboard.tsx | 12 +++++++++++- vehicle-data-platform/apps/web/src/test/App.test.tsx | 9 ++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/vehicle-data-platform/apps/web/src/App.tsx b/vehicle-data-platform/apps/web/src/App.tsx index f841ecc9..86391506 100644 --- a/vehicle-data-platform/apps/web/src/App.tsx +++ b/vehicle-data-platform/apps/web/src/App.tsx @@ -281,6 +281,12 @@ export default function App() { replaceRealtimeHash(filters); }; + const openMap = (filters: Record = {}) => { + setRealtimeFilters(filters); + setActivePage('map'); + replaceMapHash(filters); + }; + const openVehicle = async (keyword: string, protocol?: string) => { const lookupKey = keyword.trim(); const nextProtocol = protocol?.trim() ?? ''; @@ -420,7 +426,7 @@ export default function App() { }; const pages: Record = { - dashboard: , + dashboard: , vehicles: , map: , realtime: , diff --git a/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx b/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx index 72fa8274..f70b5276 100644 --- a/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx +++ b/vehicle-data-platform/apps/web/src/pages/Dashboard.tsx @@ -173,6 +173,7 @@ function sourceConsistencyAction(row: VehicleCoverageRow, onFilter: (filters: Re export function Dashboard({ onOpenVehicle, onOpenQuality, + onOpenMap, onOpenRealtime, onOpenVehicles, onOpenHistory, @@ -180,6 +181,7 @@ export function Dashboard({ }: { onOpenVehicle: (vin: string, protocol?: string) => void; onOpenQuality: (filters?: Record) => void; + onOpenMap: (filters?: Record) => void; onOpenRealtime: (filters?: Record) => void; onOpenVehicles: (filters?: Record) => void; onOpenHistory: (filters?: Record) => void; @@ -309,6 +311,14 @@ export function Dashboard({ title: `${row.plate || row.vin || '-'} ${row.primaryProtocol || ''} ${row.lastSeen || ''}` })); const capabilities = [ + { + title: '地图态势', + status: `在线态势 ${formatCount(serviceSummary?.onlineVehicles ?? summary?.onlineVehicles)}`, + color: 'green' as const, + description: '以地图为主视角查看车辆在线分布、定位有效性、来源一致性和高德接入状态。', + action: '打开地图', + onClick: () => onOpenMap({ online: 'online' }) + }, { title: '实时监控', status: `在线 ${formatCount(serviceSummary?.onlineVehicles ?? summary?.onlineVehicles)}`, @@ -563,7 +573,7 @@ export function Dashboard({ 优先处理离线、无来源、身份未绑定和来源不完整车辆。 - +