diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index 04a084e..6d79b20 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -48,7 +48,7 @@ export const createOrder = (data) => axios.post(`${API_URL}/orders/`, data); export const getUserOrders = () => axios.get(`${API_URL}/orders`); export const getOrder = (id) => axios.get(`${API_URL}/orders/${id}`); -export const updateProfile = (data) => axios.patch(`${API_URL}/profile`); +export const updateProfile = (data) => axios.patch(`${API_URL}/profile`, data); export const getUserInfo = () => axios.get(`${API_URL}/profile`); export const uploadItemAvatar = (id, file) => { @@ -58,3 +58,9 @@ export const uploadItemAvatar = (id, file) => { headers: { "Content-Type": "multipart/form-data" }, }); }; + +export const getAllOrders = () => axios.get(`${API_URL}/admin/orders`); +export const updateOrderStatus = (id, data) => + axios.patch(`${API_URL}/admin/orders/${id}`, data); +export const registerAdmin = (data) => + axios.post(`${API_URL}/admin/register`, data); diff --git a/frontend/src/components/AdminOrders.jsx b/frontend/src/components/AdminOrders.jsx new file mode 100644 index 0000000..c047849 --- /dev/null +++ b/frontend/src/components/AdminOrders.jsx @@ -0,0 +1,94 @@ +import { useState, useEffect } from "react"; +import { getAllOrders, updateOrderStatus } from "../api/index"; + +const STATUSES = [ + { value: "new", label: "Новый" }, + { value: "packed", label: "Собран" }, + { value: "delivered", label: "Доставлен" }, + { value: "cancel", label: "Отменён" }, +]; + +export default function AdminOrders() { + const [orders, setOrders] = useState([]); + const [loading, setLoading] = useState(true); + + const loadOrders = () => { + getAllOrders() + .then((res) => setOrders(res.data)) + .catch(() => { }) + .finally(() => setLoading(false)); + }; + + useEffect(() => { + loadOrders(); + }, []); + + const handleStatusChange = async (id, newStatus) => { + try { + await updateOrderStatus(id, { status: newStatus }); + setOrders((prev) => + prev.map((o) => (o.id === id ? { ...o, status: newStatus } : o)), + ); + } catch { + alert("Не удалось изменить статус"); + } + }; + + if (loading) return
Загрузка...
; + + return ( +Заказов нет
+ ) : ( + orders.map((order) => ( +Раздел заказов — в разработке
- )} + {tab === "orders" &&Раздел сотрудников — в разработке
)}