Easyui 异步树的实现

网上最多的onBeforeExpand 可用,因为后台代码没写对导致树形结构重复加载数据

前端代码:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<div>
<table cellpadding="5">
<tr>
<td height="300px"><ul id="diseaseNameTree" class="easyui-tree"></ul>
</td>
</tr>
</table>
</div>
<script>
$('#diseaseNameTree').tree({
url : getServer_context() + '/api/patient/getDiseaseNameTree?Id=',
onBeforeExpand : function(node, param) {
console.log('ID=' + node.id);
console.log('length=' + node.id.length);
$('#diseaseNameTree').tree('options').url = getServer_context() + '/api/patient/getDiseaseNameTree?Id=' + node.id;
}
}) function searchICD10ByPinyin() {
var pinyin = $('#ICD10Pinyin').val();
console.log(pinyin);
if (pinyin == null || pinyin == "") {
$('#diseaseNameTree').tree('reload');
} else {
console.log('000');
$('#diseaseNameTree').tree({
url: getServer_context() + '/api/patient/getDiseaseNameByPinyin?Pinyin=' + pinyin
});
} }
</script>

后台代码:

     public JSONArray getDiseaseNameTreeData(String Id) throws RecordNotFoundException {
JSONArray jsonArray = new JSONArray();
JSONArray childrenArray = new JSONArray();
JSONArray grandChildrenArray = new JSONArray();
JSONObject parentObject = new JSONObject();
JSONObject childrenObject = new JSONObject();
JSONObject grandChildrenObject = new JSONObject(); if(Id == null || "".equals(Id)) {
Iterable<SsIcd10> parentList = ssICD10Dao.getDiseaseNameParent();
for(SsIcd10 parent : parentList) {
parentObject.clear();
parentObject.put("id", parent.getFicd10());
parentObject.put("text", parent.getFdesc());
parentObject.put("state", "closed");
jsonArray.add(parentObject);
}
return jsonArray;
} else if (Id.length() == 3){
Iterable<SsIcd10> childrenList = ssICD10Dao.gettDiseaseNameChildren(Id);
for(SsIcd10 child : childrenList) {
childrenObject.clear();
childrenObject.put("id", child.getFicd10());
childrenObject.put("text", child.getFdesc());
childrenObject.put("state", ssICD10Dao.hasGrandChildren(child.getFicd10()) > 0 ? "closed" : "open");
childrenArray.add(childrenObject);
}
return childrenArray;
} else {
Iterable<SsIcd10> grandChildrenList = ssICD10Dao.gettDiseaseNameGrandChildren(Id);
for(SsIcd10 grandChild : grandChildrenList) {
grandChildrenObject.clear();
grandChildrenObject.put("id", grandChild.getFicd10());
grandChildrenObject.put("text", grandChild.getFdesc());
grandChildrenArray.add(grandChildrenObject);
}
return grandChildrenArray;
}

逻辑写的很傻,还没想出来怎么写更好的

     public JSONArray getDiseaseNameTreeByPinyin(String Pinyin) throws RecordNotFoundException {
JSONArray jsonArray = new JSONArray();
JSONArray childrenArray = new JSONArray();
JSONArray grandChildrenArray = new JSONArray();
JSONObject parentObject = new JSONObject();
JSONObject childrenObject = new JSONObject();
JSONObject grandChildrenObject = new JSONObject();
Iterable<SsIcd10> list = ssICD10Dao.getDiseaseNameDataByPinyin(Pinyin);
for(SsIcd10 ssIcd10 : list) {
if(ssIcd10.getFicd10().length() == 3) {
parentObject.clear();
parentObject.put("id", ssIcd10.getFicd10());
parentObject.put("text", ssIcd10.getFdesc());
Iterable<SsIcd10> children = ssICD10Dao.getDiseaseNameChildrenByPinyin(ssIcd10.getFicd10(), Pinyin);
if(children != null) {
childrenArray.clear();
for(SsIcd10 child : children) {
childrenObject.clear();
childrenObject.put("id", child.getFicd10());
childrenObject.put("text", child.getFdesc());
Iterable<SsIcd10> grandChildren = ssICD10Dao.getDiseaseNameGrandChildrenByPinyin(child.getFicd10(), Pinyin);
if(grandChildren != null) {
grandChildrenArray.clear();
for(SsIcd10 grandChild : grandChildren) {
grandChildrenObject.clear();
grandChildrenObject.put("id", grandChild.getFicd10());
grandChildrenObject.put("text", grandChild.getFdesc());
grandChildrenArray.add(grandChildrenObject);
}
childrenObject.put("children", grandChildrenArray);
}
childrenArray.add(childrenObject);
}
parentObject.put("children", childrenArray);
}
jsonArray.add(parentObject);
} else if (ssIcd10.getFicd10().length() > 3 && ssIcd10.getFicd10().length() <= 6) {
if(ssICD10Dao.hasParent(ssIcd10.getFicd10().substring(0, 3), Pinyin) == 0) {
parentObject.clear();
parentObject.put("id", ssIcd10.getFicd10());
parentObject.put("text", ssIcd10.getFdesc());
Iterable<SsIcd10> grandChildren = ssICD10Dao.getDiseaseNameGrandChildrenByPinyin(ssIcd10.getFicd10(), Pinyin);
if(grandChildren != null) {
grandChildrenArray.clear();
for(SsIcd10 grandChild : grandChildren) {
grandChildrenObject.clear();
grandChildrenObject.put("id", grandChild.getFicd10());
grandChildrenObject.put("text", grandChild.getFdesc());
grandChildrenArray.add(grandChildrenObject);
}
parentObject.put("children", grandChildrenArray);
}
jsonArray.add(parentObject);
}
} else {
if(ssICD10Dao.hasParent(ssIcd10.getFicd10().substring(0, 3), Pinyin) == 0
&& ssICD10Dao.hasChildren(ssIcd10.getFicd10().substring(0, 6), Pinyin) == 0) {
parentObject.clear();
parentObject.put("id", ssIcd10.getFicd10());
parentObject.put("text", ssIcd10.getFdesc());
jsonArray.add(parentObject);
}
}
}
return jsonArray; }
上一篇:hibernate内部测试题(附赠答案)


下一篇:应用OpenCV进行OCR字符识别