easyUI 实现异步tree

html:

  <ul id="relInfoTree" class="easyui-tree"></ul>

js:

$(document).ready(function() {
  loadRelTree();
});

function loadRelTree(){
  $('#relInfoTree').tree({
    // checkbox: true,
    animate:true,
    lines:true,
    url: '/CrocodileSecret/system/cisweb/loadRelTree?id=0',//这是第一次加载树的url 加载根节点
    loadFilter:function(data){
      return data.treeJson;
    },
    onBeforeExpand:function(node){
      $("#relInfoTree").tree('options').url='/CrocodileSecret/system/cisweb/loadRelTree?id='+node.id;//这是点击父节点的时候发送请求去加载子节点
    }
  });
}

java:

-EasyuiTreeNode.java

private Integer id;//: 唯一标示;
private String text;//: 显示的文本;
private List<EasyuiTreeNode> children;//:子节点;
private String state;//:closed或open,表示节点是展开还是折叠;
private String iconCls="icon-blank";//空白图标,可选

getter...setter...

-Controller

@RequestMapping(value = "/loadRelTree", method = RequestMethod.POST)
@ResponseBody
public JSONObject loadRelTree(Integer id,@RequestParam(value = "orgid", required = false) Integer orgid,HttpServletRequest request, HttpServletResponse response) {
JSONObject json = new JSONObject();
  json = cisWebApp.loadRelTree(id);
return json;
}

-service

public JSONObject loadRelTree(Integer id, Integer orgId) {
  JSONObject object = new JSONObject();
  List<EasyuiTreeNode> list=new ArrayList<EasyuiTreeNode>();
  if(id==null || id==0) {
    EasyuiTreeNode node=new EasyuiTreeNode();
    CisOrg cisOrg=cisComp.getOrgById(orgId);
    node.setId(cisOrg.getOwnerUserId());
    node.setText(cisOrg.getOrgName());
    node.setState("open");
    node.setChildren(cisComp.getSublist(cisOrg.getOwnerUserId()));//start 初始显示一级
    if(node.getChildren().size()>0) {
    node.getChildren().stream().forEach(subNode->{
      subNode.setState(crmComponent.selIsClose(subNode.getId())>0 ? "closed":"open");
    });//end 如果只显示根节点,不用这段
    }
  list.add(node);
  }else {//异步加载
    list=cisComp.getSublist(id);
    if(list.size()>0) {
    list.stream().forEach(node->{
      node.setState(crmComponent.selIsClose(node.getId())>0 ? "closed":"open");
    });
  }
}
object.put("treeJson", list);
object.put("status", "succeed");

return object;
}

猜你喜欢

转载自www.cnblogs.com/zou-rong/p/10151799.html