|
@@ -462,6 +462,7 @@ let cbAnalyzer = {
|
|
let bill = baseFigures[figure]['fixedBill']['bill'];
|
|
let bill = baseFigures[figure]['fixedBill']['bill'];
|
|
if(checkStack(getRefStack([bill.ID]), sbillID)){
|
|
if(checkStack(getRefStack([bill.ID]), sbillID)){
|
|
console.log('循环计算');
|
|
console.log('循环计算');
|
|
|
|
+ calcBase.errMsg = '表达式出现循环计算';
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -522,6 +523,9 @@ let cbParser = {
|
|
|
|
|
|
//将表达式转换为可编译的表达式
|
|
//将表达式转换为可编译的表达式
|
|
toCompileExpr: function(v){
|
|
toCompileExpr: function(v){
|
|
|
|
+ if(v === ''){
|
|
|
|
+ return '$CBC.base(\'NONE\')';
|
|
|
|
+ }
|
|
let strs = this.getFigure(v);
|
|
let strs = this.getFigure(v);
|
|
let exps = [];
|
|
let exps = [];
|
|
for(let i = 0, len = strs.length; i < len; i++){
|
|
for(let i = 0, len = strs.length; i < len; i++){
|
|
@@ -541,6 +545,9 @@ let cbParser = {
|
|
let cbCalctor = {
|
|
let cbCalctor = {
|
|
//计算基数
|
|
//计算基数
|
|
base: function (figure) {
|
|
base: function (figure) {
|
|
|
|
+ if(figure === 'NONE'){
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
return baseFigureTemplate[calcBase.baseFigures[figure]['base']]();
|
|
return baseFigureTemplate[calcBase.baseFigures[figure]['base']]();
|
|
},
|
|
},
|
|
//计算
|
|
//计算
|
|
@@ -550,6 +557,7 @@ let cbCalctor = {
|
|
};
|
|
};
|
|
|
|
|
|
let calcBase = {
|
|
let calcBase = {
|
|
|
|
+ errMsg: '表达式不正确',
|
|
success: false,
|
|
success: false,
|
|
//清单固定行
|
|
//清单固定行
|
|
fixedFlag: null,
|
|
fixedFlag: null,
|
|
@@ -566,7 +574,6 @@ let calcBase = {
|
|
cbTools.setFixedBills(project, me.fixedBills, me.fixedFlag);
|
|
cbTools.setFixedBills(project, me.fixedBills, me.fixedFlag);
|
|
me.baseFigures = baseFigureMap;
|
|
me.baseFigures = baseFigureMap;
|
|
cbTools.setBaseBills(me.baseFigures, me.fixedBills);
|
|
cbTools.setBaseBills(me.baseFigures, me.fixedBills);
|
|
- //me.baseFigures.fixedBills = me.fixedBills;
|
|
|
|
cbTools.setBaseFigureClass(me.baseFigures, me.baseFigureClass);
|
|
cbTools.setBaseFigureClass(me.baseFigures, me.baseFigureClass);
|
|
},
|
|
},
|
|
getBase: function (figure) {
|
|
getBase: function (figure) {
|
|
@@ -586,11 +593,13 @@ let calcBase = {
|
|
$CBC = cbCalctor;
|
|
$CBC = cbCalctor;
|
|
try {
|
|
try {
|
|
me.success = false;
|
|
me.success = false;
|
|
|
|
+ me.errMsg = '表达式不正确';
|
|
//分析输入式合法性
|
|
//分析输入式合法性
|
|
let exp = $CBA.legalExp(node);
|
|
let exp = $CBA.legalExp(node);
|
|
- if(!exp){
|
|
|
|
|
|
+ if(!cbTools.isDef(exp)){
|
|
throw '表达式不正确';
|
|
throw '表达式不正确';
|
|
}
|
|
}
|
|
|
|
+
|
|
//输入式转换表达式
|
|
//输入式转换表达式
|
|
let compileExp = $CBP.toCompileExpr(exp);
|
|
let compileExp = $CBP.toCompileExpr(exp);
|
|
|
|
|
|
@@ -599,6 +608,7 @@ let calcBase = {
|
|
if(!cbTools.isNum(calcBaseValue)){
|
|
if(!cbTools.isNum(calcBaseValue)){
|
|
throw '表达式不正确';
|
|
throw '表达式不正确';
|
|
}
|
|
}
|
|
|
|
+
|
|
//存储
|
|
//存储
|
|
me.success = true;
|
|
me.success = true;
|
|
node.data.calcBase = exp;
|
|
node.data.calcBase = exp;
|
|
@@ -607,7 +617,7 @@ let calcBase = {
|
|
me.project.calcProgram.saveNode(node);
|
|
me.project.calcProgram.saveNode(node);
|
|
}
|
|
}
|
|
catch (err){
|
|
catch (err){
|
|
- alert('表达式不正确');
|
|
|
|
|
|
+ alert(me.errMsg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|