减免费用

This commit is contained in:
hongchao 2025-02-15 17:00:43 +08:00
parent 3c608c3763
commit 482d0052a3
2 changed files with 332 additions and 243 deletions

View File

@ -83,7 +83,23 @@ export function costExamine(params){
})
}
// 查询减免费用列表
export function getReliefList(query) {
return request({
url: '/material/slt_agreement_reduce/applyByParam',
method: 'get',
params: query
})
}
// 减免费用提交
export function addRelief(params){
return request({
url: '/material/slt_agreement_reduce/addApply',
method: 'post',
data: params
})
}

View File

@ -21,6 +21,10 @@
/>
</el-form-item>
<el-form-item prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="请输入协议号" clearable disabled/>
</el-form-item>
<el-form-item label="选择时间范围" prop="time" label-width="120px">
<el-date-picker
v-model="queryParams.time"
@ -93,9 +97,9 @@
<span v-else>{{ scope.$index+1 }} </span>
</template>
</el-table-column>
<el-table-column label="设备名称" align="center" prop="deviceName" show-overflow-tooltip />
<el-table-column label="规格型号" align="center" prop="typeName" show-overflow-tooltip />
<el-table-column label="单位" align="center" prop="unit" show-overflow-tooltip />
<el-table-column label="设备名称" align="center" prop="maName" show-overflow-tooltip />
<el-table-column label="规格型号" align="center" prop="maModel" show-overflow-tooltip />
<el-table-column label="单位" align="center" prop="maUnit" show-overflow-tooltip />
<el-table-column label="租赁单价" align="center" prop="leasePrice" :show-overflow-tooltip="true">
<!-- <template slot-scope="scope" v-if="scope.row.num">
{{ scope.row.leasePrice.toFixed(2) }}
@ -106,15 +110,15 @@
{{ scope.row.num.toFixed(2) }}
</template> -->
</el-table-column>
<el-table-column label="租赁日期" align="center" prop="startTime" :show-overflow-tooltip="true"/>
<el-table-column label="归还数量" align="center" prop="backNum" :show-overflow-tooltip="true" />
<el-table-column label="归还日期 " align="center" prop="endTime" :show-overflow-tooltip="true"/>
<el-table-column label="租赁天数" align="center" prop="leaseDays" :show-overflow-tooltip="true">
<el-table-column label="租赁日期" align="center" prop="startTime" :show-overflow-tooltip="true" />
<!-- <el-table-column label="归还数量" align="center" prop="backNum" :show-overflow-tooltip="true" /> -->
<el-table-column label="归还日期 " align="center" prop="endTime" :show-overflow-tooltip="true" />
<el-table-column label="租赁天数" align="center" prop="days" :show-overflow-tooltip="true">
<!-- <template slot-scope="scope" v-if="scope.row.num">
{{ Number(scope.row.leaseDays).toFixed(2) }}
</template> -->
</el-table-column>
<el-table-column label="租赁费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
<el-table-column label="租赁费用(元)" align="center" prop="leaseMoney" :show-overflow-tooltip="true">
<!-- <template slot-scope="scope" v-if="scope.row.costs">
{{ scope.row.costs.toFixed(2) }}
</template> -->
@ -137,10 +141,10 @@
<el-form :model="dialogAppy" ref="dialogAppy" :rules="rules" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="减免开始日期" prop="decreaseStartTime">
<el-form-item label="减免开始日期" prop="reduceStartTime">
<el-date-picker
style="width: 80%"
v-model="dialogAppy.decreaseStartTime"
v-model="dialogAppy.reduceStartTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择开始日期"
@ -149,10 +153,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="减免结束日期" prop="decreaseEndTime">
<el-form-item label="减免结束日期" prop="reduceEndTime">
<el-date-picker
style="width: 80%"
v-model="dialogAppy.decreaseEndTime"
v-model="dialogAppy.reduceEndTime"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择结束日期"
@ -220,13 +224,16 @@
</el-row>
</el-form>
<el-table v-loading="loading" row-key="id" :data="applyList" :span-method="objectSpanMethodApply" border>
<el-table-column label="减免数量" align="center" prop="decreaseNum" width="120px">
<el-table v-loading="loading" row-key="id" :data="applyList"
:span-method="objectSpanMethodApply"
border
:row-class-name="getRowClassName" >
<el-table-column label="减免数量" align="center" prop="reduceNum" width="120px">
<template v-slot="scope">
<span style="background-color: #f8f8f9;text-align: center;" v-if="scope.$index==applyList.length-1">小计</span>
<span v-else>
<el-input
v-model.number="scope.row.decreaseNum"
v-model.number="scope.row.reduceNum"
controls-position="right" type="number"
style="width: 100%"
:min="0"
@ -234,15 +241,15 @@
></el-input></span>
</template>
</el-table-column>
<el-table-column label="机具名称" align="center" prop="deviceName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="机具名称" align="center" prop="maName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="maModel" :show-overflow-tooltip="true"/>
<el-table-column label="领料数量" align="center" prop="num" :show-overflow-tooltip="true"/>
<el-table-column label="领料日期" align="center" prop="startTime" :show-overflow-tooltip="true"/>
<el-table-column label="退料日期" align="center" prop="endTime" :show-overflow-tooltip="true"/>
<el-table-column label="减免开始时间" align="center" prop="decreaseStartTime" width="160px">
<el-table-column label="减免开始时间" align="center" prop="reduceStartTime" width="160px">
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.decreaseStartTime"
v-model="scope.row.reduceStartTime"
style="width: 100%"
value-format="yyyy-MM-dd"
type="date"
@ -253,10 +260,10 @@
></el-date-picker>
</template>
</el-table-column>
<el-table-column label="减免结束时间" align="center" prop="decreaseEndTime" width="160px">
<el-table-column label="减免结束时间" align="center" prop="reduceEndTime" width="160px">
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.decreaseEndTime"
v-model="scope.row.reduceEndTime"
style="width: 100%"
value-format="yyyy-MM-dd"
type="date"
@ -268,10 +275,10 @@
</template>
</el-table-column>
<el-table-column label="租赁单价(元/天)" align="center" prop="leasePrice" width="130px"/>
<el-table-column label="减免天数" align="center" prop="deDays" :show-overflow-tooltip="true"/>
<el-table-column label="减免费用(元)" align="center" width="126px" prop="deCosts" :show-overflow-tooltip="true">
<el-table-column label="减免天数" align="center" prop="reduceDays" :show-overflow-tooltip="true"/>
<el-table-column label="减免费用(元)" align="center" width="126px" prop="reduceLeaseMoney" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span >{{ scope.row.deCosts.toFixed(2) }}</span>
<span >{{ scope.row.reduceLeaseMoney.toFixed(2) }}</span>
</template>
</el-table-column>
</el-table>
@ -295,7 +302,7 @@ import {
getUnitList,
getAgreementInfoById,
} from '@/api/back/index.js'
import {getPushReviewList,getLeaseList,getRepairList,getLoseList,getScrapList } from "@/api/costPush/costPush";
import {getReliefList,addRelief } from "@/api/cost/cost";
import {downloadFile, downloadFileData} from '@/utils/download'
import {getToken} from '@/utils/auth'
import Treeselect from "@riophae/vue-treeselect";
@ -330,7 +337,7 @@ export default {
//
moneyAll: 0,
//
leaseAll: 0.00,
leaseAll: 0,
//
queryParams: {
@ -338,7 +345,7 @@ export default {
projectId: null,
agreementId: '',
agreementCode: '',
time:'',
time:null,
},
//
@ -351,16 +358,16 @@ export default {
showApply: false,
dialogLeaseList: [], //
dialogAppy: {
decreaseStartTime: undefined,
decreaseEndTime: undefined,
reduceStartTime: undefined,
reduceEndTime: undefined,
reason: '',
decreaseFile: [],
},
rules: {
decreaseStartTime: [
reduceStartTime: [
{ required: true, message: "请选择减免开始日期", trigger: "change" },
],
decreaseEndTime: [
reduceEndTime: [
{ required: true, message: "请选择减免结束日期", trigger: "change" },
],
reason: [
@ -401,7 +408,15 @@ export default {
},
},
components: { Treeselect },
methods: {
methods: {
getRowClassName({ row, rowIndex }) {
if (this.dialogAppy.reduceStartTime && this.dialogAppy.reduceEndTime) {
if ((!row.reduceStartTime || !row.reduceEndTime)&&rowIndex!=this.applyList.length-1) {
return 'highlight-row'
}
}
return '';
},
//
handleSelectionChange(val) {
@ -477,70 +492,78 @@ export default {
/** 查询列表 */
getList() {
async getList() {
this.loading = true;
this.pushReviewList = [
{
id:1,
deviceName: '小吊绳',
typeName: '200m',
unit: '根',
leasePrice: 3.00,
num: 10,
startTime: '2025-01-07',
backNum: '1',
endTime: '2025-01-23',
leaseDays: 17,
costs: 510.00,
},
{
id:2,
deviceName: '牵引绳卡线器',
typeName: 'φ11~15',
unit: '把',
leasePrice: 0.9,
num: 26,
startTime: '2025-01-06',
backNum: '1',
endTime: '2025-01-23',
leaseDays: 18,
costs: 421.20,
},
{
id:3,
deviceName: '挡土地锚',
typeName: 'DTDM-1',
unit: '只',
leasePrice: 0.04,
num: 76,
startTime: '2025-01-07',
backNum: '1',
endTime: '2025-01-23',
leaseDays: 17,
costs: 51.68,
},
];
this.leaseAll = this.pushReviewList.reduce((total, item) => {
return total + Number(item.costs);
}, 0);
let obj = {
id:null,
costs: this.leaseAll,
}
this.pushReviewList.push(obj)
// getPushReviewList(this.queryParams).then((response) => {
// this.pushReviewList = response.rows;
// this.originalMonthTrue = this.queryParams.month;
// let obj = {
// leaseMoney: this.leaseAll,
// repairMoney: this.repairAll,
// scrapMoney: this.scrapAll,
// loseMoney: this.loseAll,
// money: this.moneyAll,
// }
// this.pushReviewList.push(obj)
// this.loading = false;
// });
// this.pushReviewList = [
// {
// id:1,
// deviceName: '',
// typeName: '200m',
// unit: '',
// leasePrice: 3.00,
// num: 10,
// startTime: '2025-01-07',
// backNum: '1',
// endTime: null,
// leaseDays: 17,
// costs: 510.00,
// },
// {
// id:2,
// deviceName: '线',
// typeName: 'φ11~15',
// unit: '',
// leasePrice: 0.9,
// num: 26,
// startTime: '2025-01-06',
// backNum: '1',
// endTime: '2025-01-23',
// leaseDays: 18,
// costs: 421.20,
// },
// {
// id:3,
// deviceName: '',
// typeName: 'DTDM-1',
// unit: '',
// leasePrice: 0.04,
// num: 76,
// startTime: '2025-01-07',
// backNum: '1',
// endTime: '2025-01-23',
// leaseDays: 17,
// costs: 51.68,
// },
// ];
// this.leaseAll = this.pushReviewList.reduce((total, item) => {
// return total + Number(item.costs);
// }, 0);
// let obj = {
// id:null,
// costs: this.leaseAll,
// }
// this.pushReviewList.push(obj)
const params = {
deviceName: this.queryParams.deviceName,
typeName: this.queryParams.typeName,
agreementId: this.queryParams.agreementId,
startTime: this.queryParams.time && this.queryParams.time[0],
endTime: this.queryParams.time && this.queryParams.time[1],
}
getReliefList(params).then((response) => {
this.pushReviewList = response.data;
console.log('22222222',this.pushReviewList)
this.leaseAll = this.pushReviewList.reduce((total, item) => {
return total + Number(item.leaseMoney);
}, 0);
let obj = {
id:null,
leaseMoney: this.leaseAll,
}
this.pushReviewList.push(obj)
});
this.loading = false;
},
@ -554,6 +577,7 @@ export default {
agreementCode: '',
}
this.resetForm('queryForm')
this.queryParams.time=[]
this.handleQuery()
},
@ -588,17 +612,17 @@ export default {
if (this.ids.includes(item.id)) {
//
const newItem = { ...item };
this.$set(newItem, 'decreaseNum', newItem.num);
this.$set(newItem, 'deDays', 0);
this.$set(newItem, 'deCosts', 0);
this.$set(newItem, 'reduceNum', newItem.num);
this.$set(newItem, 'reduceDays', 0);
this.$set(newItem, 'reduceLeaseMoney', 0);
this.applyList.push(newItem)
}
});
//
let obj = {
id:0,
decreaseNum: 0,
deCosts: 0,
reduceNum: 0,
reduceLeaseMoney: 0,
}
this.applyList.push(obj)
this.showApply = true;
@ -758,69 +782,73 @@ export default {
//
updateTableStartTime() {
const pickStartTime = new Date(this.dialogAppy.decreaseStartTime);
const pickStartTime = new Date(this.dialogAppy.reduceStartTime);
this.applyList.slice(0,-1).forEach(item => {
if(pickStartTime < new Date(item.startTime) || pickStartTime > new Date(item.endTime)){
this.$set(item, 'decreaseStartTime', null);
let validEndTime = item.endTime ? new Date(item.endTime) : new Date();
if(pickStartTime < new Date(item.startTime) || pickStartTime > validEndTime){
this.$set(item, 'reduceStartTime', null);
}else{
this.$set(item, 'decreaseStartTime', this.dialogAppy.decreaseStartTime);
this.$set(item, 'reduceStartTime', this.dialogAppy.reduceStartTime);
}
// item.decreaseStartTime = this.dialogAppy.decreaseStartTime;
// item.reduceStartTime = this.dialogAppy.reduceStartTime;
});
if (this.dialogAppy.decreaseEndTime) {
if (this.dialogAppy.reduceEndTime) {
this.applyList.slice(0,-1).forEach(item => {
const startTime = new Date(item.decreaseStartTime);
const endTime = new Date(item.decreaseEndTime);
if (!isNaN(startTime.getTime()) && !isNaN(endTime.getTime()) && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() > startTime.getTime()) {
const startTime = new Date(item.reduceStartTime);
const endTime = new Date(item.reduceEndTime);
if (!isNaN(startTime) && !isNaN(endTime) && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) {
const oneDay = 24 * 60 * 60 * 1000; //
const diffDays = Math.round(Math.abs((endTime - startTime) / oneDay));
this.$set(item, 'deDays', diffDays);
if(item.decreaseNum && item.deDays && item.leasePrice){
this.$set(item, 'deCosts', item.deDays*item.leasePrice*item.decreaseNum);
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 {
this.$set(item, 'reduceStartTime', null);
// 0
this.$set(item, 'deDays', 0);
this.$set(item, 'deCosts', 0);
this.$set(item, 'reduceDays', 0);
this.$set(item, 'reduceLeaseMoney', 0);
}
this.applyList[this.applyList.length-1].deCosts = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.deCosts);
this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.reduceLeaseMoney);
}, 0);
});
}
},
//
updateTableEndTime() {
const pickEndTime = new Date(this.dialogAppy.decreaseEndTime);
const pickEndTime = new Date(this.dialogAppy.reduceEndTime);
this.applyList.slice(0,-1).forEach(item => {
if(pickEndTime < new Date(item.startTime) || pickEndTime > new Date(item.endTime)){
this.$set(item, 'decreaseEndTime', null);
let validEndTime = item.endTime ? new Date(item.endTime) : new Date();
if(pickEndTime < new Date(item.startTime) || pickEndTime > validEndTime){
this.$set(item, 'reduceEndTime', null);
}else{
this.$set(item, 'decreaseEndTime', this.dialogAppy.decreaseEndTime);
this.$set(item, 'reduceEndTime', this.dialogAppy.reduceEndTime);
}
// item.decreaseStartTime = this.dialogAppy.decreaseStartTime;
// item.reduceStartTime = this.dialogAppy.reduceStartTime;
});
if (this.dialogAppy.decreaseStartTime) {
if (this.dialogAppy.reduceStartTime) {
this.applyList.slice(0,-1).forEach(item => {
const startTime = new Date(item.decreaseStartTime);
const endTime = new Date(item.decreaseEndTime);
if (!isNaN(startTime.getTime()) && !isNaN(endTime.getTime()) && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() > startTime.getTime()) {
const startTime = new Date(item.reduceStartTime);
const endTime = new Date(item.reduceEndTime);
if (!isNaN(startTime) && !isNaN(endTime) && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) {
const oneDay = 24 * 60 * 60 * 1000; //
const diffDays = Math.round(Math.abs((endTime - startTime) / oneDay));
this.$set(item, 'deDays', diffDays);
if(item.decreaseNum && item.deDays && item.leasePrice){
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, 'deCosts', item.deDays*item.leasePrice*item.decreaseNum);
this.$set(item, 'reduceLeaseMoney', item.reduceDays*item.leasePrice*item.reduceNum);
}
// row.leaseDays = diffDays;
}else {
this.$set(item, 'reduceEndTime', null);
// 0
this.$set(item, 'deDays', 0);
this.$set(item, 'deCosts', 0);
this.$set(item, 'reduceDays', 0);
this.$set(item, 'reduceLeaseMoney', 0);
}
this.applyList[this.applyList.length-1].deCosts = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.deCosts);
this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.reduceLeaseMoney);
}, 0);
});
}
@ -828,89 +856,115 @@ export default {
//table
updateLeaseDaysStart(row) {
const startTime = new Date(row.decreaseStartTime);
const endTime = new Date(row.decreaseEndTime);
const pickStartTime = new Date(row.startTime);
const pickEndTime = new Date(row.endTime);
const startTime = new Date(row.reduceStartTime);
const startTimeTemp = row.reduceStartTime
console.log('1111111111111',startTime)
const endTime = new Date(row.reduceEndTime);
const endTimeTemp = row.reduceEndTime
let pickStartTime = new Date(row.startTime);
let pickEndTime = null;
if(row.endTime==null){
pickEndTime = new Date();
}else{
pickEndTime = new Date(row.endTime);
}
// 退
if (startTime < pickStartTime || startTime > pickEndTime) {
this.$set(row, 'decreaseStartTime', null);
this.$set(row, 'deDays', 0);
this.$set(row, 'deCosts', 0);
this.$modal.msgError('请选择有效的减免开始时间!')
}else if (!isNaN(startTime.getTime()) && !isNaN(endTime.getTime()) && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() > startTime.getTime()) {
console.log('2222222222222',startTime, pickStartTime, pickEndTime)
this.$set(row, 'reduceStartTime', null);
this.$set(row, 'reduceDays', 0);
this.$set(row, 'reduceLeaseMoney', 0);
this.$modal.msgError('请选择有效的减免开始时间!!')
}else if (startTimeTemp!=null && endTimeTemp!=null && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) {
const oneDay = 24 * 60 * 60 * 1000; //
const diffDays = Math.round(Math.abs((endTime - startTime) / oneDay));
this.$set(row, 'deDays', diffDays);
if(row.decreaseNum && row.deDays && row.leasePrice){
this.$set(row, 'deCosts', row.deDays*row.leasePrice*row.decreaseNum);
const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1);
this.$set(row, 'reduceDays', diffDays);
if(row.reduceNum && row.reduceDays && row.leasePrice){
this.$set(row, 'reduceLeaseMoney', row.reduceDays*row.leasePrice*row.reduceNum);
}
// row.leaseDays = diffDays;
}else {
}else if(endTimeTemp!=null && endTime.getTime()<startTime.getTime()){
console.log('333333333',endTime, startTime)
// 0
this.$set(row, 'deDays', 0);
this.$set(row, 'deCosts', 0);
this.$set(row, 'reduceStartTime', null);
this.$set(row, 'reduceDays', 0);
this.$set(row, 'reduceLeaseMoney', 0);
this.$modal.msgError('请选择有效的减免开始时间!')
}else{
this.$set(row, 'reduceDays', 0);
this.$set(row, 'reduceLeaseMoney', 0);
}
this.applyList[this.applyList.length-1].deCosts = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.deCosts);
this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.reduceLeaseMoney);
}, 0);
},
updateLeaseDaysEnd(row) {
const startTime = new Date(row.decreaseStartTime);
const endTime = new Date(row.decreaseEndTime);
const pickStartTime = new Date(row.startTime);
const pickEndTime = new Date(row.endTime);
const startTime = new Date(row.reduceStartTime);
const startTimeTemp = row.reduceStartTime
const endTimeTemp = row.reduceEndTime
const endTime = new Date(row.reduceEndTime);
let pickStartTime = new Date(row.startTime);
let pickEndTime = null;
if(row.endTime==null){
pickEndTime = new Date();
}else{
pickEndTime = new Date(row.endTime);
}
// 退
if( endTime < pickStartTime || endTime > pickEndTime){
this.$set(row, 'decreaseEndTime', null);
this.$set(row, 'deDays', 0);
this.$set(row, 'deCosts', 0);
this.$set(row, 'reduceEndTime', null);
this.$set(row, 'reduceDays', 0);
this.$set(row, 'reduceLeaseMoney', 0);
this.$modal.msgError('请选择有效的减免结束时间!')
}else if (!isNaN(startTime.getTime()) && !isNaN(endTime.getTime()) && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() > startTime.getTime()) {
}else if (startTimeTemp!=null && endTimeTemp!=null && startTime.getTime()!=0 && endTime.getTime()!=0 && endTime.getTime() >= startTime.getTime()) {
const oneDay = 24 * 60 * 60 * 1000; //
const diffDays = Math.round(Math.abs((endTime - startTime) / oneDay));
this.$set(row, 'deDays', diffDays);
if(row.decreaseNum && row.deDays && row.leasePrice){
this.$set(row, 'deCosts', row.deDays*row.leasePrice*row.decreaseNum);
const diffDays = Math.ceil(Math.abs((endTime - startTime) / oneDay)) + (endTime - startTime === 0 ? 1 : 1);
// const diffDays = Math.round(Math.abs((endTime - startTime) / oneDay));
this.$set(row, 'reduceDays', diffDays);
if(row.reduceNum && row.reduceDays && row.leasePrice){
this.$set(row, 'reduceLeaseMoney', row.reduceDays*row.leasePrice*row.reduceNum);
}
// row.leaseDays = diffDays;
}else {
}else if(startTimeTemp!=null && endTime.getTime()<startTime.getTime()){
// 0
this.$set(row, 'deDays', 0);
this.$set(row, 'deCosts', 0);
this.$set(row, 'reduceEndTime', null);
this.$set(row, 'reduceDays', 0);
this.$set(row, 'reduceLeaseMoney', 0);
this.$modal.msgError('请选择有效的减免结束时间!')
}else{
this.$set(row, 'reduceDays', 0);
this.$set(row, 'reduceLeaseMoney', 0);
}
this.applyList[this.applyList.length-1].deCosts = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.deCosts);
this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.reduceLeaseMoney);
}, 0);
},
//table
updateLeaseNum(row) {
if (row.decreaseNum > row.num) {
if (row.reduceNum > row.num) {
this.$message.error('减免数量不能大于领料数量');
}else{
if(row.decreaseNum && row.leasePrice && row.deDays){
this.$set(row, 'deCosts', row.deDays*row.leasePrice*row.decreaseNum);
if(row.reduceNum && row.leasePrice && row.reduceDays){
this.$set(row, 'reduceLeaseMoney', row.reduceDays*row.leasePrice*row.reduceNum);
}
this.applyList[this.applyList.length-1].deCosts = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.deCosts);
this.applyList[this.applyList.length-1].reduceLeaseMoney = this.applyList.slice(0,-1).reduce((total, item) => {
return total + Number(item.reduceLeaseMoney);
}, 0);
}
},
//
submitForm() {
submitForm() {
this.$refs.dialogAppy.validate((valid) => {
if (valid) {
let index =this.applyList.slice(0,-1).findIndex(item=>new Date(item.decreaseEndTime).getTime() < new Date(item.decreaseStartTime).getTime())
let index2 =this.applyList.slice(0,-1).findIndex(item=>item.decreaseNum > item.num)
let index3 =this.applyList.slice(0,-1).findIndex(item=>item.decreaseNum == 0)
let index4 =this.applyList.slice(0,-1).findIndex(item=>isNaN(new Date(item.decreaseStartTime).getTime()) || new Date(item.decreaseStartTime).getTime()==0)
let index5 =this.applyList.slice(0,-1).findIndex(item=>isNaN(new Date(item.decreaseEndTime).getTime()) || new Date(item.decreaseEndTime).getTime()==0)
let index =this.applyList.slice(0,-1).findIndex(item=>new Date(item.reduceEndTime).getTime() < new Date(item.reduceStartTime).getTime())
let index2 =this.applyList.slice(0,-1).findIndex(item=>item.reduceNum > item.num)
let index3 =this.applyList.slice(0,-1).findIndex(item=>item.reduceNum == 0)
let index4 =this.applyList.slice(0,-1).findIndex(item=>isNaN(new Date(item.reduceStartTime).getTime()) || new Date(item.reduceStartTime).getTime()==0)
let index5 =this.applyList.slice(0,-1).findIndex(item=>isNaN(new Date(item.reduceEndTime).getTime()) || new Date(item.reduceEndTime).getTime()==0)
if(index3>-1){
this.$modal.msgError('减免数量不能为0')
}else if(index4>-1){
@ -922,6 +976,18 @@ export default {
}else if(index>-1){
this.$modal.msgError('减免结束时间不能小于减免开始时间!')
}else{
const param = {
agreementId: this.queryParams.agreementId,
detailList: this.applyList.slice(0,-1),
}
addRelief(param).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess("驳回成功");
this.confirmShow = false;
this.getList();
this.$refs.multipleTable.clearSelection();
}
});
this.$message({
type: 'success',
message: '提交成功!',
@ -948,6 +1014,12 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .el-table__body tr.highlight-row {
background-color: #c0e6fa;
}
::v-deep .el-table {
table-layout: auto;
}
.uploadImg {
padding-top: 20px;
display: flex;
@ -963,68 +1035,68 @@ export default {
width: 60px !important;
margin-bottom: 10px;
}
.clickText {
color: #02a7f0;
cursor: pointer;
}
// .clickText {
// color: #02a7f0;
// cursor: pointer;
// }
.tabelAllBottom {
display: flex;
border: 1px solid #dfe6ec;
width:100%;
border-bottom: 1px solid #dfe6ec;
border-top: none;
}
.columnAll {
flex: 1;
display: flex;
padding: 5px;
border-left: 1px solid #dfe6ec;
width:100%;
align-items: center;
text-align: center;
justify-content: center; /* 将内容对齐到中间 */
}
.columnAllNum {
padding: 5px;
text-align: center;
width:88.6%;
border-left: none;
}
// .tabelAllBottom {
// display: flex;
// border: 1px solid #dfe6ec;
// width:100%;
// border-bottom: 1px solid #dfe6ec;
// border-top: none;
// }
// .columnAll {
// flex: 1;
// display: flex;
// padding: 5px;
// border-left: 1px solid #dfe6ec;
// width:100%;
// align-items: center;
// text-align: center;
// justify-content: center; /* */
// }
// .columnAllNum {
// padding: 5px;
// text-align: center;
// width:88.6%;
// border-left: none;
// }
.tabelFirstBottom {
display: flex;
border: 1px solid #dfe6ec;
width:100%;
border-bottom: 1px solid #dfe6ec;
border-top: none;
}
.columnFirst {
display: flex ;
background-color: #f8f8f9;
padding: 5px;
border-left: 1px solid #dfe6ec;
width:14.5%;
align-items: center;
text-align: center;
justify-content: center; /* 将内容对齐到中间 */
}
.columnFirstRight {
padding: 5px;
background-color: #f8f8f9;
border-left: 1px solid #dfe6ec;
width:28.5%;
align-items: center;
text-align: center;
justify-content: center; /* 将内容对齐到中间 */
}
.columnFirstNum {
background-color: #f8f8f9;
padding: 5px;
text-align: center;
width:41.7%;
border-left: none;
}
// .tabelFirstBottom {
// display: flex;
// border: 1px solid #dfe6ec;
// width:100%;
// border-bottom: 1px solid #dfe6ec;
// border-top: none;
// }
// .columnFirst {
// display: flex ;
// background-color: #f8f8f9;
// padding: 5px;
// border-left: 1px solid #dfe6ec;
// width:14.5%;
// align-items: center;
// text-align: center;
// justify-content: center; /* */
// }
// .columnFirstRight {
// padding: 5px;
// background-color: #f8f8f9;
// border-left: 1px solid #dfe6ec;
// width:28.5%;
// align-items: center;
// text-align: center;
// justify-content: center; /* */
// }
// .columnFirstNum {
// background-color: #f8f8f9;
// padding: 5px;
// text-align: center;
// width:41.7%;
// border-left: none;
// }
//
//css
@ -1091,4 +1163,5 @@ export default {
color: #fff;
font-size: 20px;
}
</style>