Files
sfera/src/components/fulfillment-supplies/supplies-dashboard.tsx
Veronika Smirnova ead17fd56c 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
2025-07-21 13:25:16 +03:00

123 lines
4.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use client";
import { useState } from "react";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Card } from "@/components/ui/card";
import { Sidebar } from "@/components/dashboard/sidebar";
import { useSidebar } from "@/hooks/useSidebar";
import {
Package,
Wrench,
Truck,
ArrowLeftRight,
Building,
ShoppingCart,
} from "lucide-react";
// Импорты компонентов
import { MaterialsSuppliesTab } from "./materials-supplies/materials-supplies-tab";
import { FulfillmentSuppliesTab } from "./fulfillment-supplies/fulfillment-supplies-tab";
import { MarketplaceSuppliesTab } from "./marketplace-supplies/marketplace-supplies-tab";
export function SuppliesDashboard() {
const { getSidebarMargin } = useSidebar();
const [mainTab, setMainTab] = useState("goods");
const [goodsSubTab, setGoodsSubTab] = useState("fulfillment");
return (
<div className="h-screen flex overflow-hidden">
<Sidebar />
<main
className={`flex-1 ${getSidebarMargin()} px-4 py-3 overflow-hidden transition-all duration-300`}
>
<div className="h-full w-full flex flex-col">
{/* Заголовок */}
<div className="mb-4">
<h1 className="text-2xl font-bold text-white mb-2">Поставки</h1>
<p className="text-white/60 text-sm">
Управление поставками товаров и расходников
</p>
</div>
{/* Основная навигация */}
<div className="flex-1 overflow-hidden">
<Tabs
value={mainTab}
onValueChange={setMainTab}
className="h-full flex flex-col"
>
<TabsList className="grid w-full grid-cols-2 bg-white/5 backdrop-blur border-white/10 flex-shrink-0 h-12 mb-4">
<TabsTrigger
value="goods"
className="data-[state=active]:bg-white/20 data-[state=active]:text-white text-white/70 flex items-center gap-2 text-sm font-medium"
>
<Package className="h-4 w-4" />
Поставки товаров
</TabsTrigger>
<TabsTrigger
value="materials"
className="data-[state=active]:bg-white/20 data-[state=active]:text-white text-white/70 flex items-center gap-2 text-sm font-medium"
>
<Wrench className="h-4 w-4" />
Поставки расходников
</TabsTrigger>
</TabsList>
{/* Поставки товаров */}
<TabsContent value="goods" className="flex-1 overflow-hidden">
<Tabs
value={goodsSubTab}
onValueChange={setGoodsSubTab}
className="h-full flex flex-col"
>
<TabsList className="grid w-full grid-cols-2 bg-white/10 backdrop-blur border-white/10 flex-shrink-0 h-10 mb-3">
<TabsTrigger
value="fulfillment"
className="data-[state=active]:bg-white/20 data-[state=active]:text-white text-white/70 flex items-center gap-2 text-xs"
>
<Building className="h-3 w-3" />
Наш фулфилмент
</TabsTrigger>
<TabsTrigger
value="marketplaces"
className="data-[state=active]:bg-white/20 data-[state=active]:text-white text-white/70 flex items-center gap-2 text-xs"
>
<ShoppingCart className="h-3 w-3" />
Маркетплейсы
</TabsTrigger>
</TabsList>
<TabsContent
value="fulfillment"
className="flex-1 overflow-hidden"
>
<Card className="glass-card h-full overflow-hidden p-0">
<FulfillmentSuppliesTab />
</Card>
</TabsContent>
<TabsContent
value="marketplaces"
className="flex-1 overflow-hidden"
>
<Card className="glass-card h-full overflow-hidden p-0">
<MarketplaceSuppliesTab />
</Card>
</TabsContent>
</Tabs>
</TabsContent>
{/* Поставки расходников */}
<TabsContent value="materials" className="flex-1 overflow-hidden">
<Card className="glass-card h-full overflow-hidden p-0">
<MaterialsSuppliesTab />
</Card>
</TabsContent>
</Tabs>
</div>
</div>
</main>
</div>
);
}