duy 2 rokov pred
rodič
commit
9a9024d2cc

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

@@ -97,13 +97,13 @@
             </el-card>
           </el-col>
           <el-col :span="16" class="h-100p flex flex-d-c ov-hidden">
-            <div>
-               <el-select v-model="eleTableId" @change="getTableEle" placeholder="请选择元素表" style="width:300px">
+            <div class="flex" style="justify-content: space-between;width:100%">
+               <el-select v-model="eleTableId" @change="getTableEle" placeholder="请选择元素表" style="width:45%">
                 <el-option v-if="paramDataList.length" label="选择节点参数2" value="选择节点参数"></el-option>
                 <el-option  v-for="item in eleTableList" :key="item.id" :label="item.tableName" :value="item.id"></el-option>
               </el-select>
               <!-- 搜索元素下拉框 -->
-              <el-select v-model="input3" filterable placeholder="搜索元素字段"  @change="getInput">
+              <el-select v-model="input3" filterable placeholder="搜索元素字段"  @change="getInput" style="width:45%">
               <el-option
                 v-for="item in eleList"
                 :key="item.id"

+ 38 - 260
src/views/formula/edit1.vue

@@ -109,8 +109,8 @@
               <el-option
                 v-for="item in eleTableList"
                 :key="item.id"
-                :label="item.title"
-                :value="item.title">
+                :label="item.eName"
+                :value="item.eName">
               </el-option>
             </el-select>
             
@@ -119,9 +119,9 @@
                 <el-row v-loading="eleListable">
                   <el-col :span="6" v-for="item in eleList" :key="item.id">
                     <div class="ele-box">
-                      <!-- <span v-if="item.k">{{item.name}}</span>
-                      <span v-else>{{item.eName}}</span> -->
-                       <span >{{item.title}}</span>
+                      <span v-if="item.k">{{item.name}}</span>
+                      <span v-else>{{item.eName}}</span>
+                       <!-- <span >{{item.title}}</span> -->
                       
                       <el-checkbox v-model="item.checked" @change="value => eleChang(value,item)"></el-checkbox>
                     </div>
@@ -385,9 +385,10 @@ import { getProjectList,findProjectTree } from "@/api/manager/projectinfo";
 import { findContractByProjectId } from "@/api/manager/contractinfo";
 import { getDetail as getEleDeatil } from "@/api/manager/wbsformelement";
 import { getTypeMap,saveFormula,formulaDetail,updateFormula } from "@/api/formula/formula";
-import { getNodeTabAndParam as wbsPrivateGetNodeTabAndParam } from "@/api/manager/wbsprivate";
+import { getNodeTabAndParam as wbsPrivateGetNodeTabAndParam} from "@/api/manager/wbsprivate";
 import {tabTypeLazyTreeAll} from "@/api/manager/wbsprivate";
 import {tabTypeLazyTree} from "@/api/manager/wbsprivate";
+import {selectPrivateFormElements} from "@/api/manager/wbstree";
 import {mapGetters} from "vuex";
 
 import formulaItem from "./component/formulaItem"
@@ -719,57 +720,9 @@ export default {
       }
     },
 
-    // eleChang(value,item){
-    //   console.log(value)
-    //   console.log(item)
-    //   if(value){
-    //     //简单语法判断
-    //     if(this.selectEleFormula.length != 0 && this.deleEleIndex < 0){
-    //       let lastEle = this.selectEleFormula[this.selectEleFormula.length-1];
-    //       if(lastEle.type == 'Element'){
-    //         this.$message({
-    //           type: "warning",
-    //           message: "元素无法连续出现在元素后面"
-    //         });
-    //         item.checked = false;
-    //         return;
-    //       }
-    //       if(lastEle.type == 'Text'){
-    //         this.$message({
-    //           type: "warning",
-    //           message: "元素无法连续出现在输入值后面"
-    //         });
-    //         item.checked = false;
-    //         return;
-    //       }
-    //       if(lastEle.type == 'Brackets' && lastEle.name == ')'){
-    //         this.$message({
-    //           type: "warning",
-    //           message: "元素无法连续出现在右括号后面"
-    //         });
-    //         item.checked = false;
-    //         return;
-    //       }
-    //     }
-
-    //     this.eleAddFormulaHandle(item);
-    //   }else{
-    //     let index = -1;
-    //     for (let i = 0; i < this.selectEleFormula.length; i++) {
-    //       if(this.selectEleFormula[i].id == item.id){
-    //         index = i;
-    //         break;
-    //       }
-    //     }
-    //     if(index>-1){
-    //       this.selectEleFormula.splice(index,1);
-    //     }
-    //   }
-    // },
-      eleChang(value,item){
-      console.log(value)
-      console.log(item)
-      console.log(this.selectEleFormula,'this.selectEleFormula');
+    eleChang(value,item){
+      console.log(value,'value');
+      console.log(item,'item');
       if(value){
         //简单语法判断
         if(this.selectEleFormula.length != 0 && this.deleEleIndex < 0){
@@ -814,130 +767,40 @@ export default {
         }
       }
     },
-
     //快捷添加运算符号
     addOperator(operator){
       this.eleAddFormulaHandle(this.formulaMap[operator]);
     },
 
     //把元素加到公式里
-    // eleAddFormulaHandle(ele){
-    //   if(ele.tableElementKey){
-    //     //元素
-    //     if(this.deleEleIndex > -1 && this.selectEleFormula.length-1 >= this.deleEleIndex){
-    //       //删除元素的位置,如果下次添加元素,先加到这个位置
-    //       this.selectEleFormula.splice(this.deleEleIndex,0,{
-    //         type:'Element',
-    //         name:ele.eName,
-    //         id:ele.id,
-    //         selected:false,
-    //         tableElementKey:ele.tableElementKey,
-    //         children:[],
-    //       })
-    //       this.deleEleIndex = -1;
-    //     }else{
-    //       this.selectEleFormula.push({
-    //         type:'Element',
-    //         name:ele.eName,
-    //         id:ele.id,
-    //         selected:false,
-    //         tableElementKey:ele.tableElementKey,
-    //         children:[],
-    //       })
-    //       this.deleEleIndex = -1;
-    //     }
-
-    //   }else if(ele.template && ele.example){
-
-    //     //简单语法判断
-    //     if(this.selectEleFormula.length == 0){
-    //       this.$message({
-    //         type: "warning",
-    //         message: "公式开头不能是运算符号"
-    //       });
-    //       return;
-    //     }else{
-    //       let lastEle = this.selectEleFormula[this.selectEleFormula.length-1];
-    //       if(lastEle.type == 'Operator'){
-    //         this.$message({
-    //           type: "warning",
-    //           message: "运算符号无法连续出现在运算符号后面"
-    //         });
-    //         return;
-    //       }
-    //       if(lastEle.type == 'Brackets' && lastEle.name == '('){
-    //         this.$message({
-    //           type: "warning",
-    //           message: "运算符号无法连续出现在左括号后面"
-    //         });
-    //         return;
-    //       }
-    //     }
-
-    //     //运算符号
-    //     this.selectEleFormula.push({
-    //       type:'Operator',
-    //       name:this.symbolReg.exec(ele.name)[1],
-    //       selected:false,
-    //       template:ele.template
-    //     })
-    //   }else if(ele.type == 'Brackets'){
-    //     //括号
-    //     this.selectEleFormula.splice(ele.selectIndex,0,{
-    //       type:'Brackets',
-    //       name:ele.name,
-    //       selected:false,
-    //     })
-    //   }else if(ele.type == 'Text'){
-    //     //输入值
-    //     this.selectEleFormula.push({
-    //       type:'Text',
-    //       name:ele.name,
-    //       selected:false,
-    //     })
-    //   }else if(ele.k){
-    //     //节点参数
-    //     this.selectEleFormula.push({
-    //       type:'ParamData',
-    //       name:ele.name,
-    //       selected:false,
-    //       id:ele.id,
-    //       v:ele.v,
-    //       k:ele.k,
-    //       children:[],
-    //     })
-    //   }
-    // },
-      eleAddFormulaHandle(ele){
-        console.log(ele,'ele');
-      if(ele.id){
+    eleAddFormulaHandle(ele){
+      console.log(ele.tableElementKey,'ele.tableElementKey');
+      if(ele.tableElementKey){
         //元素
         if(this.deleEleIndex > -1 && this.selectEleFormula.length-1 >= this.deleEleIndex){
           //删除元素的位置,如果下次添加元素,先加到这个位置
           this.selectEleFormula.splice(this.deleEleIndex,0,{
             type:'Element',
-            name:ele.title,
+            name:ele.eName,
             id:ele.id,
             selected:false,
-            tableElementKey:ele.id,
+            tableElementKey:ele.tableElementKey,
             children:[],
           })
           this.deleEleIndex = -1;
         }else{
           this.selectEleFormula.push({
             type:'Element',
-            name:ele.title,
+            name:ele.eName,
             id:ele.id,
             selected:false,
-            tableElementKey:ele.id,
+            tableElementKey:ele.tableElementKey,
             children:[],
           })
           this.deleEleIndex = -1;
         }
 
       }else if(ele.template && ele.example){
-        console.log(ele,'ele22222222');
-
         //简单语法判断
         if(this.selectEleFormula.length == 0){
           this.$message({
@@ -997,6 +860,7 @@ export default {
         })
       }
     },
+ 
 
     //添加括号
     addBrackets(text,type){
@@ -1417,27 +1281,7 @@ export default {
         this.$refs.deviationrange.setELe(item);
       }
     },
-    onLoad(page, params = {}){
-      if(this.treeId){
-        this.eleListable=true;
-        if(!this.elementType){
-            this.tabTypeLazyTreeAll(this.treeId, this.page.current,1000,this.input3).then((res)=>{
-              this.eleList=res.records
-              this.page.total=res.total
-              this.eleListable=false
-              this.eleTableList =res.records;
-          })
-        }else{
-            this.tabTypeLazyTree(this.treeId,this.projectid, this.page.current,1000,this.input3).then((res)=>{
-              this.eleList=res.records
-              this.page.total=res.total
-              this.eleListable=false
-              this.eleTableList =res.records;
-          })
-        }
-        
-      }
-    },
+
     async tabTypeLazyTreeAll ( parentId,current,size,titleName) {//清表树
       console.log(parentId);
       const { data: res } = await tabTypeLazyTreeAll({parentId,current,size,titleName}	)
@@ -1450,90 +1294,33 @@ export default {
     getNodeDetail(data,node){
       this.curNode=node;
       this.curData=data;
-      this.treeId=data.id;
+      this.treeId=data.initTableId;
        this.page.current=1;
       this.page.currentPage=1;
       this.input3=''
-      if(data.hasChildren){
-          this.onLoad(this.page)
-          }
-         
         if(data.hasChildren===false&&node.level==2){
            this.eleListable=true;
-          let arr=[]
-            arr.push(data)
-            this.eleList=arr;
-           this.eleTableList =arr;
-            this.page.total=1
-            setTimeout(() => {
-              this.eleListable=false
-              
-            }, 1000);
-        }else{
+           selectPrivateFormElements(this.treeId ).then((res)=>{
+             if(res.data.code==200){
+                this.eleList=res.data.data;
+                 this.eleTableList =res.data.data;
+                this.eleListable=false;
+             } 
+           })
+        }
+        else{
           this.eleListable=true;
            this.eleList=[]
            this.page.total=0
            setTimeout(() => {
               this.eleListable=false
-              
             }, 1000);
         }
-        // if(this.treeId){
-        //  this.onLoad(this.page)
-        // }
+       
           
     },
 
-    // getNodeDetail(data) {
-    //   if(this.pid){
-    //     wbsPrivateGetNodeTabAndParam(data.id, this.pid, this.wbsid).then((res) => {
-    //       if(res.data.data.tabData.length){
-    //         this.eleTableList = res.data.data.tabData;
-    //         // 获取点击节点的第一张表
-    //         let tabId= this.eleTableList[0].initTableId;
-    //         console.log("wbsPrivateGetNodeTabAndParam")
-    //         this.getTableEle(tabId);
-    //         setTimeout(() => {
-    //           // 启动这个指令的DOM结构点击事件
-    //           this.eleTableId = tabId;
-    //         },1000); // 默认1秒
-    //       }else{
-    //         this.eleTableList = [];
-    //         this.eleTableId = '';
-    //         this.eleList = [];
-    //       }
-
-    //       if(res.data.data.paramData.length){
-    //         this.paramDataList = res.data.data.paramData;
-    //       }else{
-    //         this.paramDataList = [];
-    //       }
-    //     })
-    //   }else{
-    //     getNodeTabAndParam(data.id).then((res)=>{
-    //       if(res.data.data.tabData.length){
-    //         this.eleTableList = res.data.data.tabData;
-    //         let tabId= this.eleTableList[0].initTableId;
-    //         console.log("getNodeTabAndParam");
-    //         this.getTableEle(tabId);
-    //         setTimeout(() => {
-    //           // 启动这个指令的DOM结构点击事件
-    //           this.eleTableId = tabId;
-    //         },1000); // 默认1秒
-    //       }else{
-    //         this.eleTableList = [];
-    //         this.eleTableId = '';
-    //         this.eleList = [];
-    //       }
-
-    //       if(res.data.data.paramData.length){
-    //         this.paramDataList = res.data.data.paramData;
-    //       }else{
-    //         this.paramDataList = [];
-    //       }
-    //     })
-    //   }
-    // },
+  
 
     getEleDeatil(){
       getEleDeatil(this.eleid).then((res)=>{
@@ -1549,24 +1336,15 @@ export default {
       })
     },
 
-    // getTableEle(tableId){
-    //   console.log("getTableEle");
-    //   if(tableId === '选择节点参数'){
-    //     this.eleList = this.paramDataList;
-    //   }else{
-    //     selectFormElements(tableId,{nodeId:this.nodeid}).then((res)=>{
-    //       this.eleList = res.data.data;
-    //     })
-    //   }
-    // },
+  
     getTableEle(tableId){
-      console.log(tableId,'tableId');
-      console.log("getTableEle");
-      this.eleAddFormulaHandle({
-        type:'Text',
-        name:tableId
+       let arr=[]
+      arr=this.eleTableList.filter((item)=>{
+        if(item.eName===tableId){
+          return item
+        }
       })
-     
+      this.eleList=arr;
     },
 
     //方法下面的点击树节点

+ 19 - 2
src/views/manager/projectinfo/tree.vue

@@ -1407,7 +1407,7 @@
       </span>
     </el-dialog>
 
-    <!-- 公式 -->
+    <!-- 节点公式 -->
     <el-dialog
       title="元素公式"
       :visible.sync="formulaCompVisible"
@@ -1425,6 +1425,13 @@
         v-if="formulaCompVisible"
       ></FormulaEdit>
     </el-dialog>
+      <!-- 全局公式 -->
+    <el-dialog title="" :visible.sync="formulaCompVisible1" fullscreen append-to-body class="full-dialog">
+      <FormulaEditone  :wbsid="id" :nodeid="curTreeData.id" :eleid="formulaCurRow.id"   :elementType="formulaCurRow.elementType"  :projectid="projectid"
+      :globaltype="formulaCurRow.globaltype" @hideDialog="formulaCompVisible1 = false"
+       v-if="formulaCompVisible1">
+       </FormulaEditone>
+    </el-dialog>
 
     <!-- 编辑元素 -->
     <el-dialog
@@ -1560,6 +1567,7 @@
 import ManualSorting from "@/components/WbsTree/ManualSorting";
 import dynamicExcel from "./treeTemplate/dynamicExcel.vue";
 import FormulaEdit from "@/views/formula/edit.vue";
+import FormulaEditone from '@/views/formula/edit1.vue'
 import EditElement from "@/views/manager/projectinfo/editElement/editElement.vue";
 import {
   saveFormAndElement,
@@ -1782,6 +1790,7 @@ export default {
       aliasArr: [],
 
       formulaCompVisible: false, //公式弹框
+      formulaCompVisible1:false,
       formulaCurRow: {}, //当前元素
 
       editElementVisible: false, //编辑元素弹框
@@ -2469,7 +2478,14 @@ export default {
 
       this.formulaCurRow = row;
       this.formulaCurRow.globaltype = type;
-      this.formulaCompVisible = true;
+      if(type===1){
+          this.formulaCompVisible1 = true;
+           this.formulaCurRow.elementType = true;
+      }else{
+          this.formulaCompVisible = true;
+         
+      }
+     
     },
 
     getNodeTypelist() {
@@ -3313,6 +3329,7 @@ export default {
     ManualSorting,
     FormulaEdit,
     EditElement,
+    FormulaEditone
   },
 };
 </script>