DWZ框架實現簡單的樹,並獲取選中節點的返回值
阿新 • • 發佈:2021-02-01
需求:
許可權管理,一個使用者可以選擇一個角色,並確定一個科目,根據科目選擇科目擁有的組。
分析:
構造一個三層樹,第一層為角色,第二層為科目,第三層為分組,且第三層分組屬於第二層科目的一個屬性。
資料格式:
角色返回jsdmList:
[{“JSDM”:1,“JSMC”:“角色1”},{“JSDM”:2,“JSMC”:“角色2”},{“JSDM”:3,“JSMC”:“角色3”},{“JSDM”:4,“JSMC”:“角色4”}]
科目返回kmxxList:
[{“科目屬性1”:null,“科目屬性2”:null,“KMDM”:“001”,“KMMC”:“科目1”,
遍歷返回集合,畫樹
var qxTreeStr="";
for(var i=0;i<jsdmList.length;i++){
var jsdmMap = jsdmList[i];
qxTreeStr = "<li><a href='#' tname='first' tvalue='" +jsdmMap["JSDM"]+"'>"+jsdmMap["JSMC"]+"</a><ul>"
for (var j=0;j<kmdmList.length;j++){
var kmdmMap = kmdmList[j];
qxTreeStr += "<li><a href='#' tname='second' tvalue='"+kmdmMap["KMDM"]+"'>" +kmdmMap["KMMC"]+"</a><ul>";
var fzxxList = kmdmMap["fzxxList"];
for(var k=0;k<fzxxList.length;k++){
var fzxxMap = fzxxList[k];
qxTreeStr +="<li><a href='#' tname='third' tvalue='"+jsdmMap["JSDM"]+"_"+kmdmMap["KMDM"]+"_"+fzxxMap["FZID"]+"'>"+fzxxMap["FZMC"]+"</a></li>";
}
qxTreeStr +="</ul></li>";
}
qxTreeStr +="</ul></li>";
$("#treeBox").append(qxTreeStr);
}
//重新載入樹形結構
$("#treeBox").jTree();
獲取樹的選中節點資料
構建一個點選事件,呼叫方法獲取選中節點資料,因為需要三層結構的value值,所以把三層結構的value拼串給第三層,根據上面生成樹是第三層的value結構為jsdm_kmdm_fzid,只需要獲取第三層的value,之後在後臺解析json陣列就好。
獲取資料:
var thirdlist = "";
//jquery迴圈treeBox下的所有選中的複選框
$("input[name='third']:checked").each(function(){
thirdlist += $(this).val() + ",";
});
後臺解析
String qxxx = request.getParameter("qxxx");
String[] qxxxArr = qxxx.split(",");
qxxx = qxxx.contains(",")?qxxx.substring(0,qxxx.length()-1):qxxx;
String jsdm="";
String kmdm="";
String fzid="";
for(int j=0; j<qxxxArr.length;j++){
HashMap paramMap=new HashMap();
jsdm=qxxxArr[j].substring(0,qxxxArr[j].indexOf("_"));
kmdm=qxxxArr[j].substring(qxxxArr[j].indexOf("_")+1,qxxxArr[j].lastIndexOf("_"));
fzid=qxxxArr[j].substring(qxxxArr[j].lastIndexOf("_")+1,qxxxArr[j].length());
paramMap.put("jsdm", jsdm);
paramMap.put("kmdm", kmdm);
paramMap.put("fzid", fzid);
IbatisDAO.updateByIbatis("UpdateQx", paramMap);
}
如有錯誤或建議,感謝指正!