|
@@ -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: '取消',
|