Обновлены компоненты CreateFulfillmentConsumablesSupplyPage и FulfillmentSuppliesTab: изменено перенаправление на страницу поставок с активной вкладкой "Наши расходники". Добавлена логика для обработки URL параметров и обновления активной вкладки при загрузке. Оптимизирована обработка смены вкладок с обновлением URL.

This commit is contained in:
Bivekich
2025-07-24 16:26:27 +03:00
parent 1e22f6fef9
commit a111356a16
3 changed files with 26 additions and 7 deletions

View File

@ -244,8 +244,8 @@ export function CreateFulfillmentConsumablesSupplyPage() {
setProductSearchQuery(""); setProductSearchQuery("");
setSearchQuery(""); setSearchQuery("");
// Перенаправляем на страницу поставок фулфилмента // Перенаправляем на страницу поставок фулфилмента с активной вкладкой "Наши расходники"
router.push("/fulfillment-supplies"); router.push("/fulfillment-supplies?tab=detailed-supplies");
} else { } else {
toast.error( toast.error(
result.data?.createSupplyOrder?.message || result.data?.createSupplyOrder?.message ||

View File

@ -1,6 +1,7 @@
"use client"; "use client";
import { useState } from "react"; import { useState, useEffect } from "react";
import { useSearchParams, useRouter } from "next/navigation";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Package, Wrench, RotateCcw, Building2 } from "lucide-react"; import { Package, Wrench, RotateCcw, Building2 } from "lucide-react";
@ -13,13 +14,31 @@ import { FulfillmentConsumablesOrdersTab } from "./fulfillment-consumables-order
import { FulfillmentDetailedSuppliesTab } from "./fulfillment-detailed-supplies-tab"; import { FulfillmentDetailedSuppliesTab } from "./fulfillment-detailed-supplies-tab";
export function FulfillmentSuppliesTab() { export function FulfillmentSuppliesTab() {
const router = useRouter();
const searchParams = useSearchParams();
const [activeTab, setActiveTab] = useState("goods"); const [activeTab, setActiveTab] = useState("goods");
// Проверяем URL параметр при загрузке
useEffect(() => {
const tabParam = searchParams.get("tab");
if (tabParam && ["goods", "detailed-supplies", "consumables", "returns"].includes(tabParam)) {
setActiveTab(tabParam);
}
}, [searchParams]);
// Обновляем URL при смене вкладки
const handleTabChange = (newTab: string) => {
setActiveTab(newTab);
const currentPath = window.location.pathname;
const newUrl = `${currentPath}?tab=${newTab}`;
router.replace(newUrl);
};
return ( return (
<div className="h-full flex flex-col"> <div className="h-full flex flex-col">
<Tabs <Tabs
value={activeTab} value={activeTab}
onValueChange={setActiveTab} onValueChange={handleTabChange}
className="h-full flex flex-col" className="h-full flex flex-col"
> >
<TabsList className="grid w-full grid-cols-4 bg-white/10 backdrop-blur border-white/10 flex-shrink-0 h-10 mb-3 mx-4 mt-4"> <TabsList className="grid w-full grid-cols-4 bg-white/10 backdrop-blur border-white/10 flex-shrink-0 h-10 mb-3 mx-4 mt-4">

View File

@ -672,7 +672,7 @@ export function DirectSupplyCreation({
{/* НОВЫЙ БЛОК СОЗДАНИЯ ПОСТАВКИ */} {/* НОВЫЙ БЛОК СОЗДАНИЯ ПОСТАВКИ */}
<Card className="bg-white/10 backdrop-blur-xl border border-white/20 p-3"> <Card className="bg-white/10 backdrop-blur-xl border border-white/20 p-3">
{/* Первая строка */} {/* Первая строка */}
<div className="grid grid-cols-1 md:grid-cols-4 gap-3 items-end mb-2"> <div className="grid grid-cols-1 md:grid-cols-4 gap-2 items-end mb-0.5">
{/* 1. Модуль выбора даты */} {/* 1. Модуль выбора даты */}
<div> <div>
<Label className="text-white/80 text-xs mb-1 block flex items-center gap-1"> <Label className="text-white/80 text-xs mb-1 block flex items-center gap-1">
@ -700,7 +700,7 @@ export function DirectSupplyCreation({
value={selectedFulfillment} value={selectedFulfillment}
onValueChange={setSelectedFulfillment} onValueChange={setSelectedFulfillment}
> >
<SelectTrigger className="h-8 bg-white/20 border-0 text-white focus:bg-white/30 focus:ring-1 focus:ring-white/20 text-xs"> <SelectTrigger className="w-full h-8 py-0 px-2 bg-white/20 border-0 text-white focus:bg-white/30 focus:ring-1 focus:ring-white/20 text-xs">
<SelectValue placeholder="ФУЛФИЛМЕНТ ИВАНОВО" /> <SelectValue placeholder="ФУЛФИЛМЕНТ ИВАНОВО" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
@ -745,7 +745,7 @@ export function DirectSupplyCreation({
</div> </div>
{/* Вторая строка */} {/* Вторая строка */}
<div className="grid grid-cols-1 md:grid-cols-4 gap-3 items-end"> <div className="grid grid-cols-1 md:grid-cols-4 gap-2 items-end">
{/* 5. Цена товаров */} {/* 5. Цена товаров */}
<div> <div>
<Label className="text-white/80 text-xs mb-1 block"> <Label className="text-white/80 text-xs mb-1 block">