From be9ee7a8c9195a9bebfcab68462e4e209fe3d717 Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Mon, 17 Feb 2025 17:55:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=8F=E5=85=8D=E8=B4=B9=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../costRecord/component/applyDetail.vue | 498 ++++++++++++++++++ .../costRecord/component/applyHome.vue | 478 +++++++++++++++++ src/views/business/costRecord/index.vue | 48 ++ src/views/material/cost/costDecreaseList.vue | 175 ++++-- 4 files changed, 1146 insertions(+), 53 deletions(-) create mode 100644 src/views/business/costRecord/component/applyDetail.vue create mode 100644 src/views/business/costRecord/component/applyHome.vue create mode 100644 src/views/business/costRecord/index.vue diff --git a/src/views/business/costRecord/component/applyDetail.vue b/src/views/business/costRecord/component/applyDetail.vue new file mode 100644 index 00000000..f1a7158e --- /dev/null +++ b/src/views/business/costRecord/component/applyDetail.vue @@ -0,0 +1,498 @@ + + + + diff --git a/src/views/business/costRecord/component/applyHome.vue b/src/views/business/costRecord/component/applyHome.vue new file mode 100644 index 00000000..e250685a --- /dev/null +++ b/src/views/business/costRecord/component/applyHome.vue @@ -0,0 +1,478 @@ + + + + diff --git a/src/views/business/costRecord/index.vue b/src/views/business/costRecord/index.vue new file mode 100644 index 00000000..fed489c9 --- /dev/null +++ b/src/views/business/costRecord/index.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/views/material/cost/costDecreaseList.vue b/src/views/material/cost/costDecreaseList.vue index 8e3c0975..3655cf53 100644 --- a/src/views/material/cost/costDecreaseList.vue +++ b/src/views/material/cost/costDecreaseList.vue @@ -824,45 +824,84 @@ export default { // 更新表格中所有数据的减免开始时间 updateTableStartTime() { this.applyList = this.applyListTemp; - const pickStartTime = new Date(this.dialogAppy.reduceStartTime); - this.applyList.slice(0,-1).forEach(item => { - let validEndTime = item.endTime ? new Date(item.endTime) : new Date(); - if(pickStartTime < new Date(item.startTime) || pickStartTime > validEndTime){ - console.log('日期无效',validEndTime) - this.$set(item, 'reduceStartTime', null); - }else{ - console.log('日期有效',validEndTime,this.dialogAppy.reduceStartTime) - this.$set(item, 'reduceStartTime', this.dialogAppy.reduceStartTime); - } - // item.reduceStartTime = this.dialogAppy.reduceStartTime; - }); if (this.dialogAppy.reduceEndTime) { - + const pickStartTime = new Date(this.dialogAppy.reduceStartTime); + const pickEndTime = new Date(this.dialogAppy.reduceEndTime); + if(pickStartTime > pickEndTime){ + this.$modal.msgError('开始日期不能大于结束日期') + return; + } this.applyList.slice(0,-1).forEach(item => { const startTime = new Date(item.reduceStartTime); const endTime = new Date(item.reduceEndTime); const startTimeTemp = item.reduceStartTime; - const endTimeTemp = item.reduceEndTime; - console.log('日期无效sdadasdsada',startTimeTemp,endTimeTemp,startTime,endTime) - if (startTimeTemp!=null && endTimeTemp!=null && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) { - const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 - const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1); + const endTimeTemp = item.reduceEndTime; + + const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 + if(pickStartTime<=new Date(item.startTime) && pickEndTime>=new Date(item.endTime)){ + this.$set(item, 'reduceStartTime', item.startTime); + this.$set(item,'reduceEndTime', item.endTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); this.$set(item, 'reduceDays', diffDays); if(item.reduceNum && item.reduceDays && item.leasePrice){ this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); } - // row.leaseDays = diffDays; - }else if(startTimeTemp!=null && item.reduceEndTime==null && startTimeTemp>=item.startTime && startTimeTemp<=item.endTime){ - this.$set(item, 'reduceEndTime', startTime); + }else if(pickStartTime>=new Date(item.startTime) && pickEndTime<=new Date(item.endTime)){ + this.$set(item,'reduceStartTime', pickStartTime); + this.$set(item,'reduceEndTime', pickEndTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); + this.$set(item, 'reduceDays', diffDays); + if(item.reduceNum && item.reduceDays && item.leasePrice){ + this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + } + }else if(pickStartTime>=new Date(item.startTime) && pickEndTime>=new Date(item.endTime) && pickStartTime<=new Date(item.endTime)){ + this.$set(item,'reduceStartTime', pickStartTime); + this.$set(item,'reduceEndTime', item.endTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); + this.$set(item, 'reduceDays', diffDays); + if(item.reduceNum && item.reduceDays && item.leasePrice){ + this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + } + }else if(pickStartTime<=new Date(item.startTime) && pickEndTime<=new Date(item.endTime) && pickEndTime>=new Date(item.startTime)){ + this.$set(item,'reduceStartTime', item.startTime); + this.$set(item,'reduceEndTime', pickEndTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); + this.$set(item, 'reduceDays', diffDays); + if(item.reduceNum && item.reduceDays && item.leasePrice){ + this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + } + }else if(pickStartTime>=new Date(item.startTime) && pickStartTime>=new Date(item.endTime) ){ + this.$set(item,'reduceStartTime', null); + this.$set(item,'reduceEndTime', null); + this.$set(item, 'reduceDays', 0); + this.$set(item, 'reduceLeaseMoney', 0); + }else if(pickEndTime<=new Date(item.startTime) && pickEndTime<=new Date(item.endTime)){ + this.$set(item,'reduceStartTime', null); + this.$set(item,'reduceEndTime', null); this.$set(item, 'reduceDays', 0); this.$set(item, 'reduceLeaseMoney', 0); } - else { - this.$set(item, 'reduceStartTime', null); - // 如果日期无效,将减免天数设为 0 或者清空 - this.$set(item, 'reduceDays', 0); - this.$set(item, 'reduceLeaseMoney', 0); - } + + + // if (startTimeTemp!=null && endTimeTemp!=null && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) { + // const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 + // const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1); + // this.$set(item, 'reduceDays', diffDays); + // if(item.reduceNum && item.reduceDays && item.leasePrice){ + // this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + // } + // // row.leaseDays = diffDays; + // }else if(startTimeTemp!=null && item.reduceEndTime==null && startTimeTemp>=item.startTime && startTimeTemp<=item.endTime){ + // this.$set(item, 'reduceEndTime', startTime); + // this.$set(item, 'reduceDays', 0); + // this.$set(item, 'reduceLeaseMoney', 0); + // } + // else { + // this.$set(item, 'reduceStartTime', null); + // // 如果日期无效,将减免天数设为 0 或者清空 + // this.$set(item, 'reduceDays', 0); + // this.$set(item, 'reduceLeaseMoney', 0); + // } this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => { return total + Number(item.reduceLeaseMoney); }, 0); @@ -873,45 +912,75 @@ export default { // 更新表格中所有数据的减免结束时间 updateTableEndTime() { this.applyList = this.applyListTemp; - const pickEndTime = new Date(this.dialogAppy.reduceEndTime); - this.applyList.slice(0,-1).forEach(item => { - let validEndTime = item.endTime ? new Date(item.endTime) : new Date(); - console.log('666666666666',item.startTime,pickEndTime) - if(pickEndTime < new Date(item.startTime) || pickEndTime > validEndTime){ + // const pickEndTime = new Date(this.dialogAppy.reduceEndTime); + // this.applyList.slice(0,-1).forEach(item => { + // let validEndTime = item.endTime ? new Date(item.endTime) : new Date(); + // console.log('666666666666',item.startTime,pickEndTime) + // if(pickEndTime < new Date(item.startTime) || pickEndTime > validEndTime){ - this.$set(item, 'reduceEndTime', null); - }else{ - this.$set(item, 'reduceEndTime', this.dialogAppy.reduceEndTime); - } - // item.reduceStartTime = this.dialogAppy.reduceStartTime; - }); + // this.$set(item, 'reduceEndTime', null); + // }else{ + // this.$set(item, 'reduceEndTime', this.dialogAppy.reduceEndTime); + // } + // // item.reduceStartTime = this.dialogAppy.reduceStartTime; + // }); if (this.dialogAppy.reduceStartTime) { + const pickStartTime = new Date(this.dialogAppy.reduceStartTime); + const pickEndTime = new Date(this.dialogAppy.reduceEndTime); + console.log('dadad',pickStartTime,pickEndTime) + if(pickStartTime > pickEndTime){ + this.$modal.msgError('结束日期不能小于开始日期') + return; + } this.applyList.slice(0,-1).forEach(item => { const startTime = new Date(item.reduceStartTime); const endTime = new Date(item.reduceEndTime); const startTimeTemp = item.reduceStartTime; const endTimeTemp = item.reduceEndTime; - console.log('xxxxxxxxxxxxx',endTimeTemp,item.startTime,item.endTime,item.reduceEndTime) - if (startTimeTemp!=null && endTimeTemp!=null && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) { - console.log('zzzzzzzzzzzzzz') - const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 - const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1); + + const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 + if(pickStartTime<=new Date(item.startTime) && pickEndTime>=new Date(item.endTime)){ + this.$set(item, 'reduceStartTime', item.startTime); + this.$set(item,'reduceEndTime', item.endTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); this.$set(item, 'reduceDays', diffDays); if(item.reduceNum && item.reduceDays && item.leasePrice){ - this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); } - // row.leaseDays = diffDays; - }else if(endTimeTemp!=null && item.reduceStartTime==null && endTimeTemp>=item.startTime && endTimeTemp<=item.endTime){ - console.log('yyyyyyyyyyy',item.reduceEndTime) - this.$set(item, 'reduceEndTime', endTime); + }else if(pickStartTime>=new Date(item.startTime) && pickEndTime<=new Date(item.endTime)){ + this.$set(item,'reduceStartTime', pickStartTime); + this.$set(item,'reduceEndTime', pickEndTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); + this.$set(item, 'reduceDays', diffDays); + if(item.reduceNum && item.reduceDays && item.leasePrice){ + this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + } + }else if(pickStartTime>=new Date(item.startTime) && pickEndTime>=new Date(item.endTime) && pickStartTime<=new Date(item.endTime)){ + this.$set(item,'reduceStartTime', pickStartTime); + this.$set(item,'reduceEndTime', item.endTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); + this.$set(item, 'reduceDays', diffDays); + if(item.reduceNum && item.reduceDays && item.leasePrice){ + this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + } + }else if(pickStartTime<=new Date(item.startTime) && pickEndTime<=new Date(item.endTime) && pickEndTime>=new Date(item.startTime)){ + this.$set(item,'reduceStartTime', item.startTime); + this.$set(item,'reduceEndTime', pickEndTime); + const diffDays = Math.ceil(Math.abs((item.reduceEndTime - item.reduceStartTime) / oneDay)) + (item.reduceEndTime - item.reduceStartTime === 0 ? 1 : 1); + this.$set(item, 'reduceDays', diffDays); + if(item.reduceNum && item.reduceDays && item.leasePrice){ + this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum); + } + }else if(pickStartTime>=new Date(item.startTime) && pickStartTime>=new Date(item.endTime) ){ + this.$set(item,'reduceStartTime', null); + this.$set(item,'reduceEndTime', null); + this.$set(item, 'reduceDays', 0); + this.$set(item, 'reduceLeaseMoney', 0); + }else if(pickEndTime<=new Date(item.startTime) && pickEndTime<=new Date(item.endTime)){ + this.$set(item,'reduceStartTime', null); + this.$set(item,'reduceEndTime', null); this.$set(item, 'reduceDays', 0); this.$set(item, 'reduceLeaseMoney', 0); - }else { - this.$set(item, 'reduceEndTime', null); - // 如果日期无效,将减免天数设为 0 或者清空 - this.$set(item, 'reduceDays', 0); - this.$set(item, 'reduceLeaseMoney', 0); } this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => { return total + Number(item.reduceLeaseMoney);