iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue element实现权限管理业务流程详解
  • 248
分享到

Vue element实现权限管理业务流程详解

2024-04-02 19:04:59 248人浏览 薄情痞子
摘要

目录展开渲染标签编辑权限对话框内树形组件编辑权限展示所有权限 添加 编辑 删除 角色 都与上一篇 用户类似 只是接口不同 我们只关注其他不一样的: 展开渲染标签编辑权限 el-tab

添加 编辑 删除 角色 都与上一篇 用户类似 只是接口不同

我们只关注其他不一样的:

展开渲染标签编辑权限

el-table-column type="expand"设置了expand则显示为一个可展开的按钮

显示图上的效果 使用了 三重for循环 按照 tree 数据结构 .children 取得下一级数据

<el-table-column type="expand">
          <template slot-scope="scope">
            <el-row v-for="(rights1,index) in scope.row.children" class="vertical" :key="index">
              <el-col :span="5">
                <el-tag class="tag1"
                        disable-transitions
                        closable
                        @close="remRight(scope.row,rights1.id)">
                  {{rights1.authName}}
                </el-tag>
                <i class="el-icon-caret-right"></i>
              </el-col>
              <el-col :span="19">
                <el-row v-for="(rights2,index2) in rights1.children" class="vertical" :key="index2">
                  <el-col :span="6">
                    <el-tag class="tag2"
                            type="success"
                            disable-transitions
                            closable
                            @close="remRight(scope.row,rights2.id)">
                      {{rights2.authName}}
                    </el-tag>
                    <i class="el-icon-caret-right"></i>
                  </el-col>
                  <el-col :span="18">
                    <el-tag class="tag3"
                            type="warning"
                            v-for="(rights3,index3) in rights2.children"
                            disable-transitions
                            :key="index3"
                            closable
                            @close="remRight(scope.row,rights3.id)">
                      {{rights3.authName}}
                    </el-tag>
                  </el-col>
                </el-row>
              </el-col>
            </el-row>
pre 标签 整齐的排列 文本 代码
<!--            <pre>-->
<!--              {{scope.row.children}}-->
<!--            </pre>-->
          </template>
        </el-table-column>
     // 关闭下拉的权限标签 事件
      async remRight(role,rightId){
        //弹窗询问用户是否删除数据
        const confirmResult = await  this.$queding(
          '确定要为该角色删除此权限吗?',
          '提示',
          {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }
        ).catch(err => err)
        // 如果用户确认删除,则返回值为字符串 confirm
        // 如果用户取消删除,则返回值为字符串 cancel
        // console.log(confirmResult)
        if (confirmResult !== 'confirm'){
          return this.$Msg.info('已取消删除')
        }
        const {data:res} = await this.$Http.delete(`roles/${role.id}/rights/${rightId}`)
        if (res.meta.status !== 200) return this.$Msg.error('删除此权限失败!')
        this.$Msg.success('删除用户成功!')
        // 参数不直接引用role.id 为了给 role.children 重新赋值 动态更新 不用刷新页面 再展开查看
        // 返回的data, 是当前角色下最新的权限数据
        role.children = res.data
      },

对话框内树形组件编辑权限

显示树形组件的对话框:

    <!--    编辑角色权限的对话框-->
    <el-dialog
      title="修改角色权限"
      :visible.sync="editNPCRightBox"
      @close="ERNPCClose"
      width="45%">
<!--      树形控件组件-->
      <el-tree
        展示数据源
        :data="RightList"
        适用于需要选择层级时使用
        show-checkbox
        每个树节点用来作为唯一标识的属性,整棵树应该是唯一的
        node-key="id"
        ref="PushRoleRef"
        默认全部展开
        default-expand-all
        默认勾选的节点的 key 的数组
        :default-checked-keys="defKeys"
        配置选项
        :props="treeProps">
      </el-tree>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="ToEditRightNPC">确 定</el-button>
        <el-button @click="editNPCRightBox = false">取 消</el-button>
      </span>
    </el-dialog>
<script>
        editNPCRightBox:false,
        RightList:null,
        // 树形配置 根据哪一个来渲染 名字和children属性
        treeProps:{
          label:'authName',// 看到的是哪一个属性
          children:'children'// 父子嵌套的关系
        },
        defKeys:[],
        // 点击编辑权限按钮时 记录当前ID 供应其他方法使用
        PushRolesId:null
</script>

点击编辑权限按钮 先把要展示的数据源 RightList 再使用递归把拥有权限的id push到 defKeys里 之后显示对话框

// 点击表单内的编辑按钮
      async editNPCRightBoxShow(role){
        this.PushRolesId = role.id
        const {data:res} = await this.$http.get('rights/tree')
        if (res.meta.status !==200) return this.$Msg.error('获取权限列表失败')
        this.RightList = res.data
        //console.log(role)
        await this.getThreeKeys(role,this.defKeys)
        this.editNPCRightBox = true
      },
      // 通过递归的方式 获取角色下所有的三级权限的id 并保存到defKeys 数组中
      getThreeKeys(node,arr){
        // 如果当前节点不包含 children 那么他就是三级节点
        if(!node.children){
          return arr.push(node.id)
        }
        node.children.forEach(item =>{
          this.getThreeKeys(item,arr)
        })
      },

点击体检按钮时 通过ref调用

getCheckedKeys(返回目前被选中的节点所组成的数组)

getHalfCheckedKeys (返回目前半选中的节点的 key 所组成的数组)

把他俩合并 并转成字符串 按照接口约定 向服务器发送请求

      // 编辑角色权限的对话框 内的确定按钮 发送请求
      async ToEditRightNPC(){
        const prams = [
          ...this.$refs.PushRoleRef.getCheckedKeys(),
          ...this.$refs.PushRoleRef.getHalfCheckedKeys()
        ]
        const xxx = prams.join(',')
        //console.log(prams)
        const {data:res} = await this.$http.post(`roles/${this.PushRolesId}/rights`,{rids:xxx})
        if (res.meta.status !==200) return this.$Msg.error('为此角色修改权限失败')
        await this.getNPCList()
        this.editNPCRightBox = false
        this.$Msg.success('修改角色权限成功')
      },
      // 编辑角色权限的对话框被关闭时 清空默认选中的值 防止打开时id 重复
      ERNPCClose(){
        this.defKeys = []
      }

展示所有权限

很简单 就是请求数据 表格渲染

<template>
  <div>
    <!--    面包屑导航-->
    <el-breadcrumb separator-class="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/home' }" >首页</el-breadcrumb-item>
      <el-breadcrumb-item>权限管理</el-breadcrumb-item>
      <el-breadcrumb-item>权限列表</el-breadcrumb-item>
    </el-breadcrumb>
    <!--卡片区域-->
    <el-card>
      <el-table
        :data="RightsList"
        style="width: 100%"
        stripe
        border>
        <el-table-column type="index" label="#"></el-table-column>
        <el-table-column prop="authName" label="权限名称"></el-table-column>
        <el-table-column prop="path" label="路径"></el-table-column>
        <el-table-column label="权限等级">
          <template slot-scope="scope">
            <el-tag v-if="scope.row.level == 0">一级</el-tag>
            <el-tag v-else-if="scope.row.level == 1" type="success">二级</el-tag>
            <el-tag v-else type="warning">三级</el-tag>
          </template>
        </el-table-column>
      </el-table>
    </el-card>
  </div>
</template>
<script>
  export default {
    name: 'Rights-content',
    created() {
      this.getRightsList()
    },
    data(){
      return{
        RightsList:null
      }
    },
    methods:{
       async getRightsList(){
        const {data:res} = await this.$http.get('rights/list')
         if (res.meta.status !==200) return this.$Msg.error('获取权限列表失败')
         this.RightsList = res.data
      }
    }
  }
</script>

到此这篇关于Vue element实现权限管理业务流程详解的文章就介绍到这了,更多相关Vue element权限管理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue element实现权限管理业务流程详解

本文链接: https://www.lsjlt.com/news/166371.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue element实现权限管理业务流程详解
    目录展开渲染标签编辑权限对话框内树形组件编辑权限展示所有权限 添加 编辑 删除 角色 都与上一篇 用户类似 只是接口不同 我们只关注其他不一样的: 展开渲染标签编辑权限 el-tab...
    99+
    2024-04-02
  • vue-element-admin按钮级权限管控的实现
    目录思路表结构与数据实现按钮调用随着软件的发展,网站从最初的满足用户业务需求到提升用户。就比如一个按钮只要求权限方面的管控我们可以通过 shiro,注解等方式来实现,但是页面上用户点...
    99+
    2024-04-02
  • 详解springboot shiro jwt实现权限管理
    springboot + shiro + jwt (详情解析+代码实现)加密接口 设置权限 首先需要把shiro的几个配置类给下载好(我已经把需要的配置类给放到了github和网盘之...
    99+
    2024-04-02
  • Java实战权限管理系统的实现流程
    springboot+mybatis使用面向切面编程(AOP)实现的权限管理系统。 共五个模块,角色管理,菜单管理,实验室管理,学生管理,管理员管理。 角色管理分一个超级管理员,编辑...
    99+
    2024-04-02
  • 详解vue各种权限控制与管理的实现思路
    本篇文章给大家带来了关于vue的相关知识,其中主要详细介绍了vue各种权限控制与管理的实现思路,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。一、 菜单权限菜单权限:控制用户在系统中能够看到哪些菜单项菜单权限指的就是后台系统中的左侧的菜...
    99+
    2023-05-14
    前端 Vue.js Vuex
  • vue实现前端按钮组件权限管理
    目录方案1:数组+自定义指令关于路由权限方案2: 二进制表达权限:权限判断判断和使用小结方案1:数组+自定义指令 把权限放到数组中,通过vue的自定义指令来判断是否拥有该权限,有则显...
    99+
    2024-04-02
  • SpringBoot使用Shiro实现动态加载权限详解流程
    目录一、序章二、SpringBoot集成Shiro1、引入相关maven依赖2、自定义Realm3、Shiro配置类三、shiro动态加载权限处理方法四、shiro中自定义角色与权限...
    99+
    2024-04-02
  • Gogin权限验证实现过程详解
    目录权限管理1. 特征2. 怎么运行的3. 安装4. 示例代码权限管理 Casbin是用于Golang项目的功能强大且高效的开源访问控制库。 1. 特征 Casbin的作用: 以经...
    99+
    2023-01-08
    Go gin权限验证 Go gin
  • Java实现学生管理系统详解流程
    目录学生管理系统项目介绍JavaSwing功能展示使用说明遇到的问题JavaWeb功能展示使用说明遇到的问题最后学生管理系统 前言:这个是大二做的课设(还是学生管理系统&hellip...
    99+
    2024-04-02
  • Java 实现限流器处理Rest接口请求详解流程
    Maven依赖 <dependency> <groupId>com.google.guava</groupI...
    99+
    2024-04-02
  • vue权限控制与管理的实现方法是什么
    本篇内容介绍了“vue权限控制与管理的实现方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、 菜单权限菜单权限:控制用户在系统中能...
    99+
    2023-07-05
  • Spring基于Aop实现事务管理流程详细讲解
    目录aop在spring事务中的运用基于纯注解实现spring事务管理基于xml文件实现Spring事务管理aop在spring事务中的运用 在Spring中,AOP和事务管理是两个...
    99+
    2023-05-20
    Spring Aop事务管理 Spring实现事务管理
  • Vue+ElementUI实现权限管理系统之菜单功能实现代码
    目录菜单功能实现菜单接口封装菜单管理界面测试效果源码下载菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作。 提供一个菜单查询接口,查询整颗菜单树形结构。 http...
    99+
    2024-04-02
  • 阿里云服务器权限管理详解与应用
    在云计算时代,企业对于服务器的需求日益增强。作为云计算的领导者,阿里云提供了各种服务器产品,满足了企业对于安全、稳定、高效的需求。本文将重点介绍阿里云服务器的权限管理,帮助企业更有效地管理和保护服务器资源。 一、阿里云服务器权限管理概述阿里...
    99+
    2023-12-18
    阿里 详解 权限
  • JavaScript封装Vue-Router实现流程详解
    目录摘要1.hash和history2.push go replace方法(1) push(2) go(3) replace3.监听方法4.beforeEach钩子函数5....
    99+
    2024-04-02
  • Vue编译优化实现流程详解
    目录动态节点收集与补丁标志1.传统diff算法的问题2.Block和PatchFlags3.收集动态节点4.渲染器运行时支持5.Block树静态提升预字符化缓存内联事件处理函数v-o...
    99+
    2023-01-28
    Vue编译优化 Vue代码优化
  • Springboot详解实现食品仓库管理系统流程
    目录一,项目简介二,环境介绍三,系统展示3.1 系统功能模块设计3.1.1 登录模块3.1.2 客户管理模块3.1.3 供应商管理功能3.1.4 商品管理模块3.1.5 商品进货管理...
    99+
    2024-04-02
  • Springboot实例讲解实现专业材料认证管理系统流程
    目录一,项目简介二,环境介绍三,系统展示四,核心代码展示五,项目总结一,项目简介 这是一个基于java的毕业设计项目,毕设课题为springboot框架的知识产权服务平台系统, 是一...
    99+
    2024-04-02
  • Vue3纯前端实现Vue路由权限的方法详解
    目录前言RBAC模型代码实现登录菜单信息动态路由筛选总结前言 在开发管理后台时,都会存在多个角色登录,登录成功后,不同的角色会展示不同的菜单路由。这就是我们通常所说的动态路由权限,实...
    99+
    2024-04-02
  • 权限管理模块中动态加载Vue组件怎么实现
    本篇内容介绍了“权限管理模块中动态加载Vue组件怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!登录状态保存当用户登录成功之后,需要将...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作