From 1e1da83acc0175a6a976b5fd271335a8665b6fe5 Mon Sep 17 00:00:00 2001 From: Veronika Smirnova Date: Thu, 24 Jul 2025 11:52:58 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=20SuppliesNavigationDemo?= =?UTF-8?q?=20=D0=B8=20=D1=81=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B0=D1=8F=20=D0=B2=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D0=B4=D0=BA=D0=B0=20=D0=B2=20UIKitSection.=20=D0=9E?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=20=D0=B8=20=D1=81=D1=82=D1=80=D1=83=D0=BA?= =?UTF-8?q?=D1=82=D1=83=D1=80=D0=B0=20=D0=BA=D0=BE=D0=B4=D0=B0=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B2=D0=B7=D0=B0=D0=B8=D0=BC=D0=BE=D0=B4=D0=B5=D0=B9?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20=D1=81=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D0=B5=D0=BC.?= =?UTF-8?q?=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D1=8B=20=D0=BE?= =?UTF-8?q?=D1=82=D1=81=D1=82=D1=83=D0=BF=D1=8B=20=D0=B2=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=BE=D0=BD=D0=B5=D0=BD=D1=82=D0=B0=D1=85=20Suppli?= =?UTF-8?q?esDashboard=20=D0=B8=20=D0=B4=D1=80=D1=83=D0=B3=D0=B8=D1=85=20?= =?UTF-8?q?=D0=B2=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA=D0=B0=D1=85=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=D0=B8=D0=B7=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B2=D0=BE=D1=81=D0=BF=D1=80=D0=B8=D1=8F=D1=82=D0=B8?= =?UTF-8?q?=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/admin/ui-kit-section.tsx | 11 + .../admin/ui-kit/supplies-navigation-demo.tsx | 188 ++++++++++++++++++ .../consumables-supplies-tab.tsx | 21 +- .../fulfillment-goods-tab.tsx | 21 +- .../fulfillment-supplies-sub-tab.tsx | 21 +- .../fulfillment-supplies/pvz-returns-tab.tsx | 21 +- .../goods-supplies/goods-supplies-tab.tsx | 21 +- .../ozon-supplies-tab.tsx | 21 +- .../wildberries-supplies-tab.tsx | 21 +- .../supplies/supplies-dashboard.tsx | 2 +- 10 files changed, 242 insertions(+), 106 deletions(-) create mode 100644 src/components/admin/ui-kit/supplies-navigation-demo.tsx diff --git a/src/components/admin/ui-kit-section.tsx b/src/components/admin/ui-kit-section.tsx index 35e3c54..b28c666 100644 --- a/src/components/admin/ui-kit-section.tsx +++ b/src/components/admin/ui-kit-section.tsx @@ -18,6 +18,7 @@ import { BusinessDemo } from "./ui-kit/business-demo"; import { TimesheetDemo } from "./ui-kit/timesheet-demo"; import { FulfillmentWarehouseDemo } from "./ui-kit/fulfillment-warehouse-demo"; import { SuppliesDemo } from "./ui-kit/supplies-demo"; +import { SuppliesNavigationDemo } from "./ui-kit/supplies-navigation-demo"; export function UIKitSection() { return ( @@ -133,6 +134,12 @@ export function UIKitSection() { > Поставки + + Навигация поставок + @@ -202,6 +209,10 @@ export function UIKitSection() { + + + + ); diff --git a/src/components/admin/ui-kit/supplies-navigation-demo.tsx b/src/components/admin/ui-kit/supplies-navigation-demo.tsx new file mode 100644 index 0000000..c2535b5 --- /dev/null +++ b/src/components/admin/ui-kit/supplies-navigation-demo.tsx @@ -0,0 +1,188 @@ +"use client"; + +import React, { useState } from "react"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { Button } from "@/components/ui/button"; +import { Card } from "@/components/ui/card"; +import { Plus } from "lucide-react"; + +export function SuppliesNavigationDemo() { + const [activeMainTab, setActiveMainTab] = useState("fulfillment"); + const [activeFulfillmentTab, setActiveFulfillmentTab] = useState("goods"); + const [activeMarketplaceTab, setActiveMarketplaceTab] = + useState("wildberries"); + + return ( +
+
+

+ Навигация поставок +

+

+ Компоненты навигации, используемые в разделе "Мои поставки" +

+
+ +
+ {/* Основная навигация поставок */} + +

+ Основная навигация +

+
+
+ + setActiveMainTab("fulfillment")} + > + Поставки на ФФ + + setActiveMainTab("marketplace")} + > + Поставки на Маркетплейсы + + + + +
+
+
+ + {/* Подвкладки для ФФ */} + +

+ Навигация ФФ поставок +

+ + setActiveFulfillmentTab("goods")} + > + Товар + + setActiveFulfillmentTab("supplies")} + > + Расходники + + setActiveFulfillmentTab("returns")} + > + Возвраты с ПВЗ + + +
+ Активная вкладка:{" "} + + {activeFulfillmentTab} + +
+
+
+ + {/* Подвкладки для Маркетплейсов */} + +

+ Навигация Маркетплейс поставок +

+ + setActiveMarketplaceTab("wildberries")} + > + Поставки на Wildberries + + setActiveMarketplaceTab("ozon")} + > + Поставки на Ozon + + +
+ Активная вкладка:{" "} + {activeMarketplaceTab} +
+
+ + {/* Примеры использования */} + +

+ Примеры использования +

+
+
+

+ Стили кнопок навигации: +

+
+

+ •{" "} + + bg-white/10 backdrop-blur border-white/20 + {" "} + - основной фон TabsList +

+

+ •{" "} + + data-[state=active]:bg-gradient-to-r from-purple-500 + to-pink-500 + {" "} + - активное состояние основных вкладок +

+

+ •{" "} + + data-[state=active]:bg-white/20 + {" "} + - активное состояние подвкладок +

+

+ •{" "} + + text-white/60 + {" "} + - неактивный текст +

+

+ •{" "} + + data-[state=active]:text-white + {" "} + - активный текст +

+
+
+ +
+

+ Структура компонентов: +

+
+

• Главные вкладки используют градиентный фон при активации

+

• Подвкладки используют полупрозрачный белый фон

+

• Кнопка создания поставки имеет градиент purple-to-pink

+

• Все элементы используют backdrop-blur эффект

+
+
+
+
+
+ ); +} diff --git a/src/components/supplies/consumables-supplies/consumables-supplies-tab.tsx b/src/components/supplies/consumables-supplies/consumables-supplies-tab.tsx index c7d2b24..4536406 100644 --- a/src/components/supplies/consumables-supplies/consumables-supplies-tab.tsx +++ b/src/components/supplies/consumables-supplies/consumables-supplies-tab.tsx @@ -509,23 +509,14 @@ export function SuppliesConsumablesTab() { return ( {/* Основная строка поставки расходников */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/fulfillment-supplies/fulfillment-goods-tab.tsx b/src/components/supplies/fulfillment-supplies/fulfillment-goods-tab.tsx index f6bd60e..e8fc7b6 100644 --- a/src/components/supplies/fulfillment-supplies/fulfillment-goods-tab.tsx +++ b/src/components/supplies/fulfillment-supplies/fulfillment-goods-tab.tsx @@ -408,23 +408,14 @@ export function FulfillmentGoodsTab() { return ( {/* Основная строка поставки */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/fulfillment-supplies/fulfillment-supplies-sub-tab.tsx b/src/components/supplies/fulfillment-supplies/fulfillment-supplies-sub-tab.tsx index 2c14511..cd3c8b6 100644 --- a/src/components/supplies/fulfillment-supplies/fulfillment-supplies-sub-tab.tsx +++ b/src/components/supplies/fulfillment-supplies/fulfillment-supplies-sub-tab.tsx @@ -361,23 +361,14 @@ export function FulfillmentSuppliesTab() { return ( {/* Основная строка поставки расходников ФФ */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/fulfillment-supplies/pvz-returns-tab.tsx b/src/components/supplies/fulfillment-supplies/pvz-returns-tab.tsx index fcd0508..0e63a5e 100644 --- a/src/components/supplies/fulfillment-supplies/pvz-returns-tab.tsx +++ b/src/components/supplies/fulfillment-supplies/pvz-returns-tab.tsx @@ -408,23 +408,14 @@ export function PvzReturnsTab() { return ( {/* Основная строка возврата */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/goods-supplies/goods-supplies-tab.tsx b/src/components/supplies/goods-supplies/goods-supplies-tab.tsx index 0165009..fe25f6c 100644 --- a/src/components/supplies/goods-supplies/goods-supplies-tab.tsx +++ b/src/components/supplies/goods-supplies/goods-supplies-tab.tsx @@ -422,23 +422,14 @@ export function SuppliesGoodsTab() { return ( {/* Уровень 1: Основная строка поставки */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx b/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx index 51e393c..25c2349 100644 --- a/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx +++ b/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx @@ -404,23 +404,14 @@ export function OzonSuppliesTab() { return ( {/* Основная строка поставки на Ozon */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx b/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx index 8c882fb..6868f7f 100644 --- a/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx +++ b/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx @@ -404,23 +404,14 @@ export function WildberriesSuppliesTab() { return ( {/* Основная строка поставки на WB */} - + toggleSupplyExpansion(supply.id)} + >
- - - #{supply.number} + + {supply.number}
diff --git a/src/components/supplies/supplies-dashboard.tsx b/src/components/supplies/supplies-dashboard.tsx index 361bbef..d899a38 100644 --- a/src/components/supplies/supplies-dashboard.tsx +++ b/src/components/supplies/supplies-dashboard.tsx @@ -26,7 +26,7 @@ export function SuppliesDashboard() { onValueChange={setActiveTab} className="w-full h-full flex flex-col" > -
+