'use client' import Link from 'next/link' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { SuccessTag, WarningTag, ErrorTag } from '@/components/ui/Tag' import { ProgressBar } from '@/components/ui/ProgressBar' import { Button } from '@/components/ui/Button' import { TrendingUp, TrendingDown, BarChart3, Target, AlertTriangle, Clock, ChevronRight, Shield, Users, FileVideo } from 'lucide-react' // 模拟核心指标 const metrics = { totalReviews: 1234, totalTrend: '+12%', passRate: 78.5, passRateTrend: '+5.2%', hardRecall: 96.2, hardRecallTarget: 95, sentimentBlocks: 23, sentimentTrend: '-18%', avgCycle: 4.2, avgCycleTarget: 5, } // 模拟趋势数据 const weeklyData = [ { day: '周一', submitted: 45, passed: 40, failed: 5 }, { day: '周二', submitted: 52, passed: 48, failed: 4 }, { day: '周三', submitted: 38, passed: 35, failed: 3 }, { day: '周四', submitted: 61, passed: 54, failed: 7 }, { day: '周五', submitted: 55, passed: 50, failed: 5 }, { day: '周六', submitted: 28, passed: 26, failed: 2 }, { day: '周日', submitted: 22, passed: 20, failed: 2 }, ] // 模拟违规类型分布 const violationTypes = [ { type: '违禁词', count: 156, percentage: 45, color: 'bg-red-500' }, { type: '竞品露出', count: 89, percentage: 26, color: 'bg-orange-500' }, { type: '卖点遗漏', count: 67, percentage: 19, color: 'bg-yellow-500' }, { type: '舆情风险', count: 34, percentage: 10, color: 'bg-purple-500' }, ] // 模拟代理商排名 const agencyRanking = [ { name: '星耀传媒', passRate: 92, reviews: 156, trend: 'up' }, { name: '创意无限', passRate: 88, reviews: 134, trend: 'up' }, { name: '美妆达人MCN', passRate: 82, reviews: 98, trend: 'down' }, { name: '时尚风向标', passRate: 78, reviews: 87, trend: 'stable' }, ] // 模拟风险预警 const riskAlerts = [ { id: 'alert-001', level: 'high', title: '代理商A竞品露出集中', description: '过去24小时内5条视频触发"竞品露出"', time: '10分钟前', }, { id: 'alert-002', level: 'medium', title: '达人B连续未通过', description: '连续3次提交未通过,建议沟通', time: '2小时前', }, { id: 'alert-003', level: 'low', title: '舆情风险上升', description: '本周舆情风险拦截数异常上升,建议检查阈值', time: '5小时前', }, ] function MetricCard({ title, value, unit = '', trend, target, icon: Icon, color, }: { title: string value: number | string unit?: string trend?: string target?: number icon: React.ElementType color: string }) { return (
{title}
{value} {unit && {unit}}
{trend && (
{trend.includes('+') ? : trend.includes('-') && !trend.includes('↓') ? : null} {trend} vs 上周
)} {target && (
目标 ≥{target}{unit} {Number(value) >= target ? '✅' : '⚠️'}
)}
) } function AlertLevelIcon({ level }: { level: string }) { if (level === 'high') return if (level === 'medium') return return } export default function BrandDashboard() { return (

数据看板

更新时间:{new Date().toLocaleString('zh-CN')}
{/* 核心指标卡片 */}
{/* 本周趋势 */} 本周审核趋势
{weeklyData.map((day) => (
{day.day}
{day.passed} / {day.submitted}
))}
通过
驳回
{/* 风险预警 */} 风险预警 {riskAlerts.map((alert) => (
{alert.title}
{alert.description}
{alert.time}
))}
{/* 违规类型分布 */} 违规类型分布
{violationTypes.map((item) => (
{item.type} {item.count} 次 ({item.percentage}%)
))}
{/* 代理商排名 */} 代理商通过率排名
{agencyRanking.map((agency, index) => (
{index + 1}
{agency.name}
{agency.reviews} 条审核
= 90 ? 'text-accent-green' : agency.passRate >= 80 ? 'text-accent-indigo' : 'text-orange-400'}`}> {agency.passRate}%
{agency.trend === 'up' && } {agency.trend === 'down' && } {agency.trend === 'up' ? '上升' : agency.trend === 'down' ? '下降' : '持平'}
))}
) }