由于工作需要想要做成如下图效果的界面,如下图,左边的是树结构,右边的是树二级结构下面对应的关联的数据。
关于树的二级数据,如下:
<div id="orgTree" class="easyui-tree" style="margin: 20px 0 0 0"
data-options="url:CTX_PATH+'hr/labor/basicdispatch/basicDispatchOrgForTree', //根目录的数据来源
onBeforeExpand:function(node,param){
$(this).tree('options').url = CTX_PATH+'hr/labor/basicdispatch/basicDispatchForTree?primary='+node.attributes.primary; //二级目录的数据来源
},onClick:function(node){clickTree(node)},method:'get'"></div>
</div>
这里把获取数据的方法改成get,为了之后的缓存,post获取数据方法,无法缓存。
而这样的数据结构的话,其实就是把查询的数据按照树的方式展现出来,后台代码如下:
// @RequestMapping("/basicDispatchOrgForTree") // @ResponseBody // public ResponseEntity<List<EasyUITreeNode>> basicDispatchOrgForTree(BasicDispatchOrg basicDispatchOrg,WebRequest webRequest) { // String etag=basicDispatchOrg.getOrg_id() + basicDispatchOrg.getProvince_no(); // if (webRequest.checkNotModified(etag)) { // // return null; // } //缓存 // ArrayList<EasyUITreeNode> body = basicDispatchOrgService.treeBasicDispatchOrg(basicDispatchOrg, this.getHrUserInfo()); // // // ResponseEntity<List<EasyUITreeNode>> rs = ResponseEntity // .ok() // .cacheControl(CacheControl.maxAge(0, TimeUnit.DAYS)) // .eTag(etag) // lastModified is also available // .body(body);
// @RequestMapping("/basicDispatchForTree") // @ResponseBody // public ResponseEntity<List<EasyUITreeNode>> basicDispatchForTree(String primary,WebRequest webRequest) { // String etag = primary; // if (webRequest.checkNotModified(etag)) { // // return null; // } // ArrayList<EasyUITreeNode> body = basicDispatchOrgService.treeBasicDispatch(primary); // // // ResponseEntity<List<EasyUITreeNode>> rs = ResponseEntity // .ok() // .cacheControl(CacheControl.maxAge(0, TimeUnit.DAYS)) // .eTag(etag) // lastModified is also available // .body(body); // return rs; // // }
// return rs; } 其中WebRequest是spring的类,这里要树节点缓存,所以用到,具体知识,博主还在学习中。
获取右边的数据的clickTree的具体方法如下function clickTree(node){ $('#layout1').layout('panel','center').panel("setTitle","["+node.text+"]劳务用工合同"); var queryurl=CTX_PATH+"hr/labor/agreement/employcontract/queryEmployContractByPrimary.do"; $("#data1").datagrid("options").url=queryurl; $("#data1").datagrid("load",{dispatch_primary:node.attributes.dispatch_primary}); // $("#queryfm").data("org_id",node.id); }