| 
					
				 | 
			
			
				@@ -3,6 +3,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const sort_types = ["normal", "tree", "accord_to_parent", "self_define"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const pre_handle_data_objects = ["bills", "ration", "ration_glj"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const pre_handle_data_objects_name = ["清单", "定额", "定额工料机"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const exposed_bills_properties = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     {Name: "清单_ID", Title: "", Key: "ID"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     {Name: "清单_所属项目ID", Title: "", Key: "projectID"}, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -47,6 +49,7 @@ const exposed_prj_glj_properties = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     {Name: "工料机_单位", Title: "", Key: "unit"}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     {Name: "工料机_数量", Title: "", Key: "quantity"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const exposed_properties_arr = [exposed_bills_properties, exposed_ration_properties, exposed_prj_glj_properties]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     treeObj: null, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,6 +72,13 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.treeObj = $.fn.zTree.init($("#pre_handle_data_info_reversed"), preHandleSetting, handles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    build_handle_data_selection: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let sel = $("#select_mapping_data"), sel2 = $("#select_mapping_data_for_sort_type"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i = 0; i < pre_handle_data_objects.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sel2.append("<option value='" + pre_handle_data_objects[i] + "'>" + pre_handle_data_objects_name[i] + "</option>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sel.append("<option value='" + pre_handle_data_objects[i] + "'>" + pre_handle_data_objects_name[i] + "</option>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     buildTypeData: function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this, types = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         types.push({Name: JV.PROP_HANDLE_TYPE_SORT, Title: ""}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,6 +89,7 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // types.push({Name: "纯手工填写", Title: ""}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.typeTreeObj = $.fn.zTree.init($("#pre_handle_type_reversed"), preHandleTypeSetting, types); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         me.setDisabledBandSelect(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.build_handle_data_selection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     setDisabledBandSelect: function(disabled) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,7 +170,8 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (typeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.private_hide_all(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.hide_all_dom(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $("#div_pre_handle_data")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (typeNode[JV.PROP_NAME] === "排序") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     preHandleSortObj.refresh_node(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else if (typeNode[JV.PROP_NAME] === "过滤") { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -174,13 +186,16 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private_hide_all: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    hide_all_dom: function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#div_pre_handle_data")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_sort_type")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_sort_type_normal")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_filter_type")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_summary_type")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_adjust_type")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_add_dummy_type")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#div_sort_type_according_to_parent")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $("#div_sort_type_parent_data")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onPreHandleClick: function(event,treeId,treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = preHandleObj; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -191,12 +206,21 @@ let preHandleObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onTypeClick: function(event,treeId,treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    onChangeDataMappingObj: function(dom) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onChangeDataMappingObj: function(dom, oprType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (oprType === "top") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else if (oprType === "accord_to_parent") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[dom.selectedIndex]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onSortTypeChange: function(dom) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // alert(dom.selectedIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // alert(dom[dom.selectedIndex].value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (dom.selectedIndex === 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#div_sort_type_according_to_parent")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#div_sort_type_parent_data")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#div_sort_type_according_to_parent")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $("#div_sort_type_parent_data")[0].style.display = "none"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -230,6 +254,30 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_SORT_KEYS].push(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS] = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //其他暂时不实现,目前没那么复杂 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             case 3 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //self define 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,6 +290,7 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $("#div_sort_type")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (preHandleObj.currentNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let sel = $("#select_sort_types")[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let idx = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let sortTypeIdx = sort_types.indexOf(preHandleObj.currentNode[JV.PROP_SORT_TYPE]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sel.selectedIndex = sortTypeIdx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             switch (sortTypeIdx) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,15 +300,28 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 0 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //normal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $("#div_sort_type_normal")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_DATA_KEY]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), sortingKeysSetting, exposed_properties_arr[idx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let sortKeyRoot = {Name: JV.PROP_SORT_KEYS, items: [], isParent: true}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let sortKeys = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     // me.treeObj = $.fn.zTree.init($("#pre_handle_sort_keys_reversed"), preHandleSetting, handles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 1 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //tree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //tree排序是我们特有的数据结构方式,与数据结构有关,非common用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 2 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //according to parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $("#div_sort_type_according_to_parent")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $("#div_sort_type_parent_data")[0].style.display = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sel = $("#select_mapping_data_for_sort_type")[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sel.selectedIndex = idx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //parent_sorting_keys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.fn.zTree.init($("#parent_sorting_keys"), sortingKeysSetting, exposed_properties_arr[idx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //child_sorting_keys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_DATA_KEY]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[idx]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case 3 : 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //self define 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -268,6 +330,9 @@ let preHandleSortObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    onCheck: function(event,treeId,treeNode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |