Browse Source

公式表名回显

duy 1 năm trước cách đây
mục cha
commit
cb56c2fcb0
2 tập tin đã thay đổi với 70 bổ sung14 xóa
  1. 31 6
      src/views/formula/edit.vue
  2. 39 8
      src/views/formula/edit1.vue

+ 31 - 6
src/views/formula/edit.vue

@@ -49,12 +49,15 @@
           </formula-item>
         </span>
         <span>=</span>
-        <span>
-          <formula-item
-            v-for="(item,index) in processFormula" :key="index"
-            :item="item" @click="obj => equationClick(obj,index,'processFormula')"
-          >
-          </formula-item>
+        <span   v-for="(item,index) in processFormula"     :key="index">
+          <el-tooltip class="item" effect="light" placement="top-start" :disabled="item.type!=='Element'">
+            <div slot="content">{{item.tableName }}</div>
+            <formula-item
+              :getname="getItemTableName(item)"
+              :item="item" @click="obj => equationClick(obj,index,'processFormula')"
+            >
+            </formula-item>
+          </el-tooltip>
         </span>
       </div>
       <div class="flex jc-sb">
@@ -534,6 +537,7 @@ export default {
 
       resultFormula:[],//=等号左边的数组
       processFormula:[],//=等号右边的数组
+      rightDict:[],//等号右边元素的字典
       processType:'',//选中的元素在等号哪边
       processSelectIndex:0,//选中的索引
       actiFunIndex:0,//元素下挂载的计算式的索引
@@ -1119,6 +1123,16 @@ export default {
         this.processType = '';
       }
     },
+        //获取当前元素的表名
+     getItemTableName(item){
+      if(item.type==="Element"){
+        this.rightDict.forEach((ele)=>{
+          if(ele.ekey===item.tableElementKey){
+            item.tableName= ele.tableName
+          }
+        })
+      }
+    },
 
     //在等式模式下点选计算式
     equationSelect(index,indexPath){
@@ -1360,6 +1374,7 @@ export default {
            projectId:this.curProjiect.id||this.pid,
           dev:deviationRangeText
         }).then(()=>{
+          this.formulaStringToArray();
           this.$message({
             type: "success",
             message: "修改成功"
@@ -1383,6 +1398,7 @@ export default {
           if(res.data.data){
             this.formulaid = res.data.data;
           }
+          this.formulaStringToArray();
           this.$message({
             type: "success",
             message: "保存成功"
@@ -1397,6 +1413,15 @@ export default {
       let detail = (await formulaDetail({elementId:this.eleid,scope:this.globaltype,nodeId:this.nodeid,projectId:this.curProjiect.id||this.pid})).data.data;
       console.log(detail,'detail');
       if(detail&&detail.id){
+          //获取右边元素的字典
+          let dictMap=detail.dict
+        let dictArr=[]
+        //遍历:
+        for(let i in dictMap){
+          dictArr.push(dictMap[i])
+
+        }
+        this.rightDict=dictArr
         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(detail.formula,detail.map,this.formulaMap);

+ 39 - 8
src/views/formula/edit1.vue

@@ -42,19 +42,25 @@
       <div class="mg-b-20">函数公式.</div>
       <div class="edit-text">
         <span>
-          <formula-item
+
+            <formula-item
             v-for="(item,index) in resultFormula" :key="index"
             :item="item" @click="obj => equationClick(obj,index,'resultFormula')"
           >
           </formula-item>
+ 
+        
         </span>
         <span>=</span>
-        <span>
-          <formula-item
-            v-for="(item,index) in processFormula" :key="index"
-            :item="item" @click="obj => equationClick(obj,index,'processFormula')"
-          >
-          </formula-item>
+        <span   v-for="(item,index) in processFormula"     :key="index">
+          <el-tooltip class="item" effect="light" placement="top-start" :disabled="item.type!=='Element'">
+            <div slot="content">{{item.tableName }}</div>
+            <formula-item
+              :getname="getItemTableName(item)"
+              :item="item" @click="obj => equationClick(obj,index,'processFormula')"
+            >
+            </formula-item>
+          </el-tooltip>
         </span>
       </div>
       <div class="flex jc-sb">
@@ -589,6 +595,7 @@ export default {
 
       resultFormula:[],//=等号左边的数组
       processFormula:[],//=等号右边的数组
+      rightDict:[],//等号右边元素的字典
       processType:'',//选中的元素在等号哪边
       processSelectIndex:0,//选中的索引
       actiFunIndex:0,//元素下挂载的计算式的索引
@@ -1250,6 +1257,7 @@ export default {
 
     //点选等式中的元素
     equationClick({selected,item},index,arrName){
+      
       if(selected){
         this.resultFormula.forEach((ele)=>{
           ele.selected = false;
@@ -1269,6 +1277,16 @@ export default {
         this.processType = '';
       }
     },
+    //获取当前元素的表名
+    getItemTableName(item){
+      if(item.type==="Element"){
+        this.rightDict.forEach((ele)=>{
+          if(ele.ekey===item.tableElementKey){
+            item.tableName= ele.tableName
+          }
+        })
+      }
+    },
 
     //在等式模式下点选计算式
     equationSelect(index,indexPath){
@@ -1479,10 +1497,12 @@ export default {
             projectId:this.curProjiect.id||this.pid,
           dev:deviationRangeText
         }).then(()=>{
+          this.formulaStringToArray();
           this.$message({
             type: "success",
             message: "修改成功"
           });
+        
         })
       }else{
         saveFormula({
@@ -1502,13 +1522,15 @@ export default {
           if(res.data.data){
             this.formulaid = res.data.data;
           }
+          this.formulaStringToArray();
           this.$message({
             type: "success",
             message: "保存成功"
           });
+       
         })
       }
-
+     
     },
 
     //把公式文本还原数组
@@ -1516,6 +1538,15 @@ export default {
       let detail = (await formulaDetail({elementId:this.eleid,scope:this.globaltype,nodeId:this.nodeid,projectId:this.curProjiect.id||this.pid})).data.data;
       console.log(detail);
       if(detail&&detail.id){
+        //获取右边元素的字典
+        let dictMap=detail.dict
+        let dictArr=[]
+        //遍历:
+        for(let i in dictMap){
+          dictArr.push(dictMap[i])
+
+        }
+        this.rightDict=dictArr
         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(detail.formula,detail.map,this.formulaMap);