| 
					
				 | 
			
			
				@@ -141,34 +141,38 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    addNewNode: function(nodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = this, item = null, preHandleType = nodeType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    createNewNode: function (nodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rst = null, preHandleType = nodeType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!nodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             preHandleType = JV.PROP_HANDLE_TYPE_SORT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (nodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case JV.PROP_HANDLE_TYPE_SORT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "排序方式": "normal", "排序键值集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "排序方式": "normal", "排序键值集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case JV.PROP_HANDLE_TYPE_FILTER: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "过滤键值集": []}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "过滤键值集": []}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case JV.PROP_HANDLE_TYPE_SUM: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case JV.PROP_HANDLE_TYPE_ADJUST: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "数据调整集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "数据调整集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case JV.PROP_HANDLE_TYPE_ADD_DUMMY: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "Dummy数据集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "Dummy数据集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": "排序", "排序方式": "normal", "排序键值集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": "排序", "排序方式": "normal", "排序键值集":[]}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addNewNode: function(nodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = this, item = me.createNewNode(nodeType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.private_set_title(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.treeObj.addNodes(null, -1, [item], true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -323,6 +327,44 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addHoverDom: function(treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = preHandleObj, sObj = $("#" + treeNode.tId + "_span"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (treeNode.level > 0 || $("#addBtn_"+treeNode.tId).length > 0) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (treeNode[JV.PROP_HANDLE_TYPE] === JV.PROP_HANDLE_TYPE_SORT && treeNode[JV.PROP_SORT_TYPE] === "accord_to_parent") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子排序' onfocus='this.blur();'></span>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sObj.after(addStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let btn = $("#addBtn_"+treeNode.tId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (btn) btn.bind("click", function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newSubNodes = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newNode = me.createNewNode(treeNode[JV.PROP_HANDLE_TYPE]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newNode.Name = "子排序"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newNode[JV.PROP_DATA_KEY] = treeNode[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.private_set_title(newNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newSubNodes.push(newNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                treeNode.isParent = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.treeObj.addNodes(treeNode, -1, newSubNodes, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.treeObj.expandNode(treeNode, true, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (treeNode[JV.PROP_HANDLE_TYPE] === JV.PROP_HANDLE_TYPE_FILTER) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子过滤' onfocus='this.blur();'></span>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sObj.after(addStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let btn = $("#addBtn_"+treeNode.tId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (btn) btn.bind("click", function(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newSubNodes = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newNode = me.createNewNode(treeNode[JV.PROP_HANDLE_TYPE]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newNode.Name = "子过滤"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newNode[JV.PROP_DATA_KEY] = treeNode[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.private_set_title(newNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newSubNodes.push(newNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                treeNode.isParent = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.treeObj.addNodes(treeNode, -1, newSubNodes, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.treeObj.expandNode(treeNode, true, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeHoverDom: function (treeId, treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#addBtn_"+treeNode.tId).unbind().remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     extractTabFields: function (rptTpl) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this, nodes = me.treeObj.getNodes(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let rst = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -360,6 +402,7 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     topBillsTreeObj: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     otherBillsTreeObj: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     copyNode: function (src, dest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = preHandleSortObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dest[JV.PROP_SORT_TYPE] = src[JV.PROP_SORT_TYPE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch (sort_types.indexOf(src[JV.PROP_SORT_TYPE])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case -1: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -390,7 +433,6 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 2 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //according to parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 dest[JV.PROP_PARENT_CHILD_SORT_KEY] = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                dest[JV.PROP_OTHER_SUB_SORT] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY] = src[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_SORT_KEYS] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let item of src[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_SORT_KEYS]) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -400,19 +442,14 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let item of src[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS].push(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dest[JV.PROP_OTHER_SUB_SORT] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (src[JV.PROP_OTHER_SUB_SORT] !== null && src[JV.PROP_OTHER_SUB_SORT] !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dest.items = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (let subSort of src[JV.PROP_OTHER_SUB_SORT]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        let st = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        st[JV.PROP_SORT_TYPE] = subSort[JV.PROP_SORT_TYPE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (subSort[JV.PROP_SORT_TYPE] === "normal") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            st[JV.PROP_SORT_KEYS] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            for (let item of subSort[JV.PROP_SORT_KEYS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                let di = {key: item.key, order: item.order}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                st[JV.PROP_SORT_KEYS].push(di); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //其他暂时不实现,目前没那么复杂 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let destSubSort = {Name: "子排序"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.copyNode(subSort, destSubSort); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        destSubSort[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        dest.items.push(destSubSort); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -639,6 +676,17 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 2 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //according to parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 rst[JV.PROP_PARENT_CHILD_SORT_KEY] = handleObj[JV.PROP_PARENT_CHILD_SORT_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst[JV.PROP_OTHER_SUB_SORT] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (handleObj.items && handleObj.items.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for (let subSort of handleObj.items) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let dtlRst = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.copyNode(subSort, dtlRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        delete dtlRst.Name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        delete dtlRst.PROP_DATA_KEY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rst[JV.PROP_OTHER_SUB_SORT].push(dtlRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        dtlRst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 3 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //self define 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -653,7 +701,7 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let preHandleFilterObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     treeObj: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     copyNode: function (src, dest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let keys = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = preHandleFilterObj, keys = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let filterItem of src[JV.PROP_FILTER_KEYS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let item = {key: filterItem.key}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             item[JV.PROP_FILTER_CONDITION] = filterItem[JV.PROP_FILTER_CONDITION]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -664,7 +712,20 @@ let preHandleFilterObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             keys.push(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest[JV.PROP_HANDLE_TYPE] = src[JV.PROP_HANDLE_TYPE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dest[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         dest[JV.PROP_FILTER_KEYS] = keys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (src[JV.PROP_OTHER_SUB_FILTER] && src[JV.PROP_OTHER_SUB_FILTER].length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dest.items = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let subFilter of src[JV.PROP_OTHER_SUB_FILTER]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let dtlRst = {Name: "子过滤"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.copyNode(subFilter, dtlRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dtlRst[JV.PROP_HANDLE_TYPE] = src[JV.PROP_HANDLE_TYPE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dtlRst[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dest.items.push(dtlRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     refresh_node: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -816,18 +877,21 @@ let preHandleFilterObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.resetFilter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     extractTabFields: function (handleObj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = this, rst = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst[JV.PROP_HANDLE_TYPE] = handleObj[JV.PROP_HANDLE_TYPE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst[JV.PROP_DATA_KEY] = handleObj[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst[JV.PROP_FILTER_KEYS] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (let item of handleObj[JV.PROP_FILTER_KEYS]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let dtl = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dtl.key = item.key; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dtl[JV.PROP_FILTER_CONDITION] = item[JV.PROP_FILTER_CONDITION]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dtl[JV.PROP_FILTER_COMPARE_VAL] = item[JV.PROP_FILTER_COMPARE_VAL]?item[JV.PROP_FILTER_COMPARE_VAL]:null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dtl[JV.PROP_FILTER_COMPARE_OBJ] = item[JV.PROP_FILTER_COMPARE_OBJ]?item[JV.PROP_FILTER_COMPARE_OBJ]:null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dtl[JV.PROP_FILTER_COMPARE_OBJ_KEY] = item[JV.PROP_FILTER_COMPARE_OBJ_KEY]?item[JV.PROP_FILTER_COMPARE_OBJ_KEY]:null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            rst[JV.PROP_FILTER_KEYS].push(dtl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = preHandleFilterObj, rst = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // rst[JV.PROP_HANDLE_TYPE] = handleObj[JV.PROP_HANDLE_TYPE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // rst[JV.PROP_DATA_KEY] = handleObj[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // rst[JV.PROP_FILTER_KEYS] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.copyNode(handleObj, rst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rst[JV.PROP_OTHER_SUB_FILTER] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (handleObj.items && handleObj.items.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let subFilter of handleObj.items) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let dtlRst = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.copyNode(subFilter, dtlRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                delete dtlRst.Name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                delete dtlRst[JV.PROP_DATA_KEY]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst[JV.PROP_OTHER_SUB_FILTER].push(dtlRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dtlRst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 |