import React, { useState, useEffect } from 'react';
import {
Package,
Drone,
MapPin,
Clock,
CheckCircle,
AlertTriangle,
Battery,
QrCode,
Users,
BarChart3,
Settings,
Smartphone,
Shield,
Zap,
TrendingUp,
Calendar,
User,
Search,
Filter,
Download
} from 'lucide-react';
const App = () => {
const [activeTab, setActiveTab] = useState('dashboard');
const [selectedDrone, setSelectedDrone] = useState(null);
const [orders, setOrders] = useState([
{ id: 'ORD-001', customer: 'Иван Петров', status: 'delivered', drone: 'DRN-001', time: '10:30', container: 'CNT-001' },
{ id: 'ORD-002', customer: 'Мария Сидорова', status: 'in_transit', drone: 'DRN-002', time: '11:15', container: 'CNT-002' },
{ id: 'ORD-003', customer: 'Алексей Кузнецов', status: 'pending', drone: 'DRN-003', time: '12:00', container: 'CNT-003' },
{ id: 'ORD-004', customer: 'Елена Волкова', status: 'delivered', drone: 'DRN-001', time: '09:45', container: 'CNT-004' },
]);
const [drones] = useState([
{ id: 'DRN-001', status: 'charging', battery: 95, location: 'Склад', orders: 2 },
{ id: 'DRN-002', status: 'in_transit', battery: 78, location: 'Улица Ленина, 15', orders: 1 },
{ id: 'DRN-003', status: 'ready', battery: 100, location: 'Склад', orders: 0 },
{ id: 'DRN-004', status: 'maintenance', battery: 45, location: 'Тех. зона', orders: 0 },
]);
const getStatusColor = (status) => {
switch (status) {
case 'delivered': return 'text-green-600 bg-green-100';
case 'in_transit': return 'text-blue-600 bg-blue-100';
case 'pending': return 'text-yellow-600 bg-yellow-100';
case 'charging': return 'text-green-600 bg-green-100';
case 'ready': return 'text-blue-600 bg-blue-100';
case 'in_transit': return 'text-purple-600 bg-purple-100';
case 'maintenance': return 'text-red-600 bg-red-100';
default: return 'text-gray-600 bg-gray-100';
}
};
const getStatusText = (status) => {
switch (status) {
case 'delivered': return 'Доставлен';
case 'in_transit': return 'В пути';
case 'pending': return 'Ожидает';
case 'charging': return 'Заряжается';
case 'ready': return 'Готов';
case 'maintenance': return 'Обслуживание';
default: return status;
}
};
const Dashboard = () => (
{/* Stats Cards */}
{/* Charts and Maps */}
Карта доставки
Интерактивная карта доставки
Статистика
Сегодняшние доставки
42
Завершенные заказы
38
Средняя оценка
4.8/5
);
const Orders = () => (
| Заказ |
Клиент |
Статус |
Дрон |
Время |
Контейнер |
{orders.map((order) => (
|
|
{order.customer} |
{getStatusText(order.status)}
|
{order.drone} |
{order.time} |
{order.container}
|
))}
);
const Drones = () => (
Флот дронов
{drones.map((drone) => (
setSelectedDrone(drone)}
>
{drone.id}
Статус:
{getStatusText(drone.status)}
Батарея:
{drone.battery}%
Местоположение:
{drone.location}
Активные заказы:
{drone.orders}
))}
{selectedDrone && (
Детали дрона {selectedDrone.id}
Местоположение
{selectedDrone.location}
Заряд батареи
{selectedDrone.battery}%
Активные заказы
{selectedDrone.orders}
Последняя активность
10 мин назад
)}
);
const Security = () => (
Система безопасности
Распознавание QR-кодов
Автоматическая идентификация контейнеров с точностью 99.9%
Активно
Лидарные датчики и компьютерное зрение для безопасного полета
Активно
Аварийное торможение
Мгновенная реакция на критические ситуации
Готово
Журнал безопасности
QR-код успешно распознан
Контейнер CNT-001, 10:30
Препятствие обнаружено
Дрон DRN-002, маршрут изменен, 11:12
Успешная доставка
Заказ ORD-001, подтверждено клиентом, 10:45
);
const renderContent = () => {
switch (activeTab) {
case 'dashboard': return
;
case 'orders': return
;
case 'drones': return
;
case 'security': return
;
default: return
;
}
};
return (
{/* Header */}
Дрон-бокс лента
Система автоматической доставки
{/* Navigation */}
{/* Main Content */}
{renderContent()}
{/* Footer */}
);
};
export default App;