'use client' import { useState } from 'react' import Link from 'next/link' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { SuccessTag, PendingTag, WarningTag, ErrorTag } from '@/components/ui/Tag' import { FileText, Video, Search, Filter, Clock, User, AlertTriangle, ChevronRight, Download, Eye, File } from 'lucide-react' import { getPlatformInfo } from '@/lib/platforms' // 模拟脚本待审列表 const mockScriptTasks = [ { id: 'script-001', title: '夏日护肤推广脚本', fileName: '夏日护肤推广_脚本v2.docx', fileSize: '245 KB', creatorName: '小美护肤', projectName: 'XX品牌618推广', platform: 'douyin', aiScore: 88, riskLevel: 'low' as const, submittedAt: '2026-02-06 14:30', hasHighRisk: false, }, { id: 'script-002', title: '新品口红试色脚本', fileName: '口红试色_脚本v1.docx', fileSize: '312 KB', creatorName: '美妆Lisa', projectName: 'XX品牌618推广', platform: 'xiaohongshu', aiScore: 72, riskLevel: 'medium' as const, submittedAt: '2026-02-06 12:15', hasHighRisk: true, }, { id: 'script-003', title: '健身器材推荐脚本', fileName: '健身器材_推荐脚本.pdf', fileSize: '189 KB', creatorName: '健身教练王', projectName: 'XX运动品牌', platform: 'bilibili', aiScore: 95, riskLevel: 'low' as const, submittedAt: '2026-02-06 10:00', hasHighRisk: false, }, { id: 'script-004', title: '618大促预热脚本', fileName: '618预热_脚本final.docx', fileSize: '278 KB', creatorName: '达人D', projectName: 'XX品牌618推广', platform: 'kuaishou', aiScore: 62, riskLevel: 'high' as const, submittedAt: '2026-02-06 09:00', hasHighRisk: true, }, ] // 模拟视频待审列表 const mockVideoTasks = [ { id: 'video-001', title: '夏日护肤推广', fileName: '夏日护肤_成片v2.mp4', fileSize: '128 MB', creatorName: '小美护肤', projectName: 'XX品牌618推广', platform: 'douyin', aiScore: 85, riskLevel: 'low' as const, duration: '02:15', submittedAt: '2026-02-06 15:00', hasHighRisk: false, }, { id: 'video-002', title: '新品口红试色', fileName: '口红试色_终版.mp4', fileSize: '256 MB', creatorName: '美妆Lisa', projectName: 'XX品牌618推广', platform: 'xiaohongshu', aiScore: 68, riskLevel: 'medium' as const, duration: '03:42', submittedAt: '2026-02-06 13:45', hasHighRisk: true, }, { id: 'video-003', title: '美妆新品体验', fileName: '美妆体验_v3.mp4', fileSize: '198 MB', creatorName: '达人C', projectName: 'XX品牌618推广', platform: 'bilibili', aiScore: 58, riskLevel: 'high' as const, duration: '04:20', submittedAt: '2026-02-06 11:30', hasHighRisk: true, }, { id: 'video-004', title: '618大促预热', fileName: '618预热_final.mp4', fileSize: '167 MB', creatorName: '达人D', projectName: 'XX品牌618推广', platform: 'wechat', aiScore: 91, riskLevel: 'low' as const, duration: '01:45', submittedAt: '2026-02-06 10:15', hasHighRisk: false, }, ] // 风险等级配置 const riskLevelConfig = { low: { label: 'AI通过', color: 'bg-accent-green', textColor: 'text-accent-green' }, medium: { label: '风险:中', color: 'bg-accent-amber', textColor: 'text-accent-amber' }, high: { label: '风险:高', color: 'bg-accent-coral', textColor: 'text-accent-coral' }, } function ScoreTag({ score }: { score: number }) { if (score >= 85) return {score}分 if (score >= 70) return {score}分 return {score}分 } type ScriptTask = typeof mockScriptTasks[0] type VideoTask = typeof mockVideoTasks[0] function ScriptTaskCard({ task }: { task: ScriptTask }) { const riskConfig = riskLevelConfig[task.riskLevel] const platform = getPlatformInfo(task.platform) const handleDownload = (e: React.MouseEvent) => { e.stopPropagation() // 模拟下载 console.log('下载脚本:', task.fileName) } return (
{/* 平台顶部条 */} {platform && (
{platform.icon} {platform.name}
)}
{/* 顶部:达人名 · 任务名 + 状态标签 */}
{task.creatorName} · {task.title}
{riskConfig.label}
{/* 文件信息 */}

{task.fileName}

{task.fileSize}

{/* 底部:时间 + 审核按钮 */}
{task.submittedAt}
) } function VideoTaskCard({ task }: { task: VideoTask }) { const riskConfig = riskLevelConfig[task.riskLevel] const platform = getPlatformInfo(task.platform) const handleDownload = (e: React.MouseEvent) => { e.stopPropagation() // 模拟下载 console.log('下载视频:', task.fileName) } return (
{/* 平台顶部条 */} {platform && (
{platform.icon} {platform.name}
)}
{/* 顶部:达人名 · 任务名 + 状态标签 */}
{task.creatorName} · {task.title}
{riskConfig.label}
{/* 文件信息 */}

{task.fileName}

{task.fileSize} · {task.duration}

{/* 底部:时间 + 审核按钮 */}
{task.submittedAt}
) } export default function AgencyReviewListPage() { const [searchQuery, setSearchQuery] = useState('') const [activeTab, setActiveTab] = useState<'all' | 'script' | 'video'>('all') const filteredScripts = mockScriptTasks.filter(task => task.title.toLowerCase().includes(searchQuery.toLowerCase()) || task.creatorName.toLowerCase().includes(searchQuery.toLowerCase()) ) const filteredVideos = mockVideoTasks.filter(task => task.title.toLowerCase().includes(searchQuery.toLowerCase()) || task.creatorName.toLowerCase().includes(searchQuery.toLowerCase()) ) return (
{/* 页面标题 */}

审核台

审核达人提交的脚本和视频

待审核: {mockScriptTasks.length} 脚本 {mockVideoTasks.length} 视频
{/* 搜索和筛选 */}
setSearchQuery(e.target.value)} className="w-full pl-10 pr-4 py-2 border border-border-subtle rounded-lg bg-bg-elevated text-text-primary focus:outline-none focus:ring-2 focus:ring-accent-indigo" />
{/* 任务列表 */}
{/* 脚本待审列表 */} {(activeTab === 'all' || activeTab === 'script') && ( 脚本审核 {filteredScripts.length} 条待审核 {filteredScripts.length > 0 ? ( filteredScripts.map((task) => ( )) ) : (

暂无待审脚本

)}
)} {/* 视频待审列表 */} {(activeTab === 'all' || activeTab === 'video') && ( {filteredVideos.length > 0 ? ( filteredVideos.map((task) => ( )) ) : (
)}
)}
) }