# Credit Info Direct Storage Frontend Implementation Plan > **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 将征信维护前端页面从“员工维度展示”调整为“征信对象维度展示”,移除“柜员号”“是否已维护”两项旧口径字段,并保持上传、列表、详情、删除交互可用。 **Architecture:** 保留现有 `ruoyi-ui/src/views/ccdiCreditInfo/index.vue` 独立页面和 `@/api/ccdiCreditInfo` API 封装,不新增路由和页面。核心改造点是精简查询参数和列表列定义,使页面只围绕姓名、身份证号和征信摘要展示运转,同时同步修正前端静态契约测试与删除确认文案。 **Tech Stack:** Vue 2, Element UI, Axios request 封装, Node.js 源码契约测试, npm --- ## 文件结构与职责 **修改文件** - `ruoyi-ui/src/views/ccdiCreditInfo/index.vue` 移除“柜员号”“是否已维护”,收敛查询区、列表列和删除提示文案。 - `ruoyi-ui/tests/unit/credit-info-page-layout.test.js` 锁定新页面结构:只有姓名、身份证号查询,不再出现柜员号列。 - `ruoyi-ui/tests/unit/credit-info-maintained-filter.test.js` 从“默认 maintained=1”契约改为“页面已彻底移除 maintained 口径”契约。 - `ruoyi-ui/tests/unit/credit-info-detail-ui.test.js` 删除提示文案从“员工当前已维护征信”改为“征信对象当前已维护征信”。 - `docs/reports/implementation/2026-03-24-credit-info-direct-storage-frontend-record.md` 前端实施记录。 **参考文件** - `docs/design/2026-03-24-credit-info-direct-storage-design.md` - `ruoyi-ui/src/api/ccdiCreditInfo.js` - `docs/reports/implementation/2026-03-23-credit-info-maintenance-frontend-implementation.md` ## Task 1: 先把前端静态契约切到新口径 **Files:** - Modify: `ruoyi-ui/tests/unit/credit-info-page-layout.test.js` - Modify: `ruoyi-ui/tests/unit/credit-info-maintained-filter.test.js` - Modify: `ruoyi-ui/tests/unit/credit-info-detail-ui.test.js` - [ ] **Step 1: 改写页面结构契约** 在 `credit-info-page-layout.test.js` 中保留这些必备 token: ```javascript [ "征信维护", "姓名", "身份证号", "批量上传征信HTML", "最近征信查询日期", "负债笔数", "负债总额", "民事案件笔数", "强制执行笔数", "行政处罚笔数", "详情", "删除" ].forEach((token) => { assert(source.includes(token), `征信维护页面缺少关键结构: ${token}`); }); ``` 并增加排除断言: ```javascript assert(!source.includes('label="柜员号"'), "征信维护页面不应再展示柜员号查询项"); assert(!source.includes('prop="staffId"'), "征信维护列表不应再展示柜员号列"); ``` - [ ] **Step 2: 改写 maintained 契约** 把 `credit-info-maintained-filter.test.js` 改成下面这组断言: ```javascript assert(!source.includes("maintained:"), "征信维护页面不应再维护 maintained 查询参数"); assert(!source.includes('label="是否已维护"'), "征信维护页面不应再展示是否已维护筛选项"); assert(!source.includes('value="1"'), "征信维护页面不应再内置已维护默认筛选"); ``` - [ ] **Step 3: 改写详情/删除契约** 把 `credit-info-detail-ui.test.js` 的删除确认文案断言改为: ```javascript "确认删除该征信对象当前已维护的征信信息吗?" ``` - [ ] **Step 4: 运行静态契约确认失败** Run: ```bash node ruoyi-ui/tests/unit/credit-info-page-layout.test.js node ruoyi-ui/tests/unit/credit-info-maintained-filter.test.js node ruoyi-ui/tests/unit/credit-info-detail-ui.test.js ``` Expected: - FAIL,原因应集中在页面仍包含 `staffId`、`maintained` 和旧删除文案。 - [ ] **Step 5: 提交前端测试契约** ```bash git add ruoyi-ui/tests/unit/credit-info-page-layout.test.js \ ruoyi-ui/tests/unit/credit-info-maintained-filter.test.js \ ruoyi-ui/tests/unit/credit-info-detail-ui.test.js git commit -m "新增征信维护前端直接入库测试契约" ``` ## Task 2: 精简征信维护页面查询区与列表区 **Files:** - Modify: `ruoyi-ui/src/views/ccdiCreditInfo/index.vue` - [ ] **Step 1: 删除查询区旧字段** 从查询表单移除以下片段: ```vue ``` 查询区只保留: ```vue ``` - [ ] **Step 2: 精简 `queryParams` 与重置逻辑** 把 `data()` 与 `resetQuery()` 收敛为: ```javascript queryParams: { pageNum: 1, pageSize: 10, name: undefined, idCard: undefined, } ``` 确保以下字段彻底消失: ```javascript staffId maintained ``` - [ ] **Step 3: 删除列表中的柜员号列** 移除: ```vue ``` 保留列表列顺序为: ```vue 姓名 -> 身份证号 -> 最近征信查询日期 -> 负债笔数 -> 负债总额 -> 民事案件笔数 -> 强制执行笔数 -> 行政处罚笔数 -> 操作 ``` - [ ] **Step 4: 调整删除确认文案** 将删除提示文案改成: ```javascript "确认删除该征信对象当前已维护的征信信息吗?" ``` - [ ] **Step 5: 运行静态契约确认通过** Run: ```bash node ruoyi-ui/tests/unit/credit-info-page-layout.test.js node ruoyi-ui/tests/unit/credit-info-maintained-filter.test.js node ruoyi-ui/tests/unit/credit-info-detail-ui.test.js ``` Expected: - PASS,页面已完全移除员工口径字段。 - [ ] **Step 6: 提交页面改造** ```bash git add ruoyi-ui/src/views/ccdiCreditInfo/index.vue \ ruoyi-ui/tests/unit/credit-info-page-layout.test.js \ ruoyi-ui/tests/unit/credit-info-maintained-filter.test.js \ ruoyi-ui/tests/unit/credit-info-detail-ui.test.js git commit -m "调整征信维护前端页面展示口径" ``` ## Task 3: 校验 API 调用与页面数据流未回退 **Files:** - Review: `ruoyi-ui/src/api/ccdiCreditInfo.js` - Review: `ruoyi-ui/tests/unit/credit-info-api-contract.test.js` - Review: `ruoyi-ui/tests/unit/credit-info-upload-ui.test.js` - [ ] **Step 1: 确认 API 文件无需改路径** 检查 `ccdiCreditInfo.js` 保持以下函数与路径不变: ```javascript uploadCreditHtml(files) listCreditInfo(query) getCreditInfoDetail(personId) deleteCreditInfo(personId) ``` 以及: ```javascript '/ccdi/creditInfo/upload' '/ccdi/creditInfo/list' '/ccdi/creditInfo/' ``` - [ ] **Step 2: 运行 API 与上传 UI 契约** Run: ```bash node ruoyi-ui/tests/unit/credit-info-api-contract.test.js node ruoyi-ui/tests/unit/credit-info-upload-ui.test.js ``` Expected: - PASS,说明本次仅调整查询口径,不影响接口路径和上传交互。 - [ ] **Step 3: 运行前端构建** Run: ```bash cd ruoyi-ui npm run build:prod ``` Expected: - PASS,构建通过 - 允许出现项目既有体积告警,但不应出现新增编译错误 ## Task 4: 补齐前端实施记录 **Files:** - Create: `docs/reports/implementation/2026-03-24-credit-info-direct-storage-frontend-record.md` - [ ] **Step 1: 编写前端实施记录** 在实施记录中至少包含: - 实施目标:页面切到征信对象维度 - 实际修改文件 - 查询区与列表区移除字段说明 - 删除提示文案调整 - 验证命令与结果 - 若测试期间启动 dev server,结束后已关闭进程 - [ ] **Step 2: 检查暂存区仅包含本次前端改动** Run: ```bash git status --short git diff --staged --name-only ``` Expected: - 仅出现前端页面、测试和实施记录相关文件。 - [ ] **Step 3: 提交前端记录** ```bash git add docs/reports/implementation/2026-03-24-credit-info-direct-storage-frontend-record.md git commit -m "补充征信维护前端直接入库实施记录" ```