用户需求(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/无项目不崩/防穿越
40 lines
1014 B
Plaintext
40 lines
1014 B
Plaintext
商机产线=商机产线
|
|
研发报告=研发报告
|
|
研发审批=研发审批
|
|
热点软件推荐=热点软件推荐
|
|
今日AI招标=今日AI招标
|
|
报告状态=报告状态
|
|
草稿=草稿
|
|
人工确认通过=人工确认通过
|
|
已发起研发审批=已发起研发审批
|
|
审批通过=审批通过
|
|
审批驳回=审批驳回
|
|
提交确认=提交确认
|
|
发起审批=发起审批
|
|
软件/主题=软件/主题
|
|
报告标题=报告标题
|
|
报告正文=报告正文
|
|
确认人=确认人
|
|
审批说明=审批说明
|
|
发起人=发起人
|
|
审批人=审批人
|
|
商机分析师=商机分析师
|
|
研发报告撰写工程师=研发报告撰写工程师
|
|
主键ID=主键ID
|
|
项目ID=项目ID
|
|
报告ID=报告ID
|
|
审批状态=审批状态
|
|
结论时间=结论时间
|
|
创建人=创建人
|
|
创建时间=创建时间
|
|
更新时间=更新时间
|
|
研发场景=研发场景
|
|
输入=输入
|
|
输出=输出
|
|
成果=成果
|
|
成果文件=成果文件
|
|
研发报告详情=研发报告详情
|
|
下载=下载
|
|
无权查看=无权查看
|
|
暂无成果文件=暂无成果文件
|