Переглянути джерело

选择元素替换运算符

duy 2 роки тому
батько
коміт
0a3061fe70
1 змінених файлів з 39 додано та 15 видалено
  1. 39 15
      src/views/formula/edit1.vue

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

@@ -956,22 +956,46 @@ export default {
             this.eleAddFormulaHandle(e);
           })
           }else{
-              this.eleAddFormulaHandle(this.formulaMap[operator]);
+
+              if(this.curSeleEleIndex===-1 || this.curSeleEleIndex === this.selectEleFormula.length - 1){ /* 没选择值或者选择最后一个的时候直接添加符号 */
+                this.eleAddFormulaHandle(this.formulaMap[operator]);
+              }else{ /* 选择中间的值,如果下一个是符号这替换,反之则在指定的位置添加 */
+                this.randomaddOperator(this.formulaMap[operator])
+              }
           }
         this.itemList=[];
     },
     //随机插入运算符
-    randomaddOperator(text){
+    randomaddOperator(ele){
       //type 是true 表示在元素右边插入
-      console.log(text,'text');
-      if(this.curSeleEleIndex == Number(this.curSeleEleIndex)){
-        this.eleAddFormulaHandle({
-          type:'Operator',
-          name:text,
-          selectIndex:Number(this.curSeleEleIndex)+1
-        })
-       
+      let item={
+        type:'Operator',
+        name:this.symbolReg.exec(ele.name)[1],
+        selected:false,
+        template:ele.template
+      }
+      let index = Number(this.curSeleEleIndex);
+      let currentName = this.selectEleFormula[index]
+      if (currentName.type === 'Operator') { /* 选择的符号的时候,直接替换 */
+
+        this.selectEleFormula.splice(index,1, item)
+      }
+      else { /* 选择元素的时候,如果下一个是符号则替换,如果下一个是元素则添加 */
+
+        let size = index + 1;
+        let lastName = this.selectEleFormula[size]
+
+        if (lastName.type === 'Operator') { /* 是符号,替换 */
+
+          this.selectEleFormula.splice(size,1, item)
+        }
+        else { /* 是元素,添加 */
+
+          this.selectEleFormula.splice(size,0, item)
+        }
+
       }
+
     },
     //把元素加到公式里
     eleAddFormulaHandle(ele){
@@ -1576,7 +1600,7 @@ export default {
         this.eleListComp=res.data.data;
         this.eleListComploading=false;
       })
-     
+
     },
     searchChangejudge(){
       this.eleListjudge=true;
@@ -1584,7 +1608,7 @@ export default {
         this.eleListComp=res.data.data;
         this.eleListjudge=false;
       })
-      
+
     },
     clearinput(){
         this.eleListable=true;
@@ -1599,7 +1623,7 @@ export default {
        getTableElments( this.treeId ).then((res)=>{
             this.eleListComp=res.data.data;
              this.eleListComploading=false
-           
+
          })
     },
     clearinputjudge(){
@@ -1609,7 +1633,7 @@ export default {
          })
         this.eleListjudge=false;
     },
- 
+
 
 
     getNodeDetailComp(data,node) {
@@ -1637,7 +1661,7 @@ export default {
         }
     },
 
- 
+
 
     //取消方法下面 元素勾选
     unCheckEleComp(eleId){