|  | @@ -8,23 +8,23 @@ const pre_handle_data_objects = ["bills", "ration", "ration_glj", "projectGLJ"];
 | 
	
		
			
				|  |  |  const pre_handle_data_objects_name = ["清单", "定额", "定额人材机", "项目人材机"];
 | 
	
		
			
				|  |  |  //供货方式
 | 
	
		
			
				|  |  |  const fixed_supply_types = [
 | 
	
		
			
				|  |  | -    {Name: "自行采购(0)", Title: "", Value: 0},
 | 
	
		
			
				|  |  | -    {Name: "部分甲供(1)", Title: "", Value: 1},
 | 
	
		
			
				|  |  | -    {Name: "完全甲供(2)", Title: "", Value: 2},
 | 
	
		
			
				|  |  | -    {Name: "甲定乙供(3)", Title: "", Value: 3}
 | 
	
		
			
				|  |  | +    { Name: "自行采购(0)", Title: "", Value: 0 },
 | 
	
		
			
				|  |  | +    { Name: "部分甲供(1)", Title: "", Value: 1 },
 | 
	
		
			
				|  |  | +    { Name: "完全甲供(2)", Title: "", Value: 2 },
 | 
	
		
			
				|  |  | +    { Name: "甲定乙供(3)", Title: "", Value: 3 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  //三材类别
 | 
	
		
			
				|  |  |  const fixed_material_types = [
 | 
	
		
			
				|  |  | -    {Name: "钢材(1)", Title: "", Value: 1},
 | 
	
		
			
				|  |  | -    {Name: "钢筋(2)", Title: "", Value: 2},
 | 
	
		
			
				|  |  | -    {Name: "木材(3)", Title: "", Value: 3},
 | 
	
		
			
				|  |  | -    {Name: "水泥(4)", Title: "", Value: 4},
 | 
	
		
			
				|  |  | -    {Name: "标准砖(5)", Title: "", Value: 5}
 | 
	
		
			
				|  |  | +    { Name: "钢材(1)", Title: "", Value: 1 },
 | 
	
		
			
				|  |  | +    { Name: "钢筋(2)", Title: "", Value: 2 },
 | 
	
		
			
				|  |  | +    { Name: "木材(3)", Title: "", Value: 3 },
 | 
	
		
			
				|  |  | +    { Name: "水泥(4)", Title: "", Value: 4 },
 | 
	
		
			
				|  |  | +    { Name: "标准砖(5)", Title: "", Value: 5 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  //工料机来源
 | 
	
		
			
				|  |  |  const fixed_glj_from_types = [
 | 
	
		
			
				|  |  | -    {Name: "标准(std)", Title: "", Value: 'std'},
 | 
	
		
			
				|  |  | -    {Name: "补充(cpt)", Title: "", Value: 'cpt'},
 | 
	
		
			
				|  |  | +    { Name: "标准(std)", Title: "", Value: 'std' },
 | 
	
		
			
				|  |  | +    { Name: "补充(cpt)", Title: "", Value: 'cpt' },
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  // const fixed_glj_types = [
 | 
	
		
			
				|  |  |  //     {Name: "人工(1)", Title: "", Value: 1},
 | 
	
	
		
			
				|  | @@ -54,31 +54,31 @@ const fixed_glj_from_types = [
 | 
	
		
			
				|  |  |  //     {Name: "一般风险费(8)", Title: "", Value: 8}
 | 
	
		
			
				|  |  |  // ];
 | 
	
		
			
				|  |  |  const fixed_glj_types = [
 | 
	
		
			
				|  |  | -    {Name: "人工(1)", Title: "", Value: 1},
 | 
	
		
			
				|  |  | -    {Name: "普通材料(201)", Title: "", Value: 201},
 | 
	
		
			
				|  |  | -    {Name: "混凝土(202)", Title: "", Value: 202},
 | 
	
		
			
				|  |  | -    {Name: "砂浆(203)", Title: "", Value: 203},
 | 
	
		
			
				|  |  | -    {Name: "配合比(204)", Title: "", Value: 204},
 | 
	
		
			
				|  |  | -    {Name: "商品混凝土(205)", Title: "", Value: 205},
 | 
	
		
			
				|  |  | -    {Name: "商品砂浆(206)", Title: "", Value: 206},
 | 
	
		
			
				|  |  | -    {Name: "其他材料(207)", Title: "", Value: 207},
 | 
	
		
			
				|  |  | -    {Name: "机械台班(301)", Title: "", Value: 301},
 | 
	
		
			
				|  |  | -    {Name: "机械组成物(302)", Title: "", Value: 302},
 | 
	
		
			
				|  |  | -    {Name: "机上人工(303)", Value: 303},
 | 
	
		
			
				|  |  | -    {Name: "仪器仪表(304)", Value: 304},
 | 
	
		
			
				|  |  | -    {Name: "燃料动力费(305)", Value: 305},
 | 
	
		
			
				|  |  | -    {Name: "折旧费(306)", Value: 306},
 | 
	
		
			
				|  |  | -    {Name: "检修费(307)", Value: 307},
 | 
	
		
			
				|  |  | -    {Name: "维护费(308)", Value: 308},
 | 
	
		
			
				|  |  | -    {Name: "安拆费及场外运费(309)", Value: 309},
 | 
	
		
			
				|  |  | -    {Name: "校验费(310)", Value: 310},
 | 
	
		
			
				|  |  | -    {Name: "其他费用(311)", Value: 311},
 | 
	
		
			
				|  |  | -    {Name: "其他施工机具使用费(312)", Value: 312},
 | 
	
		
			
				|  |  | -    {Name: "主材(4)", Title: "", Value: 4},
 | 
	
		
			
				|  |  | -    {Name: "设备(5)", Title: "", Value: 5},
 | 
	
		
			
				|  |  | -    {Name: "企业管理费(6)", Title: "", Value: 6},
 | 
	
		
			
				|  |  | -    {Name: "利润(7)", Title: "", Value: 7},
 | 
	
		
			
				|  |  | -    {Name: "一般风险费(8)", Title: "", Value: 8}
 | 
	
		
			
				|  |  | +    { Name: "人工(1)", Title: "", Value: 1 },
 | 
	
		
			
				|  |  | +    { Name: "普通材料(201)", Title: "", Value: 201 },
 | 
	
		
			
				|  |  | +    { Name: "混凝土(202)", Title: "", Value: 202 },
 | 
	
		
			
				|  |  | +    { Name: "砂浆(203)", Title: "", Value: 203 },
 | 
	
		
			
				|  |  | +    { Name: "配合比(204)", Title: "", Value: 204 },
 | 
	
		
			
				|  |  | +    { Name: "商品混凝土(205)", Title: "", Value: 205 },
 | 
	
		
			
				|  |  | +    { Name: "商品砂浆(206)", Title: "", Value: 206 },
 | 
	
		
			
				|  |  | +    { Name: "其他材料(207)", Title: "", Value: 207 },
 | 
	
		
			
				|  |  | +    { Name: "机械台班(301)", Title: "", Value: 301 },
 | 
	
		
			
				|  |  | +    { Name: "机械组成物(302)", Title: "", Value: 302 },
 | 
	
		
			
				|  |  | +    { Name: "机上人工(303)", Value: 303 },
 | 
	
		
			
				|  |  | +    { Name: "仪器仪表(304)", Value: 304 },
 | 
	
		
			
				|  |  | +    { Name: "燃料动力费(305)", Value: 305 },
 | 
	
		
			
				|  |  | +    { Name: "折旧费(306)", Value: 306 },
 | 
	
		
			
				|  |  | +    { Name: "检修费(307)", Value: 307 },
 | 
	
		
			
				|  |  | +    { Name: "维护费(308)", Value: 308 },
 | 
	
		
			
				|  |  | +    { Name: "安拆费及场外运费(309)", Value: 309 },
 | 
	
		
			
				|  |  | +    { Name: "校验费(310)", Value: 310 },
 | 
	
		
			
				|  |  | +    { Name: "其他费用(311)", Value: 311 },
 | 
	
		
			
				|  |  | +    { Name: "其他施工机具使用费(312)", Value: 312 },
 | 
	
		
			
				|  |  | +    { Name: "主材(4)", Title: "", Value: 4 },
 | 
	
		
			
				|  |  | +    { Name: "设备(5)", Title: "", Value: 5 },
 | 
	
		
			
				|  |  | +    { Name: "企业管理费(6)", Title: "", Value: 6 },
 | 
	
		
			
				|  |  | +    { Name: "利润(7)", Title: "", Value: 7 },
 | 
	
		
			
				|  |  | +    { Name: "一般风险费(8)", Title: "", Value: 8 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  // const fixed_top_bills_nodes = [
 | 
	
		
			
				|  |  |  //     {Name: "分部分项工程(1)", Title: "", Value: 1}
 | 
	
	
		
			
				|  | @@ -89,14 +89,14 @@ const fixed_glj_types = [
 | 
	
		
			
				|  |  |  //     ,{Name: "工程造价(19)", Title: "", Value: 19}
 | 
	
		
			
				|  |  |  // ];
 | 
	
		
			
				|  |  |  const fixed_top_bills_nodes = [
 | 
	
		
			
				|  |  | -    {Name: "建筑安装工程费(1)", Title: "", Value: 1}
 | 
	
		
			
				|  |  | -    ,{Name: "土地使用及拆迁补偿费(2)", Title: "", Value: 2}
 | 
	
		
			
				|  |  | -    ,{Name: "养护工程其他费用(3)", Title: "", Value: 3}
 | 
	
		
			
				|  |  | -    ,{Name: "预备费(4)", Title: "", Value: 4}
 | 
	
		
			
				|  |  | -    ,{Name: "一二三四部分合计(7)", Title: "", Value: 7}
 | 
	
		
			
				|  |  | -    ,{Name: "贷款利息(8)", Title: "", Value: 8}
 | 
	
		
			
				|  |  | -    ,{Name: "总造价(9)", Title: "", Value: 9}
 | 
	
		
			
				|  |  | -    ,{Name: "第100章至700章清单(19)", Title: "", Value: 19}
 | 
	
		
			
				|  |  | +    { Name: "建筑安装工程费(1)", Title: "", Value: 1 }
 | 
	
		
			
				|  |  | +    , { Name: "土地使用及拆迁补偿费(2)", Title: "", Value: 2 }
 | 
	
		
			
				|  |  | +    , { Name: "养护工程其他费用(3)", Title: "", Value: 3 }
 | 
	
		
			
				|  |  | +    , { Name: "预备费(4)", Title: "", Value: 4 }
 | 
	
		
			
				|  |  | +    , { Name: "一二三四部分合计(7)", Title: "", Value: 7 }
 | 
	
		
			
				|  |  | +    , { Name: "贷款利息(8)", Title: "", Value: 8 }
 | 
	
		
			
				|  |  | +    , { Name: "总造价(9)", Title: "", Value: 9 }
 | 
	
		
			
				|  |  | +    , { Name: "第100章至700章清单(19)", Title: "", Value: 19 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // const fixed_other_bills_types = [
 | 
	
	
		
			
				|  | @@ -116,27 +116,27 @@ const fixed_top_bills_nodes = [
 | 
	
		
			
				|  |  |  //     ,{Name: "增值税(20)", Title: "", Value: 20}
 | 
	
		
			
				|  |  |  // ];
 | 
	
		
			
				|  |  |  const fixed_other_bills_types = [
 | 
	
		
			
				|  |  | -    {Name: "基本预备费(5)", Title: "", Value: 5}
 | 
	
		
			
				|  |  | -    ,{Name: "价差预备费(6)", Title: "", Value: 6}
 | 
	
		
			
				|  |  | -    ,{Name: "设备购置费(10)", Title: "", Value: 10}
 | 
	
		
			
				|  |  | -    ,{Name: "专项费用(11)", Title: "", Value: 11}
 | 
	
		
			
				|  |  | -    ,{Name: "施工场地建设费(12)", Title: "", Value: 12}
 | 
	
		
			
				|  |  | -    ,{Name: "养护单位(业主)管理费(13)", Title: "", Value: 13}
 | 
	
		
			
				|  |  | -    ,{Name: "信息化费", Title: "", Value: 14}
 | 
	
		
			
				|  |  | -    ,{Name: "工程监理费(15)", Title: "", Value: 15}
 | 
	
		
			
				|  |  | -    ,{Name: "设计文件审查费(16)", Title: "", Value: 16}
 | 
	
		
			
				|  |  | -    ,{Name: "勘察设计费(17)", Title: "", Value: 17}
 | 
	
		
			
				|  |  | -    ,{Name: "招标代理及标底编制费(18)", Title: "", Value: 18}
 | 
	
		
			
				|  |  | -    ,{Name: "第100章至700章清单(19)", Title: "", Value: 19}
 | 
	
		
			
				|  |  | -    ,{Name: "专项暂定合计(20)", Title: "", Value: 20}
 | 
	
		
			
				|  |  | -    ,{Name: "清单合计扣除专项暂定合计(21)", Title: "", Value: 21}
 | 
	
		
			
				|  |  | -    ,{Name: "计日工(22)", Title: "", Value: 22}
 | 
	
		
			
				|  |  | -    ,{Name: "劳务(23)", Title: "", Value: 23}
 | 
	
		
			
				|  |  | -    ,{Name: "材料(24)", Title: "", Value: 24}
 | 
	
		
			
				|  |  | -    ,{Name: "施工机械(25)", Title: "", Value: 25}
 | 
	
		
			
				|  |  | -    ,{Name: "暂列金额(26)", Title: "", Value: 26}
 | 
	
		
			
				|  |  | -    ,{Name: "安全生产费(27)", Title: "", Value: 27}
 | 
	
		
			
				|  |  | -    ,{Name: "100章清单(28)", Title: "", Value: 28}
 | 
	
		
			
				|  |  | +    { Name: "基本预备费(5)", Title: "", Value: 5 }
 | 
	
		
			
				|  |  | +    , { Name: "价差预备费(6)", Title: "", Value: 6 }
 | 
	
		
			
				|  |  | +    , { Name: "设备购置费(10)", Title: "", Value: 10 }
 | 
	
		
			
				|  |  | +    , { Name: "专项费用(11)", Title: "", Value: 11 }
 | 
	
		
			
				|  |  | +    , { Name: "施工场地建设费(12)", Title: "", Value: 12 }
 | 
	
		
			
				|  |  | +    , { Name: "养护单位(业主)管理费(13)", Title: "", Value: 13 }
 | 
	
		
			
				|  |  | +    , { Name: "信息化费", Title: "", Value: 14 }
 | 
	
		
			
				|  |  | +    , { Name: "工程监理费(15)", Title: "", Value: 15 }
 | 
	
		
			
				|  |  | +    , { Name: "设计文件审查费(16)", Title: "", Value: 16 }
 | 
	
		
			
				|  |  | +    , { Name: "勘察设计费(17)", Title: "", Value: 17 }
 | 
	
		
			
				|  |  | +    , { Name: "招标代理及标底编制费(18)", Title: "", Value: 18 }
 | 
	
		
			
				|  |  | +    , { Name: "第100章至700章清单(19)", Title: "", Value: 19 }
 | 
	
		
			
				|  |  | +    , { Name: "专项暂定合计(20)", Title: "", Value: 20 }
 | 
	
		
			
				|  |  | +    , { Name: "清单合计扣除专项暂定合计(21)", Title: "", Value: 21 }
 | 
	
		
			
				|  |  | +    , { Name: "计日工(22)", Title: "", Value: 22 }
 | 
	
		
			
				|  |  | +    , { Name: "劳务(23)", Title: "", Value: 23 }
 | 
	
		
			
				|  |  | +    , { Name: "材料(24)", Title: "", Value: 24 }
 | 
	
		
			
				|  |  | +    , { Name: "施工机械(25)", Title: "", Value: 25 }
 | 
	
		
			
				|  |  | +    , { Name: "暂列金额(26)", Title: "", Value: 26 }
 | 
	
		
			
				|  |  | +    , { Name: "安全生产费(27)", Title: "", Value: 27 }
 | 
	
		
			
				|  |  | +    , { Name: "100章清单(28)", Title: "", Value: 28 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  // const fixed_bills_flags = [
 | 
	
		
			
				|  |  |  //     {Name: "分部分项工程(1)", Title: "", Value: 1},
 | 
	
	
		
			
				|  | @@ -161,90 +161,91 @@ const fixed_other_bills_types = [
 | 
	
		
			
				|  |  |  //     {Name: "增值税(20)", Title: "", Value: 20}
 | 
	
		
			
				|  |  |  // ];
 | 
	
		
			
				|  |  |  const fixed_bills_flags = [
 | 
	
		
			
				|  |  | -    {Name: "建筑安装工程费(1)", Title: "", Value: 1}
 | 
	
		
			
				|  |  | -    ,{Name: "土地使用及拆迁补偿费(2)", Title: "", Value: 2}
 | 
	
		
			
				|  |  | -    ,{Name: "养护工程其他费用(3)", Title: "", Value: 3}
 | 
	
		
			
				|  |  | -    ,{Name: "预备费(4)", Title: "", Value: 4}
 | 
	
		
			
				|  |  | -    ,{Name: "基本预备费(5)", Title: "", Value: 5}
 | 
	
		
			
				|  |  | -    ,{Name: "价差预备费(6)", Title: "", Value: 6}
 | 
	
		
			
				|  |  | -    ,{Name: "一二三四部分合计(7)", Title: "", Value: 7}
 | 
	
		
			
				|  |  | -    ,{Name: "贷款利息(8)", Title: "", Value: 8}
 | 
	
		
			
				|  |  | -    ,{Name: "总造价(9)", Title: "", Value: 9}
 | 
	
		
			
				|  |  | -    ,{Name: "设备购置费(10)", Title: "", Value: 10}
 | 
	
		
			
				|  |  | -    ,{Name: "专项费用(11)", Title: "", Value: 11}
 | 
	
		
			
				|  |  | -    ,{Name: "施工场地建设费(12)", Title: "", Value: 12}
 | 
	
		
			
				|  |  | -    ,{Name: "养护单位(业主)管理费(13)", Title: "", Value: 13}
 | 
	
		
			
				|  |  | -    ,{Name: "信息化费", Title: "", Value: 14}
 | 
	
		
			
				|  |  | -    ,{Name: "工程监理费(15)", Title: "", Value: 15}
 | 
	
		
			
				|  |  | -    ,{Name: "设计文件审查费(16)", Title: "", Value: 16}
 | 
	
		
			
				|  |  | -    ,{Name: "勘察设计费(17)", Title: "", Value: 17}
 | 
	
		
			
				|  |  | -    ,{Name: "招标代理及标底编制费(18)", Title: "", Value: 18}
 | 
	
		
			
				|  |  | -    ,{Name: "第100章至700章清单(19)", Title: "", Value: 19}
 | 
	
		
			
				|  |  | -    ,{Name: "专项暂定合计(20)", Title: "", Value: 20}
 | 
	
		
			
				|  |  | -    ,{Name: "清单合计扣除专项暂定合计(21)", Title: "", Value: 21}
 | 
	
		
			
				|  |  | -    ,{Name: "计日工(22)", Title: "", Value: 22}
 | 
	
		
			
				|  |  | -    ,{Name: "劳务(23)", Title: "", Value: 23}
 | 
	
		
			
				|  |  | -    ,{Name: "材料(24)", Title: "", Value: 24}
 | 
	
		
			
				|  |  | -    ,{Name: "施工机械(25)", Title: "", Value: 25}
 | 
	
		
			
				|  |  | -    ,{Name: "暂列金额(26)", Title: "", Value: 26}
 | 
	
		
			
				|  |  | -    ,{Name: "安全生产费(27)", Title: "", Value: 27}
 | 
	
		
			
				|  |  | -    ,{Name: "100章清单(28)", Title: "", Value: 28}
 | 
	
		
			
				|  |  | +    { Name: "建筑安装工程费(1)", Title: "", Value: 1 }
 | 
	
		
			
				|  |  | +    , { Name: "土地使用及拆迁补偿费(2)", Title: "", Value: 2 }
 | 
	
		
			
				|  |  | +    , { Name: "养护工程其他费用(3)", Title: "", Value: 3 }
 | 
	
		
			
				|  |  | +    , { Name: "预备费(4)", Title: "", Value: 4 }
 | 
	
		
			
				|  |  | +    , { Name: "基本预备费(5)", Title: "", Value: 5 }
 | 
	
		
			
				|  |  | +    , { Name: "价差预备费(6)", Title: "", Value: 6 }
 | 
	
		
			
				|  |  | +    , { Name: "一二三四部分合计(7)", Title: "", Value: 7 }
 | 
	
		
			
				|  |  | +    , { Name: "贷款利息(8)", Title: "", Value: 8 }
 | 
	
		
			
				|  |  | +    , { Name: "总造价(9)", Title: "", Value: 9 }
 | 
	
		
			
				|  |  | +    , { Name: "设备购置费(10)", Title: "", Value: 10 }
 | 
	
		
			
				|  |  | +    , { Name: "专项费用(11)", Title: "", Value: 11 }
 | 
	
		
			
				|  |  | +    , { Name: "施工场地建设费(12)", Title: "", Value: 12 }
 | 
	
		
			
				|  |  | +    , { Name: "养护单位(业主)管理费(13)", Title: "", Value: 13 }
 | 
	
		
			
				|  |  | +    , { Name: "信息化费", Title: "", Value: 14 }
 | 
	
		
			
				|  |  | +    , { Name: "工程监理费(15)", Title: "", Value: 15 }
 | 
	
		
			
				|  |  | +    , { Name: "设计文件审查费(16)", Title: "", Value: 16 }
 | 
	
		
			
				|  |  | +    , { Name: "勘察设计费(17)", Title: "", Value: 17 }
 | 
	
		
			
				|  |  | +    , { Name: "招标代理及标底编制费(18)", Title: "", Value: 18 }
 | 
	
		
			
				|  |  | +    , { Name: "第100章至700章清单(19)", Title: "", Value: 19 }
 | 
	
		
			
				|  |  | +    , { Name: "专项暂定合计(20)", Title: "", Value: 20 }
 | 
	
		
			
				|  |  | +    , { Name: "清单合计扣除专项暂定合计(21)", Title: "", Value: 21 }
 | 
	
		
			
				|  |  | +    , { Name: "计日工(22)", Title: "", Value: 22 }
 | 
	
		
			
				|  |  | +    , { Name: "劳务(23)", Title: "", Value: 23 }
 | 
	
		
			
				|  |  | +    , { Name: "材料(24)", Title: "", Value: 24 }
 | 
	
		
			
				|  |  | +    , { Name: "施工机械(25)", Title: "", Value: 25 }
 | 
	
		
			
				|  |  | +    , { Name: "暂列金额(26)", Title: "", Value: 26 }
 | 
	
		
			
				|  |  | +    , { Name: "安全生产费(27)", Title: "", Value: 27 }
 | 
	
		
			
				|  |  | +    , { Name: "100章清单(28)", Title: "", Value: 28 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const fixed_bills_types = [
 | 
	
		
			
				|  |  | -    {Name: "大项费用(1)", Title: "", Value: 1},
 | 
	
		
			
				|  |  | -    {Name: "分部(2)", Title: "", Value: 2},
 | 
	
		
			
				|  |  | -    {Name: "分项(3)", Title: "", Value: 3},
 | 
	
		
			
				|  |  | -    {Name: "清单(4)", Title: "", Value: 4},
 | 
	
		
			
				|  |  | -    {Name: "补项(5)", Title: "", Value: 5}
 | 
	
		
			
				|  |  | +    { Name: "大项费用(1)", Title: "", Value: 1 },
 | 
	
		
			
				|  |  | +    { Name: "分部(2)", Title: "", Value: 2 },
 | 
	
		
			
				|  |  | +    { Name: "分项(3)", Title: "", Value: 3 },
 | 
	
		
			
				|  |  | +    { Name: "清单(4)", Title: "", Value: 4 },
 | 
	
		
			
				|  |  | +    { Name: "补项(5)", Title: "", Value: 5 }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const fixed_bills_special_provisional_types = [
 | 
	
		
			
				|  |  | -    {Name: "材料", Title: "", Value: "材料"},
 | 
	
		
			
				|  |  | -    {Name: "工程设备", Title: "", Value: "工程设备"},
 | 
	
		
			
				|  |  | -    {Name: "专业工程", Title: "", Value: "专业工程"}
 | 
	
		
			
				|  |  | +    { Name: "材料", Title: "", Value: "材料" },
 | 
	
		
			
				|  |  | +    { Name: "工程设备", Title: "", Value: "工程设备" },
 | 
	
		
			
				|  |  | +    { Name: "专业工程", Title: "", Value: "专业工程" }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const exposed_bills_properties = [
 | 
	
		
			
				|  |  | -    {Name: "清单_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "清单_ID", Title: "", Key: "ID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "顶层父清单_标记", Title: "", Key: "topBillID", Order: "ascend", individualType: fixed_top_bills_nodes}
 | 
	
		
			
				|  |  | -    ,{Name: "清单_层次", Title: "", Key: "treeLevel", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "清单_类别", Title: "", Key: "type", Order: "ascend", individualType: fixed_bills_types}
 | 
	
		
			
				|  |  | -    ,{Name: "清单_标记", Title: "", Key: "flags.flag", Order: "ascend", individualType: fixed_bills_flags}
 | 
	
		
			
				|  |  | -    ,{Name: "清单_顺序号", Title: "", Key: "treeFlatSerialOrder", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "清单_专项类型", Title: "", Key: "specialProvisional", Order: "ascend", individualType: fixed_bills_special_provisional_types}
 | 
	
		
			
				|  |  | +    { Name: "清单_所属项目ID", Title: "", Key: "projectID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "清单_ID", Title: "", Key: "ID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "顶层父清单_标记", Title: "", Key: "topBillID", Order: "ascend", individualType: fixed_top_bills_nodes }
 | 
	
		
			
				|  |  | +    , { Name: "清单_层次", Title: "", Key: "treeLevel", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "清单_类别", Title: "", Key: "type", Order: "ascend", individualType: fixed_bills_types }
 | 
	
		
			
				|  |  | +    , { Name: "清单_标记", Title: "", Key: "flags.flag", Order: "ascend", individualType: fixed_bills_flags }
 | 
	
		
			
				|  |  | +    , { Name: "清单_顺序号", Title: "", Key: "treeFlatSerialOrder", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "清单_专项类型", Title: "", Key: "specialProvisional", Order: "ascend", individualType: fixed_bills_special_provisional_types }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const exposed_ration_properties = [
 | 
	
		
			
				|  |  | -    {Name: "定额_工程内部ID", Title: "", Key: "ID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额_清单内顺序", Title: "", Key: "serialNo", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额_类型", Title: "", Key: "type", Order: "ascend"}
 | 
	
		
			
				|  |  | +    { Name: "定额_工程内部ID", Title: "", Key: "ID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额_所属项目ID", Title: "", Key: "projectID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额_清单内顺序", Title: "", Key: "serialNo", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额_类型", Title: "", Key: "type", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额_工程量", Title: "", Key: "quantity", Order: "ascend" }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const exposed_ration_glj_properties = [
 | 
	
		
			
				|  |  | -    {Name: "定额人材机_ID", Title: "", Key: "ID"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_项目人材机映射ID", Title: "", Key: "projectGLJID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_所属定额ID", Title: "", Key: "rationID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_所属工程ID", Title: "", Key: "projectID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_代码", Title: "", Key: "code", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_类型", Title: "", Key: "type", Order: "ascend", individualType: fixed_glj_types}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_数量", Title: "", Key: "quantity", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_是否暂估", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).is_evaluate", Order: "ascend", isBoolean: true, booleanOptions: [1,0]}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_是否主要材料", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).is_main_material", Order: "ascend", isBoolean: true, booleanOptions: [1,0]}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_供货方式", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).supply", Order: "ascend", individualType: fixed_supply_types}
 | 
	
		
			
				|  |  | -    ,{Name: "定额人材机_三材类别", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).materialType", Order: "ascend", individualType: fixed_material_types}
 | 
	
		
			
				|  |  | +    { Name: "定额人材机_ID", Title: "", Key: "ID" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_项目人材机映射ID", Title: "", Key: "projectGLJID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_所属定额ID", Title: "", Key: "rationID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_所属工程ID", Title: "", Key: "projectID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_代码", Title: "", Key: "code", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_类型", Title: "", Key: "type", Order: "ascend", individualType: fixed_glj_types }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_数量", Title: "", Key: "quantity", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_是否暂估", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).is_evaluate", Order: "ascend", isBoolean: true, booleanOptions: [1, 0] }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_是否主要材料", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).is_main_material", Order: "ascend", isBoolean: true, booleanOptions: [1, 0] }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_供货方式", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).supply", Order: "ascend", individualType: fixed_supply_types }
 | 
	
		
			
				|  |  | +    , { Name: "定额人材机_三材类别", Title: "", Key: "ref_join(projectGLJID,projectGLJ,id).materialType", Order: "ascend", individualType: fixed_material_types }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const exposed_prj_glj_properties = [
 | 
	
		
			
				|  |  | -    {Name: "项目人材机_ID", Title: "", Key: "id"}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_所属工程ID", Title: "", Key: "projectID", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_代码", Title: "", Key: "code", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_类型", Title: "", Key: "type", Order: "ascend", individualType: fixed_glj_types}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_数量", Title: "", Key: "quantity", Order: "ascend"}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_是否暂估", Title: "", Key: "is_evaluate", Order: "ascend", isBoolean: true, booleanOptions: [1,0]}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_是否主要材料", Title: "", Key: "is_main_material", Order: "ascend", isBoolean: true, booleanOptions: [1,0]}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_是否材料计算", Title: "", Key: "unit_price.calcMaterial", Order: "ascend", isBoolean: true, booleanOptions: [1,0]}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_供货方式", Title: "", Key: "supply", Order: "ascend", individualType: fixed_supply_types}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_三材类别", Title: "", Key: "materialType", Order: "ascend", individualType: fixed_material_types}
 | 
	
		
			
				|  |  | -    ,{Name: "项目人材机_来源", Title: "", Key: "from", Order: "ascend", individualType: fixed_glj_from_types}
 | 
	
		
			
				|  |  | +    { Name: "项目人材机_ID", Title: "", Key: "id" }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_所属工程ID", Title: "", Key: "projectID", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_代码", Title: "", Key: "code", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_类型", Title: "", Key: "type", Order: "ascend", individualType: fixed_glj_types }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_数量", Title: "", Key: "quantity", Order: "ascend" }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_是否暂估", Title: "", Key: "is_evaluate", Order: "ascend", isBoolean: true, booleanOptions: [1, 0] }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_是否主要材料", Title: "", Key: "is_main_material", Order: "ascend", isBoolean: true, booleanOptions: [1, 0] }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_是否材料计算", Title: "", Key: "unit_price.calcMaterial", Order: "ascend", isBoolean: true, booleanOptions: [1, 0] }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_供货方式", Title: "", Key: "supply", Order: "ascend", individualType: fixed_supply_types }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_三材类别", Title: "", Key: "materialType", Order: "ascend", individualType: fixed_material_types }
 | 
	
		
			
				|  |  | +    , { Name: "项目人材机_来源", Title: "", Key: "from", Order: "ascend", individualType: fixed_glj_from_types }
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  const exposed_properties_arr = [exposed_bills_properties, exposed_ration_properties, exposed_ration_glj_properties, exposed_prj_glj_properties];
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -252,15 +253,15 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |      treeObj: null,
 | 
	
		
			
				|  |  |      typeTreeObj: null,
 | 
	
		
			
				|  |  |      currentNode: null,
 | 
	
		
			
				|  |  | -    iniTree: function(rptTpl) {
 | 
	
		
			
				|  |  | +    iniTree: function (rptTpl) {
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          me.buildData(rptTpl);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    buildData: function(rptTpl) {
 | 
	
		
			
				|  |  | +    buildData: function (rptTpl) {
 | 
	
		
			
				|  |  |          let me = this, handles = [];
 | 
	
		
			
				|  |  |          if (rptTpl[JV.NODE_MAP_DATA_HANDLE_INFO]) {
 | 
	
		
			
				|  |  |              for (let item of rptTpl[JV.NODE_MAP_DATA_HANDLE_INFO]) {
 | 
	
		
			
				|  |  | -                let hd = {Name: "预处理环节"};
 | 
	
		
			
				|  |  | +                let hd = { Name: "预处理环节" };
 | 
	
		
			
				|  |  |                  me.private_copy_node(item, hd);
 | 
	
		
			
				|  |  |                  me.private_set_title(hd);
 | 
	
		
			
				|  |  |                  hd.Operations = []; //考虑到用户可能会换来换去,这样会有冗余的属性出现
 | 
	
	
		
			
				|  | @@ -269,7 +270,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          me.treeObj = $.fn.zTree.init($("#pre_handle_data_info_reversed"), preHandleSetting, handles);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    build_handle_data_selection: function() {
 | 
	
		
			
				|  |  | +    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>");
 | 
	
	
		
			
				|  | @@ -278,19 +279,19 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      buildTypeData: function () {
 | 
	
		
			
				|  |  |          let me = this, types = [];
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_SORT, Title: ""});
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_FILTER, Title: ""});
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE, Title: ""});
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_COMPONENT_MOVE, Title: ""});
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_SUM, Title: ""});
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_ADJUST, Title: ""});
 | 
	
		
			
				|  |  | -        types.push({Name: JV.PROP_HANDLE_TYPE_ADD_DUMMY, Title: ""});
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_SORT, Title: "" });
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_FILTER, Title: "" });
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE, Title: "" });
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_COMPONENT_MOVE, Title: "" });
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_SUM, Title: "" });
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_ADJUST, Title: "" });
 | 
	
		
			
				|  |  | +        types.push({ Name: JV.PROP_HANDLE_TYPE_ADD_DUMMY, Title: "" });
 | 
	
		
			
				|  |  |          // types.push({Name: "纯手工填写", Title: ""});
 | 
	
		
			
				|  |  |          me.typeTreeObj = $.fn.zTree.init($("#pre_handle_type_reversed"), preHandleTypeSetting, types);
 | 
	
		
			
				|  |  | -        me.setDisabledBandSelect([0,1,2,3,4,5,6]);
 | 
	
		
			
				|  |  | +        me.setDisabledBandSelect([0, 1, 2, 3, 4, 5, 6]);
 | 
	
		
			
				|  |  |          me.build_handle_data_selection();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    setDisabledBandSelect: function(disabledIdxArr) {
 | 
	
		
			
				|  |  | +    setDisabledBandSelect: function (disabledIdxArr) {
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          if (me.typeTreeObj) {
 | 
	
		
			
				|  |  |              let nodes = me.typeTreeObj.getNodes();
 | 
	
	
		
			
				|  | @@ -310,38 +311,38 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          switch (nodeType) {
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_SORT:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "排序方式": "normal", "排序键值集":[]};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "排序方式": "normal", "排序键值集": [] };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_FILTER:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "过滤键值集": []};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "过滤键值集": [] };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_COMPONENT_MOVE:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_SUM:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集":[]};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集": [] };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_ADJUST:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "数据调整集":[]};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "数据调整集": [] };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              case JV.PROP_HANDLE_TYPE_ADD_DUMMY:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "Dummy数据集":[]};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "Dummy数据集": [] };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |              default:
 | 
	
		
			
				|  |  | -                rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": "排序", "排序方式": "normal", "排序键值集":[]};
 | 
	
		
			
				|  |  | +                rst = { Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": "排序", "排序方式": "normal", "排序键值集": [] };
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addNewNode: function(nodeType) {
 | 
	
		
			
				|  |  | +    addNewNode: function (nodeType) {
 | 
	
		
			
				|  |  |          let me = this, item = me.createNewNode(nodeType);
 | 
	
		
			
				|  |  |          me.private_set_title(item);
 | 
	
		
			
				|  |  |          me.treeObj.addNodes(null, -1, [item], true);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    private_change_node_by_type: function(handleType, item) {
 | 
	
		
			
				|  |  | +    private_change_node_by_type: function (handleType, item) {
 | 
	
		
			
				|  |  |          let preHandleType = handleType;
 | 
	
		
			
				|  |  |          if (!handleType) {
 | 
	
		
			
				|  |  |              preHandleType = JV.PROP_HANDLE_TYPE_SORT;
 | 
	
	
		
			
				|  | @@ -377,7 +378,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    private_copy_node: function(src, dest) {
 | 
	
		
			
				|  |  | +    private_copy_node: function (src, dest) {
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          dest[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY];
 | 
	
		
			
				|  |  |          dest[JV.PROP_HANDLE_TYPE] = src[JV.PROP_HANDLE_TYPE];
 | 
	
	
		
			
				|  | @@ -394,7 +395,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |              preHandleAddDummyObj.copyNode(src, dest);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    private_set_title: function(node) {
 | 
	
		
			
				|  |  | +    private_set_title: function (node) {
 | 
	
		
			
				|  |  |          let nameStr = node[JV.PROP_NAME], idx = nameStr.indexOf("(");
 | 
	
		
			
				|  |  |          if (idx >= 0) {
 | 
	
		
			
				|  |  |              nameStr = nameStr.slice(0, idx);
 | 
	
	
		
			
				|  | @@ -402,7 +403,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          node[JV.PROP_NAME] = nameStr + "(" + node[JV.PROP_HANDLE_TYPE] + ")";
 | 
	
		
			
				|  |  |          node.Title = "映射数据对象:" + node[JV.PROP_DATA_KEY] + " | " + node[JV.PROP_HANDLE_TYPE];
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    refreshByNode: function(treeNode) {
 | 
	
		
			
				|  |  | +    refreshByNode: function (treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleObj;
 | 
	
		
			
				|  |  |          if (me.typeTreeObj) {
 | 
	
		
			
				|  |  |              let nodes = me.typeTreeObj.getNodes();
 | 
	
	
		
			
				|  | @@ -438,7 +439,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    hide_all_dom: 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";
 | 
	
	
		
			
				|  | @@ -451,15 +452,15 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          $("#div_sort_tree")[0].style.display = "none";
 | 
	
		
			
				|  |  |          $("#div_sort_self_define")[0].style.display = "none";
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onPreHandleClick: function(event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +    onPreHandleClick: function (event, treeId, treeNode) {
 | 
	
		
			
				|  |  |          //点击预处理环节 节点
 | 
	
		
			
				|  |  |          let me = preHandleObj;
 | 
	
		
			
				|  |  |          me.currentNode = treeNode;
 | 
	
		
			
				|  |  | -        me.setDisabledBandSelect([4,5,6]);
 | 
	
		
			
				|  |  | +        me.setDisabledBandSelect([4, 5, 6]);
 | 
	
		
			
				|  |  |          // me.setDisabledBandSelect([]);
 | 
	
		
			
				|  |  |          me.refreshByNode(treeNode);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onTypeClick: function(event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +    onTypeClick: function (event, treeId, treeNode) {
 | 
	
		
			
				|  |  |          //选择预处理类型(排序、过滤。。。)
 | 
	
		
			
				|  |  |          let me = preHandleObj;
 | 
	
		
			
				|  |  |          if (me.currentNode) {
 | 
	
	
		
			
				|  | @@ -470,7 +471,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |              me.refreshByNode(me.currentNode);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onChangeDataMappingObj: function(dom, oprType) {
 | 
	
		
			
				|  |  | +    onChangeDataMappingObj: function (dom, oprType) {
 | 
	
		
			
				|  |  |          //更改(或选择)预处理环节中的 数据依据(就是说报表想预处理什么数据)
 | 
	
		
			
				|  |  |          let me = preHandleObj;
 | 
	
		
			
				|  |  |          if (oprType === "top") {
 | 
	
	
		
			
				|  | @@ -493,14 +494,14 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
 | 
	
		
			
				|  |  | +    onBeforeDrop: function (treeId, treeNodes, targetNode, moveType) {
 | 
	
		
			
				|  |  |          let rst = false;
 | 
	
		
			
				|  |  |          if (targetNode.level === 0 && moveType !== "inner") {
 | 
	
		
			
				|  |  |              rst = true;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onBeforeRemove: function(treeId, treeNode){
 | 
	
		
			
				|  |  | +    onBeforeRemove: function (treeId, treeNode) {
 | 
	
		
			
				|  |  |          let rst = true;
 | 
	
		
			
				|  |  |          if (treeNode.isParent) {
 | 
	
		
			
				|  |  |              rst = false;
 | 
	
	
		
			
				|  | @@ -509,14 +510,14 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addHoverDom: function(treeId, treeNode) {
 | 
	
		
			
				|  |  | +    addHoverDom: function (treeId, treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleObj, sObj = $("#" + treeNode.tId + "_span");
 | 
	
		
			
				|  |  | -        if ((treeNode.level > 0 && treeNode[JV.PROP_HANDLE_TYPE] !== JV.PROP_HANDLE_TYPE_FILTER) || ($("#addBtn_"+treeNode.tId).length > 0) ) return;
 | 
	
		
			
				|  |  | +        if ((treeNode.level > 0 && treeNode[JV.PROP_HANDLE_TYPE] !== JV.PROP_HANDLE_TYPE_FILTER) || ($("#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 btn = $("#addBtn_" + treeNode.tId);
 | 
	
		
			
				|  |  | +            if (btn) btn.bind("click", function () {
 | 
	
		
			
				|  |  |                  let newSubNodes = [];
 | 
	
		
			
				|  |  |                  let newNode = me.createNewNode(treeNode[JV.PROP_HANDLE_TYPE]);
 | 
	
		
			
				|  |  |                  newNode.Name = "子排序";
 | 
	
	
		
			
				|  | @@ -530,8 +531,8 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          } 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 btn = $("#addBtn_" + treeNode.tId);
 | 
	
		
			
				|  |  | +            if (btn) btn.bind("click", function () {
 | 
	
		
			
				|  |  |                  let newSubNodes = [];
 | 
	
		
			
				|  |  |                  let newNode = me.createNewNode(treeNode[JV.PROP_HANDLE_TYPE]);
 | 
	
		
			
				|  |  |                  newNode.Name = "子过滤";
 | 
	
	
		
			
				|  | @@ -547,7 +548,7 @@ let preHandleObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      removeHoverDom: function (treeId, treeNode) {
 | 
	
		
			
				|  |  | -        $("#addBtn_"+treeNode.tId).unbind().remove();
 | 
	
		
			
				|  |  | +        $("#addBtn_" + treeNode.tId).unbind().remove();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      extractTabFields: function (rptTpl) {
 | 
	
		
			
				|  |  |          let me = this, nodes = me.treeObj.getNodes();
 | 
	
	
		
			
				|  | @@ -598,16 +599,16 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |              case -1:
 | 
	
		
			
				|  |  |                  //unknown!
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 0 :
 | 
	
		
			
				|  |  | +            case 0:
 | 
	
		
			
				|  |  |                  //normal
 | 
	
		
			
				|  |  |                  let keys = [];
 | 
	
		
			
				|  |  |                  for (let sortKeyItem of src[JV.PROP_SORT_KEYS]) {
 | 
	
		
			
				|  |  | -                    let item = {key: sortKeyItem.key, order: sortKeyItem.order};
 | 
	
		
			
				|  |  | +                    let item = { key: sortKeyItem.key, order: sortKeyItem.order };
 | 
	
		
			
				|  |  |                      keys.push(item);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  dest[JV.PROP_SORT_KEYS] = keys;
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 1 :
 | 
	
		
			
				|  |  | +            case 1:
 | 
	
		
			
				|  |  |                  //tree
 | 
	
		
			
				|  |  |                  let billKeys = [];
 | 
	
		
			
				|  |  |                  if (src[JV.PROP_FILTER_TOP_BILLS_NODES] && src[JV.PROP_FILTER_TOP_BILLS_NODES].length > 0) {
 | 
	
	
		
			
				|  | @@ -620,7 +621,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  dest[JV.PROP_FILTER_OTHER_BILLS_NODES] = otherBillKeys;
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 2 :
 | 
	
		
			
				|  |  | +            case 2:
 | 
	
		
			
				|  |  |                  //according to parent
 | 
	
		
			
				|  |  |                  dest[JV.PROP_PARENT_CHILD_SORT_KEY] = {};
 | 
	
		
			
				|  |  |                  dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY] = src[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY];
 | 
	
	
		
			
				|  | @@ -636,14 +637,14 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                  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 destSubSort = {Name: "子排序"};
 | 
	
		
			
				|  |  | +                        let destSubSort = { Name: "子排序" };
 | 
	
		
			
				|  |  |                          me.copyNode(subSort, destSubSort);
 | 
	
		
			
				|  |  |                          destSubSort[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY];
 | 
	
		
			
				|  |  |                          dest.items.push(destSubSort);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 3 :
 | 
	
		
			
				|  |  | +            case 3:
 | 
	
		
			
				|  |  |                  //self define
 | 
	
		
			
				|  |  |                  dest[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC] = src[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC];
 | 
	
		
			
				|  |  |                  break;
 | 
	
	
		
			
				|  | @@ -663,7 +664,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                  case -1:
 | 
	
		
			
				|  |  |                      //unknown!
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  | -                case 0 :
 | 
	
		
			
				|  |  | +                case 0:
 | 
	
		
			
				|  |  |                      //normal
 | 
	
		
			
				|  |  |                      $("#div_sort_type_normal")[0].style.display = "";
 | 
	
		
			
				|  |  |                      idx = pre_handle_data_objects.indexOf(preHandleObj.currentNode[JV.PROP_DATA_KEY]);
 | 
	
	
		
			
				|  | @@ -678,7 +679,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  | -                case 1 :
 | 
	
		
			
				|  |  | +                case 1:
 | 
	
		
			
				|  |  |                      //tree
 | 
	
		
			
				|  |  |                      //tree排序是我们特有的数据结构方式,与数据结构有关,非common用
 | 
	
		
			
				|  |  |                      $("#div_sort_tree")[0].style.display = "";
 | 
	
	
		
			
				|  | @@ -711,7 +712,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                          preHandleObj.currentNode[JV.PROP_FILTER_OTHER_BILLS_NODES] = [];
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  | -                case 2 :
 | 
	
		
			
				|  |  | +                case 2:
 | 
	
		
			
				|  |  |                      //according to parent
 | 
	
		
			
				|  |  |                      $("#div_sort_type_according_to_parent")[0].style.display = "";
 | 
	
		
			
				|  |  |                      $("#div_sort_type_parent_data")[0].style.display = "";
 | 
	
	
		
			
				|  | @@ -724,7 +725,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                      me.childTreeObj = $.fn.zTree.init($("#child_sorting_keys"), sortingKeysSetting, exposed_properties_arr[idx]);
 | 
	
		
			
				|  |  |                      me.checkupNode(preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS], me.childTreeObj);
 | 
	
		
			
				|  |  |                      break;
 | 
	
		
			
				|  |  | -                case 3 :
 | 
	
		
			
				|  |  | +                case 3:
 | 
	
		
			
				|  |  |                      //self define
 | 
	
		
			
				|  |  |                      $("#div_sort_self_define")[0].style.display = "";
 | 
	
		
			
				|  |  |                      $("#selfDefineSort")[0].value = preHandleObj.currentNode[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC];
 | 
	
	
		
			
				|  | @@ -734,7 +735,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    checkupNode: function(keysArr, treeObj) {
 | 
	
		
			
				|  |  | +    checkupNode: function (keysArr, treeObj) {
 | 
	
		
			
				|  |  |          let nodes = treeObj.getNodes();
 | 
	
		
			
				|  |  |          for (let key of keysArr) {
 | 
	
		
			
				|  |  |              for (let node of nodes) {
 | 
	
	
		
			
				|  | @@ -745,7 +746,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onCheck: function(event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +    onCheck: function (event, treeId, treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleSortObj;
 | 
	
		
			
				|  |  |          if (treeId.indexOf("parent_sorting_keys") >= 0) {
 | 
	
		
			
				|  |  |              me.resetParentSort();
 | 
	
	
		
			
				|  | @@ -755,7 +756,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |              me.resetNormalSort();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onTopBillsNodeCheck: function (event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +    onTopBillsNodeCheck: function (event, treeId, treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleSortObj;
 | 
	
		
			
				|  |  |          if (treeNode.checked) {
 | 
	
		
			
				|  |  |              if (preHandleObj.currentNode[JV.PROP_FILTER_TOP_BILLS_NODES].indexOf(treeNode.Value) < 0) {
 | 
	
	
		
			
				|  | @@ -768,7 +769,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onOtherBillsNodeCheck: function (event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +    onOtherBillsNodeCheck: function (event, treeId, treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleSortObj;
 | 
	
		
			
				|  |  |          if (treeNode.checked) {
 | 
	
		
			
				|  |  |              if (preHandleObj.currentNode[JV.PROP_FILTER_OTHER_BILLS_NODES].indexOf(treeNode.Value) < 0) {
 | 
	
	
		
			
				|  | @@ -799,29 +800,29 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS] = sortKeys;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    resetNormalSort: function() {
 | 
	
		
			
				|  |  | +    resetNormalSort: function () {
 | 
	
		
			
				|  |  |          let me = preHandleSortObj;
 | 
	
		
			
				|  |  |          let nodes = me.normalTreeObj.getCheckedNodes();
 | 
	
		
			
				|  |  |          let normalSortKeys = [];
 | 
	
		
			
				|  |  |          for (let node of nodes) {
 | 
	
		
			
				|  |  | -            let keyObj = {key: node.Key, order: node.Order};
 | 
	
		
			
				|  |  | +            let keyObj = { key: node.Key, order: node.Order };
 | 
	
		
			
				|  |  |              normalSortKeys.push(keyObj);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          preHandleObj.currentNode[JV.PROP_SORT_KEYS] = normalSortKeys;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addDiyDom: function(treeId,treeNode) {
 | 
	
		
			
				|  |  | +    addDiyDom: function (treeId, treeNode) {
 | 
	
		
			
				|  |  |          let aObj = $("#" + treeNode.tId + IDMark_A);
 | 
	
		
			
				|  |  | -        let editStr = "<select class='selDemo' id='diySelect_" +treeNode.tId+ "'><option value='ascend'>升序 </option><option value='descend'>降序 </option></select>";
 | 
	
		
			
				|  |  | +        let editStr = "<select class='selDemo' id='diySelect_" + treeNode.tId + "'><option value='ascend'>升序 </option><option value='descend'>降序 </option></select>";
 | 
	
		
			
				|  |  |          aObj.after(editStr);
 | 
	
		
			
				|  |  |          let sel = $("#diySelect_" + treeNode.tId);
 | 
	
		
			
				|  |  |          if (sel) {
 | 
	
		
			
				|  |  | -            sel.bind("change", function(){
 | 
	
		
			
				|  |  | +            sel.bind("change", function () {
 | 
	
		
			
				|  |  |                  treeNode.Order = sel[0].value;
 | 
	
		
			
				|  |  |                  preHandleSortObj.resetNormalSort();
 | 
	
		
			
				|  |  |              });
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onSortTypeChange: function(dom) {
 | 
	
		
			
				|  |  | +    onSortTypeChange: function (dom) {
 | 
	
		
			
				|  |  |          //排序类型的选择/更改
 | 
	
		
			
				|  |  |          let me = preHandleObj;
 | 
	
		
			
				|  |  |          me.hide_all_dom();
 | 
	
	
		
			
				|  | @@ -868,16 +869,16 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |              case -1:
 | 
	
		
			
				|  |  |                  //unknown!
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 0 :
 | 
	
		
			
				|  |  | +            case 0:
 | 
	
		
			
				|  |  |                  //normal
 | 
	
		
			
				|  |  |                  rst[JV.PROP_SORT_KEYS] = handleObj[JV.PROP_SORT_KEYS];
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 1 :
 | 
	
		
			
				|  |  | +            case 1:
 | 
	
		
			
				|  |  |                  //tree
 | 
	
		
			
				|  |  |                  rst[JV.PROP_FILTER_TOP_BILLS_NODES] = handleObj[JV.PROP_FILTER_TOP_BILLS_NODES];
 | 
	
		
			
				|  |  |                  rst[JV.PROP_FILTER_OTHER_BILLS_NODES] = handleObj[JV.PROP_FILTER_OTHER_BILLS_NODES];
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 2 :
 | 
	
		
			
				|  |  | +            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] = [];
 | 
	
	
		
			
				|  | @@ -892,7 +893,7 @@ let preHandleSortObj = {
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  break;
 | 
	
		
			
				|  |  | -            case 3 :
 | 
	
		
			
				|  |  | +            case 3:
 | 
	
		
			
				|  |  |                  //self define
 | 
	
		
			
				|  |  |                  rst[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC] = handleObj[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC];
 | 
	
		
			
				|  |  |                  break;
 | 
	
	
		
			
				|  | @@ -908,7 +909,7 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |      copyNode: function (src, dest) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj, keys = [];
 | 
	
		
			
				|  |  |          for (let filterItem of src[JV.PROP_FILTER_KEYS]) {
 | 
	
		
			
				|  |  | -            let item = {key: filterItem.key};
 | 
	
		
			
				|  |  | +            let item = { key: filterItem.key };
 | 
	
		
			
				|  |  |              item[JV.PROP_FILTER_CONDITION] = filterItem[JV.PROP_FILTER_CONDITION];
 | 
	
		
			
				|  |  |              item[JV.PROP_FILTER_COMPARE_VAL] = filterItem[JV.PROP_FILTER_COMPARE_VAL];
 | 
	
		
			
				|  |  |              if (filterItem[JV.PROP_FILTER_COMPARE_OBJ]) {
 | 
	
	
		
			
				|  | @@ -924,7 +925,7 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          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: "子过滤", Title: ""};
 | 
	
		
			
				|  |  | +                let dtlRst = { Name: "子过滤", Title: "" };
 | 
	
		
			
				|  |  |                  subFilter[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY];
 | 
	
		
			
				|  |  |                  me.copyNode(subFilter, dtlRst);
 | 
	
		
			
				|  |  |                  dtlRst[JV.PROP_HANDLE_TYPE] = src[JV.PROP_HANDLE_TYPE];
 | 
	
	
		
			
				|  | @@ -991,16 +992,16 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    onCheck: function(event,treeId,treeNode) {
 | 
	
		
			
				|  |  | +    onCheck: function (event, treeId, treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj;
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    resetFilter: function() {
 | 
	
		
			
				|  |  | +    resetFilter: function () {
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          let nodes = me.treeObj.getCheckedNodes();
 | 
	
		
			
				|  |  |          let normalSortKeys = [];
 | 
	
		
			
				|  |  |          for (let node of nodes) {
 | 
	
		
			
				|  |  | -            let keyObj = {key: node.Key};
 | 
	
		
			
				|  |  | +            let keyObj = { key: node.Key };
 | 
	
		
			
				|  |  |              if (!node[JV.PROP_FILTER_CONDITION]) {
 | 
	
		
			
				|  |  |                  node[JV.PROP_FILTER_CONDITION] = "==";
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -1014,7 +1015,7 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          preHandleObj.currentNode[JV.PROP_FILTER_KEYS] = normalSortKeys;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    build_filter_handle_data_selection_str: function(treeId,treeNode) {
 | 
	
		
			
				|  |  | +    build_filter_handle_data_selection_str: function (treeId, treeNode) {
 | 
	
		
			
				|  |  |          let rst = [];
 | 
	
		
			
				|  |  |          rst.push("<select class='selDemo' id='diyDataSelect_" + treeNode.tId + "'>");
 | 
	
		
			
				|  |  |          rst.push("<option value='empty'>无</option>");
 | 
	
	
		
			
				|  | @@ -1024,13 +1025,13 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          rst.push("</select>");
 | 
	
		
			
				|  |  |          return rst.join("");
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    build_filter_handle_data_detail_selection_str: function(treeId,treeNode) {
 | 
	
		
			
				|  |  | +    build_filter_handle_data_detail_selection_str: function (treeId, treeNode) {
 | 
	
		
			
				|  |  |          let rst = [];
 | 
	
		
			
				|  |  |          rst.push("<select class='selDemo' id='diyDataDetailSelect_" + treeNode.tId + "'>");
 | 
	
		
			
				|  |  |          rst.push("</select>");
 | 
	
		
			
				|  |  |          return rst.join("");
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    build_individual_filter_selection_str: function (individualTypes,treeNode) {
 | 
	
		
			
				|  |  | +    build_individual_filter_selection_str: function (individualTypes, treeNode) {
 | 
	
		
			
				|  |  |          let rst = [];
 | 
	
		
			
				|  |  |          rst.push("<select class='selDemo' id='diyDataDetailSelect_" + treeNode.tId + "'>");
 | 
	
		
			
				|  |  |          for (let i = 0; i < individualTypes.length; i++) {
 | 
	
	
		
			
				|  | @@ -1039,7 +1040,7 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          rst.push("</select>");
 | 
	
		
			
				|  |  |          return rst.join("");
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    addDiyDom: function(treeId,treeNode) {
 | 
	
		
			
				|  |  | +    addDiyDom: function (treeId, treeNode) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj;
 | 
	
		
			
				|  |  |          let aObj = $("#" + treeNode.tId + IDMark_A);
 | 
	
		
			
				|  |  |          if (treeNode.hasOwnProperty("isBoolean")) {
 | 
	
	
		
			
				|  | @@ -1070,9 +1071,9 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              //注意:这是后面的DOM先生成
 | 
	
		
			
				|  |  | -            let dataDtlSelStr = me.build_filter_handle_data_detail_selection_str(treeId,treeNode);
 | 
	
		
			
				|  |  | +            let dataDtlSelStr = me.build_filter_handle_data_detail_selection_str(treeId, treeNode);
 | 
	
		
			
				|  |  |              aObj.after(dataDtlSelStr);
 | 
	
		
			
				|  |  | -            let dataSelStr = me.build_filter_handle_data_selection_str(treeId,treeNode);
 | 
	
		
			
				|  |  | +            let dataSelStr = me.build_filter_handle_data_selection_str(treeId, treeNode);
 | 
	
		
			
				|  |  |              aObj.after(dataSelStr);
 | 
	
		
			
				|  |  |              let editStr = "<input type='text' id='diyInput_" + treeNode.tId + "' width='10'/>";
 | 
	
		
			
				|  |  |              aObj.after(editStr);
 | 
	
	
		
			
				|  | @@ -1114,13 +1115,13 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          //注:这里虽然是boolean选项,但实际有可能是0,1的选择(非true,false),所以需要设置node节点的booleanOptions
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    filterConditionChange: function(event) {
 | 
	
		
			
				|  |  | +    filterConditionChange: function (event) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(10);
 | 
	
		
			
				|  |  |          let node = me.treeObj.getNodeByTId(tId);
 | 
	
		
			
				|  |  |          node[JV.PROP_FILTER_CONDITION] = sel.value;
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    private_setup_compare_obj: function(dom) {
 | 
	
		
			
				|  |  | +    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;
 | 
	
	
		
			
				|  | @@ -1139,12 +1140,12 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |              node[JV.PROP_FILTER_COMPARE_OBJ_KEY] = null;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    filterCompareObjChange: function(event) {
 | 
	
		
			
				|  |  | +    filterCompareObjChange: function (event) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj, sel = event.currentTarget;
 | 
	
		
			
				|  |  |          me.private_setup_compare_obj(sel);
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    filterIndividualCompareObjKeyChange: function(event) {
 | 
	
		
			
				|  |  | +    filterIndividualCompareObjKeyChange: function (event) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(20);
 | 
	
		
			
				|  |  |          let inTxt = $("#diyInput_" + tId);
 | 
	
		
			
				|  |  |          if (inTxt) {
 | 
	
	
		
			
				|  | @@ -1154,7 +1155,7 @@ let preHandleFilterObj = {
 | 
	
		
			
				|  |  |          node[JV.PROP_FILTER_COMPARE_VAL] = sel.value;
 | 
	
		
			
				|  |  |          me.resetFilter();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    filterCompareObjKeyChange: function(event) {
 | 
	
		
			
				|  |  | +    filterCompareObjKeyChange: function (event) {
 | 
	
		
			
				|  |  |          let me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(20);
 | 
	
		
			
				|  |  |          let node = me.treeObj.getNodeByTId(tId);
 | 
	
		
			
				|  |  |          node[JV.PROP_FILTER_COMPARE_OBJ_KEY] = sel.value;
 |