# 📋 点击"执行一次"的完整流程说明 ## 🔄 **当前实现的流程** ### **1. 前端触发 (InfoReporter.vue)** ```javascript // 用户点击任务卡片右上角三点菜单中的"执行一次" @click.stop="executeOnce(task)" ``` ### **2. 数据准备阶段** ```javascript const executeOnce = async (task: any) => { // 1. 关闭三点菜单 activeTaskMenu.value = null // 2. 获取数据源的长文本内容 const sourceContents = await getSourceContents(task.sourcesConfig) // 3. 准备传递给其他团队的完整数据 const requestData = { task_id: task.id, requirement: task.requirement, // 用户输入的需求 source_contents: sourceContents, // 数据源对应的长文本段 web_search_enabled: task.sourcesConfig?.webSearchEnabled || false } } ``` ### **3. 数据源内容获取 (getSourceContents)** ```javascript const getSourceContents = async (sourcesConfig: any) => { const sourceContents = [] for (const source of sourcesConfig.presetSources) { // TODO: 实际应该调用刘老师的数据库API // const response = await fetch(`/api/sources/${source.id}/content`) // const content = await response.text() // 现在使用模拟的长文本数据 let content = '' switch (source.category) { case 'wechat': content = '# 微信企微群聊记录...' // 模拟聊天记录 case 'wechatOfficial': content = '# 公众号文章内容...' // 模拟公众号文章 case 'web': content = '# 网页内容...' // 模拟网页抓取内容 // ... 其他数据源类型 } sourceContents.push({ source_id: source.id, source_name: source.name, source_type: source.category, content: content.trim() // 类似Ext4文档这样的长文本 }) } return sourceContents } ``` ### **4. 传递给其他团队的数据格式** ```json { "task_id": 123, "requirement": "关注对象:OpenAI\n信息侧重点:产品发布动态和功能更新\n要求:总结全面、客观、准确", "source_contents": [ { "source_id": "wechat-AI技术群", "source_name": "AI技术群", "source_type": "wechat", "content": "# 微信企微群聊记录 - AI技术群\n\n[2025-09-19 09:00] 张三: 大家好,今天我们来讨论一下AI技术的最新发展\n[2025-09-19 09:02] 李四: OpenAI最近发布了新的GPT模型,性能提升很大\n...(几千字的聊天记录)" }, { "source_id": "web-openai.com", "source_name": "OpenAI官网", "source_type": "web", "content": "# OpenAI官方发布:GPT-4 Turbo正式上线\n\n发布时间:2025年9月19日\n\n### 主要更新内容\n\nOpenAI今天宣布GPT-4 Turbo正式向所有用户开放...\n(几千字的网页内容)" } ], "web_search_enabled": true } ``` ## 🎯 **关键点说明** 1. **数据源长文本**: 类似Ext4文档,每个数据源都会有几千到几万字的详细内容 2. **用户需求**: 用户在创建任务时输入的具体要求和关注点 3. **多数据源支持**: 可以同时处理多个不同类型的数据源 4. **异步处理**: 获取数据源内容和调用API都是异步的 ## ⚠️ **待替换的API调用点** ```javascript // TODO: 未来需要替换为刘老师的数据库API // 示例: // const response = await fetch(`/api/sources/${source.id}/content`) // const content = await response.text() ``` 现在点击"执行一次"时,系统会准备好完整的数据(用户需求 + 数据源长文本),然后传递给其他同学的报告生成API!