layui樹形結構更改


 1 /* 
 2 * 將json字符串更改為layui.tree所用的數據結構類型,輸出仍然為json字符串
 3 * tanghao 7.29
 4 */
 5 
 6 function dataToTreeData(oData_str) {
 7 
 8 //將傳遞進來的json字符串轉換成js對象
 9 var oData = JSON.parse(oData_str);
10 
11 //----------操作節點(父節點)元素獲取----------
12 
13 //獲取原始數據中操作要求的名稱,去除重復,將其保存至目標數組
14 var operationIdArr = new Array();
15 
16 for(i in oData) {
17 //使用e來記錄比較的情況
18 var e = 0;
19 //將本次原始數據中的元素與目標數組中的所有元素比較,只要出現相等的情況就改變e的值
20 for ( j in operationIdArr) {
21 if (oData[i].operationId == operationIdArr[j]) {
22 e++;
23 }
24 }
25 //如果e的值沒有發生改變就說明沒有相同的元素,那么執行插入操作
26 if( e == 0) {
27 operationIdArr.push(oData[i].operationId);
28 }
29 }
30 
31 //遍歷操作節點數組
32 /* for(i in operationIdArr) {
33 console.log("父節點數組中的元素為" + operationIdArr[i]);
34 }*/
35 
36 //----------操作節點元素獲取結束----------
37 
38 //兩個節點的數據形式
39 var operationNodeArr = [];
40 
41 function operationNode(id, name, children) {
42 this.id = id;
43 this.name = name;
44 this.children = children;
45 }
46 
47 function fileNode(id, name, path, operationId) {
48 this.id = id;
49 this.name = name;
50 this.path = path;
51 this.operationId = operationId;
52 }
53 
54 //創建節點
55 for(i in operationIdArr) { 
56 var operationId = operationIdArr[i];
57 var operationName;
58 var fileNodeArr = [];
59 for(j in oData) {
60 if ( operationId == oData[j].operationId) {
61 //如果操作節點id相同,添加數據到文件節點
62 fileNodeArr.push(new fileNode(oData[j].id, oData[j].name, oData[j].path, oData[j].operationId)); 
63 operationName = oData[j].operationName;
64 }
65 }
66 //添加數據到操作節點
67 operationNodeArr.push(new operationNode(operationId, operationName, fileNodeArr));
68 }
69 
70 //返回json字符串
71 return JSON.stringify(operationNodeArr);
72 }

 


免責聲明!

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



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