前端代码:
$(function(){
//表单禁用
formDisabled('#myform',true);
loadTree();
});
//加载树
function loadTree(){
$('#tree').tree({
url:zy.contextPath+"/tree/resourcesTree?id=0",
method:'GET',
lines:true,
onBeforeExpand: function (node) {
$('#tree').tree("options").url = zy.contextPath+"/tree/resourcesTree?id=" + node.id;
},
onSelect: function(node){
loadNode(node.id);
},
onLoadSuccess:function(node, data){
selectRootNode();
}
});
}
//加载节点数据
function loadNode(tid){
//清空
$('#myform').form('clear');
addNode = false;
if(tid!=null&&tid!=''&&tid!='null'&&tid != 0){
showLoading();
$.getJSON(zy.contextPath+"/resource/edit", {id:tid}, function(data) {
$('#myform').form('load',data);
//按钮控制
$(".add").show();
$(".edit").show();
$(".del").show();
$(".save").hide();
$(".cancle").hide();
$(".clear").hide();
});
}else {
if (tid == 0) {
$(".add").show();
} else {
//按钮控制
$(".add").hide();
}
$(".edit").hide();
$(".del").hide();
$(".save").hide();
$(".cancle").hide();
$(".clear").hide();
}
//禁用表单
formDisabled('#myform',true);
}
//默认选中根节点
function selectRootNode(){
var roots = $('#tree').tree('getRoots');
var root= roots[0];
$('#tree').tree('select', root.target);
}
后台Java代码:
/**
* 菜单树
* @param id
* @return
*/
@RequestMapping("tree/resourcesTree")
@ResponseBody
public List<BaseBean> resourcesTree(Long id){
return treeService.resourcesTree(id);
}
/**
* 菜单树
* @param id
* @return
*/
public List<BaseBean> resourcesTree(Long id){
List<BaseBean> tree = new ArrayList<BaseBean>();
List<SysResource> baseList = null;
BaseBean root = new BaseBean();
if(id == 0){
baseList = sysResourceMapper.selectParent();
//根节点
root.setId(0L);
root.setName("根节点");
root.setState("open");
root.setChecked(false);
root.setIconCls("ext-icon-computer");
}else{
baseList = sysResourceMapper.selectByParentId(id);
}
for(SysResource base:baseList){
BaseBean bean = new BaseBean();
bean.setId(base.getId());
bean.setName(base.getName());
bean.setChecked(false);
if(isResourcesChildrenNode(base.getId())){
bean.setState("closed");
bean.setIconCls("ext-icon-house");
}
bean.setIconCls(base.getType().equals(Constance.funTypeMenu_0) ? "ext-icon-note" : "ext-icon-mouse");
if(id == 0){
root.getChildren().add(bean);
}else {
tree.add(bean);
}
}
//根加载
if(id==0) {
tree.add(root);
}
return tree;
}