'use client' import { useState } from 'react' import { useRouter, useParams } from 'next/navigation' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { SuccessTag, WarningTag, ErrorTag } from '@/components/ui/Tag' import { ArrowLeft, FileText, Upload, CheckCircle, Plus, X, Save, Sparkles, Target, Ban, AlertTriangle } from 'lucide-react' // 模拟 Brief 详情 const mockBrief = { id: 'brief-001', projectName: 'XX品牌618推广', brandName: 'XX护肤品牌', status: 'configured', fileName: 'XX品牌618推广Brief.pdf', uploadedAt: '2026-02-01', configuredAt: '2026-02-02', sellingPoints: [ { id: 'sp1', content: 'SPF50+ PA++++', required: true }, { id: 'sp2', content: '轻薄质地,不油腻', required: true }, { id: 'sp3', content: '延展性好,易推开', required: false }, { id: 'sp4', content: '适合敏感肌', required: false }, { id: 'sp5', content: '夏日必备防晒', required: true }, ], blacklistWords: [ { id: 'bw1', word: '最好', reason: '绝对化用语' }, { id: 'bw2', word: '第一', reason: '绝对化用语' }, { id: 'bw3', word: '神器', reason: '夸大宣传' }, { id: 'bw4', word: '完美', reason: '绝对化用语' }, ], aiParsedContent: { productName: 'XX品牌防晒霜', targetAudience: '18-35岁女性', contentRequirements: '需展示产品质地、使用效果', restrictions: '不可提及竞品,不可使用绝对化用语', }, } export default function BriefConfigPage() { const router = useRouter() const params = useParams() const [brief, setBrief] = useState(mockBrief) const [newSellingPoint, setNewSellingPoint] = useState('') const [newBlacklistWord, setNewBlacklistWord] = useState('') const [isAIParsing, setIsAIParsing] = useState(false) const [isSaving, setIsSaving] = useState(false) const handleAIParse = async () => { setIsAIParsing(true) // 模拟 AI 解析 await new Promise(resolve => setTimeout(resolve, 2000)) setIsAIParsing(false) alert('AI 解析完成!') } const addSellingPoint = () => { if (!newSellingPoint.trim()) return setBrief(prev => ({ ...prev, sellingPoints: [...prev.sellingPoints, { id: `sp${Date.now()}`, content: newSellingPoint, required: false }] })) setNewSellingPoint('') } const removeSellingPoint = (id: string) => { setBrief(prev => ({ ...prev, sellingPoints: prev.sellingPoints.filter(sp => sp.id !== id) })) } const toggleRequired = (id: string) => { setBrief(prev => ({ ...prev, sellingPoints: prev.sellingPoints.map(sp => sp.id === id ? { ...sp, required: !sp.required } : sp ) })) } const addBlacklistWord = () => { if (!newBlacklistWord.trim()) return setBrief(prev => ({ ...prev, blacklistWords: [...prev.blacklistWords, { id: `bw${Date.now()}`, word: newBlacklistWord, reason: '自定义' }] })) setNewBlacklistWord('') } const removeBlacklistWord = (id: string) => { setBrief(prev => ({ ...prev, blacklistWords: prev.blacklistWords.filter(bw => bw.id !== id) })) } const handleSave = async () => { setIsSaving(true) await new Promise(resolve => setTimeout(resolve, 1000)) setIsSaving(false) alert('配置已保存!') } return (
{brief.brandName}
{brief.fileName}
上传于 {brief.uploadedAt}
产品名称
{brief.aiParsedContent.productName}
目标人群
{brief.aiParsedContent.targetAudience}
内容要求
{brief.aiParsedContent.contentRequirements}
限制条件
{brief.aiParsedContent.restrictions}
配置说明