ура епте

This commit is contained in:
egortriston
2025-06-30 17:28:15 +03:00
parent 69ccc786ea
commit 1f1ea8baaf
4 changed files with 273 additions and 85 deletions

View File

@ -15,7 +15,11 @@ import VinCategory from '@/components/vin/VinCategory';
import PartDetailCard from '@/components/PartDetailCard';
import VinPartCard from '@/components/vin/VinPartCard';
import KnotIn from '@/components/vin/KnotIn';
import KnotParts from '@/components/vin/KnotParts';
import KnotParts from '@/components/vin/KnotParts';
import VinQuick from '@/components/vin/VinQuick';
import CatalogSubscribe from '@/components/CatalogSubscribe';
import MobileMenuBottomSection from '@/components/MobileMenuBottomSection';
interface LaximoVehicleInfo {
vehicleid: string;
@ -53,6 +57,7 @@ const VehicleDetailsPage = () => {
const [searchType, setSearchType] = useState<'quickgroups' | 'categories' | 'fulltext'>(defaultSearchType);
const [showKnot, setShowKnot] = useState(false);
const [foundParts, setFoundParts] = useState<any[]>([]);
const [activeTab, setActiveTab] = useState<'uzly' | 'manufacturer'>('uzly');
const [searchState, setSearchState] = useState<{
loading: boolean;
error: any;
@ -65,6 +70,7 @@ const VehicleDetailsPage = () => {
isSearching: false
});
const [selectedNode, setSelectedNode] = useState<any | null>(null);
const [selectedQuickGroup, setSelectedQuickGroup] = useState<any | null>(null);
const handleCategoryClick = (e?: React.MouseEvent) => {
if (e) e.preventDefault();
setShowKnot(true);
@ -291,6 +297,8 @@ const VehicleDetailsPage = () => {
setSearchState({ loading, error, query, isSearching: isSearching || false });
}}
onNodeSelect={setSelectedNode}
onActiveTabChange={(tab) => setActiveTab(tab)}
onQuickGroupSelect={setSelectedQuickGroup}
/>
{searchState.isSearching ? (
<div className="knot-parts">
@ -342,12 +350,23 @@ const VehicleDetailsPage = () => {
</div>
) : showKnot ? (
<VinKnot />
) : selectedQuickGroup ? (
<VinQuick
quickGroup={selectedQuickGroup}
catalogCode={vehicleInfo.catalog}
vehicleId={vehicleInfo.vehicleid}
ssd={vehicleInfo.ssd}
onBack={() => setSelectedQuickGroup(null)}
onNodeSelect={setSelectedNode}
/>
) : (
<VinCategory
catalogCode={vehicleInfo.catalog}
vehicleId={vehicleInfo.vehicleid}
ssd={vehicleInfo.ssd}
onNodeSelect={setSelectedNode}
activeTab={activeTab}
onQuickGroupSelect={setSelectedQuickGroup}
/>
)}
</>
@ -378,10 +397,15 @@ const VehicleDetailsPage = () => {
</div>
)}
</div>
<section className="section-3">
<CatalogSubscribe />
</section>
<Footer />
<MobileMenuBottomSection />
{/* ====== ВРЕМЕННЫЙ МАКЕТ ДЛЯ ВЕРСТКИ (конец) ====== */}
{/* Навигация */}
{/* Навигация
<nav className="bg-white border-b">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="flex items-center justify-between h-16">
@ -409,7 +433,7 @@ const VehicleDetailsPage = () => {
</div>
</nav>
{/* Информация об автомобиле */}
Информация об автомобиле
<div className="bg-white border-b">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
<div className="flex items-center space-x-4 mb-6">
@ -429,7 +453,7 @@ const VehicleDetailsPage = () => {
</div>
</div>
{/* Предупреждение об ошибке */}
Предупреждение об ошибке
{hasError && (
<div className="bg-yellow-50 border border-yellow-200 rounded-lg p-4 mb-6">
<div className="flex">
@ -450,7 +474,7 @@ const VehicleDetailsPage = () => {
</div>
)}
{/* Отладочная информация */}
Отладочная информация
<div className="bg-gray-50 border border-gray-200 rounded-lg p-4 mb-6">
<h4 className="text-sm font-medium text-gray-900 mb-3">
🔧 Отладочная информация
@ -481,7 +505,7 @@ const VehicleDetailsPage = () => {
</div>
</div>
{/* Характеристики автомобиля */}
Характеристики автомобиля
{vehicleInfo.attributes && vehicleInfo.attributes.length > 0 && (
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
{vehicleInfo.attributes.map((attr, index) => (
@ -495,7 +519,7 @@ const VehicleDetailsPage = () => {
</div>
</div>
{/* Способы поиска запчастей */}
Способы поиска запчастей
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<div className="mb-6">
<h2 className="text-xl font-bold text-gray-900 mb-2">Поиск запчастей</h2>
@ -504,7 +528,7 @@ const VehicleDetailsPage = () => {
</p>
</div>
{/* Диагностический компонент */}
Диагностический компонент
<LaximoDiagnostic
catalogCode={vehicleInfo.catalog}
vehicleId={vehicleInfo.vehicleid}
@ -517,7 +541,7 @@ const VehicleDetailsPage = () => {
searchType={searchType}
onSearchTypeChange={setSearchType}
/>
</div>
</div> */}
</>
);
};