# 项目详情专项排查图谱嵌入前端实施计划 > **执行说明:** 按当前项目 `AGENTS.md` 规则执行。未得到用户明确授权时默认不开启 subagent;如用户明确要求使用 subagent,必须按项目规则指定模型与推理强度。Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 在项目详情“专项排查”页面内,将现有图谱占位卡片替换为可输入证件号并生成 iframe 链接的资金图谱/关系图谱展示区。 **Architecture:** 只做前端最短路径改造。新增一个独立 Vue 2 组件负责证件号标准化、md5、tab 状态和 iframe `src` 拼接;`SpecialCheck.vue` 只负责引入组件并替换现有占位卡片。外部图谱当前可能打不开,验收只检查 iframe 链接是否按规则生成。 **Tech Stack:** Vue 2、Element UI、SCSS、`@/utils/md5`、`browser-use:browser` 实际页面验证。 --- ## Scope Check 本计划只覆盖项目详情“专项排查”页内的图谱 iframe 嵌入,不新增后端接口,不保存证件号,不新增项目详情一级菜单,不做身份证格式校验,不增加外部图谱服务兜底或降级逻辑。 ## File Structure - Create: `ruoyi-ui/src/views/ccdiProject/components/detail/GraphAtlasSection.vue` - 责任:维护共用证件号输入、资金/关系图谱 tab、证件号标准化、md5、iframe 链接生成和空状态展示。 - Modify: `ruoyi-ui/src/views/ccdiProject/components/detail/SpecialCheck.vue` - 责任:移除现有“图谱外链展示”占位卡片,引入并渲染 `GraphAtlasSection`,并让图谱在资产负债核查空数据状态下仍可展示,清理不再使用的占位样式。 - Create: `docs/reports/implementation/2026-05-07-project-special-check-graph-atlas-frontend-record.md` - 责任:记录本次前端实现内容、影响范围和验证情况。 - Do not commit: `output/browser-use/` 或其它临时测试文件。 ## Test Data 用于链接断言的固定样例: - 输入:`110101199003074211` - md5:`9b1b5eba4a26c9a68ff1ca06f40bee1b` - 资金图谱期望 `vId`:`idno_node/9b1b5eba4a26c9a68ff1ca06f40bee1b` - 关系图谱期望 `vId`:`rel_node/9b1b5eba4a26c9a68ff1ca06f40bee1b` 标准化样例: - 输入:` 33078219900101123x ` - 标准化后:`33078219900101123X` - md5:`233c8519f86a57b1f00ec88a32152ce3` ## Task 1: Establish Current Failure Baseline **Files:** - Read: `docs/design/2026-05-07-project-special-check-graph-atlas-design.md` - Read: `ruoyi-ui/src/views/ccdiProject/components/detail/SpecialCheck.vue` - [ ] **Step 1: Confirm the spec** Run: ```bash sed -n '1,140p' docs/design/2026-05-07-project-special-check-graph-atlas-design.md ``` Expected: spec confirms 专项排查内嵌 iframe、两个 tab、共用证件号、`trim + x 转 X + md5`、只校验 iframe `src`。 - [ ] **Step 2: Confirm current placeholder** Run: ```bash rg -n "图谱外链展示|graph-placeholder" ruoyi-ui/src/views/ccdiProject/components/detail/SpecialCheck.vue ``` Expected: current page still has placeholder card and no证件号 input, no graph iframe. - [ ] **Step 3: Record baseline failure** Acceptance baseline: - Current page cannot input证件号 in the graph area. - Current page cannot produce `idno_node/` or `rel_node/` iframe links. Expected: FAIL relative to the new spec. This is the intended pre-implementation failure. ## Task 2: Create GraphAtlasSection Component **Files:** - Create: `ruoyi-ui/src/views/ccdiProject/components/detail/GraphAtlasSection.vue` - [ ] **Step 1: Create the component with minimal behavior** Create `GraphAtlasSection.vue` with this implementation: ```vue