|  | @@ -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) {
 | 
	
		
			
				|  |  | +        //
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 |