|
@@ -573,11 +573,27 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
}
|
|
|
startIdx++;
|
|
|
if (!compRst) {
|
|
|
- break; //由不符合条件的数据则退出(这里的判断条件是and关系)
|
|
|
+ break; //有不符合条件的数据则退出(这里的判断条件是and关系)
|
|
|
}
|
|
|
}
|
|
|
return compRst;
|
|
|
};
|
|
|
+ let private_sub_filter_compare = function (dtlItem, subFilters) {
|
|
|
+ let cmpRst = false;
|
|
|
+ for (let dtlCfg of subFilters) {
|
|
|
+ cmpRst = private_filter_compare(dtlItem, dtlCfg);
|
|
|
+ if (cmpRst) {
|
|
|
+ if (dtlCfg[JV.PROP_OTHER_SUB_FILTER] && dtlCfg[JV.PROP_OTHER_SUB_FILTER].length > 0) {
|
|
|
+ cmpRst = private_sub_filter_compare(dtlItem, dtlCfg[JV.PROP_OTHER_SUB_FILTER]);
|
|
|
+ if (cmpRst) break;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return cmpRst;
|
|
|
+ };
|
|
|
+
|
|
|
for (let item of tempRstArr) {
|
|
|
if (private_filter_compare(item, handleCfg)) {
|
|
|
rstArr.push(item);
|
|
@@ -586,19 +602,15 @@ function filterData(sourceData, handleCfg, prjData) {
|
|
|
if (handleCfg[JV.PROP_OTHER_SUB_FILTER] && handleCfg[JV.PROP_OTHER_SUB_FILTER].length > 0) {
|
|
|
let newRstArr = [];
|
|
|
for (let dtlItem of rstArr) {
|
|
|
- let cmpRst = false;
|
|
|
- for (let dtlCfg of handleCfg[JV.PROP_OTHER_SUB_FILTER]) {
|
|
|
- cmpRst = private_filter_compare(dtlItem, dtlCfg);
|
|
|
- if (cmpRst) {
|
|
|
- newRstArr.push(dtlItem);
|
|
|
- break;
|
|
|
- }
|
|
|
+ let cmpRst = private_sub_filter_compare(dtlItem, handleCfg[JV.PROP_OTHER_SUB_FILTER]);
|
|
|
+ if (cmpRst) {
|
|
|
+ newRstArr.push(dtlItem);
|
|
|
}
|
|
|
}
|
|
|
rstArr = newRstArr;
|
|
|
}
|
|
|
replaceActDataArr(sourceData, rstArr);
|
|
|
- // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.js");
|
|
|
+ // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/filteredRst.jsp");
|
|
|
}
|
|
|
|
|
|
function adjustData(sourceData, adjustCfg) {
|