From 27d378154f93722b147f17f4bb5e5f9006b13353 Mon Sep 17 00:00:00 2001 From: egortriston Date: Thu, 17 Jul 2025 16:35:45 +0300 Subject: [PATCH 1/2] fix1707 --- public/images/noimage.png | Bin 0 -> 7672 bytes src/components/CoreProductCard.tsx | 8 +- src/components/Footer.tsx | 4 +- src/components/index/BestPriceSection.tsx | 69 ++++++++++++-- src/components/index/NewArrivalsSection.tsx | 67 +++++++++++-- src/components/index/NewsAndPromos.tsx | 67 +++++++++++-- src/components/index/ProductOfDaySection.tsx | 12 ++- src/components/index/TopSalesSection.tsx | 67 +++++++++++-- .../vin/VehicleAttributesTooltip.tsx | 36 +++++-- src/components/vin/VinQuick.tsx | 24 +++-- src/styles/my.css | 89 +++++++++++++++++- 11 files changed, 376 insertions(+), 67 deletions(-) create mode 100644 public/images/noimage.png diff --git a/public/images/noimage.png b/public/images/noimage.png new file mode 100644 index 0000000000000000000000000000000000000000..858965408d0ade7d5f33616602b66bdf94ebf0ae GIT binary patch literal 7672 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 literal 0 HcmV?d00001 diff --git a/src/components/CoreProductCard.tsx b/src/components/CoreProductCard.tsx index cd04cc6..2a8f7ee 100644 --- a/src/components/CoreProductCard.tsx +++ b/src/components/CoreProductCard.tsx @@ -312,9 +312,9 @@ const CoreProductCard: React.FC = ({ info
-
-

{brand}

-

{article}

+
+

{brand}

+

{article}

= ({
-
{name}
+
{name}
{image && ( diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index db8c64e..8ad3735 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -115,7 +115,7 @@ const Footer = () => ( {/* Центр: меню */} -
+
Подбор по марке авто
Поиск по VIN @@ -178,7 +178,7 @@ const Footer = () => (
-
+
Политика конфиденциальности Согласие на обработку персональных данных diff --git a/src/components/index/BestPriceSection.tsx b/src/components/index/BestPriceSection.tsx index 200e7a6..0b84ff8 100644 --- a/src/components/index/BestPriceSection.tsx +++ b/src/components/index/BestPriceSection.tsx @@ -111,12 +111,62 @@ const BestPriceSection: React.FC = () => {
Подборка лучших предложенийпо цене
Показать все
-
+
+ {/* Стили для стрелок как в ProductOfDayBanner, но без абсолютного позиционирования */} +
{bestPriceItems.map((item, i) => ( @@ -124,10 +174,11 @@ const BestPriceSection: React.FC = () => { ))}
diff --git a/src/components/index/NewArrivalsSection.tsx b/src/components/index/NewArrivalsSection.tsx index 6ef8070..56df583 100644 --- a/src/components/index/NewArrivalsSection.tsx +++ b/src/components/index/NewArrivalsSection.tsx @@ -84,16 +84,66 @@ const NewArrivalsSection: React.FC = () => {

Новое поступление

+ {/* Стили для стрелок как в BestPriceSection и TopSalesSection */} +
@@ -149,10 +199,11 @@ const NewArrivalsSection: React.FC = () => { aria-label="Прокрутить вправо" style={{ cursor: 'pointer' }} > - - - - + + + + +
diff --git a/src/components/index/NewsAndPromos.tsx b/src/components/index/NewsAndPromos.tsx index 83a1630..14c3038 100644 --- a/src/components/index/NewsAndPromos.tsx +++ b/src/components/index/NewsAndPromos.tsx @@ -32,11 +32,61 @@ const NewsAndPromos = () => {
+ {/* Стили для стрелок как в других секциях */} +
{ />
diff --git a/src/components/index/ProductOfDaySection.tsx b/src/components/index/ProductOfDaySection.tsx index d450f09..4215ddf 100644 --- a/src/components/index/ProductOfDaySection.tsx +++ b/src/components/index/ProductOfDaySection.tsx @@ -110,8 +110,13 @@ const ProductOfDaySection: React.FC = () => { }; } - return null; + // Если нет ни одной картинки, возвращаем noimage.png + return { + url: '/images/noimage.png', + alt: product.name, + source: 'noimage' }; + }; // Обработчики для навигации по товарам дня const handlePrevSlide = (e: React.MouseEvent) => { @@ -209,6 +214,11 @@ const ProductOfDaySection: React.FC = () => { Parts Index )} + {productImage.source === 'noimage' && ( +
+ Нет изображения +
+ )} )} diff --git a/src/components/index/TopSalesSection.tsx b/src/components/index/TopSalesSection.tsx index 2364001..4970880 100644 --- a/src/components/index/TopSalesSection.tsx +++ b/src/components/index/TopSalesSection.tsx @@ -143,11 +143,61 @@ const TopSalesSection: React.FC = () => {

Топ продаж

+ {/* Стили для стрелок как в BestPriceSection */} +
{activeTopSalesProducts.map((item: TopSalesProductData) => { @@ -177,10 +227,11 @@ const TopSalesSection: React.FC = () => { })}
diff --git a/src/components/vin/VehicleAttributesTooltip.tsx b/src/components/vin/VehicleAttributesTooltip.tsx index e87ab43..5e1454d 100644 --- a/src/components/vin/VehicleAttributesTooltip.tsx +++ b/src/components/vin/VehicleAttributesTooltip.tsx @@ -19,6 +19,7 @@ interface VehicleAttributesTooltipProps { const VehicleAttributesTooltip: React.FC = ({ show, position, + vehicleName, vehicleAttributes, onMouseEnter, onMouseLeave, @@ -27,7 +28,7 @@ const VehicleAttributesTooltip: React.FC = ({ if (!show) return null; return (
= ({ /> )}
- {vehicleAttributes.map((attr, idx) => ( -
-
- {attr.name} -
-
- {attr.value} + {/* Заголовок */} + {vehicleName && ( +
{vehicleName}
+ )} + {/* Список характеристик или сообщение */} + {vehicleAttributes.length > 0 ? ( + vehicleAttributes.map((attr, idx) => ( +
+
+ {attr.name} +
+
+ {attr.value} +
+ )) + ) : ( +
+
Дополнительная информация недоступна
- ))} + )}
); diff --git a/src/components/vin/VinQuick.tsx b/src/components/vin/VinQuick.tsx index 26eac51..5695094 100644 --- a/src/components/vin/VinQuick.tsx +++ b/src/components/vin/VinQuick.tsx @@ -88,21 +88,19 @@ const VinQuick: React.FC = ({ quickGroup, catalogCode, vehicleId, ))} {total > 3 && shownCount < total && (
- {shownCount + 3 < total && ( - - )} +