Quellcode durchsuchen

提交isMultiworktime==1的情况下时间的问题

Lijy vor 2 Jahren
Ursprung
Commit
460365e3a0
1 geänderte Dateien mit 46 neuen und 18 gelöschten Zeilen
  1. 46 18
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

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

@@ -1,5 +1,5 @@
 <template>
-    <section >
+    <section > 
         <!--列表-->
         <div>
             <el-card class="box-card daily" shadow="never">
@@ -665,7 +665,6 @@
                                 <selectCat v-if="user.userNameNeedTranslate == '1'" :size="'small'" :subject="domain.auditUserList" :idx="index" :subjectId="domain.projectAuditorId" ref="selectCat" :flg="true" :flgs="true" @selectCatCli="selectCatCli"></selectCat>
                             </el-form-item>
                             
-
                             <!--工程专业版本模式下, 各个专业的进度填报 -->
                             <el-form-item :label="$t('other.professionalProgress')" :prop="'domains.' + index + '.professionProgress'" v-if="user.company.packageEngineering==1">
                                 <span v-for="item in domain.professionProgress" :key="item.professionId" style="margin-right:10px;">
@@ -698,6 +697,7 @@
                                 </el-select>
                                 <el-checkbox v-model="domain.taskFinish" v-if="domain.taskId != undefined">{{$t('state.completed')}}</el-checkbox>
                             </el-form-item>
+
                             <div v-for="(timeItem,tIndex) in domain.worktimeList" :key="tIndex" 
                                 style="border: 0.5px #ddd solid;padding:5px;margin-bottom:15px;position:relative;">
                             <i v-if="tIndex>0&&workForm.domains[index].state>=2" @click="removeTimeItem(domain,tIndex)"  class="el-icon-delete" style="position:absolute;right:-7px;top:-7px;font-size:16px;"></i>
@@ -761,7 +761,8 @@
             </div>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="cancel(workForm.domains,true)" v-if="canCancelInDialog" style="float:left;">{{$t('btn.withdraw')}}</el-button>
-                <span style="margin-right:20px">合计工时:{{totalReportHours}}小时</span>
+                <span style="margin-right:20px" v-if="reportTimeType.multiWorktime != 1">合计工时:{{totalReportHours}}小时</span>
+                <span style="margin-right:20px" v-if="reportTimeType.multiWorktime == 1">合计工时:{{jsTime}}小时</span>
                 <!-- <span style="margin-right:20px">合计工时:{{jsTime}}小时</span> -->
                 <el-button @click="deleteReport"  v-if="workForm.domains[0].id != null && canEdit && reportCanDelete">{{$t('btn.delete')}}</el-button>
                 <el-button @click="dialogVisible = false">{{$t('btn.cancel')}}</el-button>
@@ -1819,7 +1820,7 @@
                         multiWorktime:0,
                         worktimeList:[],
                         degreeId: null,
-                        auditUserList: []
+                        auditUserList: [],
                     }],
                 },
                 workRules: {
@@ -1989,7 +1990,6 @@
         computed: {
             totalReportHours(){
                 let domains = this.workForm.domains
-                console.log(domains, '看看你能')
                 let hours = 0
                 for(let i in domains){
                     if(domains[i].projectId){
@@ -1997,7 +1997,19 @@
                             console.log('进一')
                             for(let m in domains[i].worktimeList){
                                 if(domains[i].worktimeList[m].startTime && domains[i].worktimeList[m].endTime){
-                                    hours += this.getHour(domains[i].worktimeList[m].startTime, domains[i].worktimeList[m].endTime)
+                                    // hours += this.getHour(domains[i].worktimeList[m].startTime, domains[i].worktimeList[m].endTime)
+                                    let selectionTime = this.getHour(domains[i].worktimeList[m].startTime, domains[i].worktimeList[m].endTime)
+                                    let subtractedData = 0
+                                    console.log(selectionTime)
+                                    let arr = JSON.parse(JSON.stringify(this.vacationTime))
+                                    arr.unshift({s: domains[i].worktimeList[m].startTime, e: domains[i].worktimeList[m].endTime})
+                                    console.log(arr, '要看的数据')
+
+                                    for(var j in arr) {
+                                        subtractedData += +this.timeOverlap(j, arr)
+                                    }
+                                    hours += (+selectionTime - +subtractedData) * this.jsDay
+                                    this.jsTime = hours
                                 }
                             }
                         }else{
@@ -2698,21 +2710,37 @@
                 for(var i in sl) {
                     for(var j in sl[i].worktimeList){
                         if(sl[i].worktimeList[j].startTime && sl[i].worktimeList[j].endTime) {
-                            var date2 = '2021/12/12 ' + sl[i].worktimeList[j].endTime +':00'
-                            var date1 = '2021/12/12 ' + sl[i].worktimeList[j].startTime +':00'
-                            var date3 = new Date(date2).getTime() - new Date(date1).getTime();
-                            var leave1=date3%(24*3600*1000)
-                            var hours=Math.floor(leave1/(3600*1000))
-                            var leave2=leave1%(3600*1000)
-                            var minutes=Math.floor(leave2/(60*1000))
-                            var shi = hours+'.'+ minutes
-                            var sll = +shi + 0
-                            zhi = this.jsDay * sll
-                            quanbu = +quanbu + zhi
+                            // var date2 = '2021/12/12 ' + sl[i].worktimeList[j].endTime +':00'
+                            // var date1 = '2021/12/12 ' + sl[i].worktimeList[j].startTime +':00'
+                            // var date3 = new Date(date2).getTime() - new Date(date1).getTime();
+                            // var leave1=date3%(24*3600*1000)
+                            // var hours=Math.floor(leave1/(3600*1000))
+                            // var leave2=leave1%(3600*1000)
+                            // var minutes=Math.floor(leave2/(60*1000))
+                            // var shi = hours+'.'+ minutes
+                            // var sll = +shi + 0
+                            // zhi = this.jsDay * sll
+                            // quanbu = +quanbu + zhi
+                            let selectionTime = this.getHour(sl[i].worktimeList[j].startTime, sl[i].worktimeList[j].endTime)
+                            let subtractedData = 0
+                            console.log(selectionTime)
+                            let arr = JSON.parse(JSON.stringify(this.vacationTime))
+                            arr.unshift({s: sl[i].worktimeList[j].startTime, e: sl[i].worktimeList[j].endTime})
+                            console.log(arr, '要看的数据')
+
+                            for(var j in arr) {
+                                subtractedData += +this.timeOverlap(j, arr)
+                            }
+                            console.log(subtractedData, '要减去的数据')
+                            quanbu = +selectionTime - +subtractedData
+                            console.log(quanbu, '赋值的数据')
+                            console.log(this._computedWatchers.totalReportHours)
+                            // this.workForm.domains = JSON.parse(JSON.stringify(this.workForm.domains))
                         }
                     }
                 }
-                this.jsTime = quanbu
+                // this.jsTime = quanbu
+                this.$set(this, 'jsTime', quanbu)
             },
             removeTimeItem(item, index) {
                 item.worktimeList.splice(index, 1);