常见前端三级菜单授权逻辑讲解(element-ui)

举报
辰兮 发表于 2022/03/23 00:18:46 2022/03/23
【摘要】 hello你好我是辰兮很高兴你来阅读,最近遇到太多关于三级菜单的逻辑以及做判断时候遇到的问题,刚好抽点时间整理一下相关的知识点!分享获取新知,大家一起进步! 文章目录 一、应用场景二、...

hello你好我是辰兮很高兴你来阅读,最近遇到太多关于三级菜单的逻辑以及做判断时候遇到的问题,刚好抽点时间整理一下相关的知识点!分享获取新知,大家一起进步!


一、应用场景

关于本篇多少三级菜单业务的讲解

关于多级菜单更多是在管理员的页面进行的相关操作,常见的包括授权等!比如一级权限,二级权限,三级权限!

其他的应用场景 比如省/市/区 等等 组织/区域/特定位置 等等

在这里插入图片描述

关于菜单的相关组件 参考bootstrap /element-ui 等前端参考案例

这部分后台的逻辑复杂一点,前端大家直接调用看懂函数即可,下面来简单的和大家分享一下多级菜单的相关逻辑实现!


二、逻辑分析

关于授权的逻辑建议大家从下往上分析!

首先点击三级菜单的时候

逻辑1:如果二级菜单未勾选,我们要实现勾选

逻辑2:此时要判断,如果一级菜单未勾选,我们要实现勾选

在这里插入图片描述

当我们点击二级菜单的时候

逻辑1:我们要实现三级菜单的全部勾选

逻辑2:此时要判断,如果一级菜单未勾选,我们要实现勾选

在这里插入图片描述
当我们点击一级菜单的时候

逻辑1:我们要实现二级菜单的全部勾选

逻辑2:同时实现二级菜单的子菜单的全部勾选

在这里插入图片描述


取消勾选

当我们点击三级菜单全部取消的时候,

逻辑1:我们此时要取消三级对应的二级菜单

逻辑2:同时要判断二级菜单对应的一级菜单它的子菜单是否全部取消
①如果二级菜单全部取消,则一级菜单取消 ②如果二级菜单未全部取消 此时一级菜单保留

在这里插入图片描述
转成做了一个gif的动图来更直观的感受!


当我们点击二级菜单取消勾选的时候

逻辑1:我们此时要取消二级对应的子菜单即三级菜单,所有√取消

逻辑2:同时要判断二级菜单对应的一级菜单它的子菜单(二级菜单本身)是否全部取消
①如果二级菜单全部取消,则一级菜单取消 ②如果二级菜单未全部取消 此时一级菜单保留


当我们点击三级菜单取消勾选的时候

逻辑1:我们此时要取消二级对应的子菜单即三级菜单,所有√取消

逻辑2:同时要判断二级菜单对应的一级菜单它的子菜单(二级菜单本身)是否全部取消
①如果二级菜单全部取消,则一级菜单取消 ②如果二级菜单未全部取消 此时一级菜单保留

在这里插入图片描述


代码只是一种逻辑思维的展示,整体的三级菜单逻辑就是这样,希望我的分享对你有帮助!

copy了element上的一份关于前端三级授权的树形图,想顺路看看结构就看看吧,也可以去官网看!

<el-tree
  :data="data"
  show-checkbox
  node-key="id"
  :default-expanded-keys="[2, 3]"
  :default-checked-keys="[5]"
  :props="defaultProps">
</el-tree>

<script>
  export default {
    data() {
      return {
        data: [{
          id: 1,
          label: '一级 1',
          children: [{
            id: 4,
            label: '二级 1-1',
            children: [{
              id: 9,
              label: '三级 1-1-1'
            }, {
              id: 10,
              label: '三级 1-1-2'
            }]
          }]
        }, {
          id: 2,
          label: '一级 2',
          children: [{
            id: 5,
            label: '二级 2-1'
          }, {
            id: 6,
            label: '二级 2-2'
          }]
        }, {
          id: 3,
          label: '一级 3',
          children: [{
            id: 7,
            label: '二级 3-1'
          }, {
            id: 8,
            label: '二级 3-2'
          }]
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
      };
    }
  };
</script>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

The best investment is to invest in yourself.

在这里插入图片描述

2020.10.29 晚22:15 愿你们奔赴在自己的热爱里!

文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。

原文链接:blessing.blog.csdn.net/article/details/109370810

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。