|
@@ -4,88 +4,124 @@
|
|
|
|
|
|
const sort_types = ["normal", "tree", "accord_to_parent", "self_define"];
|
|
const sort_types = ["normal", "tree", "accord_to_parent", "self_define"];
|
|
const condition_types = ["==", "===", ">", ">=", "<", "<=", "!=", "in", "not in"];
|
|
const condition_types = ["==", "===", ">", ">=", "<", "<=", "!=", "in", "not in"];
|
|
-const pre_handle_data_objects = ["bills", "ration", "ration_glj"];
|
|
|
|
-const pre_handle_data_objects_name = ["清单", "定额", "定额工料机"];
|
|
|
|
|
|
+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}
|
|
|
|
+];
|
|
|
|
+//三材类别
|
|
|
|
+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}
|
|
|
|
+];
|
|
|
|
+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: "普通机械(301)", Title: "", Value: 301},
|
|
|
|
+ {Name: "机械组成物(302)", Title: "", Value: 302},
|
|
|
|
+ {Name: "机上人工(303)", Value: 303},
|
|
|
|
+ {Name: "主材(4)", Title: "", Value: 4},
|
|
|
|
+ {Name: "设备(5)", Title: "", Value: 5}
|
|
|
|
+];
|
|
|
|
+const fixed_top_bills_nodes = [
|
|
|
|
+ {Name: "分部分项工程(1)", Title: "", Value: 1}
|
|
|
|
+ ,{Name: "措施项目(2)", Title: "", Value: 2}
|
|
|
|
+ ,{Name: "其他项目(7)", Title: "", Value: 7}
|
|
|
|
+ ,{Name: "规费(15)", Title: "", Value: 15}
|
|
|
|
+ ,{Name: "税金(18)", Title: "", Value: 18}
|
|
|
|
+ ,{Name: "工程造价(19)", Title: "", Value: 19}
|
|
|
|
+];
|
|
|
|
+const fixed_other_bills_types = [
|
|
|
|
+ {Name: "施工技术措施项目(3)", Title: "", Value: 3}
|
|
|
|
+ ,{Name: "安全文明施工按实计算费用(4)", Title: "", Value: 4}
|
|
|
|
+ ,{Name: "施工组织措施专项费用(5)", Title: "", Value: 5}
|
|
|
|
+ ,{Name: "安全文明施工专项费用(6)", Title: "", Value: 6}
|
|
|
|
+ ,{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: "索赔与现场签证(14)", Title: "", Value: 14}
|
|
|
|
+ ,{Name: "社会保险费及住房公积金(16)", Title: "", Value: 16}
|
|
|
|
+ ,{Name: "工程排污费(17)", Title: "", Value: 17}
|
|
|
|
+];
|
|
|
|
+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: "索赔与现场签证(14)", Title: "", Value: 14},
|
|
|
|
+ {Name: "规费(15)", Title: "", Value: 15},
|
|
|
|
+ {Name: "社会保险费及住房公积金(16)", Title: "", Value: 16},
|
|
|
|
+ {Name: "工程排污费(17)", Title: "", Value: 17},
|
|
|
|
+ {Name: "税金(18)", Title: "", Value: 18},
|
|
|
|
+ {Name: "工程造价(19)", Title: "", Value: 19}
|
|
|
|
+];
|
|
|
|
+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},
|
|
|
|
+];
|
|
const exposed_bills_properties = [
|
|
const exposed_bills_properties = [
|
|
{Name: "清单_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
|
|
{Name: "清单_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
|
|
,{Name: "清单_ID", Title: "", Key: "ID", 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: "treeLevel", Order: "ascend"}
|
|
- ,{Name: "清单_标记", Title: "", Key: "flags.flag", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_项目编码", Title: "", Key: "code", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_项目名称", Title: "", Key: "name", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_项目特征", Title: "", Key: "itemCharacterText", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_计量单位", Title: "", Key: "unit", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_工程量", Title: "", Key: "quantity", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_综合单价", Title: "", Key: "unitFee", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_综合合价", Title: "", Key: "totalFee", Order: "ascend"}
|
|
|
|
- // ,{Name: "清单_暂估价", Title: "", Key: "tenderUnitFee", Order: "ascend"}
|
|
|
|
|
|
+ ,{Name: "清单_类别", Title: "", Key: "type", Order: "ascend", individualType: fixed_bills_types}
|
|
|
|
+ ,{Name: "清单_标记", Title: "", Key: "flags.flag", Order: "ascend", individualType: fixed_bills_flags}
|
|
];
|
|
];
|
|
const exposed_ration_properties = [
|
|
const exposed_ration_properties = [
|
|
{Name: "定额_工程内部ID", Title: "", Key: "ID", Order: "ascend"}
|
|
{Name: "定额_工程内部ID", Title: "", Key: "ID", Order: "ascend"}
|
|
,{Name: "定额_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
|
|
,{Name: "定额_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
|
|
,{Name: "定额_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend"}
|
|
,{Name: "定额_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend"}
|
|
,{Name: "定额_清单内顺序", Title: "", Key: "serialNo", Order: "ascend"}
|
|
,{Name: "定额_清单内顺序", Title: "", Key: "serialNo", Order: "ascend"}
|
|
- // ,{Name: "定额_编号", Title: "", Key: "code", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_项目名称", Title: "", Key: "caption", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_单位", Title: "", Key: "unit", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_数量", Title: "", Key: "quantity", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_人工费", Title: "", Key: "labour", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_材料费", Title: "", Key: "material", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_机械费", Title: "", Key: "machine", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_机上人工费", Title: "", Key: "machineLabour", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_人工费调整", Title: "", Key: "adjustLabour", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_材料费调整", Title: "", Key: "'adjustMaterial'", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_机械费调整", Title: "", Key: "adjustMachine", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_机上人工费调整", Title: "", Key: "adjustMachineLabour", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_人工价差", Title: "", Key: "labourDiff", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_材料价差", Title: "", Key: "materialDiff", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_机械价差", Title: "", Key: "machineDiff", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_风险费用", Title: "", Key: "risk", Order: "ascend"}
|
|
|
|
- // ,{Name: "定额_管理费率", Title: "", Key: ""}
|
|
|
|
];
|
|
];
|
|
-const exposed_prj_glj_properties = [
|
|
|
|
- {Name: "工料机_ID", Title: "", Key: "ID"},
|
|
|
|
- {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: "name", Order: "ascend"},
|
|
|
|
- // {Name: "工料机_单位", Title: "", Key: "unit", Order: "ascend"},
|
|
|
|
- // {Name: "工料机_数量", Title: "", Key: "quantity", Order: "ascend"}
|
|
|
|
-];
|
|
|
|
-const exposed_properties_arr = [exposed_bills_properties, exposed_ration_properties, exposed_prj_glj_properties];
|
|
|
|
-const fixed_top_bills_nodes = [
|
|
|
|
- {Name: "分部分项工程", Title: "", Value: 1},
|
|
|
|
- {Name: "措施项目", Title: "", Value: 2},
|
|
|
|
- {Name: "其他项目", Title: "", Value: 7},
|
|
|
|
- {Name: "规费", Title: "", Value: 15},
|
|
|
|
- {Name: "税金", Title: "", Value: 18},
|
|
|
|
- {Name: "工程造价", Title: "", Value: 19}
|
|
|
|
|
|
+const exposed_ration_glj_properties = [
|
|
|
|
+ {Name: "定额人材机_ID", Title: "", Key: "ID"}
|
|
|
|
+ ,{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: "ref_join(projectGLJID,projectGLJ,id).is_evaluate", 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 fixed_other_bills_types = [
|
|
|
|
- {Name: "施工技术措施项目", Title: "", Value: 3},
|
|
|
|
- {Name: "安全文明施工按实计算费用", Title: "", Value: 4},
|
|
|
|
- {Name: "施工组织措施专项费用", Title: "", Value: 5},
|
|
|
|
- {Name: "安全文明施工专项费用", Title: "", Value: 6},
|
|
|
|
- {Name: "暂列金额", Title: "", Value: 8},
|
|
|
|
- {Name: "暂估价", Title: "", Value: 9},
|
|
|
|
- {Name: "材料(工程设备)暂估价", Title: "", Value: 10},
|
|
|
|
- {Name: "专业工程暂估价", Title: "", Value: 11},
|
|
|
|
- {Name: "计日工", Title: "", Value: 12},
|
|
|
|
- {Name: "总承包服务费", Title: "", Value: 13},
|
|
|
|
- {Name: "索赔与现场签证", Title: "", Value: 14},
|
|
|
|
- {Name: "社会保险费及住房公积金", Title: "", Value: 16},
|
|
|
|
- {Name: "工程排污费", Title: "", Value: 17}
|
|
|
|
|
|
+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: "supply", Order: "ascend", individualType: fixed_supply_types}
|
|
|
|
+ ,{Name: "项目人材机_三材类别", Title: "", Key: "materialType", Order: "ascend", individualType: fixed_material_types}
|
|
];
|
|
];
|
|
-const IDMark_Switch = "_switch",
|
|
|
|
- IDMark_Icon = "_ico",
|
|
|
|
- IDMark_Span = "_span",
|
|
|
|
- IDMark_Input = "_input",
|
|
|
|
- IDMark_Check = "_check",
|
|
|
|
- IDMark_Edit = "_edit",
|
|
|
|
- IDMark_Remove = "_remove",
|
|
|
|
- IDMark_Ul = "_ul",
|
|
|
|
- IDMark_A = "_a";
|
|
|
|
|
|
+const exposed_properties_arr = [exposed_bills_properties, exposed_ration_properties, exposed_ration_glj_properties, exposed_prj_glj_properties];
|
|
|
|
|
|
let preHandleObj = {
|
|
let preHandleObj = {
|
|
treeObj: null,
|
|
treeObj: null,
|
|
@@ -141,34 +177,38 @@ let preHandleObj = {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- addNewNode: function(nodeType) {
|
|
|
|
- let me = this, item = null, preHandleType = nodeType;
|
|
|
|
|
|
+ createNewNode: function (nodeType) {
|
|
|
|
+ let rst = null, preHandleType = nodeType;
|
|
if (!nodeType) {
|
|
if (!nodeType) {
|
|
preHandleType = JV.PROP_HANDLE_TYPE_SORT;
|
|
preHandleType = JV.PROP_HANDLE_TYPE_SORT;
|
|
}
|
|
}
|
|
switch (nodeType) {
|
|
switch (nodeType) {
|
|
case JV.PROP_HANDLE_TYPE_SORT:
|
|
case JV.PROP_HANDLE_TYPE_SORT:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "排序方式": "normal", "排序键值集":[]};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "排序方式": "normal", "排序键值集":[]};
|
|
break;
|
|
break;
|
|
case JV.PROP_HANDLE_TYPE_FILTER:
|
|
case JV.PROP_HANDLE_TYPE_FILTER:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "过滤键值集": []};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "过滤键值集": []};
|
|
break;
|
|
break;
|
|
case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
|
|
case JV.PROP_HANDLE_TYPE_BILLS_DATA_MOVE:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "ration", "预处理类型": preHandleType};
|
|
break;
|
|
break;
|
|
case JV.PROP_HANDLE_TYPE_SUM:
|
|
case JV.PROP_HANDLE_TYPE_SUM:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集":[]};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "分组键值集": [], "统计键值集":[]};
|
|
break;
|
|
break;
|
|
case JV.PROP_HANDLE_TYPE_ADJUST:
|
|
case JV.PROP_HANDLE_TYPE_ADJUST:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "数据调整集":[]};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "数据调整集":[]};
|
|
break;
|
|
break;
|
|
case JV.PROP_HANDLE_TYPE_ADD_DUMMY:
|
|
case JV.PROP_HANDLE_TYPE_ADD_DUMMY:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "Dummy数据集":[]};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": preHandleType, "Dummy数据集":[]};
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- item = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": "排序", "排序方式": "normal", "排序键值集":[]};
|
|
|
|
|
|
+ rst = {Name: "预处理环节", Title: "", "映射数据对象": "bills", "预处理类型": "排序", "排序方式": "normal", "排序键值集":[]};
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ return rst;
|
|
|
|
+ },
|
|
|
|
+ addNewNode: function(nodeType) {
|
|
|
|
+ let me = this, item = me.createNewNode(nodeType);
|
|
me.private_set_title(item);
|
|
me.private_set_title(item);
|
|
me.treeObj.addNodes(null, -1, [item], true);
|
|
me.treeObj.addNodes(null, -1, [item], true);
|
|
},
|
|
},
|
|
@@ -311,8 +351,22 @@ let preHandleObj = {
|
|
preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY] = dom.value;
|
|
preHandleObj.currentNode[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_DATA_KEY] = dom.value;
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ onBeforeDrag: function (treeId, treeNodes) {
|
|
|
|
+ let rst = true;
|
|
|
|
+ for (let node of treeNodes) {
|
|
|
|
+ if (node.level > 0) {
|
|
|
|
+ rst = false;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ 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;
|
|
let rst = true;
|
|
@@ -323,6 +377,46 @@ let preHandleObj = {
|
|
}
|
|
}
|
|
return rst;
|
|
return rst;
|
|
},
|
|
},
|
|
|
|
+ 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[JV.PROP_HANDLE_TYPE] === JV.PROP_HANDLE_TYPE_SORT && treeNode[JV.PROP_SORT_TYPE] === "accord_to_parent") {
|
|
|
|
+ let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子排序' onfocus='this.blur();'></span>";
|
|
|
|
+ sObj.after(addStr);
|
|
|
|
+ let btn = $("#addBtn_"+treeNode.tId);
|
|
|
|
+ if (btn) btn.bind("click", function(){
|
|
|
|
+ let newSubNodes = [];
|
|
|
|
+ let newNode = me.createNewNode(treeNode[JV.PROP_HANDLE_TYPE]);
|
|
|
|
+ newNode.Name = "子排序";
|
|
|
|
+ newNode[JV.PROP_DATA_KEY] = treeNode[JV.PROP_DATA_KEY];
|
|
|
|
+ me.private_set_title(newNode);
|
|
|
|
+ newSubNodes.push(newNode);
|
|
|
|
+ treeNode.isParent = true;
|
|
|
|
+ me.treeObj.addNodes(treeNode, -1, newSubNodes, true);
|
|
|
|
+ me.treeObj.expandNode(treeNode, true, false);
|
|
|
|
+ });
|
|
|
|
+ } else if (treeNode[JV.PROP_HANDLE_TYPE] === JV.PROP_HANDLE_TYPE_FILTER) {
|
|
|
|
+ let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子过滤' onfocus='this.blur();'></span>";
|
|
|
|
+ sObj.after(addStr);
|
|
|
|
+ let btn = $("#addBtn_"+treeNode.tId);
|
|
|
|
+ if (btn) btn.bind("click", function(){
|
|
|
|
+ let newSubNodes = [];
|
|
|
|
+ let newNode = me.createNewNode(treeNode[JV.PROP_HANDLE_TYPE]);
|
|
|
|
+ newNode.Name = "子过滤";
|
|
|
|
+ newNode[JV.PROP_DATA_KEY] = treeNode[JV.PROP_DATA_KEY];
|
|
|
|
+ newNode.Title = "";
|
|
|
|
+ newNode[JV.PROP_HANDLE_TYPE] = JV.PROP_HANDLE_TYPE_FILTER;
|
|
|
|
+ // me.private_set_title(newNode);
|
|
|
|
+ newSubNodes.push(newNode);
|
|
|
|
+ treeNode.isParent = true;
|
|
|
|
+ me.treeObj.addNodes(treeNode, -1, newSubNodes, true);
|
|
|
|
+ me.treeObj.expandNode(treeNode, true, false);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ removeHoverDom: function (treeId, treeNode) {
|
|
|
|
+ $("#addBtn_"+treeNode.tId).unbind().remove();
|
|
|
|
+ },
|
|
extractTabFields: function (rptTpl) {
|
|
extractTabFields: function (rptTpl) {
|
|
let me = this, nodes = me.treeObj.getNodes();
|
|
let me = this, nodes = me.treeObj.getNodes();
|
|
let rst = [];
|
|
let rst = [];
|
|
@@ -360,6 +454,7 @@ let preHandleSortObj = {
|
|
topBillsTreeObj: null,
|
|
topBillsTreeObj: null,
|
|
otherBillsTreeObj: null,
|
|
otherBillsTreeObj: null,
|
|
copyNode: function (src, dest) {
|
|
copyNode: function (src, dest) {
|
|
|
|
+ let me = preHandleSortObj;
|
|
dest[JV.PROP_SORT_TYPE] = src[JV.PROP_SORT_TYPE];
|
|
dest[JV.PROP_SORT_TYPE] = src[JV.PROP_SORT_TYPE];
|
|
switch (sort_types.indexOf(src[JV.PROP_SORT_TYPE])) {
|
|
switch (sort_types.indexOf(src[JV.PROP_SORT_TYPE])) {
|
|
case -1:
|
|
case -1:
|
|
@@ -390,7 +485,6 @@ let preHandleSortObj = {
|
|
case 2 :
|
|
case 2 :
|
|
//according to parent
|
|
//according to parent
|
|
dest[JV.PROP_PARENT_CHILD_SORT_KEY] = {};
|
|
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_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] = [];
|
|
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]) {
|
|
for (let item of src[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_PARENT_SORT_KEYS]) {
|
|
@@ -400,19 +494,14 @@ let preHandleSortObj = {
|
|
for (let item of src[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);
|
|
dest[JV.PROP_PARENT_CHILD_SORT_KEY][JV.PROP_CHILD_SORT_KEYS].push(item);
|
|
}
|
|
}
|
|
|
|
+ dest[JV.PROP_OTHER_SUB_SORT] = [];
|
|
if (src[JV.PROP_OTHER_SUB_SORT] !== null && src[JV.PROP_OTHER_SUB_SORT] !== undefined) {
|
|
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]) {
|
|
for (let subSort of src[JV.PROP_OTHER_SUB_SORT]) {
|
|
- let st = {};
|
|
|
|
- st[JV.PROP_SORT_TYPE] = subSort[JV.PROP_SORT_TYPE];
|
|
|
|
- if (subSort[JV.PROP_SORT_TYPE] === "normal") {
|
|
|
|
- st[JV.PROP_SORT_KEYS] = [];
|
|
|
|
- for (let item of subSort[JV.PROP_SORT_KEYS]) {
|
|
|
|
- let di = {key: item.key, order: item.order};
|
|
|
|
- st[JV.PROP_SORT_KEYS].push(di);
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- //其他暂时不实现,目前没那么复杂
|
|
|
|
- }
|
|
|
|
|
|
+ let destSubSort = {Name: "子排序"};
|
|
|
|
+ me.copyNode(subSort, destSubSort);
|
|
|
|
+ destSubSort[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY];
|
|
|
|
+ dest.items.push(destSubSort);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -639,6 +728,17 @@ let preHandleSortObj = {
|
|
case 2 :
|
|
case 2 :
|
|
//according to parent
|
|
//according to parent
|
|
rst[JV.PROP_PARENT_CHILD_SORT_KEY] = handleObj[JV.PROP_PARENT_CHILD_SORT_KEY];
|
|
rst[JV.PROP_PARENT_CHILD_SORT_KEY] = handleObj[JV.PROP_PARENT_CHILD_SORT_KEY];
|
|
|
|
+ rst[JV.PROP_OTHER_SUB_SORT] = [];
|
|
|
|
+ if (handleObj.items && handleObj.items.length > 0) {
|
|
|
|
+ for (let subSort of handleObj.items) {
|
|
|
|
+ let dtlRst = {};
|
|
|
|
+ me.copyNode(subSort, dtlRst);
|
|
|
|
+ delete dtlRst.Name;
|
|
|
|
+ delete dtlRst.PROP_DATA_KEY;
|
|
|
|
+ rst[JV.PROP_OTHER_SUB_SORT].push(dtlRst);
|
|
|
|
+ dtlRst = null;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
case 3 :
|
|
case 3 :
|
|
//self define
|
|
//self define
|
|
@@ -653,7 +753,7 @@ let preHandleSortObj = {
|
|
let preHandleFilterObj = {
|
|
let preHandleFilterObj = {
|
|
treeObj: null,
|
|
treeObj: null,
|
|
copyNode: function (src, dest) {
|
|
copyNode: function (src, dest) {
|
|
- let keys = [];
|
|
|
|
|
|
+ let me = preHandleFilterObj, keys = [];
|
|
for (let filterItem of src[JV.PROP_FILTER_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_CONDITION] = filterItem[JV.PROP_FILTER_CONDITION];
|
|
@@ -664,7 +764,21 @@ let preHandleFilterObj = {
|
|
}
|
|
}
|
|
keys.push(item);
|
|
keys.push(item);
|
|
}
|
|
}
|
|
|
|
+ dest[JV.PROP_HANDLE_TYPE] = src[JV.PROP_HANDLE_TYPE];
|
|
|
|
+ dest[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY];
|
|
dest[JV.PROP_FILTER_KEYS] = keys;
|
|
dest[JV.PROP_FILTER_KEYS] = keys;
|
|
|
|
+
|
|
|
|
+ if (src[JV.PROP_OTHER_SUB_FILTER] && src[JV.PROP_OTHER_SUB_FILTER].length > 0) {
|
|
|
|
+ dest.items = [];
|
|
|
|
+ for (let subFilter of src[JV.PROP_OTHER_SUB_FILTER]) {
|
|
|
|
+ let dtlRst = {Name: "子过滤", 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];
|
|
|
|
+ dtlRst[JV.PROP_DATA_KEY] = src[JV.PROP_DATA_KEY];
|
|
|
|
+ dest.items.push(dtlRst);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
refresh_node: function () {
|
|
refresh_node: function () {
|
|
let me = this;
|
|
let me = this;
|
|
@@ -680,26 +794,43 @@ let preHandleFilterObj = {
|
|
//and then others...
|
|
//and then others...
|
|
//过滤条件
|
|
//过滤条件
|
|
keyNode[JV.PROP_FILTER_CONDITION] = filterItem[JV.PROP_FILTER_CONDITION];
|
|
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].value = 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;
|
|
|
|
|
|
+ if (keyNode.isBoolean) {
|
|
|
|
+ keyNode[JV.PROP_FILTER_COMPARE_VAL] = filterItem[JV.PROP_FILTER_COMPARE_VAL];
|
|
|
|
+ $("#diyCheck_" + keyNode.tId)[0].checked = (keyNode["booleanOptions"].indexOf(filterItem["compareValue"]) === 0);
|
|
|
|
+ } else if (keyNode.hasOwnProperty("individualType")) {
|
|
|
|
+ $("#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].value = filterItem[JV.PROP_FILTER_COMPARE_VAL];
|
|
|
|
+ for (let idx = 0; idx < keyNode["individualType"].length; idx++) {
|
|
|
|
+ let idType = keyNode["individualType"][idx];
|
|
|
|
+ if (idType.Value.toString() === filterItem[JV.PROP_FILTER_COMPARE_VAL].toString()) {
|
|
|
|
+ $("#diyDataDetailSelect_" + keyNode.tId)[0].selectedIndex = idx;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ $("#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].value = 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;
|
|
break;
|
|
}
|
|
}
|
|
@@ -746,32 +877,70 @@ let preHandleFilterObj = {
|
|
rst.push("</select>");
|
|
rst.push("</select>");
|
|
return rst.join("");
|
|
return rst.join("");
|
|
},
|
|
},
|
|
|
|
+ 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++) {
|
|
|
|
+ rst.push("<option value='" + individualTypes[i].Value + "'>" + individualTypes[i].Name + "</option>");
|
|
|
|
+ }
|
|
|
|
+ rst.push("</select>");
|
|
|
|
+ return rst.join("");
|
|
|
|
+ },
|
|
addDiyDom: function(treeId,treeNode) {
|
|
addDiyDom: function(treeId,treeNode) {
|
|
let me = preHandleFilterObj;
|
|
let me = preHandleFilterObj;
|
|
let aObj = $("#" + treeNode.tId + IDMark_A);
|
|
let aObj = $("#" + treeNode.tId + IDMark_A);
|
|
- 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);
|
|
|
|
- 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><option value='in'>在</option><option value='not in'>不在</option></select>";
|
|
|
|
- aObj.after(selStr);
|
|
|
|
- let sel = $("#diySelect_" + treeNode.tId);
|
|
|
|
- if (sel) {
|
|
|
|
- sel.bind("change", me.filterConditionChange);
|
|
|
|
- }
|
|
|
|
- sel = $("#diyInput_" + treeNode.tId);
|
|
|
|
- if (sel) {
|
|
|
|
- sel.bind("change", me.filterCompareValChange);
|
|
|
|
- }
|
|
|
|
- sel = $("#diyDataSelect_" + treeNode.tId);
|
|
|
|
- if (sel) {
|
|
|
|
- sel.bind("change", me.filterCompareObjChange);
|
|
|
|
- }
|
|
|
|
- sel = $("#diyDataDetailSelect_" + treeNode.tId);
|
|
|
|
- if (sel) {
|
|
|
|
- sel.bind("change", me.filterCompareObjKeyChange);
|
|
|
|
|
|
+ if (treeNode.hasOwnProperty("isBoolean")) {
|
|
|
|
+ let checkStr = "<input type='checkbox' id='diyCheck_" + treeNode.tId + "' />";
|
|
|
|
+ aObj.after(checkStr);
|
|
|
|
+ let sel = $("#diyCheck_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterConditionCheck);
|
|
|
|
+ }
|
|
|
|
+ } else if (treeNode.hasOwnProperty("individualType")) {
|
|
|
|
+ let dataDtlSelStr = me.build_individual_filter_selection_str(treeNode.individualType, treeNode);
|
|
|
|
+ aObj.after(dataDtlSelStr);
|
|
|
|
+ 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><option value='in'>在</option><option value='not in'>不在</option></select>";
|
|
|
|
+ aObj.after(selStr);
|
|
|
|
+ let sel = $("#diySelect_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterConditionChange);
|
|
|
|
+ }
|
|
|
|
+ sel = $("#diyInput_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterCompareValChange);
|
|
|
|
+ }
|
|
|
|
+ sel = $("#diyDataDetailSelect_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterIndividualCompareObjKeyChange);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //注意:这是后面的DOM先生成
|
|
|
|
+ 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);
|
|
|
|
+ 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><option value='in'>在</option><option value='not in'>不在</option></select>";
|
|
|
|
+ aObj.after(selStr);
|
|
|
|
+ let sel = $("#diySelect_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterConditionChange);
|
|
|
|
+ }
|
|
|
|
+ sel = $("#diyInput_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterCompareValChange);
|
|
|
|
+ }
|
|
|
|
+ sel = $("#diyDataSelect_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterCompareObjChange);
|
|
|
|
+ }
|
|
|
|
+ sel = $("#diyDataDetailSelect_" + treeNode.tId);
|
|
|
|
+ if (sel) {
|
|
|
|
+ sel.bind("change", me.filterCompareObjKeyChange);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
filterCompareValChange(event) {
|
|
filterCompareValChange(event) {
|
|
@@ -780,6 +949,18 @@ let preHandleFilterObj = {
|
|
node[JV.PROP_FILTER_COMPARE_VAL] = sel.value;
|
|
node[JV.PROP_FILTER_COMPARE_VAL] = sel.value;
|
|
me.resetFilter();
|
|
me.resetFilter();
|
|
},
|
|
},
|
|
|
|
+ filterConditionCheck: function (event) {
|
|
|
|
+ let me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(9);
|
|
|
|
+ let node = me.treeObj.getNodeByTId(tId);
|
|
|
|
+ node[JV.PROP_FILTER_CONDITION] = "===";
|
|
|
|
+ if (sel.checked === true) {
|
|
|
|
+ node[JV.PROP_FILTER_COMPARE_VAL] = node.booleanOptions[0];
|
|
|
|
+ } else {
|
|
|
|
+ node[JV.PROP_FILTER_COMPARE_VAL] = node.booleanOptions[1];
|
|
|
|
+ }
|
|
|
|
+ //注:这里虽然是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 me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(10);
|
|
let node = me.treeObj.getNodeByTId(tId);
|
|
let node = me.treeObj.getNodeByTId(tId);
|
|
@@ -809,6 +990,16 @@ let preHandleFilterObj = {
|
|
me.private_setup_compare_obj(sel);
|
|
me.private_setup_compare_obj(sel);
|
|
me.resetFilter();
|
|
me.resetFilter();
|
|
},
|
|
},
|
|
|
|
+ filterIndividualCompareObjKeyChange: function(event) {
|
|
|
|
+ let me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(20);
|
|
|
|
+ let inTxt = $("#diyInput_" + tId);
|
|
|
|
+ if (inTxt) {
|
|
|
|
+ inTxt[0].value = sel.value;
|
|
|
|
+ }
|
|
|
|
+ let node = me.treeObj.getNodeByTId(tId);
|
|
|
|
+ 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 me = preHandleFilterObj, sel = event.currentTarget, tId = sel.id.slice(20);
|
|
let node = me.treeObj.getNodeByTId(tId);
|
|
let node = me.treeObj.getNodeByTId(tId);
|
|
@@ -816,18 +1007,27 @@ let preHandleFilterObj = {
|
|
me.resetFilter();
|
|
me.resetFilter();
|
|
},
|
|
},
|
|
extractTabFields: function (handleObj) {
|
|
extractTabFields: function (handleObj) {
|
|
- let me = this, rst = {};
|
|
|
|
- rst[JV.PROP_HANDLE_TYPE] = handleObj[JV.PROP_HANDLE_TYPE];
|
|
|
|
- rst[JV.PROP_DATA_KEY] = handleObj[JV.PROP_DATA_KEY];
|
|
|
|
- rst[JV.PROP_FILTER_KEYS] = [];
|
|
|
|
- for (let item of handleObj[JV.PROP_FILTER_KEYS]) {
|
|
|
|
- let dtl = {};
|
|
|
|
- dtl.key = item.key;
|
|
|
|
- dtl[JV.PROP_FILTER_CONDITION] = item[JV.PROP_FILTER_CONDITION];
|
|
|
|
- dtl[JV.PROP_FILTER_COMPARE_VAL] = item[JV.PROP_FILTER_COMPARE_VAL]?item[JV.PROP_FILTER_COMPARE_VAL]:null;
|
|
|
|
- dtl[JV.PROP_FILTER_COMPARE_OBJ] = item[JV.PROP_FILTER_COMPARE_OBJ]?item[JV.PROP_FILTER_COMPARE_OBJ]:null;
|
|
|
|
- dtl[JV.PROP_FILTER_COMPARE_OBJ_KEY] = item[JV.PROP_FILTER_COMPARE_OBJ_KEY]?item[JV.PROP_FILTER_COMPARE_OBJ_KEY]:null;
|
|
|
|
- rst[JV.PROP_FILTER_KEYS].push(dtl);
|
|
|
|
|
|
+ let me = preHandleFilterObj, rst = {};
|
|
|
|
+ me.copyNode(handleObj, rst);
|
|
|
|
+ rst[JV.PROP_OTHER_SUB_FILTER] = [];
|
|
|
|
+ let private_extract_other_sub_filter = function (parentFilter, currentFilterNode) {
|
|
|
|
+ let dtlRst = {};
|
|
|
|
+ me.copyNode(currentFilterNode, dtlRst);
|
|
|
|
+ parentFilter[JV.PROP_OTHER_SUB_FILTER].push(dtlRst);
|
|
|
|
+ if (currentFilterNode.items && currentFilterNode.items.length > 0) {
|
|
|
|
+ dtlRst[JV.PROP_OTHER_SUB_FILTER] = [];
|
|
|
|
+ for (let subFilterNode of currentFilterNode.items) {
|
|
|
|
+ private_extract_other_sub_filter(dtlRst, subFilterNode);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ delete dtlRst.Name;
|
|
|
|
+ delete dtlRst[JV.PROP_DATA_KEY];
|
|
|
|
+ dtlRst = null;
|
|
|
|
+ };
|
|
|
|
+ if (handleObj.items && handleObj.items.length > 0) {
|
|
|
|
+ for (let subFilter of handleObj.items) {
|
|
|
|
+ private_extract_other_sub_filter(rst, subFilter);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return rst;
|
|
return rst;
|
|
}
|
|
}
|