ソースを参照

Merge branch 'master' of http://47.110.251.215:3000/web/saber into master

yangyj 2 年 前
コミット
2f8eb7afc2

+ 13 - 1
src/api/manager/wbsinfo.js

@@ -57,4 +57,16 @@ export const wbsInfotabSort = (primaryKeyIds) => {
         primaryKeyIds,
       }
   })
-}
+}
+
+//获取1质检 2实验公有树列表
+export const getWbsList = (type) => {
+  return request({
+      url: '/api/blade-manager/wbsInfo/get-wbs-type',
+      method: 'get',
+      params: {
+        type
+      }
+  })
+}
+

+ 47 - 148
src/views/manager/archivetree.vue

@@ -13,7 +13,12 @@
       >
         <el-tabs v-model="activeName" @tab-click="handleClick">
           <el-tab-pane label="竣工档案目录" name="first">
-            <div>
+            
+          </el-tab-pane>
+          <el-tab-pane label="文书档案目录" name="second">
+              
+          </el-tab-pane>
+         <div>
                     <!-- <h2>归档目录树</h2> -->
                     <el-input
                       placeholder="输入关键字进行过滤"
@@ -124,121 +129,6 @@
                   </div>
                 
             </div>
-          </el-tab-pane>
-          <el-tab-pane label="文书档案目录" name="second">
-               <div>
-                <!-- <h2>归档目录树</h2> -->
-                <el-input
-                  placeholder="输入关键字进行过滤"
-                  clearable
-                  v-model="filterText"
-                >
-                </el-input>    
-              <div class="scrollClass" style="height:721px">
-                <el-scrollbar style="height:100%">
-                  <el-tree
-                    style="box-sizing: border-box;"
-                    v-show="!filterText"
-                    ref="trees1"
-                    :props="props"
-                    :load="loadNode"
-                    node-key="id"
-                    lazy >
-                    <span
-                      class=" flexStar"
-                      slot-scope="{ node, data }"
-                      @mouseover="mouseOver(data)"
-                      @mouseleave="mouseLeave(data)"
-                        
-                    >
-                      <span style="text-overflow: ellipsis;">{{ data.title }}</span>
-                      <span
-                        class="marleft10"
-                        v-show="data.moreShow"
-                      >
-                        <i
-                          @click.stop='addtree(data,node)'
-                          class="el-icon-circle-plus-outline"
-                          style="fontSize:18px;"
-                          v-if="data.isStorageNode!=1"
-                        ></i>
-                        <i
-                          @click.stop='edittree(data,node)'
-                          class="el-icon-edit-outline marleft5"
-                          style="fontSize:18px;"
-                          v-if="node.level!=1"
-                        ></i>
-                        <i
-                          @click.stop='deletetree(node)'
-                          class="el-icon-delete marleft5"
-                          style="fontSize:18px;"
-                          v-if="node.level!=1"
-                        ></i>
-                        <i
-                          @click.stop='paixuMD(data)'
-                          class="el-icon-sort marleft5"
-                          style="fontSize:18px;"
-                          v-if="node.level!=1"
-                        ></i>
-                      </span>
-                    </span>
-                  </el-tree>
-
-                  <el-tree
-                  v-show="filterText"
-                  :default-expanded-keys='defaultExpanded'
-                  :props="props"
-                  :data="data"
-                  node-key="id"
-                  ref="trees2"
-                  :default-expand-all="true"
-                  :filter-node-method="filterNode"
-                >
-                  <span
-                    class=" flexStar"
-                    slot-scope="{ node, data }"
-                    @mouseover="mouseOver(data)"
-                    @mouseleave="mouseLeave(data)"
-                    style="box-sizing:border-box;width:101%;"
-                  >
-                    <span  style="text-overflow: ellipsis;">{{ data.title }}</span>
-                    <span
-                      class="marleft10"
-                      v-show="data.moreShow"
-                    >
-                      <i
-                        @click.stop='addtree(data,node)'
-                        class="el-icon-circle-plus-outline"
-                        style="fontSize:18px;"
-                        v-if="data.isStorageNode!=1"
-                      ></i>
-                      <i
-                        @click.stop='edittree(data,node)'
-                        class="el-icon-edit-outline marleft5"
-                        style="fontSize:18px;"
-                        v-if="node.level!=1"
-                      ></i>
-                      <i
-                        @click.stop='deletetree(node)'
-                        class="el-icon-delete marleft5"
-                        style="fontSize:18px;"
-                        v-if="node.level!=1"
-                      ></i>
-                      <i
-                        @click.stop='paixuMD(data)'
-                        class="el-icon-sort marleft5"
-                        style="fontSize:18px;"
-                        v-if="node.level!=1"
-                      ></i>
-                    </span>
-                  </span>
-                  </el-tree>
-                </el-scrollbar>
-              </div>
-             
-              </div>
-          </el-tab-pane>
-         
       </el-tabs>
        
       </el-col>
@@ -330,7 +220,7 @@
             
           </div>
         </div> -->
-         <div class="peizhi" :style="{'height':heights-210+'px','overflow': 'hidden'}">
+         <div class="peizhi" :style="{'height':heights-210+'px','overflow': 'hidden'}" v-loading="rightTreeLoading">
             <el-tabs v-model="activetabName" @tab-click="handletabClick">
                 <el-tab-pane label="立卷规则" name="second">
                    <el-row style="margin-bottom:15px">
@@ -339,27 +229,27 @@
                     <el-button type="primary" plain @click="setAlone">设置为独立组卷</el-button>
                   </el-row>
                     <div style="display: flex;justify-content: space-between;">
-                         <el-select v-model="publictreevalue" clearable placeholder="请选择公有质检化分树" style="  margin-bottom:15px;  width:45%;">
+                         <el-select v-model="publictreevalue" clearable placeholder="请选择公有质检化分树" @change="treeIdChange" style="  margin-bottom:15px;  width:45%;">
                             <el-option
                               v-for="item in publictreeoptions"
-                              :key="item.value"
-                              :label="item.label"
-                              :value="item.value">
+                              :key="item.id"
+                              :label="item.wbsName"
+                              :value="item.id">
                             </el-option>
                         </el-select>
-                        <el-select v-model="testtreevalue" clearable placeholder="请选择公有试验化分树"   style="    width: 45%;">
+                        <el-select v-model="testtreevalue" clearable placeholder="请选择公有试验化分树" @change="treeIdChange"  style="    width: 45%;">
                             <el-option
                               v-for="item in testtreeoptions"
-                              :key="item.value"
-                              :label="item.label"
-                              :value="item.value">
+                              :key="item.id"
+                              :label="item.wbsName"
+                              :value="item.id">
                             </el-option>
                         </el-select>
                       </div>
                 </el-tab-pane>
                 <el-tab-pane label="工程文件入口配置" name="first"></el-tab-pane>
           </el-tabs>
-         
+
           <div class="scrollClass"  v-if="activetabName==='second'" style="height:721px">
                  <el-scrollbar style="height:100%">
                     <el-tree
@@ -408,8 +298,7 @@
                   </el-tree>
                  </el-scrollbar>
               </div>
-         
-        </div>
+         </div>
       </el-col>
     </el-row>
     <!-- 新增编辑 -->
@@ -786,6 +675,7 @@
 <script>
 import ManualSorting from '@/components/WbsTree/ManualSorting'
 import { archiveTreeInit, lazyTree, dictionary, remove, archiveTreeSave, archiveTreeUpdate, archiveTreeDetail, archiveTreetree, submitDisplayConfigTree, getSameGradeNode, submitArchiveTreeSort } from "@/api/manager/archivetree";
+import {getWbsList} from "@/api/manager/wbsinfo";
 import { getToken } from '@/util/auth';
 import { roletree } from "@/api/system/role.js";
 import logoVue from '../../page/index/logo.vue';
@@ -795,27 +685,9 @@ export default {
   },
   data () {
     return {
-       publictreeoptions: [{//公有质检话分数
-          value: '选项1',
-          label: '公有质检划分树1'
-          }, {
-            value: '选项2',
-          label: '公有质检划分树2'
-          }, {
-            value: '选项3',
-          label: '公有质检划分树3'
-        }],
+      publictreeoptions: [],
       publictreevalue:'',
-      testtreeoptions: [{//公有质检话分数
-          value: '选项1',
-          label: '公有试验划分树1'
-          }, {
-            value: '选项2',
-          label: '公有试验划分树2'
-          }, {
-            value: '选项3',
-          label: '公有试验划分树3'
-        }],
+      testtreeoptions: [],
       testtreevalue:'',
        activeName: 'second',
        activetabName:'second',
@@ -1008,6 +880,7 @@ export default {
         label: 'title'
       },
       rightData: [],
+      rightTreeLoading:false,//右侧树加载
       //#endregion
 
       //#region 右侧树弹框
@@ -1599,6 +1472,30 @@ export default {
       }
     },
     //#endregion
+
+    async getWbsList(){
+      const datas = await Promise.all([
+        getWbsList(1),
+        getWbsList(2),
+      ])
+      //console.log(datas,'ressssss');
+      this.publictreeoptions = datas[0].data.data;
+      this.testtreeoptions = datas[1].data.data;
+    },
+
+    //切换树
+    async treeIdChange(id){
+      this.rightTreeLoading = true;
+      const { data: res } = await archiveTreetree({
+        projectId:0,
+        wbsId:id
+      })
+      //console.log(res);
+      this.rightTreeLoading = false;
+      if (res.code == 200 && res.msg == "操作成功") {
+        this.rightData = res.data
+      }
+    }
   },
   watch: {
     filterText (val) {
@@ -1617,6 +1514,8 @@ export default {
       projectId:0
     })
     this.archiveTreetree4()//全加载左侧树
+
+    this.getWbsList();
   },
   mounted () {
     this.heights = this.$refs.container.$el.offsetHeight

+ 46 - 145
src/views/manager/projectinfo/archivetreeRule.vue

@@ -13,7 +13,10 @@
       >
         <el-tabs v-model="activeName" @tab-click="handleClick">
           <el-tab-pane label="竣工档案目录" name="first">
-            <div>
+          </el-tab-pane>
+          <el-tab-pane label="文书档案目录" name="second">
+          </el-tab-pane>
+          <div>
                     <!-- <h2>归档目录树</h2> -->
                     <el-input
                       placeholder="输入关键字进行过滤"
@@ -124,121 +127,6 @@
                   </div>
 
             </div>
-          </el-tab-pane>
-          <el-tab-pane label="文书档案目录" name="second">
-               <div>
-                <!-- <h2>归档目录树</h2> -->
-                <el-input
-                  placeholder="输入关键字进行过滤"
-                  clearable
-                  v-model="filterText"
-                >
-                </el-input>
-              <div class="scrollClass" style="height:721px">
-                <el-scrollbar style="height:100%">
-                  <el-tree
-                    style="box-sizing: border-box;"
-                    v-show="!filterText"
-                    ref="trees1"
-                    :props="props"
-                    :load="loadNode"
-                    node-key="id"
-                    lazy >
-                    <span
-                      class=" flexStar"
-                      slot-scope="{ node, data }"
-                      @mouseover="mouseOver(data)"
-                      @mouseleave="mouseLeave(data)"
-
-                    >
-                      <span style="text-overflow: ellipsis;">{{ data.title }}</span>
-                      <span
-                        class="marleft10"
-                        v-show="data.moreShow"
-                      >
-                        <i
-                          @click.stop='addtree(data,node)'
-                          class="el-icon-circle-plus-outline"
-                          style="fontSize:18px;"
-                          v-if="data.isStorageNode!=1"
-                        ></i>
-                        <i
-                          @click.stop='edittree(data,node)'
-                          class="el-icon-edit-outline marleft5"
-                          style="fontSize:18px;"
-                          v-if="node.level!=1"
-                        ></i>
-                        <i
-                          @click.stop='deletetree(node)'
-                          class="el-icon-delete marleft5"
-                          style="fontSize:18px;"
-                          v-if="node.level!=1"
-                        ></i>
-                        <i
-                          @click.stop='paixuMD(data)'
-                          class="el-icon-sort marleft5"
-                          style="fontSize:18px;"
-                          v-if="node.level!=1"
-                        ></i>
-                      </span>
-                    </span>
-                  </el-tree>
-
-                  <el-tree
-                  v-show="filterText"
-                  :default-expanded-keys='defaultExpanded'
-                  :props="props"
-                  :data="data"
-                  node-key="id"
-                  ref="trees2"
-                  :default-expand-all="true"
-                  :filter-node-method="filterNode"
-                >
-                  <span
-                    class=" flexStar"
-                    slot-scope="{ node, data }"
-                    @mouseover="mouseOver(data)"
-                    @mouseleave="mouseLeave(data)"
-                    style="box-sizing:border-box;width:101%;"
-                  >
-                    <span  style="text-overflow: ellipsis;">{{ data.title }}</span>
-                    <span
-                      class="marleft10"
-                      v-show="data.moreShow"
-                    >
-                      <i
-                        @click.stop='addtree(data,node)'
-                        class="el-icon-circle-plus-outline"
-                        style="fontSize:18px;"
-                        v-if="data.isStorageNode!=1"
-                      ></i>
-                      <i
-                        @click.stop='edittree(data,node)'
-                        class="el-icon-edit-outline marleft5"
-                        style="fontSize:18px;"
-                        v-if="node.level!=1"
-                      ></i>
-                      <i
-                        @click.stop='deletetree(node)'
-                        class="el-icon-delete marleft5"
-                        style="fontSize:18px;"
-                        v-if="node.level!=1"
-                      ></i>
-                      <i
-                        @click.stop='paixuMD(data)'
-                        class="el-icon-sort marleft5"
-                        style="fontSize:18px;"
-                        v-if="node.level!=1"
-                      ></i>
-                    </span>
-                  </span>
-                  </el-tree>
-                </el-scrollbar>
-              </div>
-
-              </div>
-          </el-tab-pane>
-
       </el-tabs>
 
       </el-col>
@@ -330,7 +218,7 @@
 
           </div>
         </div> -->
-         <div class="peizhi" :style="{'height':heights-210+'px','overflow': 'hidden'}">
+         <div class="peizhi" :style="{'height':heights-210+'px','overflow': 'hidden'}" v-loading="rightTreeLoading">
             <el-tabs v-model="activetabName" @tab-click="handletabClick">
                 <el-tab-pane label="立卷规则" name="second">
                    <el-row style="margin-bottom:15px">
@@ -342,17 +230,17 @@
                          <el-select v-model="publictreevalue" clearable placeholder="请选择公有质检化分树" style="  margin-bottom:15px;  width:45%;">
                             <el-option
                               v-for="item in publictreeoptions"
-                              :key="item.value"
-                              :label="item.label"
-                              :value="item.value">
+                              :key="item.id"
+                              :label="item.wbsName"
+                              :value="item.id">
                             </el-option>
                         </el-select>
                         <el-select v-model="testtreevalue" clearable placeholder="请选择公有试验化分树"   style="    width: 45%;">
                             <el-option
                               v-for="item in testtreeoptions"
-                              :key="item.value"
-                              :label="item.label"
-                              :value="item.value">
+                              :key="item.id"
+                              :label="item.wbsName"
+                              :value="item.id">
                             </el-option>
                         </el-select>
                       </div>
@@ -785,7 +673,8 @@
 
 <script>
 import ManualSorting from '@/components/WbsTree/ManualSorting'
-import { lazyTree, dictionary, remove, archiveTreeSave, archiveTreeUpdate, archiveTreeDetail, archiveTreetree, submitDisplayConfigTree, getSameGradeNode, submitArchiveTreeSort } from "@/api/manager/archivetree";
+import { archiveTreeInit, lazyTree, dictionary, remove, archiveTreeSave, archiveTreeUpdate, archiveTreeDetail, archiveTreetree, submitDisplayConfigTree, getSameGradeNode, submitArchiveTreeSort } from "@/api/manager/archivetree";
+import {getWbsList} from "@/api/manager/wbsinfo";
 import { getToken } from '@/util/auth';
 import { roletree } from "@/api/system/role.js";
 // import logoVue from '../../page/index/logo.vue';
@@ -795,27 +684,9 @@ export default {
   },
   data () {
     return {
-       publictreeoptions: [{//公有质检话分数
-          value: '选项1',
-          label: '公有质检划分树1'
-          }, {
-            value: '选项2',
-          label: '公有质检划分树2'
-          }, {
-            value: '选项3',
-          label: '公有质检划分树3'
-        }],
+      publictreeoptions: [],
       publictreevalue:'',
-      testtreeoptions: [{//公有质检话分数
-          value: '选项1',
-          label: '公有试验划分树1'
-          }, {
-            value: '选项2',
-          label: '公有试验划分树2'
-          }, {
-            value: '选项3',
-          label: '公有试验划分树3'
-        }],
+      testtreeoptions: [],
       testtreevalue:'',
        activeName: 'second',
        activetabName:'second',
@@ -1008,6 +879,7 @@ export default {
         label: 'title'
       },
       rightData: [],
+      rightTreeLoading:false,//右侧树加载
       //#endregion
 
       //#region 右侧树弹框
@@ -1162,7 +1034,10 @@ export default {
       }
     },
     async archiveTreeInit () {//添加根节点
-      const { data: res } = await archiveTreeInit()
+      const { data: res } = await archiveTreeInit({
+
+        projectId:this.projectId//项目id
+      })
       console.log(res);
       if (res.code == 200 && res.msg == '操作成功') {
         res.data.forEach(val => {
@@ -1609,6 +1484,30 @@ export default {
       }
     },
     //#endregion
+
+    async getWbsList(){
+      const datas = await Promise.all([
+        getWbsList(1),
+        getWbsList(2),
+      ])
+      //console.log(datas,'ressssss');
+      this.publictreeoptions = datas[0].data.data;
+      this.testtreeoptions = datas[1].data.data;
+    },
+
+    //切换树
+    async treeIdChange(id){
+      this.rightTreeLoading = true;
+      const { data: res } = await archiveTreetree({
+        projectId:0,
+        wbsId:id
+      })
+      //console.log(res);
+      this.rightTreeLoading = false;
+      if (res.code == 200 && res.msg == "操作成功") {
+        this.rightData = res.data
+      }
+    }
   },
   watch: {
     filterText (val) {
@@ -1629,6 +1528,8 @@ export default {
       nodeType: 2,
     })
     this.archiveTreetree4()//全加载左侧树
+    
+    this.getWbsList();
   },
   mounted () {
     this.heights = this.$refs.container.$el.offsetHeight;

+ 10 - 4
src/views/manager/projectinfo/detail.vue

@@ -588,7 +588,7 @@ export default {
       treeList: [],
       logTreeList: [],
       wbsId: '',
-      iswbsselected:false,
+      iswbsselected:true,
       logWbsId: '',
       selected: false,
       leftTreeData: [],
@@ -1272,6 +1272,7 @@ export default {
 
         this.logrightloading = true;
         let projectTree = await findProjectTree(this.projectForm.id, refId);
+      
         this.$refs.treetotree2.setRightTree(Array.isArray(projectTree.data.data)?projectTree.data.data:[]);
         this.logrightloading = false;
       } else {
@@ -1331,6 +1332,11 @@ export default {
           id:  priv.pkeyId 
         }
         let projectTree = await findProjectTree(this.projectForm.id, refId) //查询的右边的数据
+           if (projectTree.data.data.length>0) {
+            this.iswbsselected=true
+          }else{
+             this.iswbsselected=false
+          }
         if (Array.isArray(projectTree.data.data)) {
           this.leftloading = true;
           this.rightloading = true;
@@ -1356,9 +1362,7 @@ export default {
 
           this.$refs.treetotree.setRightTree(projectTree.data.data);
           console.log(projectTree.data.data,'projectTree.data.data');
-          if (projectTree.data.data.length>0) {
-            this.iswbsselected=true
-          }
+         
           this.rightloading = false;
         }else{
           this.wbsId = '';
@@ -1498,6 +1502,8 @@ export default {
                 if (Array.isArray(res.data.data)) {
                   if(res.data.data.length>0){
                     this.iswbsselected=true
+                  }else{
+                     this.iswbsselected=false
                   }
                   this.$refs.treetotree.setRightTree(res.data.data);
                 } else {

+ 32 - 16
src/views/manager/wbsinfo/element.vue

@@ -222,7 +222,7 @@
           placeholder="请输入名称"
           size="samll" clearable @clear="searchFormulaName"
         ></el-input>
-        <el-button type="info" class="mg-l-10" @click="searchFormulaName">搜索</el-button>
+        <el-button type="primary" class="mg-l-10" @click="searchFormulaName">搜索</el-button>
       </div>
         <el-table
         :data="editEleListFilter"
@@ -286,6 +286,10 @@
       :close-on-click-modal="false"
     >
       <p class="font-c-warning">编辑元素信息(请谨慎操作)</p>
+        <div style="display:flex;margin-bottom:10px">
+                      <el-input placeholder="请输入你想编辑的元素名称" v-model="searchinput" :size="size"  clearable  @clear="clearsearchinput" >  </el-input>
+                      <el-button type="primary" icon="el-icon-search"  size="small"  @click="searchinputChange">搜索</el-button>
+        </div>
       <el-table
         :data="editEleList"
         border
@@ -737,7 +741,9 @@ export default {
       defaultExpandKey:[],//默认展开的节点
       sortTag: false,
       sortTag2: false,
-      sort:[]
+      sort:[],
+      searchinput:'',
+
     }
   },
   computed:{
@@ -1090,22 +1096,26 @@ export default {
         this.$refs.avueTree.setCurrentKey(this.curNode.data.id);
       });
     },
+    //获取编辑元素信息
+    getselectPrivateFormElements(){
+       this.editEleloading=true
+            selectPrivateFormElements(this.curEleTable.id,{eName:this.searchinput}).then((res) => {
+                this.editEleloading=false
+                res.data.data.forEach((element) => {
+                this.eleReg.exec(element.eAllowDeviation);
+                //console.log(RegExp.$1)
+                //console.log(RegExp.$2)
+                element.allow = RegExp.$1 ? RegExp.$1 : '';
+                element.deviation = RegExp.$2 ? RegExp.$2 : '';
+              })
+              this.editEleList = res.data.data;
+            })
+            this.editEleVisible = true;
+    },
     editElement (row) {
       console.log(row,'row');
       this.curEleTable = row;
-      this.editEleloading=true
-      selectPrivateFormElements(this.curEleTable.id).then((res) => {
-           this.editEleloading=false
-          res.data.data.forEach((element) => {
-          this.eleReg.exec(element.eAllowDeviation);
-          //console.log(RegExp.$1)
-          //console.log(RegExp.$2)
-          element.allow = RegExp.$1 ? RegExp.$1 : '';
-          element.deviation = RegExp.$2 ? RegExp.$2 : '';
-        })
-        this.editEleList = res.data.data;
-      })
-      this.editEleVisible = true;
+      this.getselectPrivateFormElements()
     },
       //修改数据类型,给个默认值
     setDefatableTypeultLength (row) {
@@ -1390,7 +1400,13 @@ export default {
         }
       });
     },
-
+    //编辑元素搜索相关
+    clearsearchinput(){
+      this.getselectPrivateFormElements()
+    },
+    searchinputChange(){
+     this.getselectPrivateFormElements()
+    }
   },
   created () {
      this.getTableTypelist();