"use client" import { useState, useEffect } from "react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { ArrowLeft, Download, Mail, Share2, Tag, Users, Database, BarChart2, PieChart } from "lucide-react" import { useRouter } from "next/navigation" import { Badge } from "@/components/ui/badge" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" interface StrategyReport { id: string name: string deviceNames: string[] trafficPoolNames: string[] createdAt: string completedAt: string strategyType: "jd" | "yisi" | "database" | "custom" strategyName: string trafficPoolSize: number optimizedUsers: number summary: string userSegments: { name: string count: number percentage: number }[] userAttributes: { [key: string]: { name: string count: number percentage: number }[] } recommendations: string[] } export default function StrategyReportPage({ params }: { params: { id: string } }) { const router = useRouter() const [report, setReport] = useState(null) const [isLoading, setIsLoading] = useState(true) useEffect(() => { // 模拟加载报告数据 const fetchReport = async () => { await new Promise((resolve) => setTimeout(resolve, 1500)) const mockReport: StrategyReport = { id: params.id, name: "京东会员优化", deviceNames: ["设备1", "设备2"], trafficPoolNames: ["微信好友池-设备1", "设备流量池-设备1"], createdAt: "2023-12-15T10:30:00Z", completedAt: "2023-12-15T11:45:00Z", strategyType: "jd", strategyName: "京东会员识别", trafficPoolSize: 287, optimizedUsers: 142, summary: "通过京东会员识别策略,在287位用户中成功识别出142位京东会员用户,占比49.5%。其中PLUS会员38位,VIP会员56位,普通会员48位。这些用户主要集中在电子产品和美妆护肤品类,消费能力中上。建议针对PLUS会员和VIP会员进行高端产品推广,对普通会员提供会员升级优惠。", userSegments: [ { name: "PLUS会员", count: 38, percentage: 27 }, { name: "VIP会员", count: 56, percentage: 39 }, { name: "普通会员", count: 48, percentage: 34 }, ], userAttributes: { 购物偏好: [ { name: "电子产品", count: 52, percentage: 37 }, { name: "美妆护肤", count: 43, percentage: 30 }, { name: "家居生活", count: 28, percentage: 20 }, { name: "服装鞋包", count: 19, percentage: 13 }, ], 消费能力: [ { name: "高", count: 35, percentage: 25 }, { name: "中高", count: 48, percentage: 34 }, { name: "中", count: 39, percentage: 27 }, { name: "中低", count: 20, percentage: 14 }, ], 活跃度: [ { name: "高度活跃", count: 42, percentage: 30 }, { name: "中度活跃", count: 63, percentage: 44 }, { name: "低度活跃", count: 37, percentage: 26 }, ], }, recommendations: [ "针对PLUS会员推送高端电子产品和限量版美妆产品", "为VIP会员提供专属优惠券和新品预售资格", "向普通会员推广PLUS会员权益,提供升级优惠", "根据用户购物偏好进行精准内容推送", "对高消费能力用户提供专属客服和VIP服务", ], } setReport(mockReport) setIsLoading(false) } fetchReport() }, [params.id]) const getStrategyTypeLabel = (type: string) => { switch (type) { case "jd": return "京东会员" case "yisi": return "易思接口" case "database": return "数据库匹配" case "custom": return "自定义策略" default: return "未知类型" } } return (
{/* 头部 */}

策略优化报告

{/* 主内容区域 */}
{isLoading ? (
) : report ? (
{/* 报告头部 */}
{report.name}

{new Date(report.completedAt).toLocaleString()} 完成

{getStrategyTypeLabel(report.strategyType)}

流量池大小

{report.trafficPoolSize} 用户

优化用户数

{report.optimizedUsers} 用户

优化比例

{Math.round((report.optimizedUsers / report.trafficPoolSize) * 100)}%

优化摘要

{report.summary}

{/* 详细分析 */} 用户分类 用户属性 用户分类分析

用户分类

{report.userSegments.map((segment, index) => (
{segment.name} {segment.count} ({segment.percentage}%)
))}

分类分布

{report.userSegments.map((segment, index) => (
{segment.name}
{segment.count} ({segment.percentage}%)
))}
优化建议
{report.recommendations.map((recommendation, index) => (
{index + 1}

{recommendation}

))}
{Object.entries(report.userAttributes).map(([category, attributes], categoryIndex) => ( {category}分析

{category}分布

{attributes.map((attribute, index) => (
{attribute.name} {attribute.count} ({attribute.percentage}%)
))}

图表展示

{attributes.map((attribute, index) => (
{attribute.name}
{attribute.count} ({attribute.percentage}%)
))}
))}
) : (

未找到报告数据

)}
) }