import React, { useState } from 'react'; import { FileText, Clock, CheckCircle, AlertTriangle, ChevronDown, ChevronRight, Target, Users, TrendingUp, MessageSquare, Megaphone, Shield, ArrowRight, Download, RefreshCw, Eye, } from 'lucide-react'; import { useTheme } from '../contexts/ThemeContext'; import { PageType } from '../components/Sidebar'; interface StrategyResultProps { onNavigate: (page: PageType) => void; } const StrategyResult: React.FC = ({ onNavigate }) => { const { theme } = useTheme(); const isDark = theme === 'dark'; // 主题颜色类 const cardBg = isDark ? 'bg-slate-800/30' : 'bg-white'; const cardBorder = isDark ? 'border-blue-800/30' : 'border-red-200'; const textPrimary = isDark ? 'text-white' : 'text-gray-900'; const textSecondary = isDark ? 'text-slate-400' : 'text-gray-600'; const textMuted = isDark ? 'text-slate-500' : 'text-gray-500'; const btnSecondary = isDark ? 'bg-slate-700/50 hover:bg-slate-600/50 border-blue-800/30 text-slate-300' : 'bg-gray-100 hover:bg-gray-200 border-gray-300 text-gray-700'; const btnPrimary = isDark ? 'bg-blue-600 hover:bg-blue-500' : 'bg-red-600 hover:bg-red-500'; const inputBg = isDark ? 'bg-slate-900/50' : 'bg-gray-50'; const inputBorder = isDark ? 'border-blue-800/30' : 'border-gray-300'; const [expandedSection, setExpandedSection] = useState('goal'); const strategyChain = [ { id: 1, name: '目标', icon: Target, color: 'blue', status: 'completed' }, { id: 2, name: '受众', icon: Users, color: 'cyan', status: 'completed' }, { id: 3, name: '行为', icon: TrendingUp, color: 'green', status: 'completed' }, { id: 4, name: '驱动', icon: MessageSquare, color: 'yellow', status: 'completed' }, { id: 5, name: '叙事', icon: Megaphone, color: 'purple', status: 'completed' }, { id: 6, name: '风险', icon: Shield, color: 'red', status: 'completed' }, ]; const versionHistory = [ { version: 'V3', time: '2026-03-19 15:30', changes: ['叙事由"事件主导"改为"人物+事件结合"', '风险项已修正'] }, { version: 'V2', time: '2026-03-19 14:20', changes: ['受众由"全体青年"收窄为"基层青年"', '目标行为已明确'] }, { version: 'V1', time: '2026-03-19 10:30', changes: ['初始版本生成'] }, ]; const toggleSection = (section: string) => { setExpandedSection(expandedSection === section ? null : section); }; return (
{/* 顶部信息栏 */}

五四青年节宣传活动策略

策略讨论结果 · 已收敛

使用场景

宣传策略生成

运行时长

5小时32分

当前版本

V3

完成度

100%

{/* 左侧 - 策略链和详情 (70%) */}
{/* 策略链可视化 */}

策略链结果

{strategyChain.map((item, index) => { const Icon = item.icon; return (
{item.name} 已确认
{index < strategyChain.length - 1 && ( )}
); })}
{/* 详细结果 */}
{[ { id: 'goal', title: '目标', icon: Target, color: 'blue', content: { primary: '提升品牌在Z世代用户中的认知度', secondary: '建立品牌年轻化形象,增强用户情感连接', }, }, { id: 'audience', title: '受众', icon: Users, color: 'cyan', content: { primary: '核心受众:18-25岁基层青年', secondary: '次级受众:25-30岁职场新人', insights: ['社交媒体重度用户', '注重性价比', '偏好真实、有态度的品牌'], }, }, { id: 'behavior', title: '行为', icon: TrendingUp, color: 'green', content: { primary: '主动参与话题讨论、生成UGC内容', conversion: '浏览→点赞→评论→转发→创作', }, }, { id: 'driver', title: '驱动', icon: MessageSquare, color: 'yellow', content: { primary: '社交认同与自我表达', secondary: ['归属感需求', '表达欲驱动', '群体认同激励'], }, }, { id: 'narrative', title: '叙事', icon: Megaphone, color: 'purple', content: { primary: '真实、有态度的青年故事', approach: '人物+事件结合,以真实故事传递品牌价值观', }, }, { id: 'risk', title: '风险', icon: Shield, color: 'red', content: { risks: ['预算有限,需控制成本', '青年群体注意力分散', 'UGC质量难以保证'], suggestions: ['提前布局预热', '设置激励机制', '建立内容审核机制'], }, }, ].map((section) => { const Icon = section.icon; const isExpanded = expandedSection === section.id; return (
{isExpanded && (
{Object.entries(section.content).map(([key, value]) => (

{key}

{Array.isArray(value) ? (
    {value.map((item, index) => (
  • {item}
  • ))}
) : (

{value}

)}
))}
)}
); })}
{/* 右侧 - 摘要和版本记录 (30%) */}
{/* 关键结论摘要 */}

关键结论摘要

为什么选择这类受众

基层青年是品牌年轻化战略的核心突破口,具有强社交传播属性

为什么设计这种行为目标

UGC是最高效的信任传递方式,用户生成内容具有真实性和可信度

为什么采用这种叙事

真实故事比硬广更能打动年轻人,人物视角增强代入感

{/* 版本对比记录 */}

版本迭代记录

{versionHistory.map((version, index) => (
{version.version} {version.time}
    {version.changes.map((change, i) => (
  • • {change}
  • ))}
))}
{/* 导出选项 */}

导出选项

); }; export default StrategyResult;