使用Ztree實現目錄樹


目標實現。點擊按鈕,出現目錄結構樹。可以單擊選擇節點,選中之后樹隱藏,節點展示在input中。


HTML代碼如下:

 1 <div class="form-group">
 2     <label class="col-lg-2 col-md-2 col-sm-2 col-xs-2 control-label">
 3     核准目錄</label>
 4     <div class="col-lg-9 col-md-9 col-sm-9 col-xs-9">
 5          <input type="text" class="form-control" placeholder="" data-related='true' id='textAPPROVE_INDUSTRY' name='textAPPROVE_INDUSTRY'
 6          readonly value="${data.attrs.formInfo.textAPPROVE_INDUSTRY}" />
 7     </div>
 8     <label class="col-lg-1 col-md-1 col-sm-1 col-xs-1 text-left control-label" style="text-align: left;">
 9           <span id="menuAPPROVE_INDUSTRYBtn" class="tableBtn" data-show="false">選擇</span>
10     </label>
11     <input type="hidden" id="APPROVE_INDUSTRY" data-related='true' name='APPROVE_INDUSTRY' value="${data.attrs.formInfo.APPROVE_INDUSTRY}" />
12 </div>

 

JS代碼:

第一步、引入ztree.js

1     /**
2      * 綁定樹
3      */
4     $.fn.zTree.init($("#treeAPPROVE_INDUSTRY"), settingHzml);

 

實現setting

 1 /**
 2  * setting設置
 3  */
 4 var settingHzml = {
 5     view: {
 6         selectedMulti: false
 7     },
 8     async: {
 9         enable: true, // 啟用異步加載
10         url:"" 后台請求數據地址, // 調用的后台的方法
11         autoParam: ["id"], // 向后台傳遞的參數
12         dataFilter: filterHzml
13     },
14     callback: {
15         beforeClick: beforeClickHzml
16     }
17 };

 

實現filter

 1 function filterHzml(treeId, parentNode, childNodes) {
 2     var array = [];
 3     childNodes = childNodes.invDictHzmls;//獲取后台傳遞的數據
 4     if (!childNodes) return null;
 5     for (var i = 0, l = childNodes.length; i < l; i++) {
 6         repname = childNodes[i].NAME.replace(/\.n/g, '.');
 7 
 8         //將后台傳過來的參數拼接成json格式,並放在數組中,如果有必要需要對其是否為父節點做處理
 9         if (childNodes[i].isParent) {
10             array[i] = { id: childNodes[i].ID, name: repname, code2: childNodes[i].CODE2, code: childNodes[i].CODE, isParent: true };
11         } else {
12             array[i] = { id: childNodes[i].ID, name: repname, code2: childNodes[i].CODE2, code: childNodes[i].CODE, isParent: false };
13         }
14     }
15     return array;
16 }

 

實現callback

 1 function beforeClickHzml(treeId, treeNode) {
 2     if (!treeNode.isParent) {
 3         $("#textAPPROVE_INDUSTRY").val(treeNode.name);
 4         $("#APPROVE_INDUSTRY").val(treeNode.code);
 5         $("#label_textAPPROVE_INDUSTRY5").text(treeNode.name);
 6         hideMenuHzml();
 7         return false;
 8     } else {
 9         return true;
10     }
11 }

 

 

效果展示:

 

 

點擊后

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM