This commit is contained in:
Андрей Дувакин 2024-10-08 10:35:16 +05:00
parent 2e6a760e40
commit 68468ee72e
2 changed files with 15 additions and 8 deletions

View File

@ -20,6 +20,7 @@ const DeliveryOrdersList = ({
totalOrderId,
onSubOrderClick,
setDeliveryOrdersCount,
setTotalEstimatedTime,
}) => {
const [deliveryOrders, setDeliveryOrders] = useState([]);
const [loadingDeliveryOrders, setLoadingDeliveryOrders] = useState(true);
@ -35,6 +36,11 @@ const DeliveryOrdersList = ({
const orders = await getDeliveryOrders(totalOrderId);
setDeliveryOrdersCount(orders.length);
setDeliveryOrders(orders);
const totalTime = orders.reduce((sum, order) => {
return sum + (order.estimated_route_time_in_minutes || 0);
}, 0);
setTotalEstimatedTime(totalTime);
} catch (error) {
if (error.response && error.response.status === 401) {
navigate("/login");
@ -52,13 +58,6 @@ const DeliveryOrdersList = ({
return (minutes / 60).toFixed(2) + " час.";
};
const formatPrice = (price) => {
if (!price) {
return "не указана";
}
return `${Math.round(price)}`;
};
const calculateRoutes = async () => {
const ordersToCalculate = deliveryOrders.filter(
(order) => !order.estimated_route_time_in_minutes
@ -168,7 +167,6 @@ const DeliveryOrdersList = ({
Прогнозируемое время этапа:{" "}
{formatTimeInHours(order.estimated_route_time_in_minutes)}
</p>
<p>Стоимость: {formatPrice(order.price)} </p>
{calculatingRoutes.includes(order.id) && (
<div className="spinner-border" role="status">
<span className="visually-hidden"></span>

View File

@ -15,6 +15,7 @@ const Home = () => {
const [loadingCreateOrder, setLoadingCreateOrder] = useState(false);
const [deliveryOrdersCount, setDeliveryOrdersCount] = useState(0);
const [showModal, setShowModal] = useState(false);
const [totalEstimatedTime, setTotalEstimatedTime] = useState(0);
const navigate = useNavigate();
const user = JSON.parse(localStorage.getItem("user"));
@ -51,6 +52,13 @@ const Home = () => {
}
};
const formatTimeInHours = (minutes) => {
if (!minutes || minutes === 0) {
return "ещё не рассчитывалось";
}
return (minutes / 60).toFixed(2) + " час.";
};
const handleCreateOrder = async ({ deadline, robotsCount }) => {
setLoadingCreateOrder(true);
try {
@ -141,6 +149,7 @@ const Home = () => {
totalOrderId={order.id}
onSubOrderClick={handleSubOrderClick}
setDeliveryOrdersCount={setDeliveryOrdersCount}
setTotalEstimatedTime={setTotalEstimatedTime}
/>
</div>
)}