您的位置:首页 > Web前端 > JavaScript

js对权限的控制

2015-01-07 18:36 267 查看

/****************************************************************刘维   2013/11/27******************************************************************/

var privilege={          //权限变量

/**************************************************************************************************/    

        //数据

        data:{            

            user:{

                username:'',

                userid:''                

            }        

        },        

/**************************************************************************************************/

        //初始化

        init:{

            //初始化数据

            initdata:function(){                

            },

            //给设置权限的标签添加点击事件    

            initevent:function(){

                $("a").each(function(){

                    if($(this).text=="设置权限"){

                        $(this).unbind("click");

                        $(this).bind("click",function(){

                            privilege.privilegeoption.divoption.showdiv();//把隐藏的div显示出来

                            privilege.privilegeoption.useroption.assignUser.apply(this);

                            privilege.privilegeoption.useroption.showuser();//把用户名动态的显示出来    

                            privilege.privilegeoption.ztreeload.loadPrivilegeTree();

                            return false;

                        });

                    }    

                });

                

                $("allchecked").unbind("change");     //为全选框  按钮   绑定  是否选中事件

                $("allchecked").bind("change",function(){

                    privilege.privilegeoption.ztreeload.allCheckFun.apply(this);

                });

                

                $("#savePrivilege").unbind("click");         //加载保存(用户和菜单之间的关系)事件

                $("#savePrivilege").bind("click",function(){

                    privilege.privilegeoption.ztreeload.saveprivilege();

                });

            }

        },

        //业务逻辑的操作

/**************************************************************************************************/        

        privilegeoption:{

            //关于div的操作

            divoption:{

                showdiv:function(){

                    $("div:hidden").show();

                }

            },

            //关于用户的操作

            useroption:{

                assignUser:function(){

                    privilege.data.user.username=$(this).parent().siblings("td:first").text();

                    privilege.data.user.uid = $(this).parent().siblings("input[type=hidden]").val();

                },

                showuser:function(){

                    $("#userImage").text("用户:" + privilege.data.user.username);

                }

            },

            ztreeload:{   //关于权限树的操作

                        zTree:'',//权限树

                        setting: {

                            isSimpleData: true,

                            treeNodeKey: "mid",

                            treeNodeParentKey: "pid",

                            showLine: true,

                            root: {

                                isRoot: true,

                                nodes: []

                            },

                            checkable:true,

                            callback:{

                                beforeChange:function(){

                                    privilege.privilegeoption.ztreeload.changeCheckType({

                                        "Y": "p", "N": "s"

                                    });

                                    

                                },change:function(){

                                    privilege.privilegeoption.ztreeload.initCheckFun();

                                }

                            }

                           },

                        loadPrivilegeTree:function(){   //加载权限树

                               $.post("privilegeAction_showAllPrivileges.action",{uid:privilege.data.user.uid},function(data){    

                                   privilege.privilegeoption.ztreeload.zTree= $("#privilegeTree")

                                                       .zTree(privilege.privilegeOption.privilegeTree.setting,data.privilegeList);

                                });

                               // 把页面上<img id="loading" src="${pageContext.request.contextPath}/css/images/loading.gif">元素隐藏

                               privilege.privilegeoption.ztreeload.controlLoadingAndPrivilegeTree({

                                   img:false,     //让图片隐藏

                                   treeload:true    //让树显示

                                   

                               });

                               $("#allchecked").attr("disabled","");    //显示全选复选框

                               privilege.privilegeoption.ztreeload.initCheckFun();   //给全选复选框设置初始值

                               

                        },

                        saveprivilege:function(){

                            var checkedNodes=privilege.privilegeoption.ztreeload.zTree.getCheckedNodes(true);

                            var mids="";

                            for(var i=0;i<checkedNodes.length;i++){

                                if(i==checkedNodes.length-1){

                                    mids=mids+checkedNodes[i].mid;

                                }else{

                                    mids=mids+checkedNodes[i].mid+",";

                                }

                            };

                            var parameter = {

                                    uid:privilege.data.user.uid,

                                    mids:mids

                                };    

                            $.post("privilegeAction_savePrivilege.action",parameter,function(data){

                                alert(data.message); 

                            });

                        },

                        allCheckFun:function(){     

                            privilege.privilegeoption.ztreeload.changeCheckType({

                                 "Y": "ps", "N": "ps"

                            });

                            if(this.checked){        //判断全选复选框是否被选中   //被选中时  所有的子复选框被选中         

                                privilege.privilegeoption.ztreeload.zTree.checkAllNodes(true);    

                            }else{                     //未被选中时  所有的子复选框未被选中      

                                privilege.privilegeoption.ztreeload.zTree.checkAllNodes(false);

                            };

                        },

                        initCheckFun:function(){       // 判断全选复选框里面的子复选框是否被选中 

                                var array=privilege.privilegeoption.ztreeload.zTree.getCheckedNodes(false);

                                if(array.length==0){   //全选中

                                    $("#allchecked").attr("checked",true);

                                }else{

                                    $("#allchecked").attr("checked",false);

                                }

                                

                         },

                         changeCheckType:function(checkType){              //改变setting中checkType的规则

                             var settings=privilege.privilegeoption.ztreeload.zTree.getSetting();

                             settings.checkType=checkType;

                             privilege.privilegeoption.ztreeload.zTree.updateSetting(settings);

                         },

                        controlLoadingAndPrivilegeTree:function(json){   //等待加载权限树的图片和权限树的隐藏与显示

                                if(json.img){

                                    $("#loading").show();

                                }else{

                                    $("#loading").hide();

                                }

                                if(json.treeload){

                                    $("#privilegeTree").show();

                                }else{

                                    $("#privilegeTree").hide();

                                }

                       }

            }

            

        }

/**************************************************************************************************/        

        

        

};

$().ready(function (){

    

    privilege.init.initevent();

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: