feat: implement comprehensive supplies management system

- Create new supplies dashboard with multi-level navigation structure
- Add fulfillment supplies section with goods/materials/returns tabs
- Add marketplace supplies section with Wildberries/Ozon tabs
- Update existing supplies pages to use new dashboard
- Fix height alignment in statistics blocks
- Remove redundant title from materials supplies section
This commit is contained in:
Veronika Smirnova
2025-07-21 13:25:16 +03:00
parent d964b9b6d4
commit ead17fd56c
11 changed files with 1830 additions and 40 deletions

View File

@ -167,26 +167,11 @@ export function MaterialsSuppliesTab() {
return (
<div className="h-full flex flex-col space-y-4 p-4">
{/* Компактный заголовок */}
<div className="flex items-center justify-between">
<div className="flex items-center gap-2">
<Wrench className="h-4 w-4 text-purple-400" />
<span className="text-white font-medium text-sm">Расходники</span>
</div>
<Button
size="sm"
onClick={() => window.location.href = '/fulfillment-supplies/materials/order'}
className="bg-gradient-to-r from-purple-500 to-pink-500 hover:from-purple-600 hover:to-pink-600 text-white text-xs"
>
<Plus className="h-3 w-3 mr-1" />
Заказать
</Button>
</div>
{/* Компактная статистика */}
<div className="grid grid-cols-2 lg:grid-cols-4 gap-3">
<Card className="glass-card p-3">
<div className="flex items-center space-x-2">
{/* Статистика с кнопкой заказа */}
<div className="flex items-center justify-between gap-4">
<div className="grid grid-cols-2 lg:grid-cols-4 gap-3 flex-1">
<Card className="glass-card p-3 h-[60px]">
<div className="flex items-center space-x-2 h-full">
<div className="p-1.5 bg-purple-500/20 rounded">
<Wrench className="h-3 w-3 text-purple-400" />
</div>
@ -197,8 +182,8 @@ export function MaterialsSuppliesTab() {
</div>
</Card>
<Card className="glass-card p-3">
<div className="flex items-center space-x-2">
<Card className="glass-card p-3 h-[60px]">
<div className="flex items-center space-x-2 h-full">
<div className="p-1.5 bg-green-500/20 rounded">
<TrendingUp className="h-3 w-3 text-green-400" />
</div>
@ -209,8 +194,8 @@ export function MaterialsSuppliesTab() {
</div>
</Card>
<Card className="glass-card p-3">
<div className="flex items-center space-x-2">
<Card className="glass-card p-3 h-[60px]">
<div className="flex items-center space-x-2 h-full">
<div className="p-1.5 bg-blue-500/20 rounded">
<AlertCircle className="h-3 w-3 text-blue-400" />
</div>
@ -221,17 +206,28 @@ export function MaterialsSuppliesTab() {
</div>
</Card>
<Card className="glass-card p-3">
<div className="flex items-center space-x-2">
<div className="p-1.5 bg-red-500/20 rounded">
<Calendar className="h-3 w-3 text-red-400" />
<Card className="glass-card p-3 h-[60px]">
<div className="flex items-center space-x-2 h-full">
<div className="p-1.5 bg-red-500/20 rounded">
<Calendar className="h-3 w-3 text-red-400" />
</div>
<div>
<p className="text-white/60 text-xs">Низкий остаток</p>
<p className="text-lg font-bold text-white">{getLowStockCount()}</p>
</div>
</div>
<div>
<p className="text-white/60 text-xs">Низкий остаток</p>
<p className="text-lg font-bold text-white">{getLowStockCount()}</p>
</div>
</div>
</Card>
</Card>
</div>
{/* Кнопка заказа */}
<Button
size="sm"
onClick={() => window.location.href = '/fulfillment-supplies/materials/order'}
className="bg-gradient-to-r from-purple-500 to-pink-500 hover:from-purple-600 hover:to-pink-600 text-white text-sm px-6 h-[60px] whitespace-nowrap"
>
<Plus className="h-4 w-4 mr-2" />
Заказать
</Button>
</div>
{/* Компактный поиск и фильтры */}