主题
用户管理
用户管理是系统里维护登录账号的页面,用来决定谁可以进入系统、归属哪个部门、拥有哪些角色、当前是否允许登录。
它不是单纯的“员工通讯录”,而是系统权限落地的第一层入口。新员工入职、老员工调岗、账号停用、密码重置、批量导入,通常都从这里开始处理。
菜单路径
系统管理 → 用户管理
这个页面解决什么问题
日常最常见的几类场景:
- 新员工入职后,需要创建登录账号
- 员工调岗后,需要同步调整部门、岗位、角色
- 员工忘记密码后,需要管理员重置密码
- 员工离职或暂时停用后,需要关闭登录权限但保留历史记录
- 需要一次性导入一批新账号时,用导入功能批量处理
可以把它理解为“账号入口 + 组织归属 + 权限分配”三件事合在一起的管理页。
页面结构
用户管理采用左侧部门树 + 右侧查询列表的结构,而不是单独一张表。
- 左侧部门树:用于按部门筛选用户
- 右侧查询区:用于按账号、姓名、手机号、状态、角色、创建时间进一步筛选
- 右侧列表区:查看用户当前状态,并执行新增、编辑、删除、导入、导出、重置密码等操作
先理解:部门、岗位、角色分别管什么
很多新手第一次配置时,容易把这三个概念混在一起。
- 部门:这个人属于哪个组织单元,用于人员归属、树形筛选、部分业务范围区分
- 岗位:这个人在所属部门中的岗位信息,偏组织身份补充
- 角色:这个人能看到哪些菜单、能执行哪些操作,是权限控制的关键
在系统当前实现里,角色是必选项。如果不分配角色,新增/编辑都无法通过后端校验。
对应后端约束:
查询区可以筛什么
右侧查询区当前支持以下条件:
- 用户账号
- 用户昵称
- 手机号码
- 状态
- 角色,可多选
- 创建时间范围
其中,部门不是查询表单里的普通下拉框,而是通过左侧部门树来筛。
列表里实际显示什么
当前列表不是简单的“用户名 + 姓名”二维表,而是包含较完整的账号状态信息。
主要列包括:
- 用户名列
- 头像
- 登录账号
- 用户昵称
- 性别
- 所属部门
- 角色
- 邮箱
- 手机号
- 状态
- 创建时间
- 操作列
其中要特别注意两点:
- 登录账号和用户昵称在同一列里上下显示,不是两列分开展示。
- 角色列会直接展示当前用户已分配的角色名称,方便快速核对权限归属。
常用操作
新增用户
点击右上角 新增 后,会打开新增抽屉。
新增时需要重点填写:
- 用户昵称
- 归属部门
- 角色,可多选
- 岗位,可多选
- 登录账号
- 手机号
- 初始密码
- 邮箱
- 状态
- 性别
- 备注
其中当前实现里有几个关键规则:
- 登录账号只在新增时填写,编辑时不会再显示
- 初始密码也只在新增时填写
- 角色必选
- 新增时会默认带入当前左侧部门树选中的部门
后端保存时会进一步做这些校验:
- 账号唯一
- 手机号唯一(非空时)
- 邮箱唯一(非空时)
- 目标部门必须在当前操作者可访问范围内
- 如果启用了租户能力,还会校验当前租户账号名额是否足够
对应后端实现:
- 新增接口:
- 账号/手机号/邮箱校验:
- 租户名额校验:
新手建议
建议先确保“组织架构”和“角色权限”已经配置好,再回到用户管理新增账号。否则部门能选、角色却不完整,后面还要返工。
编辑用户
点击列表行内的 编辑 按钮,会打开编辑抽屉。
编辑时可以修改:
- 用户昵称
- 归属部门
- 角色
- 岗位
- 手机号
- 邮箱
- 状态
- 性别
- 备注
但当前实现里:
编辑时不会显示“登录账号”输入框
编辑时不会显示“密码”输入框
编辑页面会额外请求用户详情,把该用户已有的角色、岗位、可选角色列表一起加载出来
后端详情接口返回编辑页初始化数据:
后端编辑时还会继续校验:
- 不允许操作超级管理员用户
- 当前操作者必须有权访问该用户数据
- 目标部门必须在可访问范围内
- 账号/手机号/邮箱仍然不能重复
对应后端实现:
- 编辑接口:
启用 / 停用用户
列表中的状态列支持直接切换启用或停用,不需要先进入编辑抽屉。
这适合处理两类情况:
员工暂时停用,不希望继续登录系统
员工离职,但仍希望保留历史操作记录
后端状态修改接口:
注意
停用账号通常优先于删除账号。删除更适合确定不再需要保留该账号身份的情况;如果只是暂时不用,建议先停用。
重置密码
如果员工忘记密码,管理员可以在列表行内点击 重置密码。
当前实现里,重置密码是单独的抽屉,不是在编辑抽屉里直接修改。
重置密码抽屉会显示:
用户昵称,只读
部门名称,只读
登录账号,只读
新密码,可输入
后端重置密码接口:
后端保存时会:
- 拦截对超级管理员用户的密码重置
- 校验当前操作者是否有权访问该用户
- 对新密码进行加密后再保存
删除用户
用户管理支持:
行内删除单个用户
勾选后批量删除多个用户
后端删除接口:
后端当前还有几个重要限制:
- 当前登录用户不能删除自己
- 不允许操作超级管理员用户
- 删除前会先清理该用户关联的角色和岗位关系
- 用户本身采用逻辑删除,历史痕迹不会像物理删除那样彻底抹掉
批量导入
当需要一次性创建很多账号时,可以使用导入功能。
当前导入弹窗支持:
- 上传 Excel 文件
- 下载导入模板
- 选择“是否更新已存在数据”
- 导入完成后查看结果反馈
导入限制:
- 只支持 Excel (xls) 格式 / Excel (xlsx) 格式
- 单次只允许上传 1 个文件
- 文件大小上限 50MB
导入时,系统当前支持的导入字段主要是:
- 部门名称
- 登录名称
- 用户名称
- 用户邮箱
- 手机号码
- 用户性别
- 账号状态
对应后端定义:
这里要特别注意:
- 导入里的“更新已存在数据”,主要更新的是基础资料字段
- 它不是完整替代“编辑用户”
- 角色、岗位这类关系字段并不在导入模板主字段里,不建议把导入当成完整权限维护工具
导出用户
如果需要做账号盘点、部门人员核查或线下归档,可以使用导出功能。
当前导出会按照当前筛选条件导出用户列表,不是无条件导出全部账号。
- 后端导出接口:
用户与角色的关系
一个用户可以分配多个角色,系统会按角色组合决定他能看到哪些菜单、能操作哪些功能。
当前实现里,用户与角色至少有两种维护入口:
- 在用户管理的新增/编辑抽屉里为用户分配角色
- 在角色权限页面中,从角色侧反向给用户分配账号
这意味着:
- 用户管理更适合从“这个人是谁、属于哪个部门、该给哪些权限”来配置
- 角色权限更适合从“这个角色应该授权给哪些人”来配置
系统当前的几个关键规则
1)角色必选
新增或编辑用户时,后端要求至少分配一个角色,否则无法保存。
依据:
2)账号、手机号、邮箱不能乱重复
当前后端会校验:
- 登录账号唯一
- 手机号非空时唯一
- 邮箱非空时唯一
依据:
3)超级管理员用户不能被普通方式改动
当前前端和后端都对超级管理员做了额外保护:
- 前端列表里,管理员账号 的用户不显示普通行操作
- 状态开关也会禁用
- 后端也会拦截对超级管理员用户的编辑、删改、停启用、重置密码等操作
依据:
- 前端保护:、
- 后端保护入口:
4)不是所有用户、部门、角色都能随便操作
虽然当前控制器里很多传统 权限检查 注解被注释掉了,但这不代表没有任何权限控制。
系统仍然保留了几类重要限制:
- 用户数据范围校验
- 部门数据范围校验
- 角色数据范围校验
- 超级管理员保护
- 自删保护
也就是说,用户管理不是“谁进来都能改所有人”。实际能改到哪一层,还受当前操作者的数据权限影响。
推荐使用顺序
如果你是第一次配置系统,建议按下面顺序操作:
原因很简单:
- 没有组织架构,用户挂不到合适部门
- 没有角色,用户新增后权限不完整
- 先把基础组织与角色配好,再建用户,返工最少
使用场景
场景一:新员工入职
- 先确认该员工所属部门已经存在
- 再确认对应岗位和角色已经准备好
- 在用户管理中新增账号
- 分配部门、岗位、角色
- 保存后把登录账号和初始密码交给员工
场景二:员工调岗
- 打开用户编辑抽屉
- 调整归属部门和岗位
- 按新职责重新分配角色
- 保存后让员工重新按新权限使用系统
场景三:员工忘记密码
- 在列表中找到该员工
- 点击重置密码
- 输入新密码并保存
- 将新密码通知员工登录后自行修改
场景四:员工离职或停用
- 优先把账号状态改成停用
- 确认该员工不能再登录系统
- 如有必要,再由管理员评估是否执行删除
注意事项
注意
- 左侧部门树会直接影响右侧列表结果,查不到人时先确认是否筛到了错误部门。
- 角色是权限核心,不是装饰字段。看不到菜单、点不了按钮,优先检查角色。
- 新增与编辑字段不完全相同:登录账号和密码只在新增时填写。
- 导入适合批量建基础账号,不适合做复杂权限调整。涉及角色、岗位时,仍建议进编辑抽屉逐个核对。
- 停用通常优先于删除,这样更利于保留历史操作痕迹。
- 不要把超级管理员账号当普通账号维护,系统对这类账号有额外保护。