菜单-角色权限的操作

在上一篇文章中讲解了菜单,角色,用户等管理信息的展示以及基本的查询等功能,
此片文章主要讲解菜单-角色权限管理的实现
首先在讲解菜单-角色权限之前,我们的创建一张表记录菜单和角色之间管理关系的表
menu_role,该表记录了角色id和菜单id外加操作时间和操作人信息等,
先看看界面原型:
菜单-角色原型界面

在主界面上可以增加一列用来直观的展示角色-菜单的对应关系,该关系时通过他们的menu_role表在后台代码组装成的,没存储到对应表中

在原型界面上最后一列的操作栏,可以对选中的一行的角色赋/撤销菜单权限。
这里写图片描述

这个弹框是创建一个Ext.window.Window

var win = Ext.create('Ext.window.Window',{
        id:"deptAndGroups",
        title:'<span style="color:black">部门与菜单关系</span>'+'&nbsp;&nbsp;(<font color="red">'+deptName+"</font>)",       //弹出窗口内布局会充满整个窗口;
        layout: "border", 
        modal: true, //是否模态窗口,默认为false
        width:680,          //设置窗口大小;
        height:iHBody-100,
        closable:true,     //隐藏关闭按钮;
        draggable:true,     //窗口可拖动;
        items: [deptLeftColumn,deptRightColumn]
      });
      win.show();
//deptLeftColumn:左边的panel
//deptRightColumn:右边的panel

数据的展示主要是创建了两个panel,和正常的panel没区别,唯一的注意点时:由于两个panel在同一个js中,只要你写id的地方,id名一定不能重复,
当双击左/右边选中的列是。将菜单对应的id和角色的id一起传到后台,后台做想要的添加/移除操作,当后台处理完之后,调用store.load()方法,刷新两个panel界面,实现数据的展示,
示例代码:

    listeners: {
            itemdblclick: function(view, record, item, index, e) {
                menuId = record.data.mid;
                Ext.Ajax.request({
                    url:projectName+"/deptAction/removeMenuAndDeptByID.do",
                    mehtod:'get',
                    params:{
                        "dgid":dgId,
                        "menuid":menuId
                    },
                    success : function(response, options) {
                        Ext.Msg.alert('提示', '操作成功');
                        showLeftStore.reload();//刷新当前页面 
                        showRightStore.reload();

                    },
                    failure : function() {
                        Ext.Msg.alert('提示', '操作失败');
                    }

                });
                }

该listeners是用来监听panel中column的列的itemdblclick(双击事件)的,
到此主要的赋权功能都已经实现了
同样的原理:角色-用户的权限关系也是这样,在这里也就不详细写了,

猜你喜欢

转载自blog.csdn.net/gbp_Anl/article/details/80949406
今日推荐