import React, { useState } from 'react'; import { ArrowLeft, Bot, CheckCircle, Clock, User, Download, FileText, Send, Zap, Sparkles, Lightbulb, Copy, Edit3, ChevronDown, ChevronRight, Database, Brain, MessageSquare, ExternalLink, BookOpen, Info, Eye, } from 'lucide-react'; import { useTheme } from '@/contexts/ThemeContext'; import { PageType } from '@/components/Sidebar'; interface TaskSingleProps { onNavigate: (page: PageType) => void; } interface ChatMessage { id: string; role: 'user' | 'agent'; content: string; timestamp: string; citations?: { title: string; source: string; page?: number }[]; } const TaskSingle: React.FC = ({ onNavigate }) => { const { theme } = useTheme(); const isDark = theme === 'dark'; const [taskStatus, setTaskStatus] = useState<'pending' | 'running' | 'completed'>('completed'); const [input, setInput] = useState('请分析五四青年节宣传活动的目标受众'); const [isRunning, setIsRunning] = useState(false); const [showCitations, setShowCitations] = useState(null); const [isEditing, setIsEditing] = useState(false); const [editedContent, setEditedContent] = useState(''); const [messages, setMessages] = useState([ { id: '1', role: 'user', content: '请分析五四青年节宣传活动的目标受众', timestamp: '14:00', }, { id: '2', role: 'agent', content: `根据您的任务要求,我对五四青年节宣传活动的目标受众进行了全面分析,以下是详细报告: ## 一、核心受众画像 **基本信息** - 年龄段:18-25岁 - 身份定位:基层青年(学生、职场新人) - 地域分布:一二线城市为主 **用户特征** - 社交媒体重度用户,日均使用时长超过3小时 - 短视频内容消费主力,偏好竖屏内容 - 注重"真实感"和"态度感",反感过度营销 - 追求个性化表达和群体认同 ## 二、行为洞察 **媒体习惯** - 主要平台:抖音、小红书、微博、B站 - 内容偏好:真实故事、情感共鸣、实用价值 - 互动方式:点赞、评论、转发、UGC创作 **决策因素** - 社交认同 > 品牌声誉 > 产品功能 - 性价比 > 品牌溢价 - 真实体验 > 官方宣传 ## 三、核心需求 1. **归属感需求** - 希望被看见、被认可,参与活动获得身份认同 2. **表达欲驱动** - 有态度的内容激发创作冲动 3. **社交认同激励** - 优质内容获得曝光和认可 ## 结论 核心受众应聚焦18-25岁基层青年群体,这部分用户与品牌年轻化战略高度契合。`, timestamp: '14:03', citations: [ { title: 'Z世代消费行为研究报告', source: '市场研究数据库', page: 23 }, { title: '短视频平台用户画像', source: 'Y系统-用户标签', page: 5 }, { title: '品牌年轻化营销案例集', source: '宣传知识库', page: 45 }, ], }, ]); const agentConfig = { name: 'AudienceAgent', role: '受众分析专家', description: '分析目标受众画像、行为特征和核心需求,为策略制定提供数据支持', skills: [ { name: '受众分层', type: '分析类', status: 'enabled' }, { name: '核心受众识别', type: '推断类', status: 'enabled' }, { name: '受众画像抽取', type: '抽取类', status: 'enabled' }, { name: '阻力因素提炼', type: '分析类', status: 'enabled' }, ], databases: [ { name: '宣传知识库', type: '知识库', access: '品牌案例、活动方法论', status: 'connected' }, { name: 'Y系统', type: '业务系统', access: '用户标签、传播数据', status: 'connected' }, { name: '市场数据库', type: '外部数据源', access: '市场报告、用户研究', status: 'connected' }, ], outputFields: ['core_audience', 'key_traits', 'concerns', 'barriers'], }; const analysisResult = { title: '五四青年节宣传活动目标受众分析报告', agent: 'AudienceAgent', completionTime: '2026-03-19 14:03', status: '已完成', summary: '核心受众聚焦18-25岁基层青年群体,需用"真实、有态度"的内容打动', }; const handleSend = () => { if (!input.trim()) return; const userMessage: ChatMessage = { id: Date.now().toString(), role: 'user', content: input, timestamp: new Date().toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' }), }; setMessages([...messages, userMessage]); setInput(''); setIsRunning(true); setTimeout(() => { const agentMessage: ChatMessage = { id: (Date.now() + 1).toString(), role: 'agent', content: '分析结果已生成,请查看上方报告详情。', timestamp: new Date().toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' }), citations: [ { title: '青年消费趋势报告', source: '市场数据库', page: 12 }, ], }; setMessages(prev => [...prev, agentMessage]); setIsRunning(false); setTaskStatus('completed'); }, 2000); }; const handleCopyResult = () => { const content = messages.filter(m => m.role === 'agent').map(m => m.content).join('\n\n'); navigator.clipboard.writeText(content); }; const handleEditResult = () => { if (isEditing) { setIsEditing(false); } else { setEditedContent(messages.filter(m => m.role === 'agent').map(m => m.content).join('\n\n')); setIsEditing(true); } }; const handleExport = () => { const content = `# ${analysisResult.title}\n\n智能体:${analysisResult.agent}\n完成时间:${analysisResult.completionTime}\n状态:${analysisResult.status}\n\n---\n\n${messages.filter(m => m.role === 'agent').map(m => m.content).join('\n\n')}`; const blob = new Blob([content], { type: 'text/markdown' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'audience_analysis_report.md'; a.click(); URL.revokeObjectURL(url); }; return (
{/* 顶部工具栏 */}

五四青年节受众分析

单智能体任务 · AudienceAgent

{taskStatus === 'completed' ? ( <> 已完成 ) : taskStatus === 'running' ? ( <> 运行中 ) : ( <> 待运行 )}
{/* 主内容区:三栏布局 - 中间栏加宽,右侧栏变窄 */}
{/* 左侧栏 (15%) - 任务信息 + 智能体配置 */}
{/* 任务信息卡片 */}

任务信息

任务类型 单智能体
执行智能体 AudienceAgent
创建时间 14:00
完成时间 14:03
{/* 智能体配置卡片 */}

智能体配置

{/* 智能体简介 */}

{agentConfig.name}

{agentConfig.role}

{agentConfig.description}

{/* 技能列表 */}
启用技能
{agentConfig.skills.map((skill, index) => (
{skill.name} {skill.type}
))}
{/* 数据源列表 */}
可调用数据源
{agentConfig.databases.map((db, index) => (
{db.name}

{db.access}

))}
{/* 中间栏 (65%) - 对话式问答 - 加宽 */}
{/* 对话区域头部 */}

对话分析

{/* 消息列表 */}
{messages.map((msg) => (
{msg.role === 'agent' ? ( ) : ( )} {msg.role === 'user' ? '你' : 'AudienceAgent'} {msg.timestamp}

{msg.content}

{/* 引用信息 */} {msg.citations && msg.citations.length > 0 && (
{showCitations === msg.id && (
{msg.citations.map((citation, index) => (

{citation.title}

{citation.source} {citation.page && `· 第${citation.page}页`}

))}
)}
)}
))} {isRunning && (
分析中...
)}
{/* 输入区域 */}
setInput(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && handleSend()} placeholder="输入问题或任务要求..." className={`flex-1 px-4 py-2.5 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-red-500/20 transition-colors ${ isDark ? 'bg-slate-900/50 border border-blue-800/30 text-white placeholder-slate-500' : 'bg-white border border-red-200 text-gray-900 placeholder-gray-400' }`} />
{/* 右侧栏 (20%) - 分析结果 - 变窄 */}
{/* 结果区域头部 */}

分析结果

{/* 结果内容 */}
{/* 结果概览 */}

{analysisResult.title}

{analysisResult.agent} {analysisResult.completionTime}
{/* 结论摘要 */}

核心结论

{analysisResult.summary}

{/* 关键洞察 */}

关键洞察

核心受众

18-25岁基层青年群体

核心驱动

社交认同与真实态度

内容策略

真实故事 + 情感共鸣 + 实用价值

{/* 详细信息预览 */}

详细报告

{isEditing ? (