._.
This commit is contained in:
parent
2e6a760e40
commit
68468ee72e
@ -20,6 +20,7 @@ const DeliveryOrdersList = ({
|
|||||||
totalOrderId,
|
totalOrderId,
|
||||||
onSubOrderClick,
|
onSubOrderClick,
|
||||||
setDeliveryOrdersCount,
|
setDeliveryOrdersCount,
|
||||||
|
setTotalEstimatedTime,
|
||||||
}) => {
|
}) => {
|
||||||
const [deliveryOrders, setDeliveryOrders] = useState([]);
|
const [deliveryOrders, setDeliveryOrders] = useState([]);
|
||||||
const [loadingDeliveryOrders, setLoadingDeliveryOrders] = useState(true);
|
const [loadingDeliveryOrders, setLoadingDeliveryOrders] = useState(true);
|
||||||
@ -35,6 +36,11 @@ const DeliveryOrdersList = ({
|
|||||||
const orders = await getDeliveryOrders(totalOrderId);
|
const orders = await getDeliveryOrders(totalOrderId);
|
||||||
setDeliveryOrdersCount(orders.length);
|
setDeliveryOrdersCount(orders.length);
|
||||||
setDeliveryOrders(orders);
|
setDeliveryOrders(orders);
|
||||||
|
|
||||||
|
const totalTime = orders.reduce((sum, order) => {
|
||||||
|
return sum + (order.estimated_route_time_in_minutes || 0);
|
||||||
|
}, 0);
|
||||||
|
setTotalEstimatedTime(totalTime);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.response && error.response.status === 401) {
|
if (error.response && error.response.status === 401) {
|
||||||
navigate("/login");
|
navigate("/login");
|
||||||
@ -52,13 +58,6 @@ const DeliveryOrdersList = ({
|
|||||||
return (minutes / 60).toFixed(2) + " час.";
|
return (minutes / 60).toFixed(2) + " час.";
|
||||||
};
|
};
|
||||||
|
|
||||||
const formatPrice = (price) => {
|
|
||||||
if (!price) {
|
|
||||||
return "не указана";
|
|
||||||
}
|
|
||||||
return `${Math.round(price)} ₽`;
|
|
||||||
};
|
|
||||||
|
|
||||||
const calculateRoutes = async () => {
|
const calculateRoutes = async () => {
|
||||||
const ordersToCalculate = deliveryOrders.filter(
|
const ordersToCalculate = deliveryOrders.filter(
|
||||||
(order) => !order.estimated_route_time_in_minutes
|
(order) => !order.estimated_route_time_in_minutes
|
||||||
@ -168,7 +167,6 @@ const DeliveryOrdersList = ({
|
|||||||
Прогнозируемое время этапа:{" "}
|
Прогнозируемое время этапа:{" "}
|
||||||
{formatTimeInHours(order.estimated_route_time_in_minutes)}
|
{formatTimeInHours(order.estimated_route_time_in_minutes)}
|
||||||
</p>
|
</p>
|
||||||
<p>Стоимость: {formatPrice(order.price)} </p>
|
|
||||||
{calculatingRoutes.includes(order.id) && (
|
{calculatingRoutes.includes(order.id) && (
|
||||||
<div className="spinner-border" role="status">
|
<div className="spinner-border" role="status">
|
||||||
<span className="visually-hidden"></span>
|
<span className="visually-hidden"></span>
|
||||||
|
|||||||
@ -15,6 +15,7 @@ const Home = () => {
|
|||||||
const [loadingCreateOrder, setLoadingCreateOrder] = useState(false);
|
const [loadingCreateOrder, setLoadingCreateOrder] = useState(false);
|
||||||
const [deliveryOrdersCount, setDeliveryOrdersCount] = useState(0);
|
const [deliveryOrdersCount, setDeliveryOrdersCount] = useState(0);
|
||||||
const [showModal, setShowModal] = useState(false);
|
const [showModal, setShowModal] = useState(false);
|
||||||
|
const [totalEstimatedTime, setTotalEstimatedTime] = useState(0);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const user = JSON.parse(localStorage.getItem("user"));
|
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 }) => {
|
const handleCreateOrder = async ({ deadline, robotsCount }) => {
|
||||||
setLoadingCreateOrder(true);
|
setLoadingCreateOrder(true);
|
||||||
try {
|
try {
|
||||||
@ -141,6 +149,7 @@ const Home = () => {
|
|||||||
totalOrderId={order.id}
|
totalOrderId={order.id}
|
||||||
onSubOrderClick={handleSubOrderClick}
|
onSubOrderClick={handleSubOrderClick}
|
||||||
setDeliveryOrdersCount={setDeliveryOrdersCount}
|
setDeliveryOrdersCount={setDeliveryOrdersCount}
|
||||||
|
setTotalEstimatedTime={setTotalEstimatedTime}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user