+ toggleWholesalerExpansion(wholesaler.id)
+ }
+ >
+
-
-
-
+
+
+
+
Оптовик
+
|
-
+ |
-
+
{wholesaler.name}
-
+
ИНН: {wholesaler.inn}
- |
-
-
+ | |
+
+
{wholesaler.products.reduce(
(sum, p) => sum + p.plannedQty,
0
)}
|
-
-
+ |
+
{wholesaler.products.reduce(
(sum, p) => sum + p.actualQty,
0
)}
|
-
-
+ |
+
{wholesaler.products.reduce(
(sum, p) => sum + p.defectQty,
0
)}
|
-
-
+ |
+
{formatCurrency(
wholesaler.products.reduce(
(sum, p) =>
@@ -671,9 +661,12 @@ export function FulfillmentGoodsTab() {
)}
|
- |
-
-
+ | |
+
+
{formatCurrency(
wholesaler.totalAmount
)}
@@ -689,57 +682,53 @@ export function FulfillmentGoodsTab() {
expandedProducts.has(product.id);
return (
-
-
+ |
+ toggleProductExpansion(
+ product.id
+ )
+ }
+ >
+
-
-
-
+
+
+
+
+
Товар
+
|
-
+ |
-
+
{product.name}
-
+
Артикул: {product.sku}
-
+
{product.category}
|
-
-
+ | |
+
+
{product.plannedQty}
|
-
-
+ |
+
{product.actualQty}
|
-
+ |
0
? "text-red-400"
: "text-white"
@@ -748,16 +737,16 @@ export function FulfillmentGoodsTab() {
{product.defectQty}
|
-
+ |
-
+
{formatCurrency(
calculateProductTotal(
product
)
)}
-
+
{formatCurrency(
product.productPrice
)}{" "}
@@ -765,15 +754,18 @@ export function FulfillmentGoodsTab() {
|
-
+ |
{getEfficiencyBadge(
product.plannedQty,
product.actualQty,
product.defectQty
)}
|
-
-
+ |
+
{formatCurrency(
calculateProductTotal(
product
@@ -781,7 +773,7 @@ export function FulfillmentGoodsTab() {
)}
|
- |
+ |
{/* Параметры товара */}
@@ -792,7 +784,7 @@ export function FulfillmentGoodsTab() {
className="p-0"
>
-
+
📋 Параметры товара:
diff --git a/src/components/supplies/fulfillment-supplies/fulfillment-supplies-tab.tsx b/src/components/supplies/fulfillment-supplies/fulfillment-supplies-tab.tsx
index ee04623..34accf4 100644
--- a/src/components/supplies/fulfillment-supplies/fulfillment-supplies-tab.tsx
+++ b/src/components/supplies/fulfillment-supplies/fulfillment-supplies-tab.tsx
@@ -10,7 +10,9 @@ interface FulfillmentSuppliesTabProps {
defaultSubTab?: string;
}
-export function FulfillmentSuppliesTab({ defaultSubTab }: FulfillmentSuppliesTabProps) {
+export function FulfillmentSuppliesTab({
+ defaultSubTab,
+}: FulfillmentSuppliesTabProps) {
const [activeSubTab, setActiveSubTab] = useState("goods");
// Устанавливаем активную подвкладку при получении defaultSubTab
@@ -28,24 +30,25 @@ export function FulfillmentSuppliesTab({ defaultSubTab }: FulfillmentSuppliesTab
className="w-full h-full flex flex-col overflow-hidden"
>
{/* Подвкладки для ФФ */}
-
+
Товар
Расходники
- Возвраты с ПВЗ
+ Возвраты с ПВЗ
+ Возвраты
diff --git a/src/components/supplies/fulfillment-supplies/real-supply-orders-tab.tsx b/src/components/supplies/fulfillment-supplies/real-supply-orders-tab.tsx
index 93ad62d..f72ccf5 100644
--- a/src/components/supplies/fulfillment-supplies/real-supply-orders-tab.tsx
+++ b/src/components/supplies/fulfillment-supplies/real-supply-orders-tab.tsx
@@ -15,8 +15,6 @@ import {
DollarSign,
Wrench,
Package2,
- ChevronDown,
- ChevronRight,
} from "lucide-react";
interface SupplyOrderItem {
@@ -214,7 +212,7 @@ export function RealSupplyOrdersTab() {
Пока нет заказов расходников
- Создайте первый заказ расходников через кнопку "Создать поставку"
+ Создайте первый заказ расходников через кнопку "Создать поставку"
@@ -257,16 +255,9 @@ export function RealSupplyOrdersTab() {
onClick={() => toggleOrderExpansion(order.id)}
>
-
- {isOrderExpanded ? (
-
- ) : (
-
- )}
-
- {order.id.slice(-8)}
-
-
+
+ {order.id.slice(-8)}
+
|
diff --git a/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx b/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx
index 25c2349..e8c5c2b 100644
--- a/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx
+++ b/src/components/supplies/marketplace-supplies/ozon-supplies-tab.tsx
@@ -2,13 +2,10 @@
import React, { useState } from "react";
import { Card } from "@/components/ui/card";
-import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import { StatsCard } from "../ui/stats-card";
import { StatsGrid } from "../ui/stats-grid";
import {
- ChevronDown,
- ChevronRight,
Calendar,
Package,
MapPin,
@@ -481,23 +478,12 @@ export function OzonSuppliesTab() {
const isRouteExpanded = expandedRoutes.has(route.id);
return (
-
-
+ | toggleRouteExpansion(route.id)}
+ >
+
-
Маршрут
@@ -584,25 +570,14 @@ export function OzonSuppliesTab() {
expandedWarehouses.has(warehouse.id);
return (
-
-
+ |
+ toggleWarehouseExpansion(warehouse.id)
+ }
+ >
+
-
Склад Ozon
@@ -675,7 +650,7 @@ export function OzonSuppliesTab() {
key={product.id}
className="border-b border-white/10 hover:bg-white/5 transition-colors bg-teal-500/10"
>
-
+ |
diff --git a/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx b/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx
index 6868f7f..28fc77e 100644
--- a/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx
+++ b/src/components/supplies/marketplace-supplies/wildberries-supplies-tab.tsx
@@ -2,13 +2,10 @@
import React, { useState } from "react";
import { Card } from "@/components/ui/card";
-import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import { StatsCard } from "../ui/stats-card";
import { StatsGrid } from "../ui/stats-grid";
import {
- ChevronDown,
- ChevronRight,
Calendar,
Package,
MapPin,
@@ -481,23 +478,12 @@ export function WildberriesSuppliesTab() {
const isRouteExpanded = expandedRoutes.has(route.id);
return (
-
-
+ | toggleRouteExpansion(route.id)}
+ >
+
-
Маршрут
@@ -584,25 +570,14 @@ export function WildberriesSuppliesTab() {
expandedWarehouses.has(warehouse.id);
return (
-
-
+ |
+ toggleWarehouseExpansion(warehouse.id)
+ }
+ >
+
-
Склад WB
@@ -675,7 +650,7 @@ export function WildberriesSuppliesTab() {
key={product.id}
className="border-b border-white/10 hover:bg-white/5 transition-colors bg-yellow-500/10"
>
-
+ |
diff --git a/src/components/supplies/supplies-dashboard.tsx b/src/components/supplies/supplies-dashboard.tsx
index 2a39038..952085c 100644
--- a/src/components/supplies/supplies-dashboard.tsx
+++ b/src/components/supplies/supplies-dashboard.tsx
@@ -23,9 +23,9 @@ export function SuppliesDashboard() {
// Автоматически открываем нужную вкладку при загрузке
useEffect(() => {
- const tab = searchParams.get('tab');
- if (tab === 'consumables') {
- setActiveTab('fulfillment'); // Устанавливаем основную вкладку "Поставки на ФФ"
+ const tab = searchParams.get("tab");
+ if (tab === "consumables") {
+ setActiveTab("fulfillment"); // Устанавливаем основную вкладку "Поставки на ФФ"
}
}, [searchParams]);
@@ -33,7 +33,7 @@ export function SuppliesDashboard() {
{/* Главные вкладки с кнопкой создания */}
@@ -42,28 +42,34 @@ export function SuppliesDashboard() {
onValueChange={setActiveTab}
className="w-full h-full flex flex-col"
>
-
-
+
+
- Поставки на ФФ
+ Поставки на ФФ
+ ФФ
- Поставки на Маркетплейсы
+ Поставки на Маркетплейсы
+ МП
-
-
-
+
+
-
+
diff --git a/src/components/supplies/ui/stats-card.tsx b/src/components/supplies/ui/stats-card.tsx
index 0417fbc..9d51752 100644
--- a/src/components/supplies/ui/stats-card.tsx
+++ b/src/components/supplies/ui/stats-card.tsx
@@ -32,27 +32,29 @@ export function StatsCard({
return (
-
-
-
+
+
+
{title}
{value}
{subtitle && (
- {subtitle}
+
+ {subtitle}
+
)}
@@ -60,7 +62,7 @@ export function StatsCard({
{trend && (
| | | | | | | |