常见前端三级菜单授权逻辑讲解(element-ui)
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
- 点赞
- 收藏
- 关注作者
评论(0)