'use client' import { useState } from 'react' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { BarChart3, TrendingUp, TrendingDown, Download, Calendar, FileText, Video, Users, CheckCircle, XCircle, Clock } from 'lucide-react' // 模拟数据 const mockStats = { totalScripts: 156, totalVideos: 128, passRate: 85, avgReviewTime: 4.2, trend: { scripts: '+12%', videos: '+8%', passRate: '+3%', reviewTime: '-15%', }, } const mockProjectStats = [ { name: 'XX品牌618推广', scripts: 45, videos: 38, passRate: 92 }, { name: '新品口红系列', scripts: 32, videos: 28, passRate: 85 }, { name: '护肤品秋季活动', scripts: 28, videos: 25, passRate: 78 }, { name: 'XX运动品牌', scripts: 51, videos: 37, passRate: 88 }, ] const mockWeeklyData = [ { day: '周一', submitted: 25, passed: 22, rejected: 3 }, { day: '周二', submitted: 32, passed: 28, rejected: 4 }, { day: '周三', submitted: 18, passed: 16, rejected: 2 }, { day: '周四', submitted: 41, passed: 35, rejected: 6 }, { day: '周五', submitted: 35, passed: 30, rejected: 5 }, { day: '周六', submitted: 12, passed: 11, rejected: 1 }, { day: '周日', submitted: 8, passed: 7, rejected: 1 }, ] const mockCreatorRanking = [ { name: '小美护肤', passRate: 95, total: 28 }, { name: '健身教练王', passRate: 92, total: 15 }, { name: '美妆Lisa', passRate: 88, total: 22 }, { name: '时尚达人', passRate: 82, total: 18 }, { name: '美食探店', passRate: 78, total: 25 }, ] function StatCard({ title, value, unit, trend, icon: Icon, color }: { title: string value: number | string unit?: string trend?: string icon: React.ElementType color: string }) { const isPositive = trend?.startsWith('+') || trend?.startsWith('-') && title.includes('时间') return (

{title}

{value} {unit && {unit}}
{trend && (
{isPositive ? : } {trend} vs 上周
)}
) } export default function AgencyReportsPage() { const [dateRange, setDateRange] = useState('week') return (
{/* 页面标题 */}

数据报表

查看审核数据统计和趋势分析

{/* 核心指标 */}
{/* 本周趋势 */} 审核趋势
{mockWeeklyData.map((day) => (
{day.day}
{day.passed} / {day.submitted}
))}
通过
驳回
{/* 达人排名 */} 达人通过率排名 {mockCreatorRanking.map((creator, index) => (
{index + 1}
{creator.name}
{creator.total} 条审核
= 90 ? 'text-accent-green' : creator.passRate >= 80 ? 'text-accent-indigo' : 'text-orange-400'}`}> {creator.passRate}%
))}
{/* 项目统计 */} 项目统计 {mockProjectStats.map((project) => ( ))}
项目名称 脚本数 视频数 通过率 通过率分布
{project.name} {project.scripts} {project.videos} = 90 ? 'text-accent-green' : project.passRate >= 80 ? 'text-accent-indigo' : 'text-orange-400'}`}> {project.passRate}%
= 90 ? 'bg-accent-green' : project.passRate >= 80 ? 'bg-accent-indigo' : 'bg-orange-400'}`} style={{ width: `${project.passRate}%` }} />
) }