From d561d068d6323c1be8c498b32b925812fedc181f Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Thu, 7 May 2026 18:53:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=93=E9=A1=B9=E6=8E=92?= =?UTF-8?q?=E6=9F=A5=E5=9B=BE=E8=B0=B1=E5=89=8D=E7=AB=AF=E5=AE=9E=E6=96=BD?= =?UTF-8?q?=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...raph-atlas-frontend-implementation-plan.md | 572 ++++++++++++++++++ 1 file changed, 572 insertions(+) create mode 100644 docs/plans/frontend/2026-05-07-project-special-check-graph-atlas-frontend-implementation-plan.md diff --git a/docs/plans/frontend/2026-05-07-project-special-check-graph-atlas-frontend-implementation-plan.md b/docs/plans/frontend/2026-05-07-project-special-check-graph-atlas-frontend-implementation-plan.md new file mode 100644 index 00000000..188c5de1 --- /dev/null +++ b/docs/plans/frontend/2026-05-07-project-special-check-graph-atlas-frontend-implementation-plan.md @@ -0,0 +1,572 @@ +# 项目详情专项排查图谱嵌入前端实施计划 + +> **执行说明:** 按当前项目 `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 +