diff --git a/src/components/DeliveryOrdersList.jsx b/src/components/DeliveryOrdersList.jsx index cb41808..4579497 100644 --- a/src/components/DeliveryOrdersList.jsx +++ b/src/components/DeliveryOrdersList.jsx @@ -1,8 +1,13 @@ import { getDeliveryOrders } from "../api"; import React, { useState, useEffect } from "react"; -const DeliveryOrdersList = ({ totalOrderId, onSubOrderClick }) => { +const DeliveryOrdersList = ({ + totalOrderId, + onSubOrderClick, + setDeliveryOrdersCount, +}) => { const [deliveryOrders, setDeliveryOrders] = useState([]); + const [loadingDeliveryOrders, setLoadingDeliveryOrders] = useState(true); useEffect(() => { fetchDeliveryOrders(); @@ -11,25 +16,32 @@ const DeliveryOrdersList = ({ totalOrderId, onSubOrderClick }) => { const fetchDeliveryOrders = async () => { try { const orders = await getDeliveryOrders(totalOrderId); + setDeliveryOrdersCount(orders.length); setDeliveryOrders(orders); } catch (error) { console.error("Ошибка при загрузке подзаказов:", error); + } finally { + setLoadingDeliveryOrders(false); } }; return (
- {deliveryOrders.map((order, index) => ( -
onSubOrderClick(order.id)} - > -
- Подзаказ #{index + 1} {/* Отображение порядкового номера */} -
+ {loadingDeliveryOrders ? ( +
+
- ))} + ) : ( + deliveryOrders.map((order, index) => ( +
onSubOrderClick(order.id)} + > +
Подзаказ #{index + 1}
+
+ )) + )}
); }; diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx index 5a9aa54..d600494 100644 --- a/src/pages/Home.jsx +++ b/src/pages/Home.jsx @@ -9,12 +9,14 @@ const Home = () => { const [totalOrders, setTotalOrders] = useState([]); const [expandedOrderId, setExpandedOrderId] = useState(null); const [loadingStatuses, setLoadingStatuses] = useState(true); + const [loadingOrders, setLoadingOrders] = useState(true); + const [deliveryOrdersCount, setDeliveryOrdersCount] = useState(0); const navigate = useNavigate(); const user = JSON.parse(localStorage.getItem("user")); useEffect(() => { - fetchTotalOrders(); fetchStatuses(); + fetchTotalOrders(); }, []); const fetchStatuses = async () => { @@ -34,6 +36,8 @@ const Home = () => { setTotalOrders(orders); } catch (error) { console.error("Ошибка при загрузке заказов:", error); + } finally { + setLoadingOrders(false); } }; @@ -100,25 +104,50 @@ const Home = () => { )} - {totalOrders.map((order) => ( -
-
handleToggleAccordion(order.id)} - > - Заказ от {new Date(order.order_datetime).toLocaleString()} + {loadingOrders ? ( +
+
+
- - {expandedOrderId === order.id && ( -
- -
- )}
- ))} + ) : ( + totalOrders.map((order) => ( +
+
handleToggleAccordion(order.id)} + > + Заказ от {new Date(order.order_datetime).toLocaleString()} +
+ + {expandedOrderId === order.id && ( +
+

+ Статус:{" "} + {order.status_name || "Неизвестный статус"} +

+

+ Количество роботов: {order.count_robots} +

+

+ Количество подзаказов:{" "} + {deliveryOrdersCount || 0} +

+

+ Создатель:{" "} + {order.user_login || "Неизвестный пользователь"} +

+ + +
+ )} +
+ )) + )}
); };