|
@@ -231,9 +231,17 @@ class Calculation {
|
|
|
// 先编译公用的基础数据
|
|
|
compilePublics(feeRates, labourCoes, feeTypes, calcBases){
|
|
|
let me = this;
|
|
|
+ me.compiledFeeRates = {};
|
|
|
+ me.compiledLabourCoes = {};
|
|
|
+ me.compiledTemplates = {};
|
|
|
+ me.compiledFeeTypes = {};
|
|
|
+ me.compiledFeeTypeNames = [];
|
|
|
+ me.compiledCalcBases = {};
|
|
|
+ me.saveForReports = [];
|
|
|
+ me.changed = false;
|
|
|
+
|
|
|
let private_compile_feeRateFile = function() {
|
|
|
if (feeRates) {
|
|
|
- me.compiledFeeRates = {};
|
|
|
for (let rate of feeRates) {
|
|
|
me.compiledFeeRates["feeRate_" + rate.ID] = rate;
|
|
|
}
|
|
@@ -241,7 +249,6 @@ class Calculation {
|
|
|
};
|
|
|
let private_compile_labourCoeFile = function() {
|
|
|
if (labourCoes) {
|
|
|
- me.compiledLabourCoes = {};
|
|
|
for (let coe of labourCoes) {
|
|
|
me.compiledLabourCoes["LabourCoe_" + coe.ID] = coe;
|
|
|
}
|
|
@@ -249,8 +256,6 @@ class Calculation {
|
|
|
};
|
|
|
let private_compile_feeType = function() {
|
|
|
if (feeTypes) {
|
|
|
- me.compiledFeeTypes = {};
|
|
|
- me.compiledFeeTypeNames = [];
|
|
|
for (let ft of feeTypes) {
|
|
|
me.compiledFeeTypes[ft.type] = ft.name;
|
|
|
me.compiledFeeTypes[ft.name] = ft.type; // 中文预编译,可靠性有待验证
|
|
@@ -260,7 +265,6 @@ class Calculation {
|
|
|
};
|
|
|
let private_compile_calcBase = function() {
|
|
|
if (calcBases) {
|
|
|
- me.compiledCalcBases = {};
|
|
|
for (let cb of calcBases) {
|
|
|
me.compiledCalcBases[cb.dispName] = cb; // 中文预编译,可靠性有待验证
|
|
|
}
|
|
@@ -271,8 +275,6 @@ class Calculation {
|
|
|
private_compile_labourCoeFile();
|
|
|
private_compile_feeType();
|
|
|
private_compile_calcBase();
|
|
|
- me.compiledTemplates = {};
|
|
|
- me.saveForReports = [];
|
|
|
};
|
|
|
|
|
|
compileTemplate(template){
|
|
@@ -382,8 +384,6 @@ class Calculation {
|
|
|
};
|
|
|
};
|
|
|
|
|
|
-
|
|
|
-
|
|
|
calculate($treeNode){
|
|
|
let me = this;
|
|
|
let templateID = $treeNode.data.programID;
|
|
@@ -400,6 +400,7 @@ class Calculation {
|
|
|
if (!$treeNode.data.fees) {
|
|
|
$treeNode.data.fees = [];
|
|
|
$treeNode.data.feesIndex = {};
|
|
|
+ me.changed = true;
|
|
|
};
|
|
|
|
|
|
for (let idx of template.compiledSeq) {
|
|
@@ -415,23 +416,32 @@ class Calculation {
|
|
|
|
|
|
// 费用同步到定额
|
|
|
// 引入小麦的字段检测后,快速切换定额出现计算卡顿现象,过多的循环造成。这里把她的代码拆出来,减少微循环。
|
|
|
- if (!$treeNode.data.feesIndex[calcItem.fieldName]){
|
|
|
- let fee = {
|
|
|
- 'fieldName': calcItem.fieldName,
|
|
|
- 'unitFee': calcItem.unitFee,
|
|
|
- 'totalFee': calcItem.totalFee,
|
|
|
- 'tenderUnitFee': 0,
|
|
|
- 'tenderTotalFee': 0
|
|
|
- };
|
|
|
- $treeNode.data.fees.push(fee);
|
|
|
- $treeNode.data.feesIndex[calcItem.fieldName] = fee;
|
|
|
- }
|
|
|
- else{
|
|
|
- $treeNode.data.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee;
|
|
|
- $treeNode.data.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee;
|
|
|
- }
|
|
|
- }
|
|
|
+ if (calcItem.fieldName != '') {
|
|
|
+ if (!$treeNode.data.feesIndex[calcItem.fieldName]){
|
|
|
+ let fee = {
|
|
|
+ 'fieldName': calcItem.fieldName,
|
|
|
+ 'unitFee': calcItem.unitFee,
|
|
|
+ 'totalFee': calcItem.totalFee,
|
|
|
+ 'tenderUnitFee': 0,
|
|
|
+ 'tenderTotalFee': 0
|
|
|
+ };
|
|
|
+ $treeNode.data.fees.push(fee);
|
|
|
+ $treeNode.data.feesIndex[calcItem.fieldName] = fee;
|
|
|
+ me.changed = true;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if ($treeNode.data.feesIndex[calcItem.fieldName].unitFee != calcItem.unitFee){
|
|
|
+ $treeNode.data.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee;
|
|
|
+ me.changed = true;
|
|
|
+ };
|
|
|
|
|
|
+ if ($treeNode.data.feesIndex[calcItem.fieldName].totalFee != calcItem.totalFee){
|
|
|
+ $treeNode.data.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee;
|
|
|
+ me.changed = true;
|
|
|
+ };
|
|
|
+ }
|
|
|
+ };
|
|
|
+ };
|
|
|
}
|
|
|
}
|
|
|
};
|