瀏覽代碼

公式 保留小数 特殊公式

gangyj 2 年之前
父節點
當前提交
834ec53841
共有 2 個文件被更改,包括 48 次插入3 次删除
  1. 6 2
      src/api/formula/formula.js
  2. 42 1
      src/views/formula/edit.vue

+ 6 - 2
src/api/formula/formula.js

@@ -10,7 +10,7 @@ export const getTypeMap = (params) => {
   })
   })
 }
 }
 
 
-export const saveFormula = ({formula,remark,wbsId,elementId,map}) => {
+export const saveFormula = ({formula,remark,wbsId,elementId,scale,number,map}) => {
   return request({
   return request({
     url: '/api/blade-manager/formula/save',
     url: '/api/blade-manager/formula/save',
     method: 'post',
     method: 'post',
@@ -19,12 +19,14 @@ export const saveFormula = ({formula,remark,wbsId,elementId,map}) => {
       remark,
       remark,
       wbsId,
       wbsId,
       elementId,
       elementId,
+      scale,
+      number,
       map
       map
     }
     }
   })
   })
 }
 }
 
 
-export const updateFormula = ({id,formula,remark,wbsId,elementId,map}) => {
+export const updateFormula = ({id,formula,remark,wbsId,elementId,scale,number,map}) => {
   return request({
   return request({
     url: '/api/blade-manager/formula/update',
     url: '/api/blade-manager/formula/update',
     method: 'post',
     method: 'post',
@@ -34,6 +36,8 @@ export const updateFormula = ({id,formula,remark,wbsId,elementId,map}) => {
       remark,
       remark,
       wbsId,
       wbsId,
       elementId,
       elementId,
+      scale,
+      number,
       map
       map
     }
     }
   })
   })

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

@@ -993,6 +993,38 @@ export default {
     //保存公式
     //保存公式
     saveFormula(){
     saveFormula(){
       let obj = formulaArrayToString(this.processFormula,this.resultFormula);
       let obj = formulaArrayToString(this.processFormula,this.resultFormula);
+
+      //特殊公式会有number
+      let number = '';
+      for (let i = 0; i < this.processFormula.length; i++) {
+        if(this.processFormula[i].children){
+          for (let j = 0; j < this.processFormula[i].children.length; j++) {
+            if(this.processFormula[i].children[j].number){
+              number = this.processFormula[i].children[j].number;
+              break;
+            }
+          }
+        }
+        if(number){
+          break;
+        }
+      }
+      if(number === ''){
+        for (let i = 0; i < this.resultFormula.length; i++) {
+          if(this.resultFormula[i].children){
+            for (let j = 0; j < this.resultFormula[i].children.length; j++) {
+              if(this.resultFormula[i].children[j].number){
+                number = this.resultFormula[i].children[j].number;
+                break;
+              }
+            }
+          }
+          if(number){
+            break;
+          }
+        }
+      }
+      
       //console.log(obj)
       //console.log(obj)
       //console.log(text);
       //console.log(text);
       if(this.formulaid){
       if(this.formulaid){
@@ -1002,6 +1034,8 @@ export default {
           remark:'',
           remark:'',
           wbsId:this.wbsid,
           wbsId:this.wbsid,
           elementId:this.eleid,
           elementId:this.eleid,
+          scale:this.isRetain?this.retainNum:'',
+          number:number,
           map:JSON.stringify(obj.eleMap)
           map:JSON.stringify(obj.eleMap)
         }).then(()=>{
         }).then(()=>{
           this.$message({
           this.$message({
@@ -1015,6 +1049,8 @@ export default {
           remark:'',
           remark:'',
           wbsId:this.wbsid,
           wbsId:this.wbsid,
           elementId:this.eleid,
           elementId:this.eleid,
+          scale:this.isRetain?this.retainNum:'',
+          number:number,
           map:JSON.stringify(obj.eleMap)
           map:JSON.stringify(obj.eleMap)
         }).then((res)=>{
         }).then((res)=>{
           if(res.data.data){
           if(res.data.data){
@@ -1032,7 +1068,7 @@ export default {
     //把公式文本还原数组
     //把公式文本还原数组
     async formulaStringToArray(){
     async formulaStringToArray(){
       let detail = (await formulaDetail({elementId:this.eleid})).data.data;
       let detail = (await formulaDetail({elementId:this.eleid})).data.data;
-      //console.log(detail);
+      console.log(detail);
       if(detail.id){
       if(detail.id){
         this.formulaid = detail.id;
         this.formulaid = detail.id;
         //let formula = formulaStringToArray('FC.sum(FC.repeat(E[测试测试_222]))+FC.ifelse(3<E[测试测试_333]&&E[测试测试_333]<10,E[测试测试_222]+E[测试测试_333],E[测试测试_333])',detail.map,this.formulaMap);
         //let formula = formulaStringToArray('FC.sum(FC.repeat(E[测试测试_222]))+FC.ifelse(3<E[测试测试_333]&&E[测试测试_333]<10,E[测试测试_222]+E[测试测试_333],E[测试测试_333])',detail.map,this.formulaMap);
@@ -1043,6 +1079,11 @@ export default {
         formula.resultFormula[0].tableElementKey = this.resultFormula[0].tableElementKey;
         formula.resultFormula[0].tableElementKey = this.resultFormula[0].tableElementKey;
         this.resultFormula[0].children = formula.resultFormula[0].children;
         this.resultFormula[0].children = formula.resultFormula[0].children;
       }
       }
+
+      if(detail.scale > -1){
+        this.isRetain = true;
+        this.retainNum = detail.scale;
+      }
     },
     },