yumoqing 8627b855c0 feat(opp): 研发报告菜单改造——owner过滤列表+四节详情+成果文件下载
用户需求(2026-09-09):研发报告按钮点击按项目owner过滤列表;每项点击看
研发场景/输入/输出/成果;成果文件多个列出、逐个点击下载。

1. 列表页 api/opp_reports_list.dspy(替换CRUD裸表页作菜单入口):
   - list_visible_reports 单一事实源:挂项目的报告仅项目owner可见
     (sd_projects.created_by==uid;agent建的项目降级同机构,对齐
     check_project_owner既有语义);未挂项目的平台级调研登录可见;
     孤儿报告(项目已删)不可见(LIKE 'agent.%' 写法有 rag_client.py 生产先例)
   - 整行点击下钻详情,交互范式照抄 opp_references_items.dspy
2. 详情弹窗 api/opp_report_detail.dspy:
   - parse_report_sections 四节解析(## 研发场景/输入/输出/成果),
     MdWidget逐节渲染;兼容序号/冒号/加粗标题变体;三级标题不误判;
     旧报告无节时全文归输出节;空节如实标注不编造
   - check_report_visible 与列表同一可见性规则(语义不漂移)
3. 文件下载 api/opp_report_file_dl.dspy + list_report_files:
   - 范围=项目deliverables/全部文件+报告PPT(realpath去重)
   - 安全模型对齐 opp_attachment_dl:前端只传report_id+name,
     服务端回查清单命中才给文件,文件名不参与路径拼接(防穿越)
4. agent侧四节模板硬要求:OPP_PROMPT新增节+create/update_report工具描述
5. RBAC load_path 补3端点;i18n zh/en 补9词条;README 补改造说明

离线实测11项断言全过:标准四节/标题变体/旧报告归输出/缺节/三级标题不误判/
重复节拼接/空正文/deliverables扫描+PPT去重/项目外PPT/无项目不崩/防穿越
2026-09-09 15:04:20 +08:00

40 lines
1.0 KiB
Plaintext

商机产线=Opportunity Pipeline
研发报告=R&D Report
研发审批=R&D Approval
热点软件推荐=Hot Software Ranking
今日AI招标=Today's AI Tenders
报告状态=Report Status
草稿=Draft
人工确认通过=Human-Confirmed
已发起研发审批=Approval Initiated
审批通过=Approved
审批驳回=Rejected
提交确认=Submit for Confirmation
发起审批=Initiate Approval
软件/主题=Software/Theme
报告标题=Report Title
报告正文=Report Content
确认人=Confirmed By
审批说明=Approval Note
发起人=Initiated By
审批人=Resolved By
商机分析师=Opportunity Analyst
研发报告撰写工程师=R&D Report Writer
主键ID=Primary Key
项目ID=Project ID
报告ID=Report ID
审批状态=Approval Status
结论时间=Resolved At
创建人=Created By
创建时间=Created At
更新时间=Updated At
研发场景=R&D Scenario
输入=Input
输出=Output
成果=Deliverables
成果文件=Output Files
研发报告详情=R&D Report Detail
下载=Download
无权查看=No Access
暂无成果文件=No output files yet