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

189 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 信息维护页面搜索区四列栅格统一实施记录
## 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 提交