Kaynağa Gözat

调整日报时间

Lijy 2 yıl önce
ebeveyn
işleme
b37aeb9901

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

@@ -781,9 +781,9 @@
             </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" 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> -->
+
+                <span style="margin-right:20px">合计工时:{{totalReportHours}}小时</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>
                 <el-button v-if="!isSubstitude" @click="submitReport(1)" :loading="submitingReport" :disabled="workForm.domains.length==0?true:(canEdit?false:true)">{{$t('btn.temporaryStorage')}}</el-button>
@@ -1971,7 +1971,9 @@
                 zhoBaoSelectableRange: ['09:30 - 12:00'], // 选择时间的可选时间段
                 vacationTime: {},
 
-                integrationProjectList: []
+                integrationProjectList: [],
+
+                totalReportHours: 0, // 合计的工时
             };
         },
         watch: {
@@ -2007,56 +2009,7 @@
             },
             
         },
-        computed: {
-            totalReportHours(){
-                let domains = this.workForm.domains
-                let hours = 0
-                for(let i in domains){
-                    if(domains[i].projectId){
-                        if(this.reportTimeType.multiWorktime == 1){
-                            console.log('进一')
-                            for(let m in domains[i].worktimeList){
-                                if(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{
-                            if(this.user.timeType.type == 2){
-                                if(domains[i].startTime && domains[i].endTime){
-                                    // let selectionTime = this.getHourMinutes(domains[i].startTime, domains[i].endTime)
-                                    let selectionTime = this.getHour(domains[i].startTime, domains[i].endTime)
-                                    let subtractedData = 0
-                                    let arr = JSON.parse(JSON.stringify(this.vacationTime))
-                                    arr.unshift({s: domains[i].startTime, e: domains[i].endTime})
-                                    for(var j in arr) {
-                                        subtractedData += +this.timeOverlap(j, arr)
-                                    }
-                                    console.log(selectionTime, subtractedData)
-                                    hours += (+selectionTime - +subtractedData) * this.jsDay
-                                    console.log(hours)
-                                    // hours += this.getHour(domains[i].startTime, domains[i].endTime)
-                                }
-                            }else{
-                                hours += domains[i].workingTime ? parseFloat(domains[i].workingTime) : 0
-                            }
-                        }
-                    }
-                }
-                console.log(hours, '需要返回的数据')
-                return hours.toFixed(2)
-            },
-        },
+        computed: {},
         mounted() {
             var now = new Date();
             var t = util.formatDate.format(now, 'yyyy-MM-dd');
@@ -2667,6 +2620,7 @@
                     quanbu = +quanbu + zhi
                 }
                 this.jsTime = quanbu
+                this.totalReportHours = quanbu
                 let worktime = this.jsTime
 
                 // 自动计算加班时长
@@ -2730,78 +2684,45 @@
             },
             iptChang() {
                 var sl = this.workForm.domains
-                var quanbu = 0 
-                var zhi = ''
-                let arrNum = []
+                let timeArr = []
                 for(var i in sl) {
                     if(sl[i].startTime && sl[i].endTime) {
-                        let selectionTime = this.getHour(sl[i].startTime, sl[i].endTime)
-                        let subtractedData = 0
-                        let arr = JSON.parse(JSON.stringify(this.vacationTime))
-                        arr.unshift({s: sl[i].startTime, e: sl[i].endTime})
-                        for(var j in arr) {
-                            subtractedData += +this.timeOverlap(j, arr)
-                        }
-                        zhi = (+selectionTime - +subtractedData) * this.jsDay
-                        arrNum.push(zhi)
-                        // arrNum.push(subtractedData)
-                        quanbu += zhi
+                        timeArr.push({startTime: sl[i].startTime, endTime: sl[i].endTime})
                     }
                     
                 }
-                this.jsTime = quanbu
 
-                let flg = false
-                let zuiNum = 0
-                console.log(arrNum)
-                for(let j in arrNum) {
-                    zuiNum += arrNum[j]
-                    if(flg) {
-                        this.$set(this.workForm.domains[j],'isOvertime', true)
-                        this.$set(this.workForm.domains[j],'overtimeHours', arrNum[j] / this.jsDay)
-                    }
-                    if(zuiNum > (this.user.timeType.allday * this.jsDay) && !flg) {
-                        flg = true
-                        this.$set(this.workForm.domains[j],'isOvertime', true)
-                        this.$set(this.workForm.domains[j],'overtimeHours', (zuiNum - (this.user.timeType.allday * this.jsDay)) / this.jsDay)
-                        // this.$set(this.workForm.domains[j],'overtimeHours', zhizhang / this.jsDay)
-                    }
+                this.getTimeHours(timeArr)
 
-                    if(zuiNum < (this.user.timeType.allday * this.jsDay) && !flg) {
-                        this.$set(this.workForm.domains[j],'isOvertime', false)
-                        this.$set(this.workForm.domains[j],'overtimeHours', '')
-                    }
-                }
+                // for(let j in arrNum) {
+                //     this.timeJsonStr += arrNum[j]
+                //     if(flg) {
+                //         this.$set(this.workForm.domains[j],'isOvertime', true)
+                //         this.$set(this.workForm.domains[j],'overtimeHours', this.timeJsonStr / this.jsDay)
+                //     }
+                //     if(this.timeJsonStr > (this.user.timeType.allday * this.jsDay) && !flg) {
+                //         flg = true
+                //         this.$set(this.workForm.domains[j],'isOvertime', true)
+                //         this.$set(this.workForm.domains[j],'overtimeHours', (this.timeJsonStr - (this.user.timeType.allday * this.jsDay)) / this.jsDay)
+                //         // this.$set(this.workForm.domains[j],'overtimeHours', zhizhang / this.jsDay)
+                //     }
+
+                //     if(this.timeJsonStr < (this.user.timeType.allday * this.jsDay) && !flg) {
+                //         this.$set(this.workForm.domains[j],'isOvertime', false)
+                //         this.$set(this.workForm.domains[j],'overtimeHours', '')
+                //     }
+                // }
             },
             iptChangs() {
                 var sl = this.workForm.domains
-                var quanbu = 0 
-                var zhi = ''
                 let timeArr = []
                 for(var i in sl) {
                     for(var j in sl[i].worktimeList){
-                        let addUp = 0
                         if(sl[i].worktimeList[j].startTime && sl[i].worktimeList[j].endTime) {
-                            let selectionTime = this.getHour(sl[i].worktimeList[j].startTime, sl[i].worktimeList[j].endTime)
-                            let subtractedData = 0
-                            let arr = JSON.parse(JSON.stringify(this.vacationTime))
-                            arr.unshift({s: sl[i].worktimeList[j].startTime, e: sl[i].worktimeList[j].endTime})
                             timeArr.push({startTime: sl[i].worktimeList[j].startTime, endTime: sl[i].worktimeList[j].endTime})
-                            for(var j in arr) {
-                                subtractedData += +this.timeOverlap(j, arr)
-                            }
-                            if(this.reportTimeType.multiWorktime == 1) {
-                                addUp = +selectionTime - +subtractedData
-                            } else {
-                                quanbu = +selectionTime - +subtractedData
-                            }
-                        }
-                        if(this.reportTimeType.multiWorktime == 1) {
-                            quanbu += addUp
                         }
                     }
                 }
-                this.$set(this, 'jsTime', quanbu)
                 this.getTimeHours(timeArr)
             },
             // 调用接口或去数据
@@ -2809,7 +2730,7 @@
                 this.http.post('/report/getHoursByTimeRange',{
                     timeJsonStr: JSON.stringify(arr)
                 },res => {
-                    this.$set(this, 'jsTime', res.data)
+                    this.$set(this, 'totalReportHours', +res.data * this.jsDay)
                 },err => {
                     this.$message({
                         message: err,
@@ -4782,6 +4703,7 @@
                             
                             this.canEdit = true;
                         }
+                        this.seleChn()
                     } else {
                         this.$message({
                             message: res.msg,
@@ -5949,6 +5871,7 @@
 
                 this.chuji()
                 
+                this.seleChn()
             },
 
             // 移除模块
@@ -6047,13 +5970,7 @@
                 this.isDraft = isDraft;
                 this.$refs.workForm.validate(valid => {
                     if (valid) {
-                        var timesHours = 0
-                        if(this.reportTimeType.multiWorktime == 1) {
-                            timesHours = this.totalReportHours
-                        } else {
-                            timesHours = jsTime
-                        }
-                if(timesHours < this.user.timeType.allday){
+                if(this.totalReportHours < this.user.timeType.allday){
                     this.$confirm('当日工时不足' + this.user.timeType.allday.toFixed(1) + '小时,是否确定提交?', '提示', {
                         confirmButtonText: '确定',
                         cancelButtonText: '取消',

+ 18 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/count/count.vue

@@ -91,12 +91,22 @@
             <van-cell v-for="item in showList" :key="item.id" title-style="color:#666">
                 <template #title>
                     <div style="text-align:left;margin-left:0.42667rem;" v-if="user.userNameNeedTranslate == '1'"><ww-open-data type='userName' :openid='item.name'></ww-open-data></div>
-                    <div style="text-align:left;margin-left:0.42667rem;" v-else>{{item.name}}</div>
+                    <div style="text-align:left;margin-left:0.42667rem;" v-else>{{item.name}}123</div>
                 </template>
                 <template #default>
                     <div style="text-align:right;margin-right:0.42667rem;" v-if="user.userNameNeedTranslate == '1'"><ww-open-data type='departmentName' :openid='item.department'></ww-open-data></div>
                     <div style="text-align:right;margin-right:0.42667rem;" v-else>{{item.department}}</div>
                 </template>
+                <template #label>
+                    <div class="cellLabel">
+                        <div>
+                            填报工时: {{ item.workingTime }} h
+                            <span v-if="item.state == 1" style="color: #409EFF">已通过</span>
+                            <span v-if="item.state == 3" style="color: #FFA366">待提交</span>
+                            <span v-if="item.state == 0" style="color: #FFA366">待审核</span>
+                        </div>
+                    </div>
+                </template>
             </van-cell>
         </template>
     </van-cell-group>
@@ -338,4 +348,11 @@ body{
 .title111 .van-tabs__line{
     background-color: #f7f7f7;
 }
+.cellLabel {
+    padding: 0 15px;
+    box-sizing: border-box;
+}
+.cellLabel span {
+    padding-left: 10px;
+}
 </style>