时间:2021-05-25
**简单的例子使用的layui框架,并没有使用他的ztree插件,只用ajax配合sql完成最简单的一二级菜单权限控制及其排序功能。
先看数据库设计:**
user表:
role表:
menu表:
user_role表:
role_menu表:
在这里 menu的id依然是主键,多了mid也就是菜单id,pare_menu_id也就是这个菜单对应的父级菜单的菜单id(mid);没有的话,就是0,也就是一级菜单,在这里,一级菜单的mid必须满足为整千数,或者万也行,其子菜单在mid+999范围内;
sql查询结果:
前台数据处理方法:
//菜单循环遍历打印拼接操作 $(function () { $.ajax( { url : projectName+'/sys/menu/findMenuByRole', type : 'post', dataType : 'json', success : function(data) { var menu = ""; //定义变量存储 for(var i = 0;i<data.length;i++){ menu += "<li class='layui-nav-item '>" if(data[i].pareMenuId == 0){ //取出父元素的菜单,拼进页面 menu += "<a href='javascript:;'>"+data[i].menuName+"</a>" for(var j = 0;j<data.length;j++){ //继续遍历这几条数据 if(data[j].mid > data[i].mid && data[j].mid < (data[i].mid)+1000){ //取出这个父元素所对应的子元素 menu += "<dl class='layui-nav-child'>" menu += "<dd>" menu += "<a href='"+data[j].menuPath+"' target='option'>"+' '+data[j].menuName+"</a>" menu += "</dd>" menu += "</dl>" } } } menu += "</li>"; } $("#nav").html(menu); var element = layui.element; element.init()//初始化element事件,使菜单展开 } }); })效果如下:
图1是默认排序
下面我们将用户管理放在第一位。看图
将order设置为一结果如图:
这样用户管理就去了第一位;
sql实现:
SELECT t1.* FROM ( SELECT sys_menu.id, sys_menu.mid, sys_menu.menu_name, sys_menu.menu_path, sys_menu.pare_menu_id, sys_menu.`status`, sys_menu.`order`, abc.`status` AS status2 FROM sys_menu INNER JOIN ( SELECT * FROM role_menu WHERE id IN ( SELECT min(id) FROM role_menu GROUP BY role_id, menu_id ) AND role_menu.`status` = 1 ) abc ON abc.menu_id = sys_menu.id INNER JOIN sys_role ON sys_role.id = abc.role_id INNER JOIN user_role ON user_role.role_id = sys_role.id INNER JOIN sys_user ON sys_user.id = user_role.user_id WHERE sys_user.id = #{id} AND sys_menu.`status` = 1 ORDER BY mid ) t1 ORDER BY t1.pare_menu_id, t1.`order`;**上图#{id}就是用户的id,多表关联查询就可以了;(因为用的是sm框架单纯的springMvc+mybatis+html)
关于权限,当然不同用户看到的东西不同;至于菜单的权限,我是在role_menu表中加了status,默认都是0;admin用户的都是1;因为如果是角色的菜单授权很麻烦;干脆都给他赋予权限,之不过状态这里给她控制一下就可以了,也就是添加一个菜单,就给这个表每个角色添加一条数除admin其余为status=0;**
以上这篇使用layui+ajax实现简单的菜单权限管理及排序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、layui下拉复选实现的背景:实现一个管理员拥有多个权限二、具体实现://依赖资源//页面显示角色://配置路径layui.config({base:"${
本文实例讲述了thinkPHP基于ajax实现菜单与分页的方法。分享给大家供大家参考,具体如下:一个分类菜单,使用ajax实现:functiongetid(id
开发过程中,涉及到多级菜单的应用,找了一些资料案例实现如下(使用springboot+layui+oracle):创建菜单表:--创建菜单表createtabl
问题:如何在springboot项目中使用springsecurity去实现角色权限管理呢?本文将尽可能简单的一步步实现对接口的角色权限管理。项目框架:sql:
最近搭建了公司的后台管理系统,而且系统还比较庞大,要实现以下几点:菜单权限,根据不同权限显示不同的菜单操作权限,比如有些账号没有新增权限,有些没有修改或者删除权