减免费用
This commit is contained in:
parent
3c608c3763
commit
482d0052a3
|
|
@ -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
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
Loading…
Reference in New Issue