import React, { useState } from 'react'; import { ArrowLeft, Bot, Workflow, Target, FileText, Upload, Clock, User, CheckCircle, ChevronRight, Sparkles, Layers, Users, MessageSquare, X, } from 'lucide-react'; import { useTheme } from '@/contexts/ThemeContext'; import { PageType } from '@/components/Sidebar'; interface TaskCreateProps { onNavigate: (page: PageType) => void; } // 可用场景列表 const availableScenes = [ { id: 'strategy', name: '宣传策略生成', desc: '完整宣传策略方案生成', agents: 8 }, { id: 'campaign', name: '宣传活动推演', desc: '活动方案推演与优化', agents: 6 }, { id: 'crisis', name: '舆情应对', desc: '危机公关策略生成', agents: 5 }, { id: 'product', name: '产品推广', desc: '产品上市推广策略', agents: 7 }, ]; // 可用智能体列表 const availableAgents = [ { id: 'goal', name: 'GoalAgent', role: '目标分析专家', category: '策略', icon: Target, desc: '专注目标设定、拆解与优先级排序' }, { id: 'audience', name: 'AudienceAgent', role: '受众分析专家', category: '用户', icon: User, desc: '深度分析目标受众特征与需求' }, { id: 'behavior', name: 'BehaviorAgent', role: '行为设计专家', category: '用户', icon: Sparkles, desc: '设计用户行为路径与激励机制' }, { id: 'narrative', name: 'NarrativeAgent', role: '叙事策略专家', category: '内容', icon: FileText, desc: '构建故事框架与叙事逻辑' }, { id: 'risk', name: 'RiskAgent', role: '风险评估专家', category: '策略', icon: CheckCircle, desc: '识别潜在风险并提供应对方案' }, { id: 'channel', name: 'ChannelAgent', role: '渠道分析专家', category: '运营', icon: Bot, desc: '分析传播渠道特点与适用场景' }, { id: 'creative', name: 'CreativeAgent', role: '创意生成专家', category: '内容', icon: Sparkles, desc: '提供创意方向与内容灵感' }, { id: 'data', name: 'DataAgent', role: '数据分析专家', category: '策略', icon: CheckCircle, desc: '基于数据提供洞察与建议' }, ]; const TaskCreate: React.FC = ({ onNavigate }) => { const { theme } = useTheme(); const isDark = theme === 'dark'; const [step, setStep] = useState<'type' | 'single' | 'multi-agent' | 'consult' | 'scene'>('type'); const [taskType, setTaskType] = useState<'single' | 'multi-agent' | 'consult' | 'scene' | null>(null); // 单智能体任务表单 const [singleTask, setSingleTask] = useState({ name: '', agent: '', input: '', outputFormat: '', }); // 多智能体协同分析表单 const [multiAgentTask, setMultiAgentTask] = useState({ name: '', input: '', selectedAgents: [] as string[], agentSearchQuery: '', agentCategory: 'all', }); // 场景任务表单 const [sceneTask, setSceneTask] = useState({ name: '', scene: '', input: '', deadline: '', constraints: '', }); const handleSelectType = (type: 'single' | 'multi-agent' | 'scene' | 'consult') => { setTaskType(type); setStep(type); }; const handleCreateTask = () => { if (taskType === 'single') { onNavigate('task-single'); } else if (taskType === 'scene') { onNavigate('task-scene'); } else if (taskType === 'multi-agent') { onNavigate('multi-agent-qa'); } else { onNavigate('task-consult-create'); } }; // 处理智能体选择 const toggleAgent = (agentId: string) => { setMultiAgentTask(prev => { const isSelected = prev.selectedAgents.includes(agentId); if (isSelected) { return { ...prev, selectedAgents: prev.selectedAgents.filter(id => id !== agentId) }; } else { // 最多选择8个 if (prev.selectedAgents.length >= 8) { return prev; } return { ...prev, selectedAgents: [...prev.selectedAgents, agentId] }; } }); }; // 获取过滤后的智能体列表 const getFilteredAgents = () => { return availableAgents.filter(agent => { const matchesSearch = agent.name.toLowerCase().includes(multiAgentTask.agentSearchQuery.toLowerCase()) || agent.role.toLowerCase().includes(multiAgentTask.agentSearchQuery.toLowerCase()); const matchesCategory = multiAgentTask.agentCategory === 'all' || agent.category === multiAgentTask.agentCategory; return matchesSearch && matchesCategory; }); }; return (
{/* 顶部操作栏 */}

新建任务

{step === 'type' && '选择分析模式'} {step === 'single' && '创建单智能体任务'} {step === 'multi-agent' && '创建多智能体协同分析任务'} {step === 'scene' && '创建场景任务'} {step === 'consult' && '创建多智能体会商任务'}

{/* 步骤指示器 */}
{['类型选择', '填写表单', '确认创建'].map((label, i) => (
{i + 1}
{label}
{i < 2 && }
))}
{/* 步骤1:选择分析模式 */} {step === 'type' && (

选择分析模式

请为本次任务选择最合适的处理方式

{/* 2x2 网格布局 */}
{/* 单智能体分析 */} {/* 多智能体协同分析 */} {/* 多智能体会商 */} {/* 场景执行 */}
{/* 底部按钮 */}
)} {/* 步骤2:单智能体任务表单 */} {step === 'single' && (

单智能体任务配置

{/* 任务名称 */}
setSingleTask({ ...singleTask, name: e.target.value })} placeholder="例如:五四青年节目标受众分析" className={`w-full px-4 py-2.5 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-red-500/20 ${ 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' }`} />
{/* 选择智能体 */}
{availableAgents.map((agent) => { const Icon = agent.icon; const isSelected = singleTask.agent === agent.id; return ( ); })}
{/* 输入内容 */}