|
@@ -4,11 +4,11 @@
|
|
|
*/
|
|
|
|
|
|
let executeObj = {
|
|
|
- ration: null,
|
|
|
+ treeNode: null,
|
|
|
at: function(ID) {
|
|
|
let me = executeObj,
|
|
|
rst = 0;
|
|
|
- rst = me.ration.data.calcTemplate.compiledTemplate[ID].unitFee;
|
|
|
+ rst = me.treeNode.data.calcTemplate.compiledTemplate[ID].unitFee;
|
|
|
rst = parseFloat(rst);
|
|
|
return rst;
|
|
|
},
|
|
@@ -18,7 +18,7 @@ let executeObj = {
|
|
|
|
|
|
if (base != null) {
|
|
|
let price = 0, tmpSum = 0;
|
|
|
- for (let glj of me.ration.data.gljList) {
|
|
|
+ for (let glj of me.treeNode.data.gljList) {
|
|
|
if (base.gljTypes.indexOf(glj.type) >= 0) {
|
|
|
if (base.calcType == baseCalc){ price = glj["basePrice"];}
|
|
|
else if (base.calcType == adjustCalc){price = glj["adjustPrice"];}
|
|
@@ -159,17 +159,17 @@ class Calculation {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- calculate($RATION){ // 参数$RATION也可以是清单
|
|
|
+ calculate($treeNode){
|
|
|
let me = this;
|
|
|
- let template = $RATION.data.calcTemplate;
|
|
|
+ let template = $treeNode.data.calcTemplate;
|
|
|
|
|
|
- if ($RATION && template.hasCompiled) {
|
|
|
+ if ($treeNode && template.hasCompiled) {
|
|
|
let $CE = executeObj;
|
|
|
- $CE.ration = $RATION;
|
|
|
+ $CE.treeNode = $treeNode;
|
|
|
|
|
|
- if (!$RATION.fees) {
|
|
|
- $RATION.fees = [];
|
|
|
- $RATION.feesIndex = {};
|
|
|
+ if (!$treeNode.fees) {
|
|
|
+ $treeNode.fees = [];
|
|
|
+ $treeNode.feesIndex = {};
|
|
|
};
|
|
|
|
|
|
for (let idx of template.compiledSeq) {
|
|
@@ -182,11 +182,13 @@ class Calculation {
|
|
|
calcItem.feeRate = feeRate;
|
|
|
};
|
|
|
calcItem.unitFee = eval(calcItem.compiledExpr) * feeRate * 0.01; // 如果eval()对清单树有影响,就换成小麦的Expression对象再试
|
|
|
- calcItem.totalFee = calcItem.unitFee * 3; // AAAAAA 测试值,因目前定额无数量(保存不上) $RATION.data.Quantity
|
|
|
+ let quantity = $treeNode.data.quantity;
|
|
|
+ if (!quantity) quantity = 0;
|
|
|
+ calcItem.totalFee = calcItem.unitFee * quantity;
|
|
|
|
|
|
// 费用同步到定额
|
|
|
// 引入小麦的字段检测后,快速切换定额出现计算卡顿现象,过多的循环造成。这里把她的代码拆出来,减少微循环。
|
|
|
- if (!$RATION.feesIndex[calcItem.fieldName]){
|
|
|
+ if (!$treeNode.feesIndex[calcItem.fieldName]){
|
|
|
let fee = {
|
|
|
'fieldName': calcItem.fieldName,
|
|
|
'unitFee': calcItem.unitFee,
|
|
@@ -194,17 +196,14 @@ class Calculation {
|
|
|
'tenderUnitFee': 0,
|
|
|
'tenderTotalFee': 0
|
|
|
};
|
|
|
- $RATION.fees.push(fee);
|
|
|
- $RATION.feesIndex[calcItem.fieldName] = fee;
|
|
|
+ $treeNode.fees.push(fee);
|
|
|
+ $treeNode.feesIndex[calcItem.fieldName] = fee;
|
|
|
}
|
|
|
else{
|
|
|
- $RATION.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee;
|
|
|
- $RATION.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee;
|
|
|
+ $treeNode.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee;
|
|
|
+ $treeNode.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-//module.exports = new calculation();
|