fix: 修复Agent头像显示和结果弹窗问题
主要修复: - 恢复Agent真实头像显示(替换emoji为实际图片) - 删除自动跳转到ResultPageV2的逻辑 - 修改ResultModal支持动态内容显示 - 根据不同订单班显示对应的方案信息 优化内容: - 重构Agent系统,每个订单班独立管理Agent配置 - 删除不需要的ResultPageV2组件 - handleViewDetails改为在新标签页打开 影响模块: - web_frontend/exhibition-demo/src/components/ResultModal.tsx - web_frontend/exhibition-demo/src/pages/WorkflowPageV4.tsx - web_frontend/exhibition-demo/src/App.tsx - web_frontend/exhibition-demo/src/data/terminalSimulations/*.ts 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import { create } from 'zustand';
|
||||
import { foodAgents } from '../data/agents/foodAgents';
|
||||
import { wenluAgents } from '../data/agents/wenluAgents';
|
||||
|
||||
export interface Agent {
|
||||
id: string;
|
||||
@@ -47,78 +49,18 @@ export interface DemoState {
|
||||
resumeDemo: () => void;
|
||||
setCurrentAgent: (agentId: string) => void;
|
||||
setSelectedOrderClass: (orderClass: string) => void;
|
||||
loadOrderClassAgents: (orderClass: string) => void;
|
||||
updateAgentStatus: (agentId: string, status: Agent['status']) => void;
|
||||
updateAgentOutput: (agentId: string, output: string) => void;
|
||||
addGeneratedContent: (section: string, content: any) => void;
|
||||
setProgress: (progress: number) => void;
|
||||
completeDemo: () => void;
|
||||
reset: () => void;
|
||||
}
|
||||
|
||||
const initialAgents: Agent[] = [
|
||||
{
|
||||
id: 'retrieval',
|
||||
name: '信息检索专家',
|
||||
icon: '🔍',
|
||||
avatar: '/agents/信息检索专家.jpg',
|
||||
model: 'DeepSeek Chat Model5',
|
||||
role: '市场调研、数据收集、竞品分析',
|
||||
status: 'waiting',
|
||||
},
|
||||
{
|
||||
id: 'design',
|
||||
name: '设计专家',
|
||||
icon: '🎨',
|
||||
avatar: '/agents/设计专家.jpg',
|
||||
model: 'Google Gemini Chat Model2',
|
||||
role: '视觉设计、空间布局、品牌形象',
|
||||
status: 'waiting',
|
||||
},
|
||||
{
|
||||
id: 'budget',
|
||||
name: '财务预算专家',
|
||||
icon: '💰',
|
||||
avatar: '/agents/预算编辑专家.jpg',
|
||||
model: 'DeepSeek Chat Model2',
|
||||
role: '成本核算、预算规划、ROI分析',
|
||||
status: 'waiting',
|
||||
},
|
||||
{
|
||||
id: 'format',
|
||||
name: '格式编辑专家',
|
||||
icon: '📝',
|
||||
avatar: '/agents/结构编辑专家.jpg',
|
||||
model: 'DeepSeek Chat Model4',
|
||||
role: '文档格式化、内容结构优化',
|
||||
status: 'waiting',
|
||||
},
|
||||
{
|
||||
id: 'execution',
|
||||
name: '活动执行专家',
|
||||
icon: '⚡',
|
||||
avatar: '/agents/会展执行专家.jpg',
|
||||
model: 'DeepSeek Chat Model1',
|
||||
role: '执行计划、时间线管理、任务分配',
|
||||
status: 'waiting',
|
||||
},
|
||||
{
|
||||
id: 'marketing',
|
||||
name: '营销宣传专家',
|
||||
icon: '📢',
|
||||
avatar: '/agents/营销策划专家.jpg',
|
||||
model: 'DeepSeek Chat Model3',
|
||||
role: '推广策略、媒体规划、品牌传播',
|
||||
status: 'waiting',
|
||||
},
|
||||
{
|
||||
id: 'coordinator',
|
||||
name: '会展策划专家',
|
||||
icon: '🎯',
|
||||
avatar: '/agents/会展策划专家.jpg',
|
||||
model: 'Chat Models + Memories',
|
||||
role: '中央协调、方案整合、决策支持',
|
||||
status: 'waiting',
|
||||
},
|
||||
];
|
||||
// 默认agents已移除 - 每个订单班有自己的Agent配置
|
||||
// 参见 src/data/terminalSimulations/[orderClass].ts
|
||||
const initialAgents: Agent[] = [];
|
||||
|
||||
export const useDemoStore = create<DemoState>((set) => ({
|
||||
status: 'idle',
|
||||
@@ -142,6 +84,43 @@ export const useDemoStore = create<DemoState>((set) => ({
|
||||
|
||||
setSelectedOrderClass: (orderClass) => set({ selectedOrderClass: orderClass }),
|
||||
|
||||
loadOrderClassAgents: (orderClass) => {
|
||||
let newAgents: Agent[] = [];
|
||||
|
||||
switch(orderClass) {
|
||||
case 'food':
|
||||
newAgents = foodAgents.map(agent => ({
|
||||
id: agent.id,
|
||||
name: agent.name,
|
||||
icon: agent.icon,
|
||||
avatar: agent.avatar,
|
||||
model: `DeepSeek Chat Model${Math.floor(Math.random() * 5) + 1}`,
|
||||
role: agent.role,
|
||||
status: 'waiting' as const,
|
||||
}));
|
||||
break;
|
||||
|
||||
case 'wenlu':
|
||||
newAgents = wenluAgents.map(agent => ({
|
||||
id: agent.id,
|
||||
name: agent.name,
|
||||
icon: agent.icon,
|
||||
avatar: agent.avatar,
|
||||
model: `DeepSeek Chat Model${Math.floor(Math.random() * 5) + 1}`,
|
||||
role: agent.role,
|
||||
status: 'waiting' as const,
|
||||
}));
|
||||
break;
|
||||
|
||||
default:
|
||||
// 使用默认的 initialAgents
|
||||
newAgents = initialAgents;
|
||||
break;
|
||||
}
|
||||
|
||||
set({ agents: newAgents });
|
||||
},
|
||||
|
||||
updateAgentStatus: (agentId, status) =>
|
||||
set((state) => ({
|
||||
agents: state.agents.map((agent) =>
|
||||
@@ -166,6 +145,8 @@ export const useDemoStore = create<DemoState>((set) => ({
|
||||
|
||||
setProgress: (progress) => set({ progress }),
|
||||
|
||||
completeDemo: () => set({ status: 'completed' }),
|
||||
|
||||
reset: () =>
|
||||
set({
|
||||
status: 'idle',
|
||||
|
||||
Reference in New Issue
Block a user