### REQ-USR-004 查询用户 **目标**: 用户可按用户名、角色或状态筛选并分页浏览用户列表 - **输入**: - **表1**: | 字段 | 类型 | 必填 | 输入方式 | 显示来源 | 预加载 | 默认值 | 业务规则 | | ---- | ---- | --- | ---- | ----------------------------------------------- | ----- | ------- | --------------- | | 查询字段 | 文本 | 否 | 下拉单选 | 用户名/员工名/用户号/部门/用户类型/作废/登录日期/制单人 | 页面加载时 | 用户名 | — | | 匹配方式 | 文本 | 否 | 下拉单选 | 包含/不包含/等于 | 页面加载时 | 包含 | — | | 查询值 | 文本 | 否 | 手工输入 | — | — | — | 与「查询字段」配合使用,空为选择全部 | - **输出**: - **表1**: | 字段 | 类型 | 显示来源 | | ---- | ---- | ----- | | 序号 | 数字 | 系统生成 | | 用户名 | 文本 | `用户表` | | 员工名 | 文本 | `职员表` | | 用户号 | 文本 | `用户表` | | 部门 | 文本 | `职员表` | | 用户类型 | 文本 | `用户表` | | 语言 | 文本 | `用户表` | | 作废 | 布尔 | `用户表` | | 登录日期 | 日期时间 | `用户表` | | 制单人 | 文本 | `用户表` | | 制单日期 | 日期时间 | `用户表` | - **跨字段规则**: - - **边界**: 单页最大条数受限(默认 100);密码与敏感字段不返回;查询为只读,不产生写副作用 - **验收**: 按条件筛选返回正确结果集;无匹配时返回空列表而非报错;分页参数越界时返回最后一页 - **依赖表**: `sys_user`(读: 分页 + 筛选), `sys_employee`(读: JOIN 取员工名), `sys_department`(读: JOIN 经 employee 取部门名) - **依赖接口**: `GET /api/v1/users`(本 REQ 提供)