Ver código fonte

2022.9.7 填报日报时间上限

ggooalice 2 anos atrás
pai
commit
f82a39ec4f

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

@@ -23,11 +23,13 @@
                 </el-select>
                 小时
                 
-                <span class="lockworktime"><el-checkbox v-model="timeType.lockWorktime" label="锁定工作时长" />
+                <span class="lockworktime"><el-checkbox v-model="timeType.lockWorktime" @change="lockChange" label="锁定工作时长" />
                 
                 <el-tooltip effect="dark" content="锁定每日填报工时的上限" placement="top-start">
                     <i class="el-icon-question" style="color:#606266"></i>
                 </el-tooltip>
+                <span style="margin-left:25px">填报时长上限</span>
+                <el-input :disabled="timeType.lockWorktime" :min="timeType.allday" v-model="timeType.maxReportTime" type="number" style="width:120px;margin-left:10px"></el-input><span style="margin-left:5px;color:#409eff">小时</span>
                 </span>
                 
             </el-form-item><br>
@@ -447,7 +449,8 @@
                     pm: 4,
                     type: 0,
                     lockWorktime: false,
-                    fillAhead: false
+                    fillAhead: false,
+                    maxReportTime: 8
                 },
                 customDegreeActive: false,
                 needDeptAudit: false,
@@ -493,6 +496,13 @@
             }
         },
         methods: {
+            lockChange(){
+                console.log('lockChange',this.timeType.maxReportTime);
+                if(this.timeType.lockWorktime){
+                    this.timeType.maxReportTime = this.timeType.allday
+                }
+                
+            },
             setupRest(){
                 // this.getRestList()
                 this.setupRestDialog = true

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

@@ -4705,6 +4705,7 @@
                         if(zhi[n].corpTime && parseInt(zhi[n].he) > zhi[n].corpTime.workHours){
                             overcorp += zhi[n].zhoDataTime + ','
                         }
+                        
                     }
                     if(overcorp != ''){
                         overcorp = overcorp.substring(0,overcorp.length - 1)
@@ -4715,6 +4716,21 @@
                         return
                     }
                 }
+                let overcorp2 = ''
+                for(let i in zhi){
+                    let addtime = zhi[i].filledTime ? parseFloat(zhi[i].he) + zhi[i].filledTime*1 : parseFloat(zhi[i].he)
+                    if(addtime > this.user.timeType.maxReportTime){
+                        overcorp2 += zhi[i].zhoDataTime + ','
+                    }
+                }
+                if(overcorp2 != ''){
+                    overcorp2 = overcorp2.substring(0,overcorp2.length - 1)
+                    this.$message({
+                        message: '日期[' + overcorp2 + ']填报工时之和不能超过每日填报上限',
+                        type: 'error'
+                    })
+                    return
+                }
                 
                     var submits = []
                     let formData = new FormData();
@@ -5241,12 +5257,11 @@
                         let formData = new FormData();
                         formData.append("draft", this.isDraft);
 
-                        //检查workingTime合计
+                        var totalTime = 0;
+                        for (var t=0;t<this.workForm.domains.length; t++) {
+                            totalTime += parseFloat(this.workForm.domains[t].workingTime);
+                        }
                         if (this.reportTimeType.type == 1 && this.workForm.time) {
-                            var totalTime = 0;
-                            for (var t=0;t<this.workForm.domains.length; t++) {
-                                totalTime += parseFloat(this.workForm.domains[t].workingTime);
-                            }
                             if (this.workForm.time.workHours && totalTime > parseFloat(this.workForm.time.workHours)) {
                                 this.$message({
                                         message: "填报工时之和"+(totalTime)+"h不能超过考勤总工时("+this.workForm.time.workHours.toFixed(1)+"h)",
@@ -5255,6 +5270,13 @@
                                 return;
                             }
                         }
+                        if(totalTime > this.user.timeType.maxReportTime){
+                            this.$message({
+                                message: "填报工时之和"+(totalTime)+"h不能超过填报日报上限("+this.user.timeType.maxReportTime.toFixed(1)+"h)",
+                                type: "error"
+                            })
+                            return
+                        }
                         
                         for(var i in this.workForm.domains) {
                             if(this.workForm.domains[i].degreeId) {