# 信息维护页面头部按钮统一设计文档 ## 1. 背景 当前“信息维护”菜单下各页面的头部结构并不统一。 多数页面仍沿用若依常见写法:查询条件表单位于上方,`搜索 / 重置` 按钮放在查询表单最后一个 `el-form-item` 中;查询表单下方再单独放一行业务按钮,如 `新增`、`导入`、`查看导入失败记录` 等。 这导致同属“信息维护”目录的页面在操作起点上表现不一致: - 用户需要先在查询表单区域找到 `搜索 / 重置`,再把视线切到下一行找 `新增 / 导入` - 页面首屏操作被拆成两层,视觉上不够统一 - 特殊页如“征信维护”“中介库管理”也各自使用不同结构,进一步放大了差异 本次需求非常明确:将“信息维护”菜单下所有页面统一调整为把 `搜索 / 重置` 移到 `新增 / 导入` 同一行,并放在这些业务按钮左边。 ## 2. 目标 在“信息维护”菜单下所有页面中,统一实现以下头部规则: - 查询条件区域继续保留在上方 - 查询条件下方保留一条统一操作行 - `搜索 / 重置` 从查询表单内部移出,进入统一操作行 - 统一操作行的顺序固定为:`搜索 -> 重置 -> 页面原有业务按钮 -> right-toolbar` - 页面原有业务按钮文案、权限、显隐条件、点击行为保持不变 ## 3. 范围 本次范围覆盖“信息维护”菜单下全部当前前端页面: - 员工信息维护 - 招聘信息维护 - 员工调动记录 - 员工亲属关系维护 - 员工实体关系维护 - 征信维护 - 实体库管理 - 中介库管理 - 账户库管理 - 信贷客户家庭关系 - 信贷客户实体关联 - 招投标信息维护 其中两类特殊页面也纳入本次统一范围: - 征信维护:业务按钮不是“新增 / 导入”,而是 `批量上传征信HTML` - 中介库管理:查询条件与 `搜索 / 重置` 目前封装在独立 `SearchForm` 组件中 ## 4. 非目标 - 不新增头部公共组件 - 不重构查询表单字段布局 - 不新增或删除任何业务按钮 - 不修改接口、数据结构、权限点和页面路由 - 不调整失败记录按钮的显示逻辑 - 不顺带处理与本次需求无关的样式问题 ## 5. 当前现状分析 ### 5.1 常规页面 常规页面的结构基本一致: 1. 查询表单 2. 查询表单中最后一个 `el-form-item` 放 `搜索 / 重置` 3. 下一行 `el-row.mb8` 放 `新增 / 导入 / 失败记录 / right-toolbar` 这类页面包括: - 员工信息维护 - 员工调动记录 - 员工亲属关系维护 - 员工实体关系维护 - 招聘信息维护 - 实体库管理 - 账户库管理 - 信贷客户家庭关系 - 信贷客户实体关联 - 招投标信息维护 ### 5.2 征信维护 “征信维护”页面没有 `新增 / 导入` 组合,当前写法为: 1. 查询表单中放 `搜索 / 重置` 2. 下一行操作区只放 `批量上传征信HTML` 和 `right-toolbar` 虽然语义不同,但本质上仍属于“查询按钮与业务按钮分两行”的问题。 ### 5.3 中介库管理 “中介库管理”页面的查询条件被拆到 `SearchForm.vue` 组件中,当前结构为: 1. 父页渲染 `SearchForm` 2. `SearchForm` 内部自己渲染查询字段和 `搜索 / 重置` 3. 父页下方单独渲染 `新增 / 两类导入 / 两类失败记录 / right-toolbar` 这类页面不能像常规页那样只移动模板片段,需要同时调整父子职责边界。 ## 6. 方案比较 ### 6.1 方案一:逐页手工挪动按钮 做法: - 每个页面各自把 `搜索 / 重置` 从查询表单中移到下方操作行 - 中介库管理单独做特殊适配 优点: - 改法直接 - 不引入新抽象 缺点: - 页面数量较多,重复改动偏多 - 容易因为逐页处理导致结构细节不一致 ### 6.2 方案二:抽头部公共组件 做法: - 新增一个统一头部组件,接收查询按钮、业务按钮和 `right-toolbar` - 所有信息维护页面接入该组件 优点: - 理论上后续最统一 缺点: - 需要同步改造事件透传、插槽结构和特殊页适配 - 对本次“只改按钮位置”的需求来说路径偏长 ### 6.3 方案三:统一骨架,页内最小改动 做法: - 不抽公共组件 - 仅把各页 `搜索 / 重置` 调整到统一操作行 - 保留每页现有业务按钮定义与语义 - 中介库管理只收敛 `SearchForm` 的职责,不扩展为组件体系重构 优点: - 满足最短路径要求 - 风险最低 - 能覆盖常规页、征信维护和中介库管理三类结构 缺点: - 统一规则仍分散在各页面模板中 ### 6.4 结论 采用方案三:统一骨架,页内最小改动。 ## 7. 总体设计 ### 7.1 统一头部骨架 所有信息维护页面统一收敛为以下结构: 1. 查询条件表单 2. 统一操作行 3. 表格与分页区域 统一操作行内部顺序固定为: - 搜索 - 重置 - 当前页面原有业务按钮 - `right-toolbar` 其中: - `搜索 / 重置` 总是排在最左侧 - 当前页面原有业务按钮保持原有顺序与文案 - `right-toolbar` 继续保持在最右侧 ### 7.2 查询表单边界 查询表单只保留查询字段本身,不再承担查询按钮展示职责。 这意味着: - 常规页删除查询表单末尾的按钮型 `el-form-item` - 查询条件字段、`@keyup.enter.native="handleQuery"` 等行为保留 - `resetQuery` 方法语义保持不变,只是触发入口位置改变 ### 7.3 业务按钮边界 页面当前已有的业务按钮全部保留,不因为统一布局而更名或改语义。 例如: - 征信维护继续使用 `批量上传征信HTML` - 中介库管理继续使用 `导入中介和亲属信息`、`导入中介实体关联关系` - 实体库管理继续保留 `删除` - 各页面失败记录按钮继续保留各自原有文案和显隐条件 ## 8. 页面分类设计 ### 8.1 常规页面 常规页面直接采用相同处理方式: 1. 从查询表单中删掉 `搜索 / 重置` 2. 在 `el-row.mb8` 左侧新增 `搜索 / 重置` 3. 原有业务按钮整体顺延 适用于: - 员工信息维护 - 招聘信息维护 - 员工调动记录 - 员工亲属关系维护 - 员工实体关系维护 - 实体库管理 - 账户库管理 - 信贷客户家庭关系 - 信贷客户实体关联 - 招投标信息维护 ### 8.2 征信维护 征信维护页面也按统一骨架处理,但不强行改成“新增 / 导入”语义。 目标结构为: - `搜索` - `重置` - `批量上传征信HTML` - `right-toolbar` 即仅统一布局,不改按钮名称和后续上传链路。 ### 8.3 中介库管理 中介库管理页面需要额外收敛 `SearchForm` 的职责边界。 调整后职责如下: - `SearchForm` 只负责渲染查询字段 - 父页面负责渲染 `搜索 / 重置` - 父页面继续负责 `新增 / 导入 / 失败记录 / right-toolbar` 事件口径保持不变: - `搜索` 仍触发父页 `handleQuery` - `重置` 仍清空查询条件并触发列表刷新 但 `搜索 / 重置` 的展示位置统一收口到父页操作行中。 ## 9. 实现边界 ### 9.1 本次允许改动 - 各页面模板中查询按钮的位置 - 少量样式,用于保证统一操作行换行时可读 - 中介库管理父子组件的头部展示职责划分 ### 9.2 本次禁止改动 - 查询参数字段 - 列表字段 - 按钮权限控制 - 接口调用方式 - 导入、上传、失败记录、详情弹窗等业务逻辑 - 页面菜单、路由和 SQL ## 10. 测试与验收设计 ### 10.1 页面验收点 所有纳入范围的页面都需要满足: - 查询表单内不再显示 `搜索 / 重置` - `搜索 / 重置` 均位于统一操作行最左侧 - 业务按钮位于 `搜索 / 重置` 右侧 - `right-toolbar` 位于操作行最右侧 ### 10.2 行为验收点 所有页面都需要保证以下行为不回归: - 输入查询条件后点击 `搜索` 能正常刷新列表 - 点击 `重置` 能正常清空条件并刷新列表 - 查询条件回车搜索能力保留 - 原有业务按钮点击行为不变 - 权限控制与失败记录显隐逻辑不变 ### 10.3 特殊页面验收点 征信维护: - `批量上传征信HTML` 仍可正常打开上传弹窗 中介库管理: - `搜索 / 重置` 虽然移出 `SearchForm`,但查询与重置行为保持一致 - 两类导入按钮和两类失败记录按钮行为不变 ### 10.4 浏览器实测口径 实现完成后至少需要使用真实浏览器验证三类代表页面: - 常规页:员工信息维护 - 特殊业务按钮页:征信维护 - 组件拆分页:中介库管理 实测重点: - 页面加载后头部布局是否符合统一规则 - `搜索`、`重置` 是否可用 - 业务按钮点击是否仍按原链路工作 ## 11. 风险与控制 ### 11.1 风险 - 页面较多,逐页调整时可能遗漏个别信息维护页面 - 直接移动按钮后,某些页面在窄屏下可能出现换行拥挤 - 中介库管理如果只移动视觉位置但没处理好重置逻辑,可能出现父子状态不同步 ### 11.2 控制措施 - 以“信息维护菜单全部页面”为清单逐页核对,不按模糊搜索结果做不完整改动 - 样式只做最小补充,优先保证按钮换行后仍可点、可读 - 中介库管理调整后单独验证重置行为,确保查询参数与列表刷新保持一致 ## 12. 预期交付 - 设计文档 1 份 - 后续前端实施计划 1 份 - 后续实施完成记录 1 份 本次设计只涉及前端页面布局调整,不涉及后端改造,因此不拆分后端实施计划。