Добавлены модели WildberriesSupply и WildberriesSupplyCard в схему Prisma, а также соответствующие мутации и запросы в GraphQL для управления поставками Wildberries. Обновлены компоненты создания поставки для поддержки выбора карточек товаров и улучшен интерфейс. Реализована логика обработки карточек товаров и их отображения.
This commit is contained in:
@ -15,6 +15,7 @@ import {
|
||||
Mail,
|
||||
Star
|
||||
} from 'lucide-react'
|
||||
import { WBProductCards } from './wb-product-cards'
|
||||
// import { WholesalerSelection } from './wholesaler-selection'
|
||||
|
||||
interface Wholesaler {
|
||||
@ -31,6 +32,34 @@ interface Wholesaler {
|
||||
specialization: string[]
|
||||
}
|
||||
|
||||
interface WildberriesCard {
|
||||
nmID: number
|
||||
vendorCode: string
|
||||
title: string
|
||||
description: string
|
||||
brand: string
|
||||
mediaFiles: string[]
|
||||
sizes: Array<{
|
||||
chrtID: number
|
||||
techSize: string
|
||||
wbSize: string
|
||||
price: number
|
||||
discountedPrice: number
|
||||
quantity: number
|
||||
}>
|
||||
}
|
||||
|
||||
interface SelectedCard {
|
||||
card: WildberriesCard
|
||||
selectedQuantity: number
|
||||
selectedMarket: string
|
||||
selectedPlace: string
|
||||
sellerName: string
|
||||
sellerPhone: string
|
||||
deliveryDate: string
|
||||
selectedServices: string[]
|
||||
}
|
||||
|
||||
interface CreateSupplyFormProps {
|
||||
onClose: () => void
|
||||
onSupplyCreated: () => void
|
||||
@ -79,6 +108,7 @@ const mockWholesalers: Wholesaler[] = [
|
||||
export function CreateSupplyForm({ onClose, onSupplyCreated }: CreateSupplyFormProps) {
|
||||
const [selectedVariant, setSelectedVariant] = useState<'cards' | 'wholesaler' | null>(null)
|
||||
const [selectedWholesaler, setSelectedWholesaler] = useState<Wholesaler | null>(null)
|
||||
const [selectedCards, setSelectedCards] = useState<SelectedCard[]>([])
|
||||
|
||||
const renderStars = (rating: number) => {
|
||||
return Array.from({ length: 5 }, (_, i) => (
|
||||
@ -89,6 +119,22 @@ export function CreateSupplyForm({ onClose, onSupplyCreated }: CreateSupplyFormP
|
||||
))
|
||||
}
|
||||
|
||||
const handleCardsComplete = (cards: SelectedCard[]) => {
|
||||
setSelectedCards(cards)
|
||||
console.log('Карточки товаров выбраны:', cards)
|
||||
// TODO: Здесь будет создание поставки с данными карточек
|
||||
onSupplyCreated()
|
||||
}
|
||||
|
||||
if (selectedVariant === 'cards') {
|
||||
return (
|
||||
<WBProductCards
|
||||
onBack={() => setSelectedVariant(null)}
|
||||
onComplete={handleCardsComplete}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
if (selectedVariant === 'wholesaler') {
|
||||
if (selectedWholesaler) {
|
||||
return (
|
||||
@ -267,8 +313,8 @@ export function CreateSupplyForm({ onClose, onSupplyCreated }: CreateSupplyFormP
|
||||
Создание поставки через выбор товаров по карточкам
|
||||
</p>
|
||||
</div>
|
||||
<Badge className="bg-yellow-500/20 text-yellow-300 border-yellow-500/30">
|
||||
В разработке
|
||||
<Badge className="bg-green-500/20 text-green-300 border-green-500/30">
|
||||
Доступно
|
||||
</Badge>
|
||||
</div>
|
||||
</Card>
|
||||
|
Reference in New Issue
Block a user