._.
This commit is contained in:
parent
e36d654615
commit
094c1749e3
30
src/api.jsx
30
src/api.jsx
@ -560,3 +560,33 @@ export const calculateTotalOrder = async (deadline, robotsCount) => {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
export const updateDeliveryOrderRoute = async (
|
||||
deliveryOrderId,
|
||||
estimatedRouteTime,
|
||||
route
|
||||
) => {
|
||||
console.log({
|
||||
estimated_route_time_in_minutes: estimatedRouteTime,
|
||||
route: route,
|
||||
});
|
||||
try {
|
||||
const response = await axios.put(
|
||||
`${API_URL}/delivery-orders/${deliveryOrderId}/route`,
|
||||
{
|
||||
estimated_route_time_in_minutes: estimatedRouteTime,
|
||||
route: route,
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${getAuthToken()}`,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}
|
||||
);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error("Ошибка при обновлении маршрута подзаказа:", error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { getDeliveryAccessories, getDeliveryOrderDetails } from "../api.jsx";
|
||||
import {
|
||||
getDeliveryAccessories,
|
||||
getDeliveryOrderDetails,
|
||||
updateDeliveryOrderRoute,
|
||||
} from "../api.jsx";
|
||||
import { useParams } from "react-router-dom";
|
||||
import { getCoordinates } from "../geocoder.jsx";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
@ -28,7 +32,7 @@ const DeliveryOrderDetails = () => {
|
||||
const [route, setRoute] = useState([]);
|
||||
const [totalCost, setTotalCost] = useState(0);
|
||||
const [truckCount, setTruckCount] = useState(0);
|
||||
const [truckName, settruckName] = useState("");
|
||||
const [truckName, setTruckName] = useState("");
|
||||
const navigate = useNavigate();
|
||||
|
||||
useEffect(() => {
|
||||
@ -42,7 +46,7 @@ const DeliveryOrderDetails = () => {
|
||||
);
|
||||
setTotalCost(deliveryOrderDetails.price);
|
||||
setTruckCount(deliveryOrderDetails.count_trucks);
|
||||
settruckName(deliveryOrderDetails.truck_name);
|
||||
setTruckName(deliveryOrderDetails.truck_name);
|
||||
|
||||
const accessories = await getDeliveryAccessories(deliveryOrderId);
|
||||
setDeliveryAccessories(accessories);
|
||||
@ -65,6 +69,10 @@ const DeliveryOrderDetails = () => {
|
||||
|
||||
const fullCoordinates = [...coords, DELIVERY_CITY];
|
||||
|
||||
if (
|
||||
!deliveryOrderDetails.route ||
|
||||
deliveryOrderDetails.estimated_route_time_in_minutes === null
|
||||
) {
|
||||
if (fullCoordinates.length > 1) {
|
||||
const waypoints = fullCoordinates
|
||||
.map(({ longitude, latitude }) => `${longitude},${latitude}`)
|
||||
@ -80,9 +88,18 @@ const DeliveryOrderDetails = () => {
|
||||
const decodedRoute = polyline.decode(geometry);
|
||||
setRoute(decodedRoute);
|
||||
const duration = data.routes[0].duration;
|
||||
console.log(`Время в пути: ${duration / 60} минут`);
|
||||
|
||||
await updateDeliveryOrderRoute(
|
||||
deliveryOrderId,
|
||||
duration / 60,
|
||||
decodedRoute
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const decodedRoute = deliveryOrderDetails.route;
|
||||
setRoute(decodedRoute);
|
||||
}
|
||||
} catch (error) {
|
||||
if (error.response && error.response.status === 401) {
|
||||
navigate("/login");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user