Files
ccdi/docs/reports/implementation/2026-04-23-info-maintenance-search-grid-implementation.md

189 lines
5.8 KiB
Markdown
Raw Normal View History

2026-04-24 13:29:13 +08:00
# 信息维护页面搜索区四列栅格统一实施记录
## 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 保持原有交互和业务逻辑不变
- 未修改 `queryParams``handleQuery``resetQuery`
- 未修改搜索、重置、业务按钮、`right-toolbar` 的行为
- 日期范围仍按一个字段位处理,仅在所属字段位内铺满
## 4. TDD / 结构校验
### 4.1 先写临时结构校验脚本
新增临时脚本:
- `output/playwright/info-maintenance-search-grid-check.js`
脚本校验口径:
- 只识别头部查询表单,不误扫弹窗表单
- 查询区是否采用 `el-col :span="6"`
- 查询项数量是否符合预期
- 查询区内是否仍保留 `style="width: Npx"` 固定像素宽度
- 账户库管理页是否仍残留旧的查询区局部覆盖样式
### 4.2 先失败,再通过
首次执行命令:
```bash
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 版本
执行命令:
```bash
source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use
```
结果:
- 命中项目 `nvm` 配置
- 使用项目要求的 Node 版本完成后续脚本和构建
### 5.2 前端构建
执行命令:
```bash
source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use >/dev/null && npm run build:prod
```
结果:
- 构建成功
- 无新增模板语法错误
- 仅保留项目原有的体积告警
## 6. 真实页面浏览器验证
### 6.1 启动服务
前端开发服务:
```bash
source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use >/dev/null && npm_config_port=1025 npm run dev
```
后端服务:
```bash
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 提交