'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { Input } from '@/components/ui/Input' import { ArrowLeft, Upload, Calendar, FileText, CheckCircle, X, Users } from 'lucide-react' // 模拟代理商列表 const mockAgencies = [ { id: 'agency-001', name: '星耀传媒', creatorCount: 50, passRate: 92 }, { id: 'agency-002', name: '创意无限', creatorCount: 35, passRate: 88 }, { id: 'agency-003', name: '美妆达人MCN', creatorCount: 28, passRate: 82 }, { id: 'agency-004', name: '时尚风向标', creatorCount: 42, passRate: 85 }, ] export default function CreateProjectPage() { const router = useRouter() const [projectName, setProjectName] = useState('') const [deadline, setDeadline] = useState('') const [briefFile, setBriefFile] = useState(null) const [selectedAgencies, setSelectedAgencies] = useState([]) const [isSubmitting, setIsSubmitting] = useState(false) const handleFileChange = (e: React.ChangeEvent) => { const file = e.target.files?.[0] if (file) { setBriefFile(file) } } const toggleAgency = (agencyId: string) => { setSelectedAgencies(prev => prev.includes(agencyId) ? prev.filter(id => id !== agencyId) : [...prev, agencyId] ) } const handleSubmit = async () => { if (!projectName.trim() || !deadline || !briefFile || selectedAgencies.length === 0) { alert('请填写完整信息') return } setIsSubmitting(true) // 模拟提交 await new Promise(resolve => setTimeout(resolve, 1500)) alert('项目创建成功!') router.push('/brand') } const isValid = projectName.trim() && deadline && briefFile && selectedAgencies.length > 0 return (
{/* 顶部导航 */}

创建项目

{/* 项目名称 */}
setProjectName(e.target.value)} placeholder="例如:XX品牌618推广" className="w-full px-4 py-3 border border-border-subtle rounded-lg bg-bg-elevated text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-indigo" />
{/* 截止日期 */}
setDeadline(e.target.value)} className="w-full pl-12 pr-4 py-3 border border-border-subtle rounded-lg bg-bg-elevated text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-indigo" />
{/* Brief 上传 */}
{briefFile ? (
{briefFile.name}
) : ( )}
{/* 选择代理商 */}
{mockAgencies.map((agency) => { const isSelected = selectedAgencies.includes(agency.id) return ( ) })}
{/* 操作按钮 */}
) }