Explorar el Código

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	vue.config.js
liuyc hace 3 años
padre
commit
ff259347e3

+ 19 - 0
src/api/exctab/excelmodel.js

@@ -1,5 +1,24 @@
 import request from '@/router/axios';
 
+//分页获取清表
+export const getList = (params) => {
+        return request({
+            url: '/api/blade-manager/exceltab/list',
+            method: 'get',
+            params
+        })
+    }
+    // 关联清表树all
+export const tabLazytreeAll = (params) => {
+    return request({
+        url: '/api/blade-manager/exceltab/tab-lazytree-all',
+        method: 'get',
+        params
+    })
+};
+
+
+
 //清表树
 export const tabLazytree = (params) => {
     return request({

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

@@ -124,3 +124,11 @@ export const importWbsTree = (froms) => {
   })
 }
 
+export const exportTemplate = () => {
+  return request({
+    url: '/api/blade-manager/wbsTree/export-template',
+    method: 'get',
+    responseType:'arraybuffer'
+  })
+}
+

+ 2 - 2
src/components/tree-tree/main.vue

@@ -19,7 +19,7 @@
     <div class="flex flex-d-c flex-center" style="width:50px;">
       <div><el-button @click="addTree" size="mini" icon="el-icon-arrow-right"></el-button></div>
       <div><el-button @click="delTree" size="mini" icon="el-icon-arrow-left"></el-button></div>
-      
+
     </div>
     <el-card class="box-card flex1">
       <div slot="header" class="clearfix">
@@ -59,7 +59,7 @@ export default {
     }
   },
   computed: {
-    
+
   },
   data(){
     return{

+ 0 - 21
src/views/exctab/excelmodel/excelmodel.vue

@@ -8,7 +8,6 @@
             <basic-container>
               <!-- 树结构 -->
               <avue-tree
-                :permission="getPermission"
                 :loading="loading"
                 :option="option"
                 :data="data"
@@ -20,25 +19,6 @@
                 >
                   <div>
                     <span> {{ data.name }} </span>
-                    <!-- <span> {{ node}} </span> -->
-                    <!-- 添加 -->
-                    <i
-                      class="el-icon-circle-plus-outline marleft10"
-                      @click.stop="addExcel(data)"
-                      v-if="data.fileType!=3"
-                    ></i>
-                    <!-- 编辑 -->
-                    <i
-                      class="el-icon-edit marleft10"
-                      @click.stop="editExcel(data)"
-                      v-if="data.fileType!=3"
-                    ></i>
-                    <!-- 删除 -->
-                    <i
-                      class="el-icon-delete marleft10"
-                      @click.stop="deleteExcelM(data)"
-                      v-if="!data.hasChildren"
-                    ></i>
                   </div>
                 </span>
               </avue-tree>
@@ -199,7 +179,6 @@
             </div>
             <div class="leftscroll">
               <avue-tree
-                :permission="getPermission"
                 :loading="loading"
                 :option="option2"
                 :data="wbsdata"

+ 1 - 0
src/views/exctab/exceltab.vue

@@ -242,6 +242,7 @@ export default {
       this.onLoad(this.page, this.query);
     },
     onLoad (page, params = {}) {
+      console.log(page.currentPage, params.pageSize);
       this.query.parentId = 0;
       this.loading = true;
       getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {

+ 28 - 6
src/views/manager/contractinfo/detail.vue

@@ -95,7 +95,7 @@
                         <el-button size="small" type="primary">点击上传</el-button>
                       </el-upload>
                     </template>
-                    
+
                   </el-form-item>
                 </el-col>
               </el-row>
@@ -107,7 +107,7 @@
                 </el-col>
                 <el-col :span="12">
                 </el-col>
-              </el-row>  
+              </el-row>
               <el-divider></el-divider>
               <el-row :gutter="20">
                 <el-col :span="12">
@@ -152,7 +152,7 @@
                         </el-form-item>
                       </el-col>
                       <el-col :span="12">
-                        
+
                       </el-col>
                     </el-row>
                 </el-col>
@@ -272,6 +272,22 @@
         } else {
           callback(new Error('请选取项目地址'));
         }
+      }
+      var checkDate = (rule, value, callback) => {
+        if (value && this.contractForm.planStartTime) {
+          if(Date.parse(value) < Date.parse(this.contractForm.planStartTime)){
+            callback(new Error('计划完工日期不能小于开工日期'));
+          }
+        }
+        callback();
+      };
+      var checkDate2 = (rule, value, callback) => {
+        if (value && this.contractForm.actualStartTime) {
+          if(Date.parse(value) < Date.parse(this.contractForm.actualStartTime)){
+            callback(new Error('实际完工日期不能小于开工日期'));
+          }
+        }
+        callback();
       };
 
       return {
@@ -321,7 +337,13 @@
             { required: true, message: '请输入结束桩号', trigger: 'blur' },
           ],
           projectPlace: [
-            { required: true,validator: checkPlace, trigger: 'blur' }
+            { required: true,validator: checkPlace, trigger: 'blur' },
+          ],
+          planEndTime:[
+            {validator: checkDate,trigger: 'blur'},
+          ],
+          actualEndTime:[
+            {validator: checkDate2,trigger: 'blur'},
           ]
         },
 
@@ -410,7 +432,7 @@
         }
 
         this.getContractTypeList();
-        this.setHeaders(); 
+        this.setHeaders();
       },
       beforeLeave(activeName, oldActiveName){
         return new Promise((resolve,reject)=>{
@@ -672,7 +694,7 @@
             message: "成功复制在剪贴板!"
           });
         })
- 
+
       },
 
       resetPassword(row){

+ 48 - 9
src/views/manager/projectinfo/detail.vue

@@ -61,14 +61,14 @@
         <el-tab-pane label="分配WBS模版" name="2">
           <div>
             <div class="text-align-c">
-              <el-radio-group v-model="templateType" @change="templateTypeChange">
+              <el-radio-group v-model="templateType" @change="templateTypeChange" :disabled="selected">
                 <el-radio :label="2">试验</el-radio>
                 <el-radio :label="1">质检</el-radio>
               </el-radio-group>
             </div>
             <div class="text-align-c mg-t-20">
               <span class="mg-r-20">选择WBS</span>
-              <el-select v-model="wbsId" @change="wbsChange" placeholder="请选择WBS" style="width:500px;">
+              <el-select v-model="wbsId" @change="wbsChange" :disabled="selected" placeholder="请选择WBS" style="width:500px;">
                 <el-option-group
                   v-for="group in treeList"
                   :key="group.label"
@@ -160,6 +160,23 @@
       treeTree
     },
     data() {
+      var checkDate = (rule, value, callback) => {
+        if (value && this.projectForm.planStartTime) {
+          if(Date.parse(value) < Date.parse(this.projectForm.planStartTime)){
+            callback(new Error('计划完工日期不能小于开工日期'));
+          }
+        }
+        callback();
+      };
+      var checkDate2 = (rule, value, callback) => {
+        if (value && this.projectForm.actualStartTime) {
+          if(Date.parse(value) < Date.parse(this.projectForm.actualStartTime)){
+            callback(new Error('实际完工日期不能小于开工日期'));
+          }
+        }
+        callback();
+      };
+
       return {
         activeType:'1',
         typeChang:{
@@ -173,7 +190,9 @@
         highwayGradeList:[],
         radioType:'总里程',
 
-        projectForm:{},
+        projectForm:{
+          estimatedAmount:0
+        },
         projectRules:{
           projectName: [
             { required: true, message: '请输入项目名称', trigger: 'blur' },
@@ -181,6 +200,12 @@
           projectAlias: [
             { required: true, message: '请输入项目别名', trigger: 'blur' },
           ],
+          planEndTime:[
+            {validator: checkDate,trigger: 'blur'}
+          ],
+          actualEndTime:[
+            {validator: checkDate2,trigger: 'blur'}
+          ]
         },
 
         contractList:[],
@@ -199,6 +224,7 @@
         templateType:1,
         treeList:[],
         wbsId:'',
+        selected:false,
         leftTreeData:[],
       }
     },
@@ -223,6 +249,7 @@
           if(refId && refId>0){
             //有引用id,回显
             this.wbsId = refId;
+            this.selected = true;
             let projectTree = await findProjectTree(this.projectForm.id,refId)
             if(Array.isArray(projectTree.data.data)){
               this.templateType = projectTree.data.data[0].wbsType;
@@ -235,7 +262,7 @@
               this.$refs.treetotree.setRightTree(projectTree.data.data);
             }
           }
-          
+
           this.getTreeList();
         }
       }
@@ -349,7 +376,7 @@
         }else if(type == 'p'){
             num--;
         }
-        
+
         this.activeType = num.toString();
         this.btnLoad = false;
      },
@@ -374,6 +401,18 @@
         projectId:this.projectForm.id,
         wbsTreeIds:ids
       }
+      if(this.wbsId.toString().indexOf(',') >= 0){
+          //私有库
+          obj.referenceType =  "private";
+          let ids = this.wbsId.toString().split(',');
+          obj.wbsId = ids[0];
+          obj.referencePrivateWbsProjectId = ids[1];
+          // obj.primaryKeyId = this.leftTreeData[0].primaryKeyId;
+        }else{
+          //公有库
+          obj.referenceType =  "public";
+        }
+      
       return submitWbsTreeInProject(obj);
      },
 
@@ -462,9 +501,9 @@
         getDictionary({
           code:'highway_grade'
         }).then((res)=>{
-          res.data.data.forEach(element => {
-            element.dictKey = Number(element.dictKey)
-          });
+          // res.data.data.forEach(element => {
+          //   element.dictKey = Number(element.dictKey)
+          // });
           this.highwayGradeList = res.data.data;
         })
       },
@@ -588,5 +627,5 @@
 </script>
 
 <style scoped lang="scss">
-  
+
 </style>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 936 - 259
src/views/manager/projectinfo/tree.vue


+ 34 - 79
src/views/manager/wbsinfo/edit.vue

@@ -483,10 +483,9 @@
 <script>
   import {getLazytree,getDetail,update,selectByNodeTable,getAlltree,
             saveFormAndElement,selectFormElements,removeTableById,
-            importWbsTree} from "@/api/manager/wbstree";
+            importWbsTree,exportTemplate} from "@/api/manager/wbstree";
   import {saveElement,remove as removeElement,updateBatchElements,getTemplate,
           importWbsElement} from "@/api/manager/wbsformelement";
-  import {getList as getAttchFromOriginalName} from "@/api/resource/attach";
   import {getDictionary} from "@/api/system/dict";
   import {mapGetters} from "vuex";
   export default {
@@ -727,50 +726,12 @@
             this.eleForm.deptCategory = -1;
             this.eleForm.type = 2;//	'1'节点 '2'表单
             this.eleForm.parentId = this.nodeDetail.id;
-            for (let i = 0; i < this.eleForm.elementList.length; i++) {
-              let element = this.eleForm.elementList[i];
-              //把字段拼接起来
+            this.eleForm.elementList.forEach((element)=>{
               element.eAllowDeviation = (element.allow?element.allow:'') + (element.deviation?element.deviation:'');
-
-              if(element.eLength != Number(element.eLength)){
-                this.$message({
-                  type: "warning",
-                  message: "【"+element.eName+"】"+"的长度必须是数字"
-                });
-                return;
-              }
-
               if(element.eType == 4){
-                //日期长度为0
                 element.eLength = 0;
-              }else if(element.eType == 1){
-                //字符串
-                if(Number(element.eLength)<10 || Number(element.eLength)>1000){
-                  this.$message({
-                    type: "warning",
-                    message: "数据类型为 字符串 长度必须在10-1000之间"
-                  });
-                  return;
-                }
-              }else if(element.eType == 2){
-                if(Number(element.eLength)<10 || Number(element.eLength)>255){
-                  this.$message({
-                    type: "warning",
-                    message: "数据类型为 整数 长度必须在10-255之间"
-                  });
-                  return;
-                }
-              }else if(element.eType == 3){
-                if(Number(element.eLength)<10 || Number(element.eLength)>65){
-                  this.$message({
-                    type: "warning",
-                    message: "数据类型为 小数 长度必须在10-65之间"
-                  });
-                  return;
-                }
               }
-            }
-
+            })
             saveFormAndElement(this.eleForm).then(()=>{
               //console.log(res)
               this.updateTreeNewNode();
@@ -790,6 +751,10 @@
 
       updateTreeNewNode(){
         getLazytree(this.id ,this.nodeDetail.parentId).then((res)=>{
+          let node = this.$refs.tree.getNode(this.nodeDetail.parentId);
+          node.isLeaf = false;
+          node.isLeafByUser = false;
+          //console.log(node)
           this.$refs.tree.updateKeyChildren(this.nodeDetail.parentId,res.data.data)
         })
       },
@@ -938,19 +903,6 @@
       importTemplate(data){
         this.importTemplateVisible = true;
         this.curTreeData = data;
-
-        if(!this.fileUrl){
-          getAttchFromOriginalName(1, 20, {
-            originalName:'WBS划分模板.xls'
-          }).then((res)=>{
-            if(res.data.data.records.length){
-              this.fileUrl = res.data.data.records[0].link;
-            }else{
-              this.fileUrl = '';
-            }
-            
-          })
-        }
         
       },
 
@@ -984,14 +936,10 @@
       },
 
       handleDownload() {
-        if(this.fileUrl){
-          window.open(this.fileUrl);
-        }else{
-          this.$message({
-            type: "warning",
-            message: "请先在附件管理上传【WBS划分模板.xls】文件"
-          });
-        }
+        //WBS划分模板
+        exportTemplate().then((res)=>{
+          this.downloadExcel(res.data,'WBS划分模板')
+        })
       },
 
       fileClick(){
@@ -1028,22 +976,7 @@
       downloadTmp(){
         getTemplate().then((res)=>{
           //console.log(res)
-          let blob = new Blob([res.data], {
-                type: 'application/vnd.ms-excel'
-            });
-            //console.log(blob)
-            let filename = Date.parse(new Date()) + '.xls';
-            if (window.navigator.msSaveOrOpenBlob) {
-                // 兼容IE10
-                window.navigator.msSaveBlob(blob, filename);
-            } else {
-                //  兼容chrome/firefox
-                let aTag = document.createElement('a');
-                aTag.download = Date.parse(new Date()) + '.xls';
-                aTag.href = window.URL.createObjectURL(blob);
-                aTag.click();
-                URL.revokeObjectURL(aTag.href);
-            }
+          this.downloadExcel(res.data,'元素模板')
         })
       },
 
@@ -1079,6 +1012,28 @@
         this.$set(data, 'moreShow', value)
       },
 
+      downloadExcel(data,filename=''){
+          let blob = new Blob([data], {
+              type: 'application/vnd.ms-excel'
+          });
+          //console.log(blob)
+          if(!filename){
+            filename = Date.parse(new Date());
+          }
+          filename = filename+ '.xls';
+          if (window.navigator.msSaveOrOpenBlob) {
+              // 兼容IE10
+              window.navigator.msSaveBlob(blob, filename);
+          } else {
+              //  兼容chrome/firefox
+              let aTag = document.createElement('a');
+              aTag.download = filename;
+              aTag.href = window.URL.createObjectURL(blob);
+              aTag.click();
+              URL.revokeObjectURL(aTag.href);
+          }
+      },
+
       getDeptCategorylist(){
         if(this.deptCategorylist.length >1){
           return;

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio