管理后台项目-06-用户管理角色管理模块

2023-11-09

目录

1-路由信息搭建和api文件信息创建

2-用户管理模块

2.1-列表数据获取以及动态渲染

2.2-添加 | 修改 用户

2.3-删除-批量删除用户

2.4-分配角色

3-角色管理

3.1-修改角色

3.2-分配权限


1-路由信息搭建和api文件信息创建

 

我们先进行路由菜单的配置,在系统页面展示出来。在src\router\index.js配置相关路由信息,配置信息如下:

 

  {
  name: 'Acl',
  path: '/acl',
  component: Layout,
  redirect: '/acl/user/list',
  meta: {
    title: '权限管理',
    icon: 'el-icon-lock'
  },
  children: [
    {
      name: 'User',
      path: 'user/list',
      component: () => import('@/views/acl/user/list'),
      meta: {
        title: '用户管理',
      },
    },
    {
      name: 'Role',
      path: 'role/list',
      component: () => import('@/views/acl/role/list'),
      meta: {
        title: '角色管理',
      },
    },
    {
      name: 'RoleAuth',
      path: 'role/auth/:id',
      component: () => import('@/views/acl/role/roleAuth'),
      meta: {
        activeMenu: '/acl/role/list',
        title: '角色授权',
      },
      hidden: true,
    },
    {
      name: 'Permission',
      path: 'permission/list',
      component: () => import('@/views/acl/permission/list'),
      meta: {
        title: '菜单管理',
      },
    },
  ]
}

api中的js文件配置如下:注意user和role|permission中的暴露方式不一样;引入的时候有点区别

 

2-用户管理模块

 

当用户点击 权限管理下面的用户管理模块时,需要展示用户列表信息;所以在页面挂载或者创建完成时,需要调用用户模块的相关接口。



2.1-列表数据获取以及动态渲染

我们看页面获取页面数据,页面加载过程中需要获取,搜索框输入需要获取。我们首先看页面布局,上面搜索框是一排,需要使用到el-form inline 行内组件;列表数据使用el-table来显示。

发送请求获取数据:

 

 

初始化数据的时候,我们可以将初始化的条件参数username默认值为null,这样就不会在请求中带上username字段参数。搜索条件参数作为param参数传递。我们在添加或者修改用户的时候,需要对用户名和密码进行校验。使用校验规则进行校验。

 

 

 

当我们点击查询按钮的时候,我们需要将输入的查询条件作为参数传递过去。点击清空按钮的时候,需要清空输入框内容,再次发送请求。

 

 

改变分页大小的时候需要调用列表接口


2.2-添加 | 修改 用户

 

当用户点击用户管理的添加按钮的时候,我们需要弹框el-form让用户填写信息。

 

修改用户信息

这里使用到了深度克隆,引用了lodash的深度克隆方法。

 

 

 


 点击取消或者确定按钮是,需要处理的逻辑,当我们点击取消时,注意需要将user设置为空,否则之前数据会存在。点击确定或者保存的时候,需要先校验参数,校验通过了才发送请求。

 

 this.$API.user[user.id ? 'update' : 'add'](user);这里这种写法可以学习一下

 
2.3-删除-批量删除用户

当用户点击列表的删除按钮,需要删除单个用户,当用户勾选了列表的勾选框,可以批量删除多个用户。删除单个用户的时候,需要弹框提示。

 

 

 点击选择框,删除多个用户,我们需要收集删除的用户id,进行批量删除;当没有选中任何记录时,批量删除按钮disabled;选中时才可以点击。

 

 

 

 

 

2.4-分配角色

 

当用户点击列表页面的分配角色按钮的时候,需要给当前选中的用户分配角色。注意点:如果当前用户有角色,需要在页面进行显示;

 

 

 

 

3-角色管理

 

当我们点击角色管理时,需要查询角色列表,并且可以输入角色名称进行模糊查询;整个模块主要是对角色进行增删改查操作,这里由于角色管理的新增,查询,删除和用户管理模块基本一模一样;我们不进行笔记记录;我们主要对修改和分配权限进行笔记记录。列表注意两个小点:角色名称缓存了一份,出错使用了finally。没有使用我们之前的async和await来实现。

 


3.1-修改角色

 

修改角色这里因为只有一个字段,所以并不需要弹框修改,而是修改图标发生变化,并且table的角色名称那一列变成输入框,可以输入内容,然后点击后面那个对号标识,发送请求修改角色名称。所以需要一个标识来控制input和span的切换。


 

 

3.2-分配权限

 

当用户点击角色列表分配权限按钮的时候,需要获取当前角色的权限信息。如果是之前已经勾选了相关权限,需要展示,并且要勾选上(这里需要对选中的进行处理,如果当前角色拥有某个id,那么对应返回的对象中有一个select字段为true)。而且这里需要我们使用到elementUI中的true组件进行开发。所以服务器端返回的数据结构要按照elementUI的结构返回,或者服务器返回平行结构,前端在赋值到tree组件之前处理好。这里服务端是已经处理好了树型结构数据。

当点击保存的时候,我们需要提交数据给服务器保存数据。我们点击分配权限的时候,需要进行路由跳转,所以我们在路由配置中有一项配置需要留意。meta对象配置中activeMenu配置项。

 

 

获取角色的权限数据,这里服务端采取的是如果第四级菜单(按钮)中有个字段select,如果是true就表示当前角色选中了这个权限。如果子都选中的,那么他们的父亲的select也是返回true。

 

 

 


 当用户点击保存按钮后,需要整理向服务端发送的数据,并且请求服务器

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

管理后台项目-06-用户管理角色管理模块 的相关文章

随机推荐

  • sed命令常见用法

    常见sed命令的操作 a 增加 在当前行下面增加一行指定内容 c 整行替换 将选定行替换为指定内容 d 删除 删除选定的行 w 将行写入新文件 r 从文件中读取 i 插入 在选定行上面插入一行指定内容 p 打印 如果同时指定行 表示打印指定
  • 五彩斑斓的黑

  • c++操作sqllite

    项目中需要使用的sqllite 有想过使用内存的结果 好像都不大使用 最接近的算是vector了 但是查询方式不大好 而且数据有好几个字段 所以考虑了数据库 sqllite目前已经到了3了 好快 好像这个数据库也不弱 就先用着吧 其实挺简单
  • FPGA—串口RS232(附实现代码)

    目录 1 理论 1 1 串口简介 1 2 RS232信号线 1 3 RS232通信协议简介 2 实操 2 1 硬件资源 2 2 顶层模块 2 2 1 模块说明 2 2 2 RTL 代码 2 2 3 仿真验证 2 3 串口数据接收模块 2 3
  • PyCharm集成SVN,检出、提交代码

    工作需要 使用PyCharm集成SVN 进行代码管理 搜索网上资料 没有讲的很清楚的 自己动手摸索 大致了解了使用方法 遂记录下来 希望他人少走些弯路
  • 比较Opencv自带的frontface检测器

    CascadeClassifier haarcascade frontalface alt new CascadeClassifier xml haarcascade frontalface alt xml CascadeClassifie
  • 【Linux】Linux服务器解决python3.7与openssl的低版本不兼容的问题

    安装了Python3 7之后 遇到的一个很麻烦的坑就是与系统自带的ssl版本不兼容 Python3 7需要的openssl的版本为1 0 2或者1 1 x 这个requirements在config Python3 7的时候使用 with
  • c++栈实现表达式求值

    文章目录 前言 一 思想分析 二 具体实现 前言 后缀表达式的算法思想与具体实现 一 思想分析 设定两个栈 操作数栈 OPND 操作符栈 OPTR 栈初始化 置操作数栈 OPND 为空 操作符栈 OPTR 中预设一个优先级最低的操作符 自左
  • Shell Expect 命令

    expect可以实现shell实现不了的用户交互的需求 expect可以将交互写在一个脚本上 完成很多自动化的动作 比如ssh ftp登陆等 都是需要交互需求的 expect是需要安装的 直接yum y install expect安装即可
  • Class 00 - 学习编程的方法&不同职业所使用的编程语言

    Class 00 学习编程的方法 不同职业所使用的编程语言 学习编程的方法 什么是编程 不同职业所使用的编程语言 数据分析 网页设计 移动应用开发 Web应用开发 游戏开发 Tips 学习编程语言的技巧 从电子表格到 SQL 再到 R 电子
  • threejs学习01-环境搭建+简单示例

    threejs学习 环境搭建 简单示例 环境搭建 node js vite js three js 轻量级的环境 先安装配置好node 在cmd中输入 node v 来查看node版本 node 配置好后就可以创建一个vite的项目了 先调
  • Vuforia Ground Plane 平面识别

    首先弄出这几个组件 如图 还有 再然后 然后就是关键了 如果Vuforia版本低于8 5 8 就得导入ARcore的arr 也就是这个 这个可以在 https dl google com dl android maven2 com goog
  • createBean方法详解

    前言 createBean是创建Bean的主要方法 该方法位于 AbstractBeanFactory的doGetBean方法中的createBean调用 createBean方法流程图 createBean源码解析 protected O
  • Zabbix监控MongoDB、Nignx、Redis、Php-fpm、SNMP(如打印机)

    Zabbix v3 4 MongoDB v3 4 MongoDB模板 感谢大神 MongoDB for Zabbix https share zabbix com databases mongodb mongodb for zabbix 3
  • better mybatis generator 使用详情

    1 在idea中plugins市场中下载better mybatis generator 安装 2 在idea中打开database 3 添加数据库 连接数据库 4 连接成功之后 如果如下图所示 可以看到schemas下边有连接好的数据库b
  • RoI Pooling 和 RoI Align

    RoI Pooling 和 RoI Align 一 背景和基本概念 1 背景 2 基本概念 二 RoI Pooling原理 1 目的 2 步骤 以输出RoI feature大小为2 2 5为例 Step1 Step2 Step3 Step4
  • python画饼图加牵引线_python-Matplotlib绘制分列式饼图并添加表格

    import matplotlib pyplot as plt import numpy as np import matplotlib as mpl 解决中文乱码和正负号问题 mpl rcParams font sans serif Si
  • 计算机汉字的输入和编辑教案,计算机汉字录入教案.doc

    教育局教研室学科教案纸 授课时间 年 月 日 星期 课 题上期总结与本期计划课 型新授本期总第 1 节教 学 目 标 知识与技能 过程与方法 情感态度与价值观 层 次 要 求了解认识理解应用经历体验反应领悟课 时 教 学 目 标 归纳总结上
  • 包教包会:本地推送 & 远程推送

    什么是推送 注意 和我们常用的抽象通知不同 NSNotification 可以让不在前台运行的app 告知用户app内部发生了什么事情 或者没有运行的app接收到服务器发来的通知 比如离线QQ接受消息 网上商城的打折通知 游戏的版本更新通知
  • 管理后台项目-06-用户管理角色管理模块

    目录 1 路由信息搭建和api文件信息创建 2 用户管理模块 2 1 列表数据获取以及动态渲染 2 2 添加 修改 用户 2 3 删除 批量删除用户 2 4 分配角色 3 角色管理 3 1 修改角色 3 2 分配权限 1 路由信息搭建和ap