From 95fe297aaeb9d716787826c2a5d93254a8091b58 Mon Sep 17 00:00:00 2001 From: itoshi Date: Wed, 26 Nov 2025 04:29:19 +0300 Subject: [PATCH] feat: update `route center calculating` --- .env | 6 ++--- src/pages/EditSightPage/index.tsx | 4 ++- src/pages/MapPage/index.tsx | 22 ++++----------- src/pages/Route/RouteCreatePage/index.tsx | 27 +++++++++++++------ src/pages/Route/RouteEditPage/index.tsx | 21 +++++++++++---- .../Route/route-preview/RightSidebar.tsx | 15 ++++++++--- src/shared/store/RouteStore/index.ts | 11 ++++++-- 7 files changed, 67 insertions(+), 39 deletions(-) diff --git a/.env b/.env index 623c47c..2f7a4b8 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ -VITE_API_URL='https://content.wn.polygon.unprism.ru/' -VITE_REACT_APP ='https://content.wn.polygon.unprism.ru/' -VITE_KRBL_MEDIA='https://content.wn.polygon.unprism.ru/media/' \ No newline at end of file +VITE_API_URL='https://wn.krbl.ru' +VITE_REACT_APP ='https://wn.krbl.ru' +VITE_KRBL_MEDIA='https://wn.krbl.ru/media/' \ No newline at end of file diff --git a/src/pages/EditSightPage/index.tsx b/src/pages/EditSightPage/index.tsx index 22549be..605fda3 100644 --- a/src/pages/EditSightPage/index.tsx +++ b/src/pages/EditSightPage/index.tsx @@ -21,7 +21,7 @@ function a11yProps(index: number) { export const EditSightPage = observer(() => { const [value, setValue] = useState(0); const [isLoadingData, setIsLoadingData] = useState(true); - const { sight, getSightInfo, needLeaveAgree } = editSightStore; + const { sight, getSightInfo, needLeaveAgree, getRightArticles } = editSightStore; const { getArticles } = articlesStore; const { id } = useParams(); @@ -48,6 +48,8 @@ export const EditSightPage = observer(() => { await getArticles("ru"); await getArticles("en"); await getArticles("zh"); + // Загружаем данные правого виджета перед завершением загрузки + await getRightArticles(+id); } finally { setIsLoadingData(false); } diff --git a/src/pages/MapPage/index.tsx b/src/pages/MapPage/index.tsx index 57bee77..cbe655a 100644 --- a/src/pages/MapPage/index.tsx +++ b/src/pages/MapPage/index.tsx @@ -488,16 +488,6 @@ class MapStore { const route_number = properties.name || "Маршрут 1"; const path = geometry.coordinates.map((c: any) => [c[1], c[0]]); - const lineGeom = new GeoJSON().readGeometry(geometry, { - dataProjection: "EPSG:4326", - featureProjection: "EPSG:3857", - }); - const centerCoords = getCenter(lineGeom.getExtent()); - const [center_longitude, center_latitude] = toLonLat( - centerCoords, - "EPSG:3857" - ); - let carrier_id = 0; let carrier = ""; @@ -515,8 +505,8 @@ class MapStore { const routeData = { route_number, path, - center_latitude, - center_longitude, + center_latitude: path[0][0], + center_longitude: path[0][1], carrier, carrier_id, governor_appeal: 0, @@ -2662,18 +2652,16 @@ const MapSightbar: React.FC = observer( description.trim() !== ""; const routeName = featureType === "route" - ? ((feature.get("routeName") as string) || "") + ? (feature.get("routeName") as string) || "" : ""; const routeNumber = featureType === "route" - ? ((feature.get("routeNumber") as string) || fName) + ? (feature.get("routeNumber") as string) || fName : ""; const routeNumberTrimmed = routeNumber.trim(); const routeNameTrimmed = routeName.trim(); const displayName = - featureType === "route" - ? routeNumberTrimmed || fName - : fName; + featureType === "route" ? routeNumberTrimmed || fName : fName; const showRouteName = featureType === "route" && routeNameTrimmed !== "" && diff --git a/src/pages/Route/RouteCreatePage/index.tsx b/src/pages/Route/RouteCreatePage/index.tsx index 1d200bc..0bfe009 100644 --- a/src/pages/Route/RouteCreatePage/index.tsx +++ b/src/pages/Route/RouteCreatePage/index.tsx @@ -15,7 +15,7 @@ import { } from "@mui/material"; import { MediaViewer, VideoPreviewCard } from "@widgets"; import { observer } from "mobx-react-lite"; -import { ArrowLeft, Loader2, Save, Plus } from "lucide-react"; +import { ArrowLeft, Loader2, Save, Plus, X } from "lucide-react"; import { useEffect, useState, useMemo } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "react-toastify"; @@ -174,11 +174,6 @@ export const RouteCreatePage = observer(() => { setIsLoading(false); return; } - if (!governorAppeal) { - toast.error("Выберите статью для обращения к пассажирам"); - setIsLoading(false); - return; - } const validationResult = validateCoordinates(routeCoords); if (validationResult !== true) { @@ -213,7 +208,9 @@ export const RouteCreatePage = observer(() => { } const carrier_id = Number(carrier); - const governor_appeal = Number(governorAppeal); + const governor_appeal = governorAppeal + ? Number(governorAppeal) + : undefined; const rotate = turn ? Number(turn) : undefined; const center_latitude = centerLat ? Number(centerLat) : undefined; const center_longitude = centerLng ? Number(centerLng) : undefined; @@ -238,7 +235,6 @@ export const RouteCreatePage = observer(() => { carrier_id, route_number: routeNumber, route_sys_number: govRouteNumber, - governor_appeal, route_name: routeName, route_direction, scale_min: scale_min !== null ? scale_min : 0, @@ -251,6 +247,10 @@ export const RouteCreatePage = observer(() => { videoPreview && videoPreview !== "" ? videoPreview : undefined, }; + if (governor_appeal !== undefined) { + newRoute.governor_appeal = governor_appeal; + } + await routeStore.createRoute(newRoute); toast.success("Маршрут успешно создан"); navigate(-1); @@ -382,6 +382,17 @@ export const RouteCreatePage = observer(() => { }, }} /> + {selectedArticle && ( + + )} + )}