Добавлены функции фильтрации и сортировки контрагентов в компонент MarketCounterparties. Реализованы поля для поиска, выбора типа и порядка сортировки. Обновлены стили и структура кода для улучшения взаимодействия с пользователем. Оптимизированы запросы к API для получения данных о контрагентах.
This commit is contained in:
@ -437,7 +437,7 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
card.title.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
card.brand.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
card.vendorCode.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
card.object.toLowerCase().includes(searchTerm.toLowerCase())
|
||||
card.object?.toLowerCase().includes(searchTerm.toLowerCase())
|
||||
)
|
||||
|
||||
setWbCards(filteredCards)
|
||||
@ -450,7 +450,7 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
card.title.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
card.brand.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
card.vendorCode.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
||||
card.object.toLowerCase().includes(searchTerm.toLowerCase())
|
||||
card.object?.toLowerCase().includes(searchTerm.toLowerCase())
|
||||
)
|
||||
setWbCards(filteredCards)
|
||||
console.log('Найдено моковых товаров (fallback):', filteredCards.length)
|
||||
@ -573,14 +573,20 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
}
|
||||
|
||||
const nextImage = () => {
|
||||
if (selectedCardForDetails && selectedCardForDetails.mediaFiles?.length > 1) {
|
||||
setCurrentImageIndex((prev) => (prev + 1) % selectedCardForDetails.mediaFiles.length)
|
||||
if (selectedCardForDetails) {
|
||||
const images = WildberriesService.getCardImages(selectedCardForDetails)
|
||||
if (images.length > 1) {
|
||||
setCurrentImageIndex((prev) => (prev + 1) % images.length)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const prevImage = () => {
|
||||
if (selectedCardForDetails && selectedCardForDetails.mediaFiles?.length > 1) {
|
||||
setCurrentImageIndex((prev) => (prev - 1 + selectedCardForDetails.mediaFiles.length) % selectedCardForDetails.mediaFiles.length)
|
||||
if (selectedCardForDetails) {
|
||||
const images = WildberriesService.getCardImages(selectedCardForDetails)
|
||||
if (images.length > 1) {
|
||||
setCurrentImageIndex((prev) => (prev - 1 + images.length) % images.length)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -652,7 +658,7 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
<Card key={sc.card.nmID} className="bg-white/10 backdrop-blur border-white/20 p-4">
|
||||
<div className="flex space-x-4">
|
||||
<img
|
||||
src={sc.card.mediaFiles?.[0] || '/api/placeholder/120/120'}
|
||||
src={WildberriesService.getCardImage(sc.card, 'c246x328') || '/api/placeholder/120/120'}
|
||||
alt={sc.card.title}
|
||||
className="w-20 h-20 rounded-lg object-cover"
|
||||
/>
|
||||
@ -1017,7 +1023,7 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
<div className="relative">
|
||||
<div className="aspect-square relative bg-white/5 overflow-hidden rounded-lg">
|
||||
<img
|
||||
src={card.mediaFiles?.[0] || '/api/placeholder/300/300'}
|
||||
src={WildberriesService.getCardImage(card, 'c516x688') || '/api/placeholder/300/300'}
|
||||
alt={card.title}
|
||||
className="w-full h-full object-cover cursor-pointer group-hover:scale-110 transition-transform duration-500"
|
||||
onClick={() => handleCardClick(card)}
|
||||
@ -1201,13 +1207,13 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
<div className="p-4 lg:p-6 space-y-4 overflow-hidden">
|
||||
<div className="relative">
|
||||
<img
|
||||
src={selectedCardForDetails.mediaFiles?.[currentImageIndex] || '/api/placeholder/400/400'}
|
||||
src={WildberriesService.getCardImages(selectedCardForDetails)[currentImageIndex] || '/api/placeholder/400/400'}
|
||||
alt={selectedCardForDetails.title}
|
||||
className="w-full aspect-square rounded-lg object-cover"
|
||||
/>
|
||||
|
||||
{/* Навигация по изображениям */}
|
||||
{selectedCardForDetails.mediaFiles?.length > 1 && (
|
||||
{WildberriesService.getCardImages(selectedCardForDetails).length > 1 && (
|
||||
<>
|
||||
<button
|
||||
onClick={prevImage}
|
||||
@ -1223,17 +1229,17 @@ export function WBProductCards({ onBack, onComplete }: WBProductCardsProps) {
|
||||
</button>
|
||||
|
||||
<div className="absolute bottom-3 left-1/2 -translate-x-1/2 bg-black/70 px-3 py-1 rounded-full text-white text-sm">
|
||||
{currentImageIndex + 1} из {selectedCardForDetails.mediaFiles?.length || 0}
|
||||
{currentImageIndex + 1} из {WildberriesService.getCardImages(selectedCardForDetails).length}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Миниатюры изображений */}
|
||||
{selectedCardForDetails.mediaFiles?.length > 1 && (
|
||||
{WildberriesService.getCardImages(selectedCardForDetails).length > 1 && (
|
||||
<div className="w-full overflow-hidden">
|
||||
<div className="flex space-x-2 overflow-x-auto pb-2 scrollbar-thin scrollbar-thumb-white/20 scrollbar-track-transparent">
|
||||
{selectedCardForDetails.mediaFiles?.map((image, index) => (
|
||||
{WildberriesService.getCardImages(selectedCardForDetails).map((image, index) => (
|
||||
<img
|
||||
key={index}
|
||||
src={image}
|
||||
|
Reference in New Issue
Block a user