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();
});
相关文章推荐
- js:读写二进制变通方法,需要有权限控制adodb.stream,可以配合hta使用
- 一点用JS写控制权限的心得
- JS控制iframe报没有权限解决方法
- 使用ember-simple-auth实现Ember.js应用的权限控制
- RESTful APi 登陆权限、node.js、用户状态控制之JWT(Json web Token)
- 以后台权限菜单控制为例,获取js路径后面参数值
- 权限控制-JS判断是否有权限进行操作跳转页面需要加target
- 权限控制--js动态生成的html
- js 小技巧之利用匿名函数控制方法访问权限
- 使用ember-simple-auth实现Ember.js应用的权限控制
- 如何实现最精细的权限控制?(暂缺)
- 如何在一个系统中设计权限控制机制(2)
- C# 实现 在 WinForm 和 WebForm 中的权限控制
- .NET平台下带权限控制的TreeView控件节点生成算法
- 我的权限控制(JBX + struts + hibernate + ORACLE)
- 如何在一个系统中设计权限控制机制(1)
- NET平台下带权限控制的TreeView控件节点生成算法
- Delphi中MIDAS如何控制前台权限(MIDAS之六)
- NHibernate 实现系统的权限控制(一)
- 如何在一个系统中设计权限控制机制(3)