Quellcode durchsuchen

日志树划分

huangjn vor 3 Jahren
Ursprung
Commit
4d408a25a2

+ 15 - 0
src/api/manager/projectinfo.js

@@ -55,6 +55,13 @@ export const getProjectDeatilWbsId = (id, ReferenceWbsTemplateId, ReferenceWbsTe
     })
 }
 
+export const findLogWbsTreeList = () => {
+  return request({
+    url: '/api/blade-manager/wbsInfo/queryLogTree',
+    method: 'get',
+  })
+}
+
 export const findWbsTreeList = (type) => {
     return request({
         url: '/api/blade-manager/projectInfo/findWbsTreeList',
@@ -86,6 +93,14 @@ export const getContractRelation = (contractId) => {
   })
 }
 
+export const submitLogWbsTreeInProject = (obj) => {
+  return request({
+    url: '/api/blade-manager/wbsPrivate/saveContractLogNode',
+    method: 'post',
+    data: obj
+  })
+}
+
 export const submitWbsTreeInProject = (obj) => {
     return request({
         url: '/api/blade-manager/projectInfo/submitWbsTreeInProject',

+ 78 - 8
src/views/manager/projectinfo/detail.vue

@@ -213,14 +213,14 @@
             <div class="text-align-c mg-t-20">
               <span class="mg-r-20">选择WBS</span>
               <el-select
-                v-model="wbsId"
-                @change="wbsChange"
+                v-model="logWbsId"
+                @change="logWbsChange"
                 :disabled="selected"
                 placeholder="请选择WBS"
                 style="width:500px;"
               >
                 <el-option-group
-                  v-for="group in treeList"
+                  v-for="group in logTreeList"
                   :key="group.label"
                   :label="group.label"
                 >
@@ -235,7 +235,7 @@
               </el-select>
             </div>
             <tree-tree
-              :left-tree-data="leftTreeData"
+              :left-tree-data="logLeftTreeData"
               ref="treetotree2"
               :show-all-check="true"
               @onAddTree="treeChang3"
@@ -409,7 +409,7 @@
 <script>
 import {
   submitProject, getProjectDeatil, findWbsTreeList, findProjectTree,
-  submitWbsTreeInProject, getProjectDeatilWbsId
+  submitWbsTreeInProject, getProjectDeatilWbsId, findLogWbsTreeList, submitLogWbsTreeInProject
 } from "@/api/manager/projectinfo";
 import {
   findContractByProjectId, saveUserInfoByProject, findUserListByCondition,
@@ -531,9 +531,12 @@ export default {
 
       templateType: 1,
       treeList: [],
+      logTreeList: [],
       wbsId: '',
+      logWbsId: '',
       selected: false,
       leftTreeData: [],
+      logLeftTreeData: [],
     }
   },
   computed: {
@@ -547,7 +550,6 @@ export default {
       deep: true
     },
     activeType: function (newValue) {
-      //console.log('ss');
       if (newValue == '4') {
         this.getContractList();
         this.getRoleList();
@@ -555,6 +557,8 @@ export default {
         this.getUserByName();
       } else if (newValue == '2') {
         this.treeInit();
+      } else if (newValue == '3') {
+        this.treeLogInit();
       }
     }
   },
@@ -597,6 +601,7 @@ export default {
       }
     },
     beforeLeave (activeName, oldActiveName) {
+
       return new Promise((resolve, reject) => {
         if (oldActiveName == '1' && !this.projectForm.id) {
           this.$message({
@@ -672,6 +677,8 @@ export default {
           await this.saveProject();
         } else if (this.activeType == '2') {
           await this.saveWbsTree();
+        } else if (this.activeType == '3'){
+          await this.saveLogWbsTree();
         }
       } catch (error) {
         this.btnLoad = false;
@@ -732,7 +739,16 @@ export default {
         })
       })
     },
-
+    saveLogWbsTree() {
+      let ids = this.$refs.treetotree2.getTreeAllId('rightTree');
+      let obj = {
+        wbsId: this.logWbsId,
+        projectId: this.projectForm.id,
+        wbsType: "4",
+        wbsTreeIds: ids
+      };
+      return submitLogWbsTreeInProject(obj);
+    },
     saveWbsTree () {
       let obj = {};
       let ids = this.$refs.treetotree.getTreeAllId('rightTree');
@@ -869,7 +885,16 @@ export default {
         this.roleList = res.data.data
       })
     },
-
+    logWbsChange(value){
+      //公有库
+      getAlltree(this.userInfo.tenant_id, '1', value).then((res) => {
+        if (Array.isArray(res.data.data)) {
+          this.logLeftTreeData = res.data.data;
+        } else {
+          this.logLeftTreeData = [];
+        }
+      })
+    },
     wbsChange (value) {
       //console.log(value)
       if (value.toString().indexOf(',') >= 0) {
@@ -894,6 +919,31 @@ export default {
       }
     },
 
+    getLogTreeList(){
+      return new Promise((resolve) => {
+        if (this.logTreeList.length) {
+          resolve();
+        }
+        findLogWbsTreeList().then((res) => {
+          let arr = [{
+            label: '公有库',
+            options: [],
+          }];
+          let data = res.data.data;
+          if (data && data.length) {
+            data.forEach((element) => {
+              element.label = element.wbsName;
+              element.value = element.id;
+            })
+            arr[0].options = data;
+          }
+          this.logTreeList = arr;
+        }).finally(() => {
+          resolve();
+        })
+      })
+    },
+
     getTreeList () {
       return new Promise((resolve) => {
         if (this.treeList.length) {
@@ -969,7 +1019,27 @@ export default {
       this.wbsId = '';
       this.leftTreeData = [];
     },
+    async treeLogInit(){
+      let refId = this.projectForm.referenceLogWbsTemplateId;
+      if(refId && refId > 0 && Number(this.projectForm.wbsType) > 0){
+        await this.getLogTreeList();
+        this.logWbsId = refId;
+
+        let leftData = await getAlltree(this.userInfo.tenant_id, '1', refId);
+        if (Array.isArray(leftData.data.data)) {
+          this.logLeftTreeData = leftData.data.data;
+        } else {
+          this.logLeftTreeData = [];
+        }
+
+        let projectTree = await findProjectTree(this.projectForm.id, refId);
+        this.$refs.treetotree2.setRightTree(projectTree.data.data);
+      } else {
+        await this.getLogTreeList();
+      }
+    },
     async treeInit () {
+
       let refId = this.projectForm.referenceWbsTemplateId;
       //引用被删会出现 wbsType -1
       if (refId && refId > 0 && Number(this.projectForm.wbsType) > 0) {

+ 14 - 0
src/views/manager/projectinfo/list.vue

@@ -65,6 +65,11 @@
             @click="editTree"
             type="success"
           >WBS树管理</el-button>
+          <el-button
+            size="small"
+            @click="editLogTree"
+            type="success"
+          >日志WBS树管理</el-button>
           <el-button
             size="small"
             @click="editProject"
@@ -251,6 +256,15 @@ export default {
         }
       });
     },
+    editLogTree () {
+      this.$router.push({
+        path: '/project/tree',
+        query: {
+          pid: this.curProjiect.id,
+          wbsid: this.curProjiect.referenceLogWbsTemplateId
+        }
+      });
+    },
 
     delContract (item, index) {
       this.$confirm('是否删除【' + item.contractName + '】?', '提示', {