宝哥软件园

利用layui ajax实现简单的菜单权限管理和排序方法

编辑:宝哥软件园 来源:互联网 时间:2021-08-20

* *简单的例子使用了layui框架,没有使用他的ztree插件,只使用ajax和sql来完成最简单的主次菜单权限控制及其排序功能。

先看看数据库设计:* *

用户表:

角色表:

菜单表:

用户_角色表:

角色菜单表:

这里,菜单的id仍然是主键,mid是菜单id,pare_menu_id是该菜单对应的父菜单的菜单ID(MID);如果不是,则为0,为一级菜单。这里一级菜单的mid必须满足整千,或者1万,其子菜单在mid 999的范围内;

Sql查询结果:

前台数据处理方法:

//菜单循环显示打印镶嵌操作$ (function () {$)。Ajax ({URL :项目名称'/sys/menu/findmanubyrole ',Type:' post ',DataType:' JSON ',Succe3360函数(数据){ varmenu=//为定义变量存储(var I=0;idata.lengthI){ menu=' Li class=' layui-nav-item ' ' if(数据[I]。pare menuid==0){//取出父元素的菜单,拼入page menu=' a href=' JavaScript 3360;''数据[i]。menuName '/a ' for(var j=0;jdata.lengthJ ){ //继续遍历这些数据if (data [j]。中田[我]。middata [j]。mid(数据[I])。mid) 1000) {//签出子元素menu=' dl class=' layui-nav-child ' ' menu=' DD ' menu=' a href=' ' data[j]。menubath'' target=' option ' ' '数据[j]。menuname'/a' menu='/。} $('#nav ')。html(菜单);var元素=layui.elementElement.init()//初始化Element事件以展开菜单} });})效果如下:

图1是默认排序

接下来,我们把用户管理放在第一位。看图片。

将顺序设置为1,结果如下:

这样,用户管理就走到了第一位;

Sql实现:

选择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 status 2 FROM sys _ menu INNER JOIN(SELECT * FROM role _ menu WHERE id IN(SELECT min(id)FROM _ menu GROUP BY role _ id,menu _ id)AND role _ menu . ` status `=1)ABC ON ABC . menu _ id=sys _ menu . id* *上图中的#{id}是用户的id,多表关联查询可以;(因为使用了sm框架,所以springMvc mybatis html很简单)

关于权限,当然不同的用户看到的东西不一样;至于菜单的权限,我在role_menu表中添加了状态,默认为0;管理员用户都是1;因为如果是菜单授权的作用就很麻烦;简单的给他权限,但是只要让她控制这里的状态就可以了,就是增加一个菜单,给这个表中除admin以外的每个角色增加一个数字,状态=0;**

以上使用layui ajax实现简单菜单权限管理和排序的方法,都是边肖分享的内容。希望能给大家一个参考,支持我们。

更多资讯
游戏推荐
更多+