|
@@ -241,8 +241,8 @@ function transformArguments(children,curEle,eleMap){
|
|
|
export const formulaArrayToString = (processFormula,resultFormula) => {
|
|
|
let text = '';
|
|
|
let eleMap = {};//元素字典,为了回显的时候查询信息
|
|
|
-
|
|
|
- processFormula.forEach(item => {
|
|
|
+ let preIsOp=false;//前一个参数是否是四则运算(+-*/)
|
|
|
+ processFormula.forEach((item,index) => {
|
|
|
if(isFormulaItem(item)){
|
|
|
//console.log(item)
|
|
|
if(item.children.length <1){
|
|
@@ -266,12 +266,14 @@ export const formulaArrayToString = (processFormula,resultFormula) => {
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
- text += transformArguments(item.children,item,eleMap);
|
|
|
+ text += (index>0&&!preIsOp?',':'')+transformArguments(item.children,item,eleMap);
|
|
|
+ preIsOp=false;
|
|
|
}
|
|
|
}else if(item.type == 'Element'){
|
|
|
text += item.template.ft;
|
|
|
}else if(item.type == 'Operator'){
|
|
|
//在运算符前后加上空格
|
|
|
+ preIsOp=true;
|
|
|
text += ' '+item.name+' ';
|
|
|
//console.log(fcText)
|
|
|
}else{
|
|
@@ -282,8 +284,17 @@ export const formulaArrayToString = (processFormula,resultFormula) => {
|
|
|
//等号左侧部分
|
|
|
let resText = transformArguments(resultFormula[0].children,resultFormula[0],eleMap);
|
|
|
//等号左侧元素不需要,左侧的公式嵌套右侧所有结果
|
|
|
- text = resText.replace(`E[${resultFormula[0].tableElementKey}]`,text);
|
|
|
+ let fcReg = /(FC\.\S+\()(.+)\)/;
|
|
|
+ let leftArr=fcReg.exec(resText);
|
|
|
+ //text = resText.replace(`E[${resultFormula[0].tableElementKey}]`,text);
|
|
|
+ if(!!text&&!resText.includes(text)&&!!leftArr){
|
|
|
+ let reg = leftArr[2].replace('OPTION,','');
|
|
|
+ text = resText.replace(reg,text);
|
|
|
+ }else{
|
|
|
+ text = resText;
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
}
|
|
|
|
|
|
console.log(text,'最终');
|