用jquery,ztree根据角色分配权限

<span style="font-size: medium;">权限jsp</span>


<link rel="stylesheet" href="<%=path%>/ztree/css/demo.css"
type="text/css">
<link rel="stylesheet"
href="<%=path%>/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript"
src="<%=path%>/ztree/js/jquery-1.4.4.min.js">
</script>
<script type="text/javascript"
src="<%=path%>/ztree/js/jquery.ztree.core-3.2.js">
</script>
<script type="text/javascript"
src="<%=path%>/ztree/js/jquery.ztree.excheck-3.2.js">
</script>
<SCRIPT type="text/javascript">
<!--
var zNodes;
var setting = {
view: {
selectedMulti: false
},
check: {
enable: true,
chkStyle: "checkbox",
      chkboxType: { "Y": "p", "N": "s" }
},
data: {
simpleData: {
enable: true
}
},
callback: {
onCheck: onCheck
},
data : {
                keep : {
                 leaf : false,
        parent : true
         
    },
    key : {
      checked : "checked",
        children : "children",
        name : "name",
        title : ""
    },
      simpleData : {
        enable : true,
          idKey : "id",
               pIdKey : "parentid",
               rootPId : -1
              }


           }
};
var clearFlag = false;
function onCheck(e, treeId, treeNode) {
if (clearFlag) {
clearCheckedOldNodes();
}
}
function clearCheckedOldNodes() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getChangeCheckedNodes();
for (var i=0, l=nodes.length; i<l; i++) {
nodes[i].checkedOld = nodes[i].checked;
}
}
function checkAllNode(){//默认全部勾选
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var nodes =treeObj.getCheckedNodes(true);
            if(nodes!=null&&nodes!=""){
            treeObj.checkAllNodes(false);
            }else{
            treeObj.checkAllNodes(true);
            }
}
function checkAllNodef(){//默认全部不勾选
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            treeObj.checkAllNodes(false);
}
function expandAll(){//展开
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
               treeObj.expandAll(true);
}
function expandAllf(){//折叠
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
               treeObj.expandAll(false);
}
function createTree() {
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
clearFlag = $("#last").attr("checked");
}
$(document).ready(function(){
$.getJSON("<%=path%>/privilegeAction!menu1.action",function(json){
zNodes = json.menuNodes;
createTree();
},'json'
        );
$("#init").bind("change", createTree);
$("#last").bind("change", createTree);
});
function select1(){
   var zTree = $.fn.zTree.getZTreeObj("treeDemo");
   zTree.checkAllNodes(false);
                var roleid=$('#role option:selected').val();
                if(roleid==""){
alert("请选择角色");
return false;
};
                var url="<%=path%>/privilegeAction!menu2.action";
                var data={
                    "role":roleid
                      }
               $.post(url,data,
                      function (json){
                     zNodes=json.pm;
                     if( zNodes==null){
                    zNodes=0; 
                     }
                     for(var i=0;i<zNodes.length;i++){   
                            var node = zTree.getNodeByParam("id", zNodes[i]);   
                                 if(node==null){
                                node=0;
                                 }else{
                                node.checked=true; 
                                }
                                zTree.updateNode(node,true);   
                           }                        
                      },'json'
                       
                    )
               };
               function save() {
                var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
                var nodes = treeObj.getCheckedNodes(true);
   var  v = "";
               for (var i=0, l=nodes.length; i<l; i++) {
                 v += nodes[i].id + ",";//获取选中节点的id值
                 }
                 v=v.substring(0, v.length - 1);
var role=$('#role option:selected').val();
if(role==""){
alert("请选择角色");
return false;
};
var data={
                    "role":role,
                    "privilege":v
                      }
var url="<%=path%>/privilegeAction!savePrivilege.action";
$.post(url,data,
    function(json){
var result=json.result;
if(result==0){
      alert("操作成功");
    }
            if(result==1){
       alert("操作失败");
    }
         },'json'
);
    }
//-->
</SCRIPT>
<style>
a {
TEXT-DECORATION: none
}
</style>
</head>


<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0"
align="center" class="add">
<tr>
<td style="padding-left: 20px;" class="addlistbg">
角色列表:
<select name="role" id="role" class="select">
<option value="">
--请选择角色--
</option>
<s:iterator value="rolelist" id="role" status="st">
<option value="<s:property value="#role.id"/>">
<s:property value="#role.rolename" />
</option>
</s:iterator>
</select>
&nbsp;&nbsp;
<input type="hidden" name="privilege" value="" id="privilege" />
<input type="button" value="显示权限" class="inp_L1"
onMouseOver="this.className='inp_L2'"
onMouseOut="this.className='inp_L1'" οnclick="select1()" />
&nbsp;&nbsp;
<input type="button" value="保 存" class="inp_L1"
onMouseOver="this.className='inp_L2'"
onMouseOut="this.className='inp_L1'" οnclick="save()" />
&nbsp;&nbsp;


</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0"
align="center">
<tr>
<td>
<div style="height: 35px; padding-top: 5px;">
<img src="<%=path%>/tree/open.gif">
<a style="cursor: hand" οnclick='javascript:expandAll()'>全部展开</a>
<img src="<%=path%>/tree/close.gif">
<a style="cursor: hand" οnclick='javascript:expandAllf()'>全部折叠</a>
<img src="<%=path%>/tree/open.gif">
<a style="cursor: hand" οnclick='javascript:checkAllNode()'>选中/取消</a>


</div>
<div id="treeboxbox_tree2"
style="width: 100%; height: 540px; border: 1px solid Silver; overflow: auto;">
<ul id="treeDemo" class="ztree" style="margin-left: 20px;"></ul>
</div>
</td>
</tr>
</table>
</body>
</html>
      <span style="font-size: medium;">角色权限 action </span>


    
public String menu1() {//加载权限树
       menuNodes= new ArrayList<Map<String,Object>>();
    list=coreMenuManager.getAllMenu();//获取所有菜单
    if(list.size()>0) {
    Iterator<Object> it = list.iterator();
    while(it.hasNext()){
    CoreMenu m= (CoreMenu)it.next();
    Map<String,Object> item = new HashMap<String,Object>();
    item.put("id", m.getId());
    if(m.getRealname()!=null){
    item.put("name", m.getRealname().toString().replaceAll(" ",""));
    }else{
    item.put("name", m.getName().toString().replaceAll(" ",""));
    }
   
    item.put("parentid", m.getParentid());  
    item.put("open", true);
    menuNodes.add(item);
    }
    }
   
return "menu";
}
public String menu2() {//自动生成菜单
     listMenu=coreMenuManager.getAllMenu();//查询所有菜单
         menuNodes= new ArrayList<Map<String,Object>>();
              list=corePrivilegeManager.getPrivilegeByRole(Integer.parseInt(role));//根据角色找到对应的操作权限id
         if ((list != null) && (list.size() > 0)) {
CorePrivilege privilege = (CorePrivilege) list.get(0);
String roleprivilege = privilege.getPrivilege();//查询根据角色找到对应的privilege,1,2,3
String[] p = null;
if ((roleprivilege != null) && (!roleprivilege.equals(""))) {
p = privilege.getPrivilege().split(",");
}
pm=p;
         }
         
return "menu";
}
public String savePrivilege() {
if ((role != null) && (!role.equals(""))) {
List l = corePrivilegeManager.getPrivilegeByRole(Integer
.parseInt(role));
if ((l != null) && (l.size() > 0)) {
CorePrivilege p = (CorePrivilege) l.get(0);
p.setPrivilege(privilege);
corePrivilegeManager.update(p);
} else {
CorePrivilege p = new CorePrivilege();
p.setPrivilege(privilege);
p.setRole(Integer.parseInt(role));
corePrivilegeManager.save(p);
}
result="0";
} else {
result="1";
}
return "success";
}&nbsp;     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值