费用结算
This commit is contained in:
parent
be9ee7a8c9
commit
e861dd69d8
|
|
@ -10,10 +10,10 @@
|
|||
>报废明细导出</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleExport2"
|
||||
>丢失明细导出</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleExport5"
|
||||
>减免明细导出</el-button>
|
||||
<el-button type="warning" size="mini" @click="handleExportAll"
|
||||
>全部明细导出</el-button>
|
||||
<el-button type="success" size="mini" @click="handleAdd"
|
||||
>提交</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
<el-button type="danger" size="mini" style="float: right" @click="handleBack"
|
||||
|
|
@ -31,16 +31,52 @@
|
|||
<div class="tabelAllTop">
|
||||
<div class="costTop">结算费用</div>
|
||||
</div>
|
||||
<div class="tabelAllTop">
|
||||
<div class="costTopTwo">本工程清算项目及金额(元)</div>
|
||||
</div>
|
||||
<div class="tabelAllTopUnit">
|
||||
<div class="costTopUnit">结算单位</div>
|
||||
<div class="costTopUnit">一、施工机具有偿使用费:</div>
|
||||
<div class="costRightUnit">
|
||||
{{ unitName }}
|
||||
{{ '¥924427.53' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllTopUnit">
|
||||
<div class="costTopUnit">结算工程</div>
|
||||
<div class="costTopUnit">二、施工机具维修费:</div>
|
||||
<div class="costRightUnit">
|
||||
{{ projectName }}
|
||||
{{ '¥924427.53' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllTopUnit">
|
||||
<div class="costTopUnit">三、施工机具丢失费:</div>
|
||||
<div class="costRightUnit">
|
||||
{{ '¥924427.53' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllTopUnit">
|
||||
<div class="costTopUnit">四、施工机具损坏赔偿费:</div>
|
||||
<div class="costRightUnit">
|
||||
{{ '¥924427.53' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllTopThree">
|
||||
<div class="costLeft">
|
||||
<div class="costOne">费用合计金额(大写) :</div>
|
||||
<div class="costTwo">{{finishCostName}}</div>
|
||||
</div>
|
||||
<div class="costRight">
|
||||
{{ finishCost }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllTopFour">
|
||||
<div class="costTopOne">说明</div>
|
||||
<div class="costRightTwo">
|
||||
{{ '本协议一式三份,甲方一份,乙方一份,经双方签字后生效。' }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllTopFour">
|
||||
<div class="costTopOne">备注</div>
|
||||
<div class="costRightTwo">
|
||||
{{ '此费用仅为在机具设备分公司发生费用,未计从项目部领用机具费用。' }}
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="leaseList">
|
||||
|
|
@ -174,6 +210,39 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<el-table :data="loseList">
|
||||
<el-table-column label="减免费用明细" align="center">
|
||||
<el-table-column label="序号" align="center" type="index" width="60"/>
|
||||
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="租赁单价" align="center" prop="num" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="减免数量" align="center" prop="num" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="减免开始日期" align="center" prop="num" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="减免结束日期" align="center" prop="num" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="减免天数" align="center" prop="num" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="减免原因" align="center" prop="num" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="减免费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope" v-if="scope.row.costs">
|
||||
{{ scope.row.costs.toFixed(2) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="tabelAllBottom">
|
||||
<div class="columnAllNum">费用小计:</div>
|
||||
<div class="columnAll">
|
||||
{{ loseCost }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabelAllBottom">
|
||||
<div class="columnAllNum">合计:</div>
|
||||
<div class="columnAll">
|
||||
{{ costAll.toFixed(2) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -203,11 +272,16 @@ export default {
|
|||
scrapCost: 0,
|
||||
loseList: [], //丢失费用列表
|
||||
loseCost: 0,
|
||||
discountList: [], //减免费用列表
|
||||
discountCost: 0,
|
||||
costAll: 0,
|
||||
deptName: undefined,
|
||||
applyList: [],
|
||||
projectName: undefined, //结算工程
|
||||
unitName: undefined, //结算单位
|
||||
|
||||
finishCost: 343242.23,
|
||||
finishCostName: '',
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
|
@ -286,26 +360,6 @@ export default {
|
|||
|
||||
return arrCost.toFixed(2)
|
||||
},
|
||||
//提交按钮
|
||||
handleAdd() {
|
||||
this.$modal
|
||||
.confirm('是否确认提交?')
|
||||
.then(() => {
|
||||
let params = {
|
||||
'agreementId': this.rowData.agreementId, 'agreementCode': this.rowData.agreementCode,'totalCostAll': this.costAll,
|
||||
'leaseList': this.leaseList, 'repairList': this.repairList, 'scrapList': this.scrapList,'loseList': this.loseList,
|
||||
}
|
||||
console.log('2222222222222',params)
|
||||
submitCosts(params).then((response) => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '提交成功',
|
||||
})
|
||||
this.$emit('goBackPage')
|
||||
})
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
//el-table-合计总费用
|
||||
getSummaries(param) {
|
||||
const { columns, data } = param
|
||||
|
|
@ -397,6 +451,15 @@ export default {
|
|||
// `报废费用明细_${new Date().getTime()}.xlsx`,
|
||||
// )
|
||||
},
|
||||
//减免
|
||||
handleExport2() {
|
||||
const params = this.rowData
|
||||
this.download(
|
||||
'material/slt_agreement_info/exportLose',
|
||||
{...params,},
|
||||
`减免费用明细_${new Date().getTime()}.xlsx`,
|
||||
)
|
||||
},
|
||||
|
||||
handleExportAll() {
|
||||
const params = this.rowData
|
||||
|
|
@ -432,6 +495,16 @@ export default {
|
|||
width:100%;
|
||||
font-weight: bold; /* 添加字体加粗样式 */
|
||||
}
|
||||
.costTopTwo {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
border-left: 1px solid #dfe6ec;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
width:100%;
|
||||
|
||||
}
|
||||
}
|
||||
.tabelAllTopUnit {
|
||||
display: flex;
|
||||
|
|
@ -443,7 +516,7 @@ export default {
|
|||
.costTopUnit {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
width:21.4%;
|
||||
width:60%;
|
||||
border-left: none;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
|
|
@ -455,11 +528,87 @@ export default {
|
|||
border-left: 1px solid #dfe6ec;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
width:100%;
|
||||
width:40%;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
// padding-left: 20px; /* 添加左内边距 */
|
||||
}
|
||||
}
|
||||
|
||||
.tabelAllTopThree {
|
||||
display: flex;
|
||||
border: 1px solid #dfe6ec;
|
||||
width:100%;
|
||||
height:50px;
|
||||
background-color: #f8f8f9;
|
||||
border-bottom: none;
|
||||
.costLeft {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
width:60%;
|
||||
border-left: none;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
.costOne {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
width:50%;
|
||||
border-left: none;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
}
|
||||
.costTwo {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
width:50%;
|
||||
border-left: 1px solid #dfe6ec;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
}
|
||||
}
|
||||
.costRight {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
border-left: 1px solid #dfe6ec;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
width:40%;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
// padding-left: 20px; /* 添加左内边距 */
|
||||
}
|
||||
}
|
||||
|
||||
.tabelAllTopFour {
|
||||
display: flex;
|
||||
border: 1px solid #dfe6ec;
|
||||
width:100%;
|
||||
height:50px;
|
||||
background-color: #f8f8f9;
|
||||
border-bottom: none;
|
||||
.costTopOne {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
width:30%;
|
||||
border-left: none;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
}
|
||||
.costRightTwo {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
border-left: 1px solid #dfe6ec;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
width:70%;
|
||||
justify-content: center; /* 将内容对齐到中间 */
|
||||
// padding-left: 20px; /* 添加左内边距 */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.tabelAll {
|
||||
display: flex;
|
||||
border: 1px solid #dfe6ec;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,17 @@
|
|||
<template>
|
||||
<div class="app-container" id="costApplyList">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
|
||||
<el-form-item prop="time">
|
||||
<el-date-picker
|
||||
v-model="queryParams.time"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 240px"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item prop="unitIds">
|
||||
<treeselect
|
||||
v-model="queryParams.unitId"
|
||||
|
|
@ -261,6 +272,7 @@ export default {
|
|||
projectId: null,
|
||||
agreementId: '',
|
||||
agreementCode: '',
|
||||
time: null,
|
||||
},
|
||||
openPrint:false
|
||||
}
|
||||
|
|
@ -351,6 +363,7 @@ export default {
|
|||
/** 查询列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
|
||||
getSltAgreementInfo(this.queryParams).then((response) => {
|
||||
this.tableList = response.rows
|
||||
this.total = response.total
|
||||
|
|
@ -366,6 +379,7 @@ export default {
|
|||
resetQuery() {
|
||||
this.unitIds=[]
|
||||
this.projectIds=[]
|
||||
this.queryParams.time=[]
|
||||
this.queryParams={
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
|
|
|
|||
|
|
@ -839,8 +839,8 @@ export default {
|
|||
|
||||
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);
|
||||
this.$set(item, 'reduceStartTime', new Date(item.startTime));
|
||||
this.$set(item,'reduceEndTime', new Date(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){
|
||||
|
|
@ -856,14 +856,14 @@ export default {
|
|||
}
|
||||
}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);
|
||||
this.$set(item,'reduceEndTime', new Date(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,'reduceStartTime', new Date(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);
|
||||
|
|
@ -940,8 +940,8 @@ export default {
|
|||
|
||||
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);
|
||||
this.$set(item, 'reduceStartTime', new Date(item.startTime));
|
||||
this.$set(item,'reduceEndTime', new Date(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){
|
||||
|
|
@ -957,15 +957,16 @@ export default {
|
|||
}
|
||||
}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);
|
||||
this.$set(item,'reduceEndTime', new Date(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,'reduceStartTime', new Date(item.startTime));
|
||||
this.$set(item,'reduceEndTime', pickEndTime);
|
||||
console.log('xxxxxxsadadadsa',item.reduceEndTime,item.reduceStartTime)
|
||||
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){
|
||||
|
|
|
|||
Loading…
Reference in New Issue