|
|
@@ -128,7 +128,7 @@ function _commonChkAndSetPrice(curItem, isNeedFactor) {
|
|
|
if (isMatch) {
|
|
|
//再根据相关项目属性指定基数
|
|
|
for (const bms of bm.subs) {
|
|
|
- if (_chkUnitPriceFeatureKeys(bms.keys)) {
|
|
|
+ if (_chkUnitPriceFeatureKeys(bms.keys, curItem)) {
|
|
|
basicValue = bms.basicValue;
|
|
|
break;
|
|
|
}
|
|
|
@@ -155,7 +155,7 @@ function _commonChkAndSetPrice(curItem, isNeedFactor) {
|
|
|
}
|
|
|
if (isMatch) {
|
|
|
for (const fms of fm.subs) {
|
|
|
- if (_chkUnitPriceFeatureKeys(fms.keys)) {
|
|
|
+ if (_chkUnitPriceFeatureKeys(fms.keys, curItem)) {
|
|
|
factors.push(fms.basicValue);
|
|
|
}
|
|
|
}
|
|
|
@@ -172,24 +172,29 @@ function _commonChkAndSetPrice(curItem, isNeedFactor) {
|
|
|
return rst;
|
|
|
}
|
|
|
|
|
|
-function _chkUnitPriceFeatureKeys(keys) {
|
|
|
- let rst = false;
|
|
|
+function _chkUnitPriceFeatureKeys(keys, curItem) {
|
|
|
+ let rst = (keys.length > 0);
|
|
|
for (const subKey of keys) {
|
|
|
- let isPrjFeatureMatch = false;
|
|
|
- for (let prjF of projectObj.project.projectInfo.property.projectFeature) {
|
|
|
- if (prjF.key === subKey.key) {
|
|
|
- if (prjF.value === subKey.value) {
|
|
|
- isPrjFeatureMatch = true;
|
|
|
- // isKeyMatch = true;
|
|
|
- break;
|
|
|
- } else {
|
|
|
- //key相同而value不同,则无需再循环,直接退出
|
|
|
- break;
|
|
|
+ let isKeyMatch = false;
|
|
|
+ if (subKey.type === 'prjFeature') {
|
|
|
+ for (let prjF of projectObj.project.projectInfo.property.projectFeature) {
|
|
|
+ if (prjF.key === subKey.key) {
|
|
|
+ if (prjF.value === subKey.value) {
|
|
|
+ isKeyMatch = true;
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ //key相同而value不同,则说明不是这个设置值,无需再循环,直接退出
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ } else if (subKey.type === 'bills') {
|
|
|
+ //判断当前清单curItem
|
|
|
+ isKeyMatch = (curItem[subKey.key] === subKey.value);
|
|
|
}
|
|
|
- if (isPrjFeatureMatch) {
|
|
|
- rst = true;
|
|
|
+ if (!isKeyMatch) {
|
|
|
+ //要所有的keys都匹配才行,否则false;
|
|
|
+ rst = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|