瀏覽代碼

节点参数自动关联元素

yangyj 2 年之前
父節點
當前提交
e048aea06c
共有 2 個文件被更改,包括 75 次插入11 次删除
  1. 28 0
      src/api/manager/wbstree.js
  2. 47 11
      src/views/manager/wbsinfo/edit.vue

+ 28 - 0
src/api/manager/wbstree.js

@@ -85,6 +85,34 @@ export const selectByNodeTable = (id, params) => {
     })
 }
 
+export const getParamElements = (params) => {
+    return request({
+        url: '/api/blade-manager/param/get-param-elements',
+        method: 'get',
+        params: {
+            ...params
+        }
+    })
+}
+export const delParamElements = (params) => {
+    return request({
+        url: '/api/blade-manager/param/del-param-elements',
+        method: 'get',
+        params: {
+            ...params
+        }
+    })
+}
+export const specifiedParamElements = (params) => {
+    return request({
+        url: '/api/blade-manager/param/specified-param-elements',
+        method: 'post',
+        params: {
+            ...params
+        }
+    })
+}
+
 export const saveFormAndElement = (formElementDTO) => {
     return request({
         url: '/api/blade-manager/wbsTree/save-table-element',

+ 47 - 11
src/views/manager/wbsinfo/edit.vue

@@ -1520,7 +1520,7 @@
           </el-table-column>
           <el-table-column
             align="center"
-            prop="describe"
+            prop="elementName"
             label="关联元素字段"
           >
           </el-table-column>
@@ -1530,17 +1530,17 @@
             align="center"
           >
             <template slot-scope="scope">
-              <el-button
+              <el-button v-if="!scope.row.mappingId"
                 type="text"
                 size="small"
                 class="text-icon-primary"
                 @click="tolinkEle(scope.row)"
-              >关联元素</el-button>
-              <el-button
+              >选择元素</el-button>
+              <el-button v-if="!!scope.row.mappingId"
                 type="text"
                 size="small"
                 class="text-icon-danger"
-                @click="delLink(scope.$index)"
+                @click="delLink(scope.row)"
               >删除关联</el-button>
             </template>
           </el-table-column>
@@ -1550,13 +1550,13 @@
         slot="footer"
         class="dialog-footer"
       >
-        <el-button @click="saveLinks">保 存</el-button>
+        <!-- <el-button @click="saveLinks">保 存</el-button> -->
         <el-button @click="linkEleVisible = false">关 闭</el-button>
       </span>
     </el-dialog>
 
     <el-dialog
-      title="节点参数设置-关联元素"
+      title="选择关联元素"
       :visible.sync="linkCheckVisible"
       width="600px"
       append-to-body
@@ -1642,7 +1642,7 @@
 import ManualSorting from '@/components/WbsTree/ManualSorting'
 import FormulaEdit from '@/views/formula/edit.vue'
 import {
-  getLazytree, getDetail, update, selectByNodeTable, getAlltree,
+  getLazytree, getDetail, update, selectByNodeTable,getParamElements,delParamElements,specifiedParamElements, getAlltree,
   saveFormAndElement, selectFormElements, removeTableById, findWbsTreeSameLevel, wbsTreeSort, findWbsTreeTableSameLevel, wbsTreeTableSort, parameters, saveOrUpdateBatch, keymap, importwbsTreeFormBatch, exportBatchTemplate, updateBatchNodeTableInfo,
   importWbsTree, exportTemplate, remove as removeTreeNode,submitFullName
 } from "@/api/manager/wbstree";
@@ -2904,7 +2904,7 @@ export default {
     linkEle(row){
       this.linkEleVisible = true;
       this.curParam = row;
-      selectByNodeTable(this.jiedianId).then((res) => {
+      getParamElements({nodeId:this.jiedianId,paramId:row.id}).then((res) => {
         if (res.data.data.length) {
           this.linkEleTableList = res.data.data;
         } else {
@@ -2919,8 +2919,30 @@ export default {
     },
 
     //删除关联
-    delLink(){
+    delLink(data){
+      this.$confirm('删除关联, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        console.log(data)
+        delParamElements(data).then(() => {
+          this.$message({
+            type: "success",
+            message: "删除成功!"
+          });
+
+          getParamElements({nodeId:this.jiedianId,paramId:this.curParam.id}).then((res) => {
+           if (res.data.data.length) {
+              this.linkEleTableList = res.data.data;
+              } else {
+               this.linkEleTableList = [];
+          } })
+        })
+        
+      }).catch(() => {
 
+      });
     },
 
     //关联元素弹框
@@ -2950,7 +2972,21 @@ export default {
 
     //关联元素
     saveLinkEle(){
-
+        let target={}
+        this.linkEleList.forEach(e=>{
+             if(e.checked==true){
+              target={elementId:e.id,paramId:this.curParam.id};
+             }
+        })
+        specifiedParamElements(target).then(data=>{
+          this.linkCheckVisible = false;  
+          getParamElements({nodeId:this.jiedianId,paramId:this.curParam.id}).then((res) => {
+           if (res.data.data.length) {
+              this.linkEleTableList = res.data.data;
+              } else {
+               this.linkEleTableList = [];
+           }})
+        })
     },
 
     //筛选元素