| 
					
				 | 
			
			
				@@ -1,12 +1,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Created by Tony on 2017/1/23. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const NODE_ID = "ID", P_ID = "ParentID", NEXT_ID = "NextSiblingID", ADHOC_PRE_ID="Previous_ID", CHILDREN_NODE = "items", SUB_ID = "sub_ids", EMPTY_ID_VAL = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const NODE_ID = "ID", P_ID = "ParentID", NEXT_ID = "NextSiblingID", ADHOC_PRE_ID="Previous_ID", CHILDREN_NODE = "items", SUB_ID = "sub_ids", EMPTY_ID_VAL = -1, TREE_LEVEL = 'treeLevel'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let tree_Data_Helper = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    buildTreeNodeDirectly: function(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    buildTreeNodeDirectly: function(data, addLevel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let topArr = [], rst = [], tmpNodes = {}, prefix = "id_"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let private_getTopNode = function (idArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let private_getStartNode = function (idArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let tmpNodeRst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let i = 0; i < idArr.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (parseInt(tmpNodes[prefix + idArr[i]][ADHOC_PRE_ID]) === EMPTY_ID_VAL) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,8 +16,8 @@ let tree_Data_Helper = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return tmpNodeRst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let private_buildNodeData = function(parentItem, idArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let iter = [], nextNode = private_getTopNode(idArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let private_buildNodeData = function(parentItem, idArr, treeLevel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let iter = [], nextNode = private_getStartNode(idArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             while (nextNode !== null && nextNode !== undefined ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (parentItem) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     parentItem[CHILDREN_NODE].push(nextNode); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -25,10 +25,11 @@ let tree_Data_Helper = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     rst.push(nextNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 iter.push(nextNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (addLevel) nextNode[TREE_LEVEL] = treeLevel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nextNode = tmpNodes[prefix + nextNode[NEXT_ID]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let i = 0; i < iter.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                private_buildNodeData(iter[i], iter[i][SUB_ID]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                private_buildNodeData(iter[i], iter[i][SUB_ID], (treeLevel + 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,7 +52,7 @@ let tree_Data_Helper = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tmpNodes[prefix + data[i][P_ID]][SUB_ID].push(data[i][NODE_ID]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private_buildNodeData(null, topArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private_buildNodeData(null, topArr, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //try to release and return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         tmpNodes = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         topArr.length = 0; 
			 |