Explorar o código

排序功能修改完成

admin %!s(int64=3) %!d(string=hai) anos
pai
achega
f8d0185de9

+ 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>

+ 83 - 1
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>
@@ -307,6 +313,30 @@
       />
     </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="关联清表"
@@ -1251,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,
@@ -1269,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,
@@ -1956,6 +1993,50 @@ export default {
     },
     //#endregion
 
+    //#region  wbs私有树排序 
+    async sortpai (data, node) {
+      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) {//获取清表模板信息
@@ -2053,6 +2134,7 @@ export default {
   },
   components: {
     dynamicExcel,
+    ManualSorting,
   },
 };
 </script>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 986 - 274
src/views/manager/wbsinfo/edit.vue


+ 1 - 0
vue.config.js

@@ -28,6 +28,7 @@ module.exports = {
                 //本地服务接口地址
                 target: 'http://192.168.3.76', //
                 // target: 'http://47.110.251.215:8090', //
+                // target: 'http://192.168.3.13', //
                 //远程演示服务地址,可用于直接启动项目
                 //target: 'https://saber.bladex.vip/api',
                 ws: true,

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio