Files
ccdi/docs/reports/implementation/2026-04-23-info-maintenance-search-grid-implementation.md
2026-04-24 13:29:13 +08:00

5.8 KiB
Raw Blame History

信息维护页面搜索区四列栅格统一实施记录

1. 实施目标

将信息维护同批页面的搜索区统一为每行 4 个字段位的栅格布局,超过 4 个字段自动换行,最后一行不足 4 项时保留空白字段位,不拉伸现有字段;同时清理查询区内遗留的固定像素宽度写法。

2. 实施范围

本次实际调整的前端文件如下:

  • ruoyi-ui/src/views/ccdiBaseStaff/index.vue
  • ruoyi-ui/src/views/ccdiStaffRecruitment/index.vue
  • ruoyi-ui/src/views/ccdiStaffTransfer/index.vue
  • ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
  • ruoyi-ui/src/views/ccdiStaffEnterpriseRelation/index.vue
  • ruoyi-ui/src/views/ccdiCreditInfo/index.vue
  • ruoyi-ui/src/views/ccdiEnterpriseBaseInfo/index.vue
  • ruoyi-ui/src/views/ccdiIntermediary/components/SearchForm.vue
  • ruoyi-ui/src/views/ccdiAccountInfo/index.vue
  • ruoyi-ui/src/views/ccdiCustFmyRelation/index.vue
  • ruoyi-ui/src/views/ccdiCustEnterpriseRelation/index.vue
  • ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue

本轮未提交的临时验证文件:

  • output/playwright/info-maintenance-search-grid-check.js

3. 实施内容

3.1 查询区统一为四列栅格

  • 将目标页面的头部查询表单从 :inline="true" 流式排布改为 el-row + el-col :span="6" 栅格排布
  • 每个查询项固定占一个字段位
  • 超过 4 个字段自动换到下一行
  • 最后一行不足 4 项时保留空白字段位,不做横向拉伸

3.2 字段内部控件统一铺满字段位

  • 将查询区里的输入框、下拉框、日期范围、树选择统一改为 style="width: 100%"
  • 清理查询区中遗留的固定像素宽度写法,不再依赖 style="width: Npx" 控制布局
  • 补充查询区专用样式,使 el-row 使用换行布局,el-col 不再依赖旧浮动行为导致错位

3.3 保持原有交互和业务逻辑不变

  • 未修改 queryParamshandleQueryresetQuery
  • 未修改搜索、重置、业务按钮、right-toolbar 的行为
  • 日期范围仍按一个字段位处理,仅在所属字段位内铺满

4. TDD / 结构校验

4.1 先写临时结构校验脚本

新增临时脚本:

  • output/playwright/info-maintenance-search-grid-check.js

脚本校验口径:

  • 只识别头部查询表单,不误扫弹窗表单
  • 查询区是否采用 el-col :span="6"
  • 查询项数量是否符合预期
  • 查询区内是否仍保留 style="width: Npx" 固定像素宽度
  • 账户库管理页是否仍残留旧的查询区局部覆盖样式

4.2 先失败,再通过

首次执行命令:

source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use >/dev/null && cd .. && node output/playwright/info-maintenance-search-grid-check.js

初次结果:

  • 12 个目标页面全部报出“未使用 span=6”和“仍存在固定像素宽度”的失败

页面改造完成后再次执行同一命令,结果为:

  • 信息维护搜索区四列栅格结构校验通过

5. 构建验证

5.1 Node 版本

执行命令:

source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use

结果:

  • 命中项目 nvm 配置
  • 使用项目要求的 Node 版本完成后续脚本和构建

5.2 前端构建

执行命令:

source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use >/dev/null && npm run build:prod

结果:

  • 构建成功
  • 无新增模板语法错误
  • 仅保留项目原有的体积告警

6. 真实页面浏览器验证

6.1 启动服务

前端开发服务:

source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use >/dev/null && npm_config_port=1025 npm run dev

后端服务:

sh bin/restart_java_backend.sh start

说明:

  • 本轮验证时后端原本未运行,因此使用仓库规定脚本启动
  • 使用真实登录页进入系统,账号为 admin / admin123

6.2 布局验证结果

使用 Playwright 进入以下代表页并读取查询区实际列位位置:

  • /maintain/baseStaff
  • /maintain/enterpriseBaseInfo
  • /maintain/accountInfo
  • /maintain/creditInfo
  • /maintain/intermediary
  • /maintain/staffTransfer
  • /maintain/purchaseTransaction

验证结果:

  • 员工信息维护5 个字段,实际排布为 4 + 1
  • 实体库管理8 个字段,实际排布为 4 + 4
  • 账户库管理9 个字段,实际排布为 4 + 4 + 1
  • 征信维护2 个字段,实际排布为单行 2 项,未拉伸成半屏布局
  • 中介库管理4 个字段,实际排布为单行 4 列
  • 员工调动记录6 个字段,实际排布为 4 + 2
  • 招投标信息维护4 个字段,日期范围与其他查询项等宽,占 1 个字段位

浏览器读取到的列位位置表现一致:

  • 同一行 4 列的左边界稳定为四等分位置
  • 超过 4 个字段的新一行从第一列起始位置重新排列
  • 最后一行不足 4 项时未发生拉伸

6.3 重置验证

在真实业务页面中使用 Playwright 做了两组输入与重置验证:

  1. 员工信息维护

    • 向“姓名”输入框填入 测试姓名
    • 点击页面 重置
    • 再次读取输入框值,结果为空字符串
  2. 账户库管理

    • 向“员工姓名”输入框填入 验证员工
    • 点击页面 重置
    • 再次读取输入框值,结果为空字符串

结论:

  • 搜索区改为四列栅格后,重置 交互未受影响

7. 进程清理

本轮验证结束后已关闭:

  • 前端开发服务 npm run dev
  • 后端服务 sh bin/restart_java_backend.sh start 启动的后端进程,使用 sh bin/restart_java_backend.sh stop 停止
  • Playwright 浏览器会话

8. 风险与说明

  • 当前工作区存在其他与本任务无关的未提交改动,本次未回退这些既有改动,仅在搜索区四列栅格范围内继续修改目标页面
  • 临时结构校验脚本位于 output/playwright/,用于本轮 TDD 校验,不纳入 git 提交