|  | @@ -3,6 +3,7 @@
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const sort_types = ["normal", "tree", "accord_to_parent", "self_define"];
 | 
	
		
			
				|  |  | +const condition_types = ["==", "===", ">", ">=", "<", "<=", "!=", "in", "not in"];
 | 
	
		
			
				|  |  |  const pre_handle_data_objects = ["bills", "ration", "ration_glj"];
 | 
	
		
			
				|  |  |  const pre_handle_data_objects_name = ["清单", "定额", "定额工料机"];
 | 
	
		
			
				|  |  |  const exposed_bills_properties = [
 | 
	
	
		
			
				|  | @@ -284,7 +285,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          } else if (dom.selectedIndex === 0) {
 | 
	
		
			
				|  |  |              $("#div_sort_type_normal")[0].style.display = "";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        me.currentNode[JV.PROP_SORT_TYPE] = dom.value;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
 | 
	
		
			
				|  |  |          //
 | 
	
	
		
			
				|  | @@ -566,6 +567,30 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |                  for (let keyNode of nodes) {
 | 
	
		
			
				|  |  |                      if (filterItem.key === keyNode.Key) {
 | 
	
		
			
				|  |  |                          me.treeObj.checkNode(keyNode, true, false, false);
 | 
	
		
			
				|  |  | +                        //and then others...
 | 
	
		
			
				|  |  | +                        //过滤条件
 | 
	
		
			
				|  |  | +                        keyNode[JV.PROP_FILTER_CONDITION] = filterItem[JV.PROP_FILTER_CONDITION];
 | 
	
		
			
				|  |  | +                        $("#diySelect_" + keyNode.tId)[0].selectedIndex = condition_types.indexOf(filterItem[JV.PROP_FILTER_CONDITION]);
 | 
	
		
			
				|  |  | +                        //条件值
 | 
	
		
			
				|  |  | +                        keyNode[JV.PROP_FILTER_COMPARE_VAL] = filterItem[JV.PROP_FILTER_COMPARE_VAL];
 | 
	
		
			
				|  |  | +                        $("#diyInput_" + keyNode.tId)[0].selectedIndex = filterItem[JV.PROP_FILTER_COMPARE_VAL];
 | 
	
		
			
				|  |  | +                        //其他关联业务数据对象
 | 
	
		
			
				|  |  | +                        if (filterItem[JV.PROP_FILTER_COMPARE_OBJ]) {
 | 
	
		
			
				|  |  | +                            let cmpObjDom = $("#diyDataSelect_" + keyNode.tId)[0];
 | 
	
		
			
				|  |  | +                            keyNode[JV.PROP_FILTER_COMPARE_OBJ] = filterItem[JV.PROP_FILTER_COMPARE_OBJ];
 | 
	
		
			
				|  |  | +                            let idx = pre_handle_data_objects.indexOf(filterItem[JV.PROP_FILTER_COMPARE_OBJ]);
 | 
	
		
			
				|  |  | +                            cmpObjDom.selectedIndex = idx + 1;
 | 
	
		
			
				|  |  | +                            me.private_setup_compare_obj(cmpObjDom);
 | 
	
		
			
				|  |  | +                            let cmpObjIdDom = $("#diyDataDetailSelect_" + keyNode.tId)[0];
 | 
	
		
			
				|  |  | +                            for (let i = 0; i < cmpObjIdDom.children.length; i++) {
 | 
	
		
			
				|  |  | +                                let option = cmpObjIdDom.children[i];
 | 
	
		
			
				|  |  | +                                if (option.value === filterItem[JV.PROP_FILTER_COMPARE_OBJ_KEY]) {
 | 
	
		
			
				|  |  | +                                    keyNode[JV.PROP_FILTER_COMPARE_OBJ_KEY] = filterItem[JV.PROP_FILTER_COMPARE_OBJ_KEY]
 | 
	
		
			
				|  |  | +                                    cmpObjIdDom.selectedIndex = i;
 | 
	
		
			
				|  |  | +                                    break;
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  |                          break;
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -573,12 +598,8 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      onCheck: function(event,treeId,treeNode) {
 | 
	
		
			
				|  |  | -        // let me = preHandleFilterObj;
 | 
	
		
			
				|  |  | -        // if (treeId.indexOf("parent_sorting_keys") >= 0) {
 | 
	
		
			
				|  |  | -        // } else if (treeId.indexOf("child_sorting_keys") >= 0) {
 | 
	
		
			
				|  |  | -        // } else {
 | 
	
		
			
				|  |  | -        //     me.resetFilter();
 | 
	
		
			
				|  |  | -        // }
 | 
	
		
			
				|  |  | +        let me = preHandleFilterObj;
 | 
	
		
			
				|  |  | +        me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      resetFilter: function() {
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
	
		
			
				|  | @@ -586,6 +607,9 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          let normalSortKeys = [];
 | 
	
		
			
				|  |  |          for (let node of nodes) {
 | 
	
		
			
				|  |  |              let keyObj = {key: node.Key};
 | 
	
		
			
				|  |  | +            if (!node[JV.PROP_FILTER_CONDITION]) {
 | 
	
		
			
				|  |  | +                node[JV.PROP_FILTER_CONDITION] = "==";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              keyObj[JV.PROP_FILTER_CONDITION] = node[JV.PROP_FILTER_CONDITION];
 | 
	
		
			
				|  |  |              keyObj[JV.PROP_FILTER_COMPARE_VAL] = node[JV.PROP_FILTER_COMPARE_VAL];
 | 
	
		
			
				|  |  |              if (node[JV.PROP_FILTER_COMPARE_OBJ]) {
 | 
	
	
		
			
				|  | @@ -621,7 +645,7 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          aObj.after(dataSelStr);
 | 
	
		
			
				|  |  |          let editStr = "<input type='text' id='diyInput_" + treeNode.tId + "' width='10'/>";
 | 
	
		
			
				|  |  |          aObj.after(editStr);
 | 
	
		
			
				|  |  | -        let selStr = "<select class='selDemo' id='diySelect_" + treeNode.tId + "'><option value='=='>等于</option><option value='==='>全等于</option><option value='>'>大于</option><option value='>='>大于等于</option><option value='<'>小于</option><option value='<='>小于等于</option><option value='!='>不等于</option></select>";
 | 
	
		
			
				|  |  | +        let selStr = "<select class='selDemo' id='diySelect_" + treeNode.tId + "'><option value='=='>等于</option><option value='==='>全等于</option><option value='>'>大于</option><option value='>='>大于等于</option><option value='<'>小于</option><option value='<='>小于等于</option><option value='!='>不等于</option><option value='in'>在</option><option value='not in'>不在</option></select>";
 | 
	
		
			
				|  |  |          aObj.after(selStr);
 | 
	
		
			
				|  |  |          let sel = $("#diySelect_" + treeNode.tId);
 | 
	
		
			
				|  |  |          if (sel) {
 | 
	
	
		
			
				|  | @@ -642,8 +666,8 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          node[JV.PROP_FILTER_CONDITION] = sel.value;
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    filterCompareObjChange: function(event) {
 | 
	
		
			
				|  |  | -        let me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(14);
 | 
	
		
			
				|  |  | +    private_setup_compare_obj: function(dom) {
 | 
	
		
			
				|  |  | +        let me = this, sel = dom, tId = sel.id.slice(14);
 | 
	
		
			
				|  |  |          let node = me.treeObj.getNodeByTId(tId);
 | 
	
		
			
				|  |  |          node[JV.PROP_FILTER_COMPARE_OBJ] = sel.value;
 | 
	
		
			
				|  |  |          let idx = pre_handle_data_objects.indexOf(sel.value);
 | 
	
	
		
			
				|  | @@ -659,6 +683,10 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |              //清除所有key选项
 | 
	
		
			
				|  |  |              node[JV.PROP_FILTER_COMPARE_OBJ_KEY] = null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    filterCompareObjChange: function(event) {
 | 
	
		
			
				|  |  | +        let me = preHandleFilterObj, sel = event.currentTarget;
 | 
	
		
			
				|  |  | +        me.private_setup_compare_obj(sel);
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      filterCompareObjKeyChange: function(event) {
 |