feat(platform): add map situation workspace
This commit is contained in:
@@ -26,7 +26,7 @@ export default function App() {
|
||||
initialRoute.page === 'vehicles' ? vehicleFiltersFromRoute(initialRoute) : {}
|
||||
);
|
||||
const [realtimeFilters, setRealtimeFilters] = useState<Record<string, string>>(
|
||||
initialRoute.page === 'realtime' ? realtimeFiltersFromRoute(initialRoute) : {}
|
||||
initialRoute.page === 'realtime' || initialRoute.page === 'map' ? realtimeFiltersFromRoute(initialRoute) : {}
|
||||
);
|
||||
const [historyFilters, setHistoryFilters] = useState<Record<string, string>>(
|
||||
initialRoute.page === 'history' ? historyFiltersFromRoute(initialRoute) : {}
|
||||
@@ -111,7 +111,7 @@ export default function App() {
|
||||
if (route.page === 'vehicles') {
|
||||
setVehicleFilters(vehicleFiltersFromRoute(route));
|
||||
}
|
||||
if (route.page === 'realtime') {
|
||||
if (route.page === 'realtime' || route.page === 'map') {
|
||||
setRealtimeFilters(realtimeFiltersFromRoute(route));
|
||||
}
|
||||
if (route.page === 'history') {
|
||||
@@ -167,6 +167,10 @@ export default function App() {
|
||||
replaceRealtimeHash(realtimeFilters);
|
||||
return;
|
||||
}
|
||||
if (page === 'map') {
|
||||
replaceMapHash(realtimeFilters);
|
||||
return;
|
||||
}
|
||||
replaceHash(page);
|
||||
};
|
||||
|
||||
@@ -191,11 +195,21 @@ export default function App() {
|
||||
replaceRealtimeHash(filters);
|
||||
};
|
||||
|
||||
const updateMapFilters = (filters: Record<string, string> = {}) => {
|
||||
setRealtimeFilters(filters);
|
||||
replaceMapHash(filters);
|
||||
};
|
||||
|
||||
const replaceRealtimeHash = (filters: Record<string, string> = {}) => {
|
||||
const { keyword, protocol, ...restFilters } = filters;
|
||||
replaceHash('realtime', keyword, protocol, restFilters);
|
||||
};
|
||||
|
||||
const replaceMapHash = (filters: Record<string, string> = {}) => {
|
||||
const { keyword, protocol, ...restFilters } = filters;
|
||||
replaceHash('map', keyword, protocol, restFilters);
|
||||
};
|
||||
|
||||
const updateHistoryFilters = (filters: Record<string, unknown> = {}, tab = historyTab) => {
|
||||
const hasKeywordInput = Object.prototype.hasOwnProperty.call(filters, 'keyword');
|
||||
const nextFilters = normalizeHistoryFilterValues(filters);
|
||||
@@ -408,6 +422,7 @@ export default function App() {
|
||||
const pages: Record<PageKey, JSX.Element> = {
|
||||
dashboard: <Dashboard onOpenVehicle={openVehicle} onOpenQuality={openQuality} onOpenRealtime={openRealtime} onOpenVehicles={openVehicles} onOpenHistory={openHistoryWithFilters} onOpenMileage={openMileageWithFilters} />,
|
||||
vehicles: <Vehicles onOpenVehicle={openVehicle} onOpenQuality={openQuality} onFiltersChange={updateVehicleFilters} initialFilters={vehicleFilters} />,
|
||||
map: <Realtime title="地图态势" description="以车辆服务为中心查看实时位置、在线状态、来源一致性和高德地图接入状态" onOpenVehicle={openVehicle} onOpenHistory={openHistoryForVehicle} onOpenQuality={openQuality} onFiltersChange={updateMapFilters} initialFilters={realtimeFilters} />,
|
||||
realtime: <Realtime onOpenVehicle={openVehicle} onOpenHistory={openHistoryForVehicle} onOpenQuality={openQuality} onFiltersChange={updateRealtimeFilters} initialFilters={realtimeFilters} />,
|
||||
detail: <VehicleDetail vin={activeVin} protocol={activeProtocol} platformRelease={platformRelease} onOpenRealtime={openRealtimeForVehicle} onOpenHistory={openHistoryForVehicle} onOpenRaw={openRawForVehicle} onOpenMileage={openMileageForVehicle} onOpenVehicles={openVehicles} onOpenQuality={openQuality} onOpenHistoryEvidence={openHistoryWithFilters} onOpenRawEvidence={openRawWithFilters} onQueryChange={updateVehicleDetailQuery} />,
|
||||
history: <History initialVin={analysisVin} initialProtocol={activeProtocol} initialTab={historyTab} initialFilters={historyFilters} onFiltersChange={updateHistoryFilters} onOpenVehicle={openVehicle} onOpenMileage={openMileageWithFilters} onOpenRaw={openRawWithFilters} />,
|
||||
|
||||
Reference in New Issue
Block a user