Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	vue.config.js
liuyc 3 years ago
parent
commit
30bd02d689

+ 154 - 100
src/api/manager/wbstree.js

@@ -1,134 +1,188 @@
 import request from '@/router/axios';
 
 export const getList = (current, size, params) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/lazy-tree?parentId=0',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
-}
-
-export const getLazytree = (wbsId,parentId,tenantId,params) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/lazy-tree',
-    method: 'get',
-    params: {
-      ...params,
-      wbsId,
-      parentId,
-      tenantId,
-    }
-  })
-}
-
-export const getAlltree = (tenantId,type='',wbsId,params) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/tree',
-    method: 'get',
-    params: {
-      ...params,
-      tenantId,
-      type,
-      wbsId
-    }
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/lazy-tree?parentId=0',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+
+export const getLazytree = (wbsId, parentId, tenantId, params) => {
+    return request({
+        url: '/api/blade-manager/wbsTree/lazy-tree',
+        method: 'get',
+        params: {
+            ...params,
+            wbsId,
+            parentId,
+            tenantId,
+        }
+    })
+}
+
+export const getAlltree = (tenantId, type = '', wbsId, params) => {
+    return request({
+        url: '/api/blade-manager/wbsTree/tree',
+        method: 'get',
+        params: {
+            ...params,
+            tenantId,
+            type,
+            wbsId
+        }
+    })
 }
 
 export const getDetail = (id) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/detail',
-    method: 'get',
-    params: {
-      id
-    }
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/detail',
+        method: 'get',
+        params: {
+            id
+        }
+    })
 }
 
 export const remove = (ids) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/remove',
-    method: 'post',
-    params: {
-      id:ids,
-    }
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/remove',
+        method: 'post',
+        params: {
+            id: ids,
+        }
+    })
 }
 
 export const add = (row) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/submit',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/submit',
+        method: 'post',
+        data: row
+    })
 }
 
 export const update = (row) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/submit',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/submit',
+        method: 'post',
+        data: row
+    })
 }
 
 export const selectByNodeTable = (id, params) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/selectByNodeTable',
-    method: 'get',
-    params: {
-      ...params,
-      id
-    }
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/selectByNodeTable',
+        method: 'get',
+        params: {
+            ...params,
+            id
+        }
+    })
 }
 
 export const saveFormAndElement = (formElementDTO) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/saveFormAndElement',
-    method: 'post',
-    data: formElementDTO
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/saveFormAndElement',
+        method: 'post',
+        data: formElementDTO
+    })
 }
 
 export const selectFormElements = (id, params) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/selectFormElements',
-    method: 'get',
-    params: {
-      ...params,
-      id
-    }
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/selectFormElements',
+        method: 'get',
+        params: {
+            ...params,
+            id
+        }
+    })
 }
 export const removeTableById = (id, params) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/removeTableById',
-    method: 'get',
-    params: {
-      ...params,
-      id
-    }
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/removeTableById',
+        method: 'get',
+        params: {
+            ...params,
+            id
+        }
+    })
 }
 
 export const importWbsTree = (froms) => {
-  return request({
-    url: '/api/blade-manager/wbsTree/import-wbsTree',
-    method: 'post',
-    //设置请求头
-    headers: { "Content-Type": "multipart/form-data" },
-    data: froms
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/import-wbsTree',
+        method: 'post',
+        //设置请求头
+        headers: { "Content-Type": "multipart/form-data" },
+        data: froms
+    })
 }
 
 export const exportTemplate = () => {
-  return request({
-    url: '/api/blade-manager/wbsTree/export-template',
-    method: 'get',
-    responseType:'arraybuffer'
-  })
+    return request({
+        url: '/api/blade-manager/wbsTree/export-template',
+        method: 'get',
+        responseType: 'arraybuffer'
+    })
+}
+
+
+//查询当前节点的同级节点
+export const findWbsTreeSameLevel = (params) => {
+    return request({
+        url: '/api/blade-manager/wbsTree/findWbsTreeSameLevel',
+        method: 'get',
+        params
+    })
+}
+
+//查询当前节点的同级节点
+export const wbsTreeSort = (data) => {
+    return request({
+        url: '/api/blade-manager/wbsTree/wbsTreeSort',
+        method: 'post',
+        data
+    })
+}
+
+//查询当前节点下的所有表单
+export const findWbsTreeTableSameLevel = (params) => {
+    return request({
+        url: '/api/blade-manager/wbsFormElement/findWbsTreeTableSameLevel',
+        method: 'get',
+        params
+    })
+}
+
+//表单排序
+export const wbsTreeTableSort = (data) => {
+    return request({
+        url: '/api/blade-manager/wbsFormElement/wbsTreeTableSort',
+        method: 'post',
+        data
+    })
+}
+
+// 私有wbs树当前节点同级节点
+export const findWbsTreePrivateSameLevel = (params) => {
+    return request({
+        url: `/api/blade-manager/wbsPrivate/findWbsTreePrivateSameLevel`,
+        method: 'get',
+        params
+    })
 }
 
+// wbs私有树节点手动排序
+export const wbsTreePrivateSort = (data) => {
+    return request({
+        url: '/api/blade-manager/wbsPrivate/wbsTreePrivateSort',
+        method: 'post',
+        data
+    })
+}

+ 57 - 0
src/components/WbsTree/ManualSorting.vue

@@ -0,0 +1,57 @@
+<template>
+  <div class="ManualSorting">
+    <div
+      v-for="(item,key) in sort"
+      :key="key"
+      class="flexBetween flexItemsC"
+      style="width:100%;font-size:16px;height:30px;"
+    >
+      <div>
+        <span>{{key+1}}</span>
+        <span class="marleft20">{{item.deptName}}</span>
+      </div>
+      <div class="flexItemsC">
+        <i
+          @click="shangshen(key)"
+          class="el-icon-top"
+          :style="{'font-size':'20px','color':key==0 ?'#aaa':'#0A8CD5', 'cursor': key!=0?'pointer':'default'}"
+        ></i>
+        <i
+          @click="xiajiang(key)"
+          class="el-icon-bottom marleft5"
+          :style="{'font-size':'20px','color':key==sort.length-1?'#aaa':'#0A8CD5', 'cursor':  key!=sort.length-1?'pointer':'default'}"
+        ></i>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  props: ['sort'],
+  methods: {
+    xiajiang (key) {
+      if (key != this.sort.length - 1) {
+        let da = this.sort[key]
+        this.sort[key] = this.sort[key + 1]
+        this.sort[key + 1] = da
+        this.$emit('bianhua')
+      }
+      console.log(this.sort);
+    },
+    shangshen (key) {
+      if (key != 0) {
+        let da = this.sort[key]
+        this.sort[key] = this.sort[key - 1]
+        this.sort[key - 1] = da
+        this.$emit('bianhua')
+      }
+    },
+  }
+}
+</script>
+<style lang="scss" scoped>
+.ManualSorting {
+  width: 100%;
+  height: 100%;
+}
+</style>

+ 92 - 7
src/views/manager/projectinfo/tree.vue

@@ -18,6 +18,7 @@
                 v-show="!filterText"
                 class="filter-tree"
                 lazy
+                :data="treeData"
                 :load="loadNode"
                 @node-click="getNodeDetail"
                 :props="defaultProps"
@@ -75,6 +76,11 @@
                           v-if="node.level == 2"
                           icon="el-icon-upload"
                         >导入划分</el-dropdown-item>
+                        <el-dropdown-item
+                          v-if="data.parentId!=0"
+                          @click.native="sortpai(data,node)"
+                          icon="el-icon-sort"
+                        >调整排序</el-dropdown-item>
                       </el-dropdown-menu>
                     </el-dropdown>
                   </span>
@@ -301,9 +307,36 @@
       v-if="excelHtml"
       class="excelHtml"
     >
-      <dynamicExcel @remove="removeExcel" />
+      <dynamicExcel
+        @remove="removeExcel"
+        v-if="excelHtml"
+      />
     </div>
 
+    <!-- 私有wbs树排序弹框 -->
+    <el-dialog
+      title="调整排序"
+      :visible="sortTag"
+      width="50%"
+      append-to-body
+    >
+      <ManualSorting
+        v-if="sortTag2"
+        @bianhua='bianhua()'
+        :sort='sort'
+      />
+      <span
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button @click="sortTag=false,sortTag2=false">取 消</el-button>
+        <el-button
+          type="primary"
+          @click="editSort()"
+        >确 定</el-button>
+      </span>
+    </el-dialog>
+
     <!-- 关联清表 -->
     <el-dialog
       title="关联清表"
@@ -1248,10 +1281,11 @@
 </template>
 
 <script>
+import ManualSorting from '@/components/WbsTree/ManualSorting'
 import dynamicExcel from "./treeTemplate/dynamicExcel.vue";
 import {
   saveFormAndElement, selectFormElements,
-  importWbsTree
+  importWbsTree, findWbsTreePrivateSameLevel, wbsTreePrivateSort
 } from "@/api/manager/wbstree";
 import {
   saveElement, remove as removeElement, updateBatchElements, getTemplate,
@@ -1266,6 +1300,12 @@ import { getList, tabLazytreeAll, saveLinkTab, getExcelHtml } from '@/api/exctab
 export default {
   data () {
     return {
+      //#region 
+      sortTag: false,
+      sortTag2: false,
+      sortArray: [],
+      //#endregion
+
       //#region 关联清表
       loading: false,
       GLExcel: false,
@@ -1953,6 +1993,50 @@ export default {
     },
     //#endregion
 
+    //#region  wbs私有树排序 
+    async sortpai (data) {
+      console.log(data);
+      await this.findWbsTreePrivateSameLevel({
+        parentId: data.parentId,
+        projectId: this.projectid,
+        wbsId: this.id
+      })
+      this.sortTag = true
+      this.sortTag2 = true
+    },
+    editSort () {
+      this.wbsTreePrivateSort()
+    },
+    bianhua () {
+      this.sortTag2 = false
+      this.$nextTick(() => {
+        this.sortTag2 = true
+      })
+    },
+    async wbsTreePrivateSort () {//wbs私有树节点手动排序
+      const { data: res } = await wbsTreePrivateSort(this.sort)
+      console.log(res);
+      if (res.code == 200) {
+        this.sortTag = false
+        this.sortTag2 = false
+        this.getLazytreessss()
+      }
+    },
+    async findWbsTreePrivateSameLevel (da) {//wbs私有树同级节点接口
+      const { data: res } = await findWbsTreePrivateSameLevel(da)
+      console.log(res);
+      if (res.code == 200) {
+        this.sort = res.data
+      }
+    },
+    async getLazytreessss () {
+      const { data: res } = await getLazytree(this.id, 0, this.userInfo.tenant_id, this.projectid)
+      console.log(res);
+      if (res.code == 200) {
+        this.treeData = res.data
+      }
+    },
+    //#endregion
 
     //#region 关联清表
     async getList (da) {//获取清表模板信息
@@ -2024,18 +2108,18 @@ export default {
     //#endregion
 
     //#region 调整表单
-    async adjustExcel () {//调整表单
-      await this.getExcelHtml()
-      this.excelHtml = true
-      // console.log();
+    adjustExcel () {//调整表单
+      this.getExcelHtml()
       // this.$router.push('/ceshi/trees')
     },
     async getExcelHtml () {
       const { data: res } = await getExcelHtml()
       console.log(res);
       if (res.code === 200) {
-        localStorage.setItem('excelHtnl', res.data)
+        localStorage.setItem('excelHtml', res.data)
         this.adjustmentExcel = res.data
+        this.excelHtml = true
+
       }
     },
     removeExcel () {
@@ -2050,6 +2134,7 @@ export default {
   },
   components: {
     dynamicExcel,
+    ManualSorting,
   },
 };
 </script>

+ 11 - 13
src/views/manager/projectinfo/treeTemplate/dynamicExcel.vue

@@ -46,22 +46,11 @@ import setInputTPT from './template/setInputTPT.vue'
 import electronicSignature from './template/electronicSignature.vue'
 import setFormula from './template/setFormula.vue'
 import editDefault from './template/editDefault.vue'
-let tem = localStorage.getItem('excelHtnl')
 import Vue from 'vue'
-
-var MyComponent = Vue.extend({
-
-  data () {
-    return {
-    }
-  },
-  template: tem,
-})
-let component = new MyComponent().$mount()
 export default {
   data () {
     return {
-      setUptype: 3,//右侧显示的类型
+      setUptype: 3,//右侧显示的类型1
     }
   },
   methods: {
@@ -70,7 +59,16 @@ export default {
     },
   },
   mounted () {
-    document.getElementById('parent').appendChild(component.$el);
+    this.cop()
+  },
+  methods: {
+    async cop () {
+      var MyComponent = await Vue.extend({
+        template: localStorage.getItem('excelHtml')
+      })
+      var component = new MyComponent().$mount()
+      document.getElementById('parent').appendChild(component.$el);
+    },
   },
   components: {
     setInputTPT,

File diff suppressed because it is too large
+ 986 - 274
src/views/manager/wbsinfo/edit.vue


Some files were not shown because too many files changed in this diff