'use client' import { useState } from 'react' import { Plus, FileText, Upload, Trash2, Edit, Check, Search, X, Eye } from 'lucide-react' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { Input } from '@/components/ui/Input' import { Modal } from '@/components/ui/Modal' import { SuccessTag, PendingTag } from '@/components/ui/Tag' // 平台选项 const platformOptions = [ { id: 'douyin', name: '抖音', icon: '🎵', color: 'bg-[#1a1a1a]' }, { id: 'xiaohongshu', name: '小红书', icon: '📕', color: 'bg-[#fe2c55]' }, { id: 'bilibili', name: 'B站', icon: '📺', color: 'bg-[#00a1d6]' }, { id: 'kuaishou', name: '快手', icon: '⚡', color: 'bg-[#ff4906]' }, { id: 'weibo', name: '微博', icon: '🔴', color: 'bg-[#e6162d]' }, { id: 'wechat', name: '微信视频号', icon: '💬', color: 'bg-[#07c160]' }, ] // 模拟 Brief 列表 const mockBriefs = [ { id: 'brief-001', name: '2024 夏日护肤活动', description: '夏日护肤系列产品推广规范', status: 'active', platforms: ['douyin', 'xiaohongshu'], rulesCount: 12, creatorsCount: 45, createdAt: '2024-01-15', updatedAt: '2024-02-01', }, { id: 'brief-002', name: '新品口红上市', description: '春季新品口红营销 Brief', status: 'active', platforms: ['xiaohongshu', 'bilibili'], rulesCount: 8, creatorsCount: 32, createdAt: '2024-02-01', updatedAt: '2024-02-03', }, { id: 'brief-003', name: '年货节活动', description: '春节年货促销活动规范', status: 'archived', platforms: ['douyin', 'kuaishou'], rulesCount: 15, creatorsCount: 78, createdAt: '2024-01-01', updatedAt: '2024-01-20', }, ] export default function BriefsPage() { const [briefs, setBriefs] = useState(mockBriefs) const [showCreateModal, setShowCreateModal] = useState(false) const [searchQuery, setSearchQuery] = useState('') // 新建 Brief 表单 const [newBriefName, setNewBriefName] = useState('') const [newBriefDesc, setNewBriefDesc] = useState('') const [selectedPlatforms, setSelectedPlatforms] = useState([]) // 查看详情 const [showDetailModal, setShowDetailModal] = useState(false) const [selectedBrief, setSelectedBrief] = useState(null) const filteredBriefs = briefs.filter((brief) => brief.name.toLowerCase().includes(searchQuery.toLowerCase()) ) // 切换平台选择 const togglePlatform = (platformId: string) => { setSelectedPlatforms(prev => prev.includes(platformId) ? prev.filter(id => id !== platformId) : [...prev, platformId] ) } // 获取平台信息 const getPlatformInfo = (platformId: string) => { return platformOptions.find(p => p.id === platformId) } // 创建 Brief const handleCreateBrief = () => { if (!newBriefName.trim() || selectedPlatforms.length === 0) return const newBrief = { id: `brief-${Date.now()}`, name: newBriefName, description: newBriefDesc, status: 'active' as const, platforms: selectedPlatforms, rulesCount: 0, creatorsCount: 0, createdAt: new Date().toISOString().split('T')[0], updatedAt: new Date().toISOString().split('T')[0], } setBriefs([newBrief, ...briefs]) setShowCreateModal(false) setNewBriefName('') setNewBriefDesc('') setSelectedPlatforms([]) } // 查看 Brief 详情 const viewBriefDetail = (brief: typeof mockBriefs[0]) => { setSelectedBrief(brief) setShowDetailModal(true) } // 删除 Brief const handleDeleteBrief = (id: string) => { setBriefs(briefs.filter(b => b.id !== id)) } return (

Brief 管理

创建和管理营销 Brief,配置不同平台的审核规则

{/* 搜索 */}
setSearchQuery(e.target.value)} className="w-full pl-10 pr-4 py-2.5 border border-border-subtle rounded-xl bg-bg-elevated text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-indigo" />
{/* Brief 列表 */}
{filteredBriefs.map((brief) => (
{brief.status === 'active' ? ( 使用中 ) : ( 已归档 )}

{brief.name}

{brief.description}

{/* 平台标签 */}
{brief.platforms.map(platformId => { const platform = getPlatformInfo(platformId) return platform ? ( {platform.icon} {platform.name} ) : null })}
{brief.rulesCount} 条规则 {brief.creatorsCount} 位达人
更新于 {brief.updatedAt}
))} {/* 新建卡片 */}
{/* 新建 Brief 弹窗 */} { setShowCreateModal(false) setNewBriefName('') setNewBriefDesc('') setSelectedPlatforms([]) }} title="新建 Brief" size="lg" >
setNewBriefName(e.target.value)} placeholder="输入 Brief 名称" className="w-full px-4 py-2.5 border border-border-subtle rounded-xl bg-bg-elevated text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-indigo" />