diff --git a/.vs/logistics-app/FileContentIndex/07dfedf3-4b38-4be1-b6d6-5119e0f01a73.vsidx b/.vs/logistics-app/FileContentIndex/07dfedf3-4b38-4be1-b6d6-5119e0f01a73.vsidx deleted file mode 100644 index 3872d21..0000000 Binary files a/.vs/logistics-app/FileContentIndex/07dfedf3-4b38-4be1-b6d6-5119e0f01a73.vsidx and /dev/null differ diff --git a/.vs/logistics-app/FileContentIndex/7e5bbd21-0bd4-47e0-8ee6-9684a8c31103.vsidx b/.vs/logistics-app/FileContentIndex/7e5bbd21-0bd4-47e0-8ee6-9684a8c31103.vsidx deleted file mode 100644 index 796f7a6..0000000 Binary files a/.vs/logistics-app/FileContentIndex/7e5bbd21-0bd4-47e0-8ee6-9684a8c31103.vsidx and /dev/null differ diff --git a/.vs/logistics-app/FileContentIndex/c5a6c98d-7f4d-4b71-b220-310ab288f298.vsidx b/.vs/logistics-app/FileContentIndex/c5a6c98d-7f4d-4b71-b220-310ab288f298.vsidx deleted file mode 100644 index 607184a..0000000 Binary files a/.vs/logistics-app/FileContentIndex/c5a6c98d-7f4d-4b71-b220-310ab288f298.vsidx and /dev/null differ diff --git a/.vs/logistics-app/FileContentIndex/f8f06d21-6130-4351-a6b3-f29d63051768.vsidx b/.vs/logistics-app/FileContentIndex/f8f06d21-6130-4351-a6b3-f29d63051768.vsidx deleted file mode 100644 index ade0caa..0000000 Binary files a/.vs/logistics-app/FileContentIndex/f8f06d21-6130-4351-a6b3-f29d63051768.vsidx and /dev/null differ diff --git a/.vs/logistics-app/FileContentIndex/feeecddc-f0ee-4bfe-9db7-a14e32700516.vsidx b/.vs/logistics-app/FileContentIndex/feeecddc-f0ee-4bfe-9db7-a14e32700516.vsidx deleted file mode 100644 index 8cb7ff0..0000000 Binary files a/.vs/logistics-app/FileContentIndex/feeecddc-f0ee-4bfe-9db7-a14e32700516.vsidx and /dev/null differ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..f00e1dd --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "ms-dotnettools.csharp" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index 42b8b46..c1bba61 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,7 @@ { "name": "Debug React App", - "type": "firefox", + "type": "chrome", "request": "launch", "url": "http://localhost:3000", "webRoot": "${workspaceFolder}/src", diff --git a/db.json b/db.json index 5cf59bf..2bf0342 100644 --- a/db.json +++ b/db.json @@ -5,7 +5,7 @@ "clientName": "Иванов Иван Иванович", "orderCost": 15000, "orderDate": "2025-01-15", - "status": "in_progress", + "status": "completed", "address": "ул. Ленина, 10", "description": "Доставка строительных материалов" }, @@ -32,7 +32,7 @@ "clientName": "Сергеев Алексей Петрович", "orderCost": 12000, "orderDate": "2025-01-18", - "status": "pending", + "status": "in_progress", "address": "пр. Космонавтов, 78", "description": "Переезд квартиры" }, @@ -77,7 +77,7 @@ "clientName": "Александрова Ольга Викторовна", "orderCost": 9500, "orderDate": "2025-01-23", - "status": "pending", + "status": "cancelled", "address": "ул. Центральная, 89", "description": "Перевозка личных вещей" }, @@ -184,14 +184,6 @@ "endTime": "12:00", "date": "2025-11-21" }, - { - "id": "e320", - "vehicleId": "1", - "orderId": "1", - "startTime": "08:00", - "endTime": "10:00", - "date": "2025-11-21" - }, { "id": "08a1", "vehicleId": "2", @@ -207,6 +199,22 @@ "startTime": "08:00", "endTime": "09:00", "date": "2025-11-21" + }, + { + "id": "6f66", + "vehicleId": "1", + "orderId": "1", + "startTime": "08:00", + "endTime": "11:00", + "date": "2025-11-21" + }, + { + "id": "f275", + "vehicleId": "2", + "orderId": "4", + "startTime": "08:00", + "endTime": "10:00", + "date": "2025-11-23" } ] } \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 1faee8c..b7132be 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import React from 'react'; + import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; import OrdersPage from './pages/OrdersPage'; import VehiclesPage from './pages/VehiclesPage'; @@ -6,43 +6,29 @@ import VehicleDetailPage from './pages/VehicleDetailPage'; import 'bootstrap/dist/css/bootstrap.min.css'; import './App.css'; -const App: React.FC = () => { +const App = () => { return (
- {/* Навигация */} -
- {/* Состояние выбора */}
{selectedOrder && !selectedTimeSlot && (
@@ -220,7 +215,6 @@ const WaybillWidget: React.FC = ({ vehicleId, date }) => {

)}
- {/* Таблица временных интервалов */}
@@ -275,7 +269,6 @@ const WaybillWidget: React.FC = ({ vehicleId, date }) => {
- {/* Список доступных заказов */}
Доступные заказы:
diff --git a/src/pages/OrdersPage.tsx b/src/pages/OrdersPage.tsx index 829805d..3e12409 100644 --- a/src/pages/OrdersPage.tsx +++ b/src/pages/OrdersPage.tsx @@ -19,7 +19,6 @@ const OrdersPage: React.FC = () => { status: '' }); - // Загрузка данных const loadOrders = async () => { try { setLoading(true); @@ -35,23 +34,18 @@ const OrdersPage: React.FC = () => { } }; - // Функция изменения статуса заказа const updateOrderStatus = async (orderId: number, newStatus: Order['status']) => { try { - // Находим заказ для обновления const orderToUpdate = orders.find(order => order.id === orderId); if (!orderToUpdate) return; - // Создаем обновленный заказ const updatedOrder = { ...orderToUpdate, status: newStatus }; - // Отправляем запрос на сервер await ordersApi.updateOrder(orderId, updatedOrder); - // Обновляем локальное состояние setOrders(prevOrders => prevOrders.map(order => order.id === orderId ? updatedOrder : order @@ -69,7 +63,6 @@ const OrdersPage: React.FC = () => { loadOrders(); }, []); - // Применение фильтров useEffect(() => { let result = orders; diff --git a/src/pages/VehicleDetailPage.tsx b/src/pages/VehicleDetailPage.tsx index cd9112e..5890c44 100644 --- a/src/pages/VehicleDetailPage.tsx +++ b/src/pages/VehicleDetailPage.tsx @@ -22,12 +22,10 @@ const VehicleDetailPage: React.FC = () => { try { setLoading(true); setError(null); - - // Загружаем данные машины + const vehicleResponse = await vehiclesApi.getVehicle(parseInt(id)); setVehicle(vehicleResponse.data); - // Загружаем историю выполненных заказов const ordersResponse = await ordersApi.getOrders(); const completed = ordersResponse.data.filter( order => order.status === 'completed' diff --git a/src/services/api.ts b/src/services/api.ts index 4da3102..ae7a8bf 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -1,27 +1,24 @@ import axios from 'axios'; import { Order, Vehicle, WaybillEntry } from '../types'; -const API_BASE = 'http://localhost:3001'; +const API_BASE = 'http://localhost:3001/'; const api = axios.create({ baseURL: API_BASE, }); -// Сервис для работы с заказами -// Сервис для работы с заказами + export const ordersApi = { getOrders: () => api.get('/orders'), getOrder: (id: number) => api.get(`/orders/${id}`), updateOrder: (id: number, order: Order) => api.put(`/orders/${id}`, order), }; -// Сервис для работы с машинами export const vehiclesApi = { getVehicles: () => api.get('/vehicles'), getVehicle: (id: number) => api.get(`/vehicles/${id}`), }; -// Сервис для работы с путевыми листами export const waybillApi = { getEntries: () => api.get('/waybillEntries'), createEntry: (entry: Omit) => diff --git a/src/types/index.ts b/src/types/index.ts index 9876871..e82ab1a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,4 +1,4 @@ -// Основные типы данных + export interface Order { id: number; clientName: string;