Browse Source

公式配置=>逗号问题

duy 5 days ago
parent
commit
0a5ee69b91

+ 1 - 1
src/views/formula/edit.vue

@@ -1564,7 +1564,7 @@ export default {
 
     //保存公式
     saveFormula() {
-      console.log('保存', this.pid);
+      console.log('保存-edit', this.pid);
       console.log(this.processFormula, 'this.processFormula1111111112333');
       console.log(this.resultFormula, 'this.resultFormula1111111112333');
       console.log(this.$refs.dynamiccomponent, 'this.$refs.dynamiccomponent');

+ 9 - 3
src/views/formula/edit1-1.vue

@@ -1423,15 +1423,22 @@ export default {
 
     //保存公式
     saveFormula(){
-      console.log('保存1',this.pid);
+      console.log('保存1-edit-1-1',this.pid);
+      console.log(this.processFormula, 'this.processFormula1111111112333');
+      console.log(this.resultFormula, 'this.resultFormula1111111112333');
+      console.log(this.$refs.dynamiccomponent, 'this.$refs.dynamiccomponent');
       // let obj = formulaArrayToString(this.processFormula,this.resultFormula);
        let arr=JSON.parse(JSON.stringify(this.processFormula));
+       console.log("aaaaaaaaaaaaaaaa===processFormula", arr,);
       let filteredArr = arr.filter(item => item.id ===this.checkGsId);
+      console.log("bbbbbbbbbbbbbbbb===filteredArr", filteredArr,);
       //  let obj = formulaArrayToString(filteredArr,this.resultFormula);
       let obj
       let obj2
       obj = formulaArrayToString(this.processFormula,this.resultFormula);
+      console.log("ccccccccccccccccc===obj", obj,);
       obj2 = formulaArrayToString(filteredArr,this.resultFormula);
+      console.log("ccccccccccccccccc===obj", obj,);
         // 判断 obj2.text 是否包含 FC.ifelse
       if (obj2.text && obj2.text.includes('FC.ifelse')) {
         obj = obj2; // 如果包含 FC.ifelse,使用 obj2
@@ -1472,8 +1479,7 @@ export default {
         }
       }
 
-      //console.log(obj)
-      //console.log(text);
+      console.log("55555555555", obj, obj.text);
       if(this.formulaid){
         updateFormula({
           id:this.formulaid,

+ 11 - 4
src/views/formula/edit1.vue

@@ -1558,7 +1558,10 @@ export default {
 
     //保存公式
     saveFormula(){
-      console.log('保存1',this.pid);
+      console.log('保存1-edit1',this.pid);
+      console.log(this.processFormula, 'this.processFormula1111111112333');
+      console.log(this.resultFormula, 'this.resultFormula1111111112333');
+      console.log(this.$refs.dynamiccomponent, 'this.$refs.dynamiccomponent');
       // let obj = formulaArrayToString(this.processFormula,this.resultFormula);
       if(this.$refs.dynamiccomponent&&this.$refs.dynamiccomponent.length>0&&this.$refs.dynamiccomponent[0]&& this.$refs.dynamiccomponent[0].symbol=='more'){
         //多条件保存公式
@@ -1739,13 +1742,18 @@ export default {
             }
             return
       }
-       let arr=JSON.parse(JSON.stringify(this.processFormula));
+      
+      let arr=JSON.parse(JSON.stringify(this.processFormula));
+      console.log("aaaaaaaaaaaaaaaa===processFormula", arr,);
       let filteredArr = arr.filter(item => item.id ===this.checkGsId);
+      console.log("bbbbbbbbbbbbbbbb===filteredArr", filteredArr,);
       //  let obj = formulaArrayToString(filteredArr,this.resultFormula);
       let obj
       let obj2
       obj = formulaArrayToString(this.processFormula,this.resultFormula);
+      console.log("ccccccccccccccccc===obj", obj,);
       obj2 = formulaArrayToString(filteredArr,this.resultFormula);
+      console.log("ccccccccccccccccc===obj2", obj2,);
         // 判断 obj2.text 是否包含 FC.ifelse
       if (obj2.text && obj2.text.includes('FC.ifelse')) {
         obj = obj2; // 如果包含 FC.ifelse,使用 obj2
@@ -1786,8 +1794,7 @@ export default {
         }
       }
 
-      //console.log(obj)
-      //console.log(text);
+      // console.log("55555555555", obj, obj.text);
       if(this.formulaid){
         updateFormula({
           id:this.formulaid,

+ 10 - 5
src/views/formula/formulaArrayToString.js

@@ -245,9 +245,10 @@ export const formulaArrayToString = (processFormula, resultFormula) => {
   let eleMap = {}; //元素字典,为了回显的时候查询信息
   let preIsOp = false; //前一个参数是否是四则运算(+-*/)
 
-  console.log("processFormula",processFormula);
+  console.log("processFormula", processFormula);
   processFormula.forEach((item, index) => {
     if (isFormulaItem(item)) {
+      //item.type == "Element" || item.type == "ParamData";
       //console.log(item)
       if (item.children.length < 1) {
         if (item.type == "Element") {
@@ -286,8 +287,8 @@ export const formulaArrayToString = (processFormula, resultFormula) => {
     }
   });
 
-  console.log(text, "sssssss");
-
+  console.log("sssssss", text, resultFormula);
+  const fcReg = /(FC\.\S+\()(.+)\)/;
   if (resultFormula[0].children.length) {
     //等号左侧部分
     let resText = transformArguments(
@@ -298,9 +299,9 @@ export const formulaArrayToString = (processFormula, resultFormula) => {
     console.log(resText, "等号左侧");
 
     //等号左侧元素不需要,左侧的公式嵌套右侧所有结果
-    let fcReg = /(FC\.\S+\()(.+)\)/;
+    // let fcReg = /(FC\.\S+\()(.+)\)/;
     let leftArr = fcReg.exec(resText);
-    console.log(leftArr, "左侧匹配", resText);
+    console.log("左侧匹配", leftArr, resText);
     text = resText;
 
     // 有问题!!!
@@ -316,6 +317,10 @@ export const formulaArrayToString = (processFormula, resultFormula) => {
     // } else {
     //   text = resText;
     // }
+  } else {
+    if (!fcReg.test(text)) {
+      text = text.replaceAll(",", "");
+    }
   }
 
   console.log(text, "最终");