easyui递归添加完所有的菜单及菜单所拥有的按钮,并根据数据库的值判断是否勾上

来源:互联网 发布:java毫秒转换成date 编辑:程序博客网 时间:2024/05/17 09:00
@RequestMapping("/access.do")
public @ResponseBody List<Menu> getAccess(HttpServletRequest request) {
List<Menu> lsM = buildRoleNavNodes(Integer.parseInt(request.getParameter("role_id")),Integer.parseInt(request.getParameter("pid")));
return lsM;
}


public List<Menu> buildRoleNavNodes(int roleId, int parentId) {
List<Menu> LsMenuTop = menuService.getListWithMenubutton(parentId);
List<Menu> lsMenu = new ArrayList<Menu>();
for (Menu me : LsMenuTop) {
List<Menu> lsChildren = buildRoleNavNodes(roleId,me.getId());     //递归添加完所有的菜单及菜单所拥有的按钮,并根据数据库的值判断是否勾上
RoleMenu rm = roleMenuService.getByMenuRoleId(roleId, me.getId());
if (rm != null && me.getState().equals("open"))
me.setChecked(true);
else
me.setChecked(false);

if (me.getMenuButtons().size() > 0) {
for (Menubutton mb : me.getMenuButtons()) {
Menu m = new Menu();
RoleMenubutton rmb = roleMenubuttonService
.getByMenubuttonRoleId(roleId, mb.getId());
if (rmb != null)
m.setChecked(true);
else
m.setChecked(false);
m.setId(mb.getId());
m.setIconcls(mb.getIconcls());
m.setText(mb.getText());
lsChildren.add(m);
}
}

lsMenu.add(new Menu(me.getId(), me.getPid(), me.getType(), me
.getText(), me.getUrl(), me.getState(),me.getIconcls(), me
.getCreatetime(), me.getUpdatetime(), me.getChecked(),
lsChildren));
}
return lsMenu;

}




<script type="text/javascript">
$(function(){
$('#HyqRoleMenuTree').tree({
cascadeCheck:true,
animate:true,
checkbox:true
});
/* 
HYQMS.HyqRole.getMenuTree = function getMenuTree(role_id){
$.ajax({
url:'menu/access.do',
type:'post',
dataType:'JSON',
data:{
role_id:role_id,
},
success:function(data){
if (data.status) {
$('#HyqRoleMenuTree').tree('loadData',data.info);
}else{
$.messager.alert('Info', data.info);
}
}
});
}; */

/*重新载入菜单项选项树*/
HYQMS.HyqRole.getMenuTree = function getMenuTree(role_id){
$('#HyqRoleMenuTree').tree({   
                 url: "menu/access.do?role_id="+role_id+"&pid=0",   
                 onBeforeExpand:function(node,param){  
                     $('#HyqRoleMenuTree').tree('options').url = "menu/access.do?role_id="+role_id+"&pid=" + node.id;
                 },               
            });
};
/*发送选中菜单项到服务器*/
HYQMS.HyqRole.postMenu = function postMenu(role_id){
var menus = new Array();
menus.push(-1);
/*获取选中、半选中的节点id*/
var data = $('#HyqRoleMenuTree').tree('getChecked',['checked','indeterminate']);
console.log(data);
for (var i = 0; i < data.length; i++) {
menus.push(data[i].type+data[i].id);
};
$.ajax({
url:'role/rolemenusave.do',
type:'post',
dataType:'JSON',
data:{
role_id:role_id,
menus:menus
},
success:function(data){
if (data.status) {
$('#${domid}').window('destroy');
$('#HyqRoletreegrid').datagrid('reload');
HYQMS.MSG.show('配置成功!');
}else{
HYQMS.MSG.alert(data.info);
};
}
});
};
HYQMS.HyqRole.getMenuTree('${role_id}');
});
</script>

0 0