Files
ccdi/docs/plans/2026-03-11-upload-data-account-display-implementation.md

2.9 KiB

上传数据主体账号展示实施计划

For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

目标: 在项目详情的上传数据文件列表中新增“主体账号”列,展示后端已返回的 accountNos

架构: 保持后端接口、数据结构和页面交互逻辑不变,仅在前端表格模板增加一列,并通过静态回归测试锁定该列的存在与字段绑定

技术栈: Vue.js 2.6.12, Element UI 2.15.14, Node.js 内置 assert/fs/path


任务 1: 编写失败中的回归测试

文件:

  • 新建: ruoyi-ui/tests/unit/upload-data-account-column.test.js

步骤 1: 写出失败测试

新增一个零依赖静态测试,读取 UploadData.vue 源码并断言:

  • 文件列表区域存在 主体账号 文案
  • 存在绑定 prop="accountNos" 的表格列

测试主体可采用以下结构:

const assert = require("assert");
const fs = require("fs");
const path = require("path");

const componentPath = path.resolve(
  __dirname,
  "../../src/views/ccdiProject/components/detail/UploadData.vue"
);
const source = fs.readFileSync(componentPath, "utf8");

assert(/prop="accountNos"/.test(source), "...");
assert(/label="主体账号"/.test(source), "...");

步骤 2: 运行测试确认失败

运行:

node ruoyi-ui/tests/unit/upload-data-account-column.test.js

预期:

  • 命令失败
  • 失败信息指出未找到“主体账号”列或 accountNos 绑定

任务 2: 修改上传数据列表模板

文件:

  • 修改: ruoyi-ui/src/views/ccdiProject/components/detail/UploadData.vue

步骤 1: 新增主体账号列

在“主体名称”列后添加“主体账号”列,保持与主体名称相同的兜底展示:

<el-table-column prop="accountNos" label="主体账号" min-width="180">
  <template slot-scope="scope">
    {{ scope.row.accountNos || '-' }}
  </template>
</el-table-column>

步骤 2: 保持现有布局不变

  • 不修改接口请求
  • 不调整分页、刷新、轮询逻辑
  • 不修改表格其他列的行为

任务 3: 重新运行测试并回归验证

文件:

  • 验证: ruoyi-ui/tests/unit/upload-data-account-column.test.js
  • 验证: ruoyi-ui/tests/unit/upload-data-file-list-table.test.js
  • 验证: ruoyi-ui/tests/unit/upload-data-file-list-settings.test.js

步骤 1: 运行新增测试确认通过

node ruoyi-ui/tests/unit/upload-data-account-column.test.js

预期:

  • 输出 upload-data-account-column test passed

步骤 2: 运行关联回归测试

node ruoyi-ui/tests/unit/upload-data-file-list-table.test.js
node ruoyi-ui/tests/unit/upload-data-file-list-settings.test.js

预期:

  • 两个测试都通过

步骤 3: 执行前端构建验证

cd ruoyi-ui
npm run build:prod

预期:

  • 构建成功
  • 无模板编译错误