Sfoglia il codice sorgente

2022.8.3 自定义数值最大值限制,项目阶段报表添加筛选

ggooalice 2 anni fa
parent
commit
d8dc5b5de0

+ 45 - 7
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -100,6 +100,11 @@
           <el-select v-if="ins == 6 || ins == 8 || ins == 9 || ins == 10 || ins == 11" v-model="userId" placeholder="请选择人员" @change="selcts()" clearable filterable size="small" style="margin-left:10px;width:150px">
             <el-option v-for="(item, index) in selUserList" :key="index" :label="item.name" :value="item.id"></el-option>
           </el-select>
+
+          <!-- 项目阶段筛选 -->
+          <el-select v-if="ins == 5" multiple v-model="stageNames" @visible-change="visibleSelcts" @clear="visibleSelcts(false)" clearable size="small" filterable collapse-tags placeholder="请选择阶段" style="margin-left:10px;">
+            <el-option v-for="item in firstStages" :key="item" :label="item" :value="item"></el-option>
+          </el-select>
       </div>
       <p style="float: right;margin-right: 25px;" ><el-button type="primary" @click="exportExcel" size="mini">报表导出</el-button></p>
     </div>
@@ -359,7 +364,7 @@
             </el-table>
             <el-table v-if="ins == 12" border :data="groupWorktimeList.right" key="12"
             highlight-current-row v-loading="listLoading" :height="tableHeight" 
-             style="width: 66%;float:right;" ref="table">
+             style="width: 66%;float:right;" ref="grouptable">
                 <el-table-column label="按项目统计" header-align="center">
                   <el-table-column prop="projectCode" label="项目编号" min-width="75"></el-table-column>
                   <el-table-column prop="projectName" label="项目名称" min-width="125"></el-table-column>
@@ -673,6 +678,8 @@ export default {
       detailList:[],
       detailVisible: false,
       stages:[],
+      firstStages: [],
+      stageNames: [],
       addFormVisible:false,
       title:'',
       childrenList:[],
@@ -1062,6 +1069,14 @@ export default {
         } else if (this.ins == 5) {
           fName = "项目阶段工时报表.xls";
           url += "/exportProjectStagesCost";
+          if(this.stageNames.length){
+            let stagestr = ''
+            for(let i in this.stageNames){
+              stagestr += this.stageNames[i] + ','
+            }
+            stagestr = stagestr.substring(0,stagestr.length - 1)
+            sl.stageNames = stagestr
+          }
         } else if (this.ins == 6) {
           fName = "加班情况统计报表.xls";
           url += "/exportOvertimeList";
@@ -1352,20 +1367,43 @@ export default {
             });
         });
     },
+    visibleSelcts(e){
+      console.log('show show way',e);
+      if(!e){
+        this.getProjectStages(true)
+      }
+    },
     //获取项目阶段的汇总工时
-    getProjectStages() {
+    getProjectStages(e) {
+      
       this.listLoading = true;
-      this.http.post('/project/getProjectStagesCost', {
-                    pageIndex: this.page,
-                    pageSize: this.size,
-                    projectId: this.proJuctId
-                    },
+      let parameter = {
+        pageIndex: this.page,
+        pageSize: this.size,
+        projectId: this.proJuctId
+      }
+      if(!e){
+        this.stageNames = []
+      }else{
+        if(this.stageNames.length){
+          let stagestr = ''
+          for(let i in this.stageNames){
+            stagestr += this.stageNames[i] + ','
+          }
+          stagestr = stagestr.substring(0,stagestr.length - 1)
+          parameter.stageNames = stagestr
+        }
+      }
+      this.http.post('/project/getProjectStagesCost', parameter,
         res => {
             if (res.code == "ok") {
                 this.list5 = res.data.records;
                 // console.log(this.list);
                 this.total = res.data.total;
                 this.stages = res.data.stages;
+                if(!e){
+                  this.firstStages = res.data.stages;
+                }
                 this.listLoading = false; 
                 this.$nextTick(()=>{this.$refs.table.doLayout()})
             } else {

+ 10 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -265,10 +265,16 @@
         <el-row v-if="timeType.customDataActive && user.company.packageProject==1" :gutter="20" style="padding-top:10px;width:100%;margin:0 auto;padding-left:10px;padding-right:10px;">
             <el-col :span="24" >
                 <div class="panel" style="height:60px;">
-                    <el-form :inline="true" :model="timeType"  style="margin-top:10px;">
+                    <el-form :inline="true" :model="timeType" style="margin-top:10px;">
                         <el-form-item label="字段名称 ">
                             <el-input placeholder="请输入字段名称" maxlength="5" size="small" v-model="timeType.customDataName" clearable> </el-input>
                         </el-form-item>
+                        <el-form-item label="是否开启最大值限制 " style="margin-left:10px;">
+                            <el-switch v-model="timeType.customDataMaxStatus" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
+                        </el-form-item>
+                        <el-form-item label="最大值 " style="margin-left:10px;" v-if="timeType.customDataMaxStatus">
+                            <el-input-number v-model="timeType.customDataMaxValue"></el-input-number>
+                        </el-form-item>
                     </el-form>
                 </div>
             </el-col>
@@ -934,7 +940,7 @@
                         param.customTextStatus = param.customTextStatus && param.customTextActive ? 1 : 0
                         param.customDegreeStatus = param.customDegreeStatus && param.customDegreeActive ? 1 : 0
                         param.customDataStatus = param.customDataStatus && param.customDataActive ? 1 : 0
-
+                        param.customDataMaxStatus = param.customDataMaxStatus && param.customDataActive ? 1 : 0
 
                         param.workContentState = param.workContentState ? 1 : 0
                         // console.log(param, '将要提交的值')
@@ -984,6 +990,8 @@
                             this.timeType.customDataStatus = this.timeType.customDataStatus ? true : false
                             this.timeType.fillAhead = this.timeType.fillAhead ? true : false
                             this.timeType.mainProjectState = this.timeType.mainProjectState ? true : false
+                            this.timeType.customDataMaxStatus = this.timeType.customDataMaxStatus ? true : false
+                            this.timeType.customDataMaxValue = this.timeType.customDataMaxValue ? this.timeType.customDataMaxValue : 100
                             this.timeChange();
                             let userlist = res.data.userList
                             this.whiteList = []

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -394,7 +394,7 @@
                     </el-form-item>
                     <!-- 相关数值 -->
                     <el-form-item :label="yonghuUser.customDataName" v-if="yonghuUser.customDataActive == 1" :prop="'domains.' + index + '.customData'" :rules="user.timeType.customDataStatus == 1 ? { type: 'number', required: true, message: '请填写' + yonghuUser.customDataName, trigger: ['change','blur'] } : null">
-                        <el-input-number :id="'numberData_'+index" :disabled="!canEdit" v-model="domain.customData" style="width:200px;" @keyup.native="restrictNumber('numberData_'+index)"></el-input-number>
+                        <el-input-number :id="'numberData_'+index" :disabled="!canEdit" v-model="domain.customData" style="width:200px;" @keyup.native="restrictNumber('numberData_'+index)" :max="user.timeType.customDataMaxStatus == 1 ? user.timeType.customDataMaxValue : 'infinity'"></el-input-number>
                     </el-form-item>
                     <!-- 自定义文本 -->
                     <el-form-item :label="yonghuUser.customTextName" v-if="yonghuUser.customTextActive == 1" :prop="'domains.' + index + '.customText'" :rules="user.timeType.customTextStatus == 1 ? { required: true, message: '请填写' + yonghuUser.customTextName, trigger: ['change','blur'] } : null">
@@ -516,7 +516,7 @@
                         </el-form-item>
                         <!-- 相关数值 -->
                         <el-form-item :label="yonghuUser.customDataName" v-if="domain.projectId && yonghuUser.customDataActive == 1" :prop="'domains.' + index + '.customData'" :rules="user.timeType.customDataStatus == 1 ? { type: 'number', required: true, message: '请填写' + yonghuUser.customDataName, trigger: ['change','blur'] } : null">
-                            <el-input-number :id="'numberData_'+index" :disabled="!canEdit" v-model="domain.customData" style="width:200px;" @keyup.native="restrictNumber('numberData_'+index)"></el-input-number>
+                            <el-input-number :id="'numberData_'+index" :disabled="!canEdit" v-model="domain.customData" style="width:200px;" @keyup.native="restrictNumber('numberData_'+index)" :max="user.timeType.customDataMaxStatus == 1 ? user.timeType.customDataMaxValue : 'infinity'"></el-input-number>
                         </el-form-item>
                         <!-- 自定义文本 -->
                         <el-form-item :label="yonghuUser.customTextName" v-if="yonghuUser.customTextActive == 1" :prop="'domains.' + index + '.customText'" :rules="user.timeType.customTextStatus == 1 ? { required: true, message: '请填写' + yonghuUser.customTextName, trigger: ['change','blur'] } : null">
@@ -731,7 +731,7 @@
                 <!-- 自定义数值 -->
                 <div class="zhoFel" v-if="user.timeType.customDataActive">
                     <p>{{user.timeType.customDataName}}</p>
-                    <el-input-number :id="'weekData_num'" :disabled="!canEdit" v-model="zhoBao.customData" style="width:200px;margin-right:155px;" @keyup.native="restrictNumber('weekData_num')"></el-input-number>
+                    <el-input-number :id="'weekData_num'" :disabled="!canEdit" v-model="zhoBao.customData" style="width:200px;margin-right:155px;" @keyup.native="restrictNumber('weekData_num')" :max="user.timeType.customDataMaxStatus == 1 ? user.timeType.customDataMaxValue : 'infinity'"></el-input-number>
                 </div>
                 <!-- 自定义文本 -->
                 <div class="zhoFel" v-if="user.timeType.customTextActive == 1">