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

## 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 提交
