'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { Button } from '@/components/ui/button' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { ProductSelector } from '@/components/product-selector' import { ArrowLeft, Package, Droplets, Plus, Minus, Beaker, Clock } from 'lucide-react' interface SplitOption { volume: number // ml price: number quantity: number // 可分装数量 } interface Product { id: string name: string brand: string price: number originalPrice: number image: string category: string tags: string[] rating: number reviews: number stock: number description: string volume?: string } export default function CreatePerfumeSplitPage() { const router = useRouter() const [selectedProduct, setSelectedProduct] = useState(null) const [formData, setFormData] = useState({ originalVolume: '100', // 原装容量 ml duration: '14', // 分装活动持续天数 }) const [splitOptions, setSplitOptions] = useState([ { volume: 5, price: 0, quantity: 10 }, { volume: 10, price: 0, quantity: 8 }, { volume: 20, price: 0, quantity: 4 } ]) const handleInputChange = (field: string, value: string) => { setFormData(prev => ({ ...prev, [field]: value })) } const addSplitOption = () => { const lastOption = splitOptions[splitOptions.length - 1] setSplitOptions(prev => [...prev, { volume: lastOption.volume + 5, price: 0, quantity: 1 }]) } const removeSplitOption = (index: number) => { if (splitOptions.length > 1) { setSplitOptions(prev => prev.filter((_, i) => i !== index)) } } const updateSplitOption = (index: number, field: keyof SplitOption, value: number) => { setSplitOptions(prev => prev.map((option, i) => i === index ? { ...option, [field]: value } : option )) } const handleSubmit = () => { console.log('创建香水分装:', { selectedProduct, formData, splitOptions }) router.push('/create') } return (
{/* 头部 */}

创建香水分装

选择香水,设置分装规格

{/* 表单内容 */}
{/* 商品选择 */} 选择香水 {/* 分装设置 */} 分装设置
handleInputChange('originalVolume', e.target.value)} className="mt-1" />
handleInputChange('duration', e.target.value)} className="mt-1" />
{/* 分装规格 */}
分装规格
{splitOptions.map((option, index) => (
updateSplitOption(index, 'volume', parseInt(e.target.value) || 0)} className="mt-1 h-8" />
updateSplitOption(index, 'price', parseInt(e.target.value) || 0)} className="mt-1 h-8" />
updateSplitOption(index, 'quantity', parseInt(e.target.value) || 0)} className="mt-1 h-8" />
{splitOptions.length > 1 && ( )}
))}
{/* 分装预览 */} {selectedProduct && splitOptions.some(opt => opt.price > 0) && ( 分装预览

{selectedProduct.name}

{selectedProduct.brand}

原装 {formData.originalVolume}ml · 分装 {formData.duration}天
{splitOptions.filter(opt => opt.price > 0).map((option, index) => (
{option.volume}ml
限量 {option.quantity} 份
¥{option.price}
¥{(option.price / option.volume).toFixed(1)}/ml
))}
)} {/* 创建按钮 */}
) }