# crm-project 端点 ↔ 原型页面树对齐核查表(票 18) > 权威树:`.scratch/api-docs-reorg/lanhu-tree-v29.md` A5 分区;原型页:`.scratch/opportunity-bugfix/lanhu-pages/A5*`(17 页)。 > 核查方式:Controller 源码 tag 逐一对照(bruno-sync 身份映射即 tag 原文);`✅`=已对齐,`◐`=跨页多 tag,`—`=无原型页显式入口(建档按钮在看板/列表页)。 > 本表由票 18 全量核对产出;bruno-sync 未装本机的实现会话期,`.bru` 为按 generated 形态手写,票 18 后续如重跑 bruno-sync 以 tag 为准幂等归位。 ## A5 分区页面 → 端点矩阵(21 端点全覆盖) | 端点 | 方法 | 深 tag(= Bruno 目录) | 原型页 | 结论 | | --- | --- | --- | --- | --- | | /api/project/board | GET | A5 项目管理/项目管理(看板视图)+ 分屏视图 ◐ | A5-1-1_项目管理(看板视图/分屏视图) | ✅ | | /api/project/list | GET | A5 项目管理/项目管理(列表视图)+ 分屏视图 + 我的项目 ◐ | A5-1-1_项目管理(列表视图/分屏视图)、A5-1-2_我的项目 | ✅(列表+分屏共用一接口,spec §4 定稿) | | /api/project/create | POST | A5 项目管理/项目管理(看板视图)+ 列表视图 ◐ | (两页新建按钮,无独立原型页;「项目建档」独立目录经评审撤销) | ✅(—) | | /api/project/detail | GET | A5 项目管理/项目详情 | A5-1-2-1_项目详情(页签详情与操作) | ✅ | | /api/project/stage/advance | POST | A5 项目管理/项目详情/状态机 | A5-1-2-1(推进/无需招投标) | ✅ | | /api/project/stage/rollback-targets | GET | 同上 | A5-1-2-2(回退弹窗数据源) | ✅ | | /api/project/stage/rollback | POST | 同上 | A5-1-2-2(多步回退弹窗) | ✅ | | /api/project/close | POST | 同上 | A5-1-1-7_项目详情(已关闭) | ✅ | | /api/project/bid-result/mark | POST | 同上 | A5-1-1-5_项目详情(赢单_输单) | ✅ | | /api/project/filing/review | POST | A5 项目管理/项目详情/状态机 + 看板视图 ◐ | A5-1-1-1_项目详情(处理冲突-本地/异地) | ✅ | | /api/project/follow/list | GET | A5 项目管理/项目详情/跟进 | A5-1-1-5_项目详情(商务跟进) | ✅ | | /api/project/follow/add | POST | 同上 | 同上 | ✅ | | /api/project/attachment/list | GET | A5 项目管理/项目详情/附件 | A5-1-2-1(附件页签) | ✅ | | /api/project/attachment/add | POST | 同上 | 同上 | ✅ | | /api/project/attachment/delete | POST | 同上 | 同上 | ✅ | | /api/project/customer/list | GET | A5 项目管理/项目详情/客户 | A5-1-2-1(客户页签) | ✅ | | /api/project/timeline/list | GET | A5 项目管理/项目详情/动态 | A5-1-2-1(动态页签) | ✅ | | /api/project/scheme | GET | A5 项目管理/项目详情/方案设计 | A5-1-1-2_项目详情(方案设计) | ✅ | | /api/project/quote | GET | A5 项目管理/项目详情/商务报价 | A5-1-1-3_项目详情(商务报价) | ✅ | | /api/project/bidding | GET | A5 项目管理/项目详情/招投标 | A5-1-1-4_项目详情(招投标准备) | ✅ | | /api/project/bid-open | GET | A5 项目管理/项目详情/开标 | A5-1-1-5_项目详情(赢单_输单) | ✅ | ## 页面 → 端点反查(原型 17 页覆盖核对) | 原型页 | demo/端点支撑 | 结论 | | --- | --- | --- | | A5-1-1_项目管理(看板视图) | /project/board + /project/filing/review + 卡片进详情 | ✅ | | A5-1-1_项目管理(分屏视图) | 列表共用 /project/list(spec §4「列表+分屏共用」) | ✅ | | A5-1-1_项目管理(列表视图) | /project/list(阶段 7 值筛 + 报备独立筛 + 分页) | ✅ | | A5-1-2_我的项目 | /project/list?scope=mine + /project/board?scope=mine | ✅ | | A5-1-2-1_项目详情(页签详情与操作) | /project/detail + 8 页签端点 + 状态机 6 端点 | ✅ | | A5-1-1-1 / 1b(处理冲突-本地/异地) | stage0 详情 + /filing/review(异地拉群 spin-out) | ✅ | | A5-1-1-2(方案设计) | /project/scheme(主表扩展列) | ✅ | | A5-1-1-3(商务报价) | /project/quote(清单明细不落 CRM 硬边界) | ✅ | | A5-1-1-4(招投标准备) | /project/bidding(含标底类型/等级名,投标主体一对一本期) | ✅ | | A5-1-1-5(商务跟进) | /project/follow/*(+ /project/timeline 动态) | ✅ | | A5-1-1-5(赢单_输单) | /project/bid-open + /bid-result/mark(赢单快照四字段) | ✅ | | A5-1-1-6(结项) | stage6 状态落位(输单复盘字段 spec §8 后续字段) | ✅ | | A5-1-1-7(已关闭) | /project/close(记因四要素) | ✅ | | A5-1-2_我的项目 | 同 列表/看板 mine scope | ✅ | | A5-1-4_项目统计 | 顶部 7 阶段统计卡 = /project/board 顶部 badge + 列计数(D-10 P2 记档:独立统计页未做) | ◐ 记档 | | 群聊详情页签 | spin-out(企微能力,spec §8) | ⚠️ spin-out | | 商机推送自动转项目 | spin-out(OpportunityConvertPort 预留,本期唯一入口=独立建项目) | ⚠️ spin-out | ## 全量核对结论 - 21 端点 ↔ 17 原型页双向核对完成;深 tag 全部为完整页面路径(ADR-0024),跨页端点多值 tag;无 @PathVariable/PUT/DELETE(audit 已证 40401/40501)。 - Bruno 仓:`E:\code\crm-api-docs\A5 项目管理\` 六个子目录 24 个 .bru(含 folder.bru),与上表一一对应;`bruno-sync.config.json` 已含 crm-project sourceRoot + A5 menuBindings(示例值走配置)。 - API-SUMMARY(`.scratch/crm-project/API-SUMMARY.md`)与实现零漂移抽查:错误码 68001~68010 与 `ProjectConstants` 一致;双轴/报备/赢输值域与四枚举一致;21 端点入参出参与 Controller/DTO 签名一致(16/17 两票 UI+API 层实测背书)。