RuoYi-Vue用户管理模块:从创建到权限分配

RuoYi-Vue用户管理模块:从创建到权限分配

【免费下载链接】RuoYi-Vue :tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 【免费下载链接】RuoYi-Vue 项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue

你是否还在为企业级系统的用户管理功能开发而烦恼?用户创建、信息维护、权限分配等繁琐流程占用大量开发时间?本文将带你快速掌握RuoYi-Vue框架中用户管理模块的完整使用流程,从用户创建到角色权限分配,全程可视化操作,无需复杂编码即可实现企业级用户管理功能。读完本文后,你将能够独立完成用户的增删改查、批量导入导出以及精细化的权限控制。

用户管理模块概览

RuoYi-Vue的用户管理模块位于系统管理菜单下,提供了全面的用户生命周期管理功能。该模块采用前后端分离架构,前端界面基于Vue和Element UI组件库构建,后端接口采用Spring Boot框架实现。用户管理页面主要由部门树形结构和用户数据表格两部分组成,支持部门筛选、用户搜索、批量操作等功能。

用户管理界面布局

核心功能包括:

  • 用户信息的增删改查
  • 部门与用户的关联管理
  • 用户状态的启用/停用控制
  • 密码重置与角色分配
  • 批量导入导出用户数据

用户管理模块的前端实现代码位于ruoyi-ui/src/views/system/user/index.vue,该文件包含了完整的页面布局、数据交互和业务逻辑。

用户创建流程

基本信息填写

创建新用户是用户管理模块的基础功能。点击用户列表页面上方的"新增"按钮,将弹出用户信息表单对话框。表单包含以下关键信息项:

  • 用户昵称:显示在系统界面的用户名称,必填项
  • 归属部门:通过树形选择器选择用户所属部门,必填项
  • 手机号码:需符合手机号格式验证规则
  • 邮箱:需符合邮箱格式验证规则
  • 用户名称:登录账号,新增时必填
  • 用户密码:默认密码可在系统配置中设置,支持自定义
  • 用户性别:通过字典数据实现下拉选择
  • 状态:默认为启用状态
  • 岗位与角色:多选框选择用户关联的岗位和角色

用户创建表单

表单验证规则在前端通过rules属性定义,包括:

rules: {
  userName: [
    { required: true, message: "用户名称不能为空", trigger: "blur" },
    { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
  ],
  password: [
    { required: true, message: "用户密码不能为空", trigger: "blur" },
    { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' },
    { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
  ],
  // 其他字段验证规则...
}

数据提交与后端处理

填写完用户信息并通过表单验证后,点击"确定"按钮提交数据。前端通过调用addUser方法将表单数据发送到后端接口:

addUser(this.form).then(response => {
  this.$modal.msgSuccess("新增成功")
  this.open = false
  this.getList()
})

后端接口采用RESTful设计风格,用户相关接口定义在com.ruoyi.system.controller.SysUserController类中。新增用户的核心业务逻辑包括:

  • 参数校验与数据合法性检查
  • 密码加密处理(采用BCrypt加密算法)
  • 用户信息保存到数据库
  • 岗位与角色关联关系处理
  • 操作日志记录

用户信息维护

用户数据表格

用户列表页面采用Element UI的el-table组件展示用户数据,支持以下功能:

  • 列显示控制:通过右上角的列配置按钮可自定义显示的列
  • 分页控制:默认每页显示10条记录,支持页码切换和每页条数调整
  • 条件搜索:可通过用户名称、手机号码、状态和创建时间范围进行筛选
  • 部门筛选:左侧部门树可快速筛选指定部门下的用户

表格的关键配置如下:

<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="50" align="center" />
  <el-table-column label="用户编号" align="center" prop="userId" />
  <el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" />
  <!-- 其他列定义... -->
  <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
    <template slot-scope="scope">
      <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
      <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
      <el-dropdown size="mini">
        <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
        <el-dropdown-menu>
          <el-dropdown-item command="handleResetPwd" icon="el-icon-key">重置密码</el-dropdown-item>
          <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check">分配角色</el-dropdown-item>
        </el-dropdown-menu>
      </el-dropdown>
    </template>
  </el-table-column>
</el-table>

用户状态管理

用户状态通过开关组件实现快速切换,状态变更会实时保存到服务器:

<el-table-column label="状态" align="center">
  <template slot-scope="scope">
    <el-switch v-model="scope.row.status" active-value="0" inactive-value="1" @change="handleStatusChange(scope.row)"></el-switch>
  </template>
</el-table-column>

状态变更的处理逻辑:

handleStatusChange(row) {
  let text = row.status === "0" ? "启用" : "停用"
  this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
    return changeUserStatus(row.userId, row.status)
  }).then(() => {
    this.$modal.msgSuccess(text + "成功")
  }).catch(function() {
    row.status = row.status === "0" ? "1" : "0"  // 操作取消时恢复原状态
  })
}

角色权限分配

权限分配入口

角色分配功能可通过用户列表中的"更多"下拉菜单访问,点击"分配角色"按钮将跳转到角色分配页面。角色分配页面的实现代码位于ruoyi-ui/src/views/system/user/authRole.vue

角色分配入口

角色选择与提交

角色分配页面展示系统中所有可用角色,并通过复选框实现角色的批量选择。页面分为两个主要区域:用户基本信息展示区和角色选择区。

角色选择表格的核心配置:

<el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="table" @selection-change="handleSelectionChange" :data="roles">
  <el-table-column type="selection" :reserve-selection="true" :selectable="checkSelectable" width="55" />
  <el-table-column label="角色编号" align="center" prop="roleId" />
  <el-table-column label="角色名称" align="center" prop="roleName" />
  <el-table-column label="权限字符" align="center" prop="roleKey" />
  <el-table-column label="创建时间" align="center" prop="createTime" />
</el-table>

角色分配的核心处理逻辑:

submitForm() {
  const userId = this.form.userId
  const roleIds = this.roleIds.join(",")
  updateAuthRole({ userId: userId, roleIds: roleIds }).then((response) => {
    this.$modal.msgSuccess("授权成功")
    this.close()
  })
}

后端通过updateAuthRole方法处理角色分配请求,核心逻辑包括:

  • 删除用户原有的角色关联
  • 保存新的角色关联关系
  • 更新用户最后修改时间和操作人

批量操作与数据导入导出

批量导入用户

RuoYi-Vue支持通过Excel文件批量导入用户数据,点击"导入"按钮将打开导入对话框。系统提供了标准的用户导入模板,可通过"下载模板"按钮获取。

导入功能的关键实现代码:

handleImport() {
  this.upload.title = "用户导入"
  this.upload.open = true
}

// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
  this.upload.open = false
  this.upload.isUploading = false
  this.$refs.upload.clearFiles()
  this.$alert("<div style='max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true })
  this.getList()
}

数据导出

用户数据支持导出为Excel格式,点击"导出"按钮将根据当前搜索条件导出用户数据:

handleExport() {
  this.download('system/user/export', {
    ...this.queryParams
  }, `user_${new Date().getTime()}.xlsx`)
}

导出功能的后端实现基于Apache POI库,支持自定义导出字段和数据格式。

总结与最佳实践

RuoYi-Vue的用户管理模块提供了企业级应用所需的完整用户管理功能,通过可视化界面和标准化流程,极大简化了用户管理相关的开发工作。在实际使用中,建议遵循以下最佳实践:

  1. 权限最小化原则:为用户分配最小必要权限,避免权限过度分配带来的安全风险
  2. 定期权限审计:定期检查用户权限,及时回收不再需要的权限
  3. 使用批量操作:对于大量用户数据维护,优先使用导入导出功能提高效率
  4. 密码安全策略:通过系统配置强制实施强密码策略,定期提醒用户更换密码

官方提供的详细环境使用手册可参考doc/若依环境使用手册.docx,更多功能实现细节可查阅源代码或访问项目官方文档。通过合理配置和扩展,RuoYi-Vue的用户管理模块可满足从小型应用到大型企业系统的不同需求。

希望本文能帮助你快速掌握RuoYi-Vue用户管理模块的使用,如果你有任何问题或建议,欢迎在项目仓库提交issue或参与社区讨论。

点赞收藏本文,关注项目更新,获取更多RuoYi-Vue使用技巧和最佳实践!

【免费下载链接】RuoYi-Vue :tada: (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 【免费下载链接】RuoYi-Vue 项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值