结算明细打印

This commit is contained in:
bb_pan 2025-09-10 11:05:29 +08:00
parent 7b93aaa441
commit f3117cfe44
2 changed files with 1411 additions and 609 deletions

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,7 @@
>减免明细导出</el-button> >减免明细导出</el-button>
<el-button type="warning" size="mini" @click="handleExportAll" <el-button type="warning" size="mini" @click="handleExportAll"
>全部明细导出</el-button> >全部明细导出</el-button>
<el-button type="primary" size="mini" @click="handlePrint">打印</el-button>
</el-col> </el-col>
<!-- <el-col :span="4"> <!-- <el-col :span="4">
<el-button type="danger" size="mini" style="float: right" @click="handleBack" <el-button type="danger" size="mini" style="float: right" @click="handleBack"
@ -27,189 +28,598 @@
}}报废费用¥{{ scrapCost }}丢失费用{{ loseCost }} }}报废费用¥{{ scrapCost }}丢失费用{{ loseCost }}
</div> --> </div> -->
<div style="margin-top:20px"> <vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div class="tabelAllTop"> <!-- <div style="margin-top: 20px">
<div class="costTop">结算费用</div> <div class="tabelAllTop">
</div> <div class="costTop">结算费用</div>
<div class="tabelAllTopUnit">
<div class="costTopUnit">结算单位</div>
<div class="costRightUnit">
{{ unitName }}
</div> </div>
</div> <div class="tabelAllTopUnit">
<div class="tabelAllTopUnit"> <div class="costTopUnit">结算单位</div>
<div class="costTopUnit">结算工程</div> <div class="costRightUnit">
<div class="costRightUnit"> {{ unitName }}
{{ projectName }} </div>
</div> </div>
</div> <div class="tabelAllTopUnit">
<el-table :data="leaseList"> <div class="costTopUnit">结算工程</div>
<el-table-column label="租赁费用明细" align="center"> <div class="costRightUnit">
<el-table-column label="序号" align="center" type="index" width="60"/> {{ projectName }}
<!-- <el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true"/> </div>
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true"/> --> </div>
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true"/> <el-table :data="leaseList">
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true"/> <el-table-column label="租赁费用明细" align="center">
<el-table-column label="计量单位" align="center" prop="mtUnitName" :show-overflow-tooltip="true"/> <el-table-column label="序号" align="center" type="index" width="60" />
<el-table-column label="租赁单价" align="center" prop="leasePrice" :show-overflow-tooltip="true"> <el-table-column
<template slot-scope="scope"> label="设备名称"
{{ scope.row.leasePrice.toFixed(2) }} align="center"
</template> 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="leasePrice"
:show-overflow-tooltip="true"
>
<template slot-scope="scope" v-show="scope.row.leasePrice">
{{ scope.row.leasePrice.toFixed(3) }}
</template>
</el-table-column>
<el-table-column label="租赁数量" align="center" prop="num" :show-overflow-tooltip="true">
<template slot-scope="scope" v-show="scope.row.num">
{{ 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="endTime"
:show-overflow-tooltip="true"
/>
<el-table-column label="租赁天数" align="center" prop="leaseDays" :show-overflow-tooltip="true">
<template slot-scope="scope" v-show="scope.row.leaseDays">
{{ Number(scope.row.leaseDays).toFixed(2) }}
</template>
</el-table-column>
<el-table-column
label="租赁费用(元)"
align="center"
prop="costs"
:show-overflow-tooltip="true"
>
<template slot-scope="scope" v-show="scope.row.costs">
{{ scope.row.costs.toFixed(3) }}
</template>
</el-table-column>
</el-table-column> </el-table-column>
<el-table-column label="租赁数量" align="center" prop="num" :show-overflow-tooltip="true"> </el-table>
<template slot-scope="scope">
{{ 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="" :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">
<template slot-scope="scope">
{{ Number(scope.row.leaseDays).toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="租赁费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll"> <div class="tabelAll">
<div class="columnAllNum">费用小计</div> <div class="columnAllNum">费用小计</div>
<div class="columnAll"> <div class="columnAll">
{{ leaseCost }} {{ leaseCost }}
</div>
</div>
</div> -->
<div style="margin: 20px 0">
<table
border="1"
cellspacing="0"
cellpadding="6"
style="width: 100%; border-collapse: collapse; text-align: center"
>
<!-- 表头 -->
<tr>
<th colspan="10">结算费用</th>
</tr>
<!-- 单位 & 工程 -->
<tr>
<td style="width: 100px; text-align: center">结算单位</td>
<td colspan="9" style="text-align: center">{{ unitName }}</td>
</tr>
<tr>
<td style="text-align: center">结算工程</td>
<td colspan="9" style="text-align: center">{{ projectName }}</td>
</tr>
<!-- 租赁费用明细表头 -->
<tr>
<th colspan="10">租赁费用明细</th>
</tr>
<tr>
<th style="width: 60px">序号</th>
<th>设备名称</th>
<th>规格型号</th>
<th>计量单位</th>
<th>租赁单价</th>
<th>租赁数量</th>
<th>租赁日期</th>
<th>归还日期</th>
<th>租赁天数</th>
<th>租赁费用</th>
</tr>
<!-- 租赁费用明细内容 -->
<tr v-for="(item, index) in leaseList" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.typeName }}</td>
<td>{{ item.modelName }}</td>
<td>{{ item.mtUnitName }}</td>
<td v-if="item.leasePrice">{{ item.leasePrice.toFixed(3) }}</td>
<td v-else></td>
<td v-if="item.num">{{ item.num.toFixed(2) }}</td>
<td v-else></td>
<td>{{ item.startTime }}</td>
<td>{{ item.endTime }}</td>
<td v-if="item.leaseDays">{{ Number(item.leaseDays).toFixed(2) }}</td>
<td v-else></td>
<td v-if="item.costs">{{ item.costs.toFixed(3) }}</td>
<td v-else></td>
</tr>
<!-- 小计 -->
<tr>
<td style="text-align: center">费用小计</td>
<td colspan="9" style="text-align: center">{{ leaseCost }}</td>
</tr>
</table>
</div>
<!-- <div>
<el-table :data="repairList">
<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">
<template slot-scope="scope" v-show="scope.row.num">
{{ scope.row.num.toFixed(2) }}
</template>
</el-table-column>
<el-table-column
label="是否收费"
align="center"
prop="partType"
:show-overflow-tooltip="true"
/>
<el-table-column
label="维修费用(元)"
align="center"
prop="costs"
:show-overflow-tooltip="true"
>
<template slot-scope="scope" v-show="scope.row.costs">
{{ scope.row.costs.toFixed(3) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ repairCost }}
</div>
</div>
</div> -->
<div style="margin-bottom: 20px">
<table
border="1"
cellspacing="0"
cellpadding="6"
style="width: 100%; border-collapse: collapse; text-align: center"
>
<!-- 表头 -->
<tr>
<th colspan="7">维修费用明细</th>
</tr>
<tr>
<th style="width: 100px">序号</th>
<th>设备名称</th>
<th>规格型号</th>
<th>计量单位</th>
<th>维修数量</th>
<th>是否收费</th>
<th>维修费用</th>
</tr>
<!-- 数据行 -->
<tr v-for="(item, index) in repairList" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.typeName }}</td>
<td>{{ item.modelName }}</td>
<td>{{ item.mtUnitName }}</td>
<td v-if="item.num">{{ item.num.toFixed(2) }}</td>
<td v-else></td>
<td>{{ item.partType }}</td>
<td v-if="item.costs">{{ item.costs.toFixed(3) }}</td>
<td v-else></td>
</tr>
<!-- 小计 -->
<tr>
<td style="text-align: center">费用小计</td>
<td colspan="6" style="text-align: center">{{ repairCost }}</td>
</tr>
</table>
</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">
<template slot-scope="scope" v-show="scope.row.num">
{{ scope.row.num.toFixed(2) }}
</template>
</el-table-column>
<el-table-column
label="丢失费用(元)"
align="center"
prop="costs"
:show-overflow-tooltip="true"
>
<template slot-scope="scope" v-show="scope.row.costs">
{{ scope.row.costs.toFixed(3) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ loseCost }}
</div>
</div>
</div> -->
<div style="margin-bottom: 20px">
<table
border="1"
cellspacing="0"
cellpadding="6"
style="width: 100%; border-collapse: collapse; text-align: center"
>
<!-- 表头 -->
<tr>
<th colspan="6">丢失费用明细</th>
</tr>
<tr>
<th style="width: 100px">序号</th>
<th>设备名称</th>
<th>规格型号</th>
<th>计量单位</th>
<th>丢失数量</th>
<th>丢失费用</th>
</tr>
<!-- 数据行 -->
<tr v-for="(item, index) in loseList" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.typeName }}</td>
<td>{{ item.modelName }}</td>
<td>{{ item.mtUnitName }}</td>
<td v-if="item.num">{{ item.num.toFixed(2) }}</td>
<td v-else></td>
<td v-if="item.costs">{{ item.costs.toFixed(3) }}</td>
<td v-else></td>
</tr>
<!-- 小计 -->
<tr>
<td style="text-align: center">费用小计</td>
<td colspan="5" style="text-align: center">{{ loseCost }}</td>
</tr>
</table>
</div>
<!-- <div>
<el-table :data="scrapList">
<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">
<template slot-scope="scope" v-show="scope.row.num">
{{ scope.row.num.toFixed(2) }}
</template>
</el-table-column>
<el-table-column
label="是否收费"
align="center"
prop="partType"
:show-overflow-tooltip="true"
/>
<el-table-column
label="报废费用(元)"
align="center"
prop="costs"
:show-overflow-tooltip="true"
>
<template slot-scope="scope" v-show="scope.row.costs">
{{ scope.row.costs.toFixed(3) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ scrapCost }}
</div>
</div>
</div> -->
<div style="margin-bottom: 20px">
<table
border="1"
cellspacing="0"
cellpadding="6"
style="width: 100%; border-collapse: collapse; text-align: center"
>
<!-- 表头 -->
<tr>
<th colspan="7">报废费用明细</th>
</tr>
<tr>
<th style="width: 100px">序号</th>
<th>设备名称</th>
<th>规格型号</th>
<th>计量单位</th>
<th>报废数量</th>
<th>是否收费</th>
<th>报废费用</th>
</tr>
<!-- 数据行 -->
<tr v-for="(item, index) in scrapList" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.typeName }}</td>
<td>{{ item.modelName }}</td>
<td>{{ item.mtUnitName }}</td>
<td v-if="item.num">{{ item.num.toFixed(2) }}</td>
<td v-else></td>
<td>{{ item.partType }}</td>
<td v-if="item.costs">{{ item.costs.toFixed(3) }}</td>
<td v-else></td>
</tr>
<!-- 小计 -->
<tr>
<td style="text-align: center">费用小计</td>
<td colspan="6" style="text-align: center">{{ scrapCost }}</td>
</tr>
</table>
</div>
<!-- <div>
<el-table :data="reducList">
<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="modeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="租赁单价"
align="center"
prop="leasePrice"
:show-overflow-tooltip="true"
/>
<el-table-column
label="减免数量"
align="center"
prop="reduceNum"
: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="days" :show-overflow-tooltip="true" />
<el-table-column label="减免原因" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column
label="减免费用(元)"
align="center"
prop="leaseMoney"
:show-overflow-tooltip="true"
>
<template slot-scope="scope" v-show="scope.row.leaseMoney">
{{ scope.row.leaseMoney.toFixed(3) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ reducCost }}
</div>
</div>
<div class="tabelAllBottom">
<div class="columnAllNum">合计</div>
<div class="columnAll">
{{ costAll.toFixed(2) }}
</div>
</div>
</div> -->
<div style="margin-bottom: 20px">
<table
border="1"
cellspacing="0"
cellpadding="6"
style="width: 100%; border-collapse: collapse; text-align: center"
>
<!-- 表头 -->
<tr>
<th colspan="11">减免费用明细</th>
</tr>
<tr>
<th style="width: 100px">序号</th>
<th>设备名称</th>
<th>规格型号</th>
<th>计量单位</th>
<th>租赁单价</th>
<th>减免数量</th>
<th>减免开始日期</th>
<th>减免结束日期</th>
<th>减免天数</th>
<th>减免原因</th>
<th>减免费用</th>
</tr>
<!-- 数据行 -->
<tr v-for="(item, index) in reducList" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.typeName }}</td>
<td>{{ item.modeName }}</td>
<td>{{ item.unitName }}</td>
<td v-if="item.leasePrice">{{ item.leasePrice }}</td>
<td v-else></td>
<td v-if="item.reduceNum">{{ item.reduceNum }}</td>
<td v-else></td>
<td>{{ item.startTime }}</td>
<td>{{ item.endTime }}</td>
<td>{{ item.days }}</td>
<td>{{ item.remark }}</td>
<td v-if="item.leaseMoney">{{ item.leaseMoney.toFixed(3) }}</td>
<td v-else></td>
</tr>
<!-- 小计 -->
<tr>
<td style="text-align: center">费用小计</td>
<td colspan="10" style="text-align: center">{{ reducCost }}</td>
</tr>
<!-- 合计 -->
<tr>
<td style="text-align: center">合计</td>
<td colspan="10" style="text-align: center">{{ costAll.toFixed(2) }}</td>
</tr>
</table>
</div>
<div class="fillIn" style="margin-top: 20px; display: flex; justify-content: space-between">
<div class="item" style="width: 33%">
<div>
<span>部门负责人</span>
</div>
</div>
<div class="item" style="width: 33%">
<div>
<span>承租负责人</span>
</div>
</div>
<div class="item" style="width: 33%">
<div>
<span>核算员</span>
</div>
</div> </div>
</div> </div>
</div> </vue-easy-print>
<div>
<el-table :data="repairList">
<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">
<template slot-scope="scope">
{{ scope.row.num.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="是否收费" align="center" prop="partType" :show-overflow-tooltip="true"/>
<el-table-column label="维修费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ repairCost }}
</div>
</div>
</div>
<div>
<el-table :data="scrapList">
<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">
<template slot-scope="scope">
{{ scope.row.num.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="是否收费" align="center" prop="partType" :show-overflow-tooltip="true"/>
<el-table-column label="报废费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ scrapCost }}
</div>
</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">
<template slot-scope="scope">
{{ scope.row.num.toFixed(2) }}
</template>
</el-table-column>
<el-table-column label="丢失费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.costs.toFixed(2) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAll">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ loseCost }}
</div>
</div>
</div>
<div>
<el-table :data="reducList">
<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="modeName" :show-overflow-tooltip="true"/>
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true"/>
<el-table-column label="租赁单价" align="center" prop="leasePrice" :show-overflow-tooltip="true"/>
<el-table-column label="减免数量" align="center" prop="reduceNum" :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="days" :show-overflow-tooltip="true"/>
<el-table-column label="减免原因" align="center" prop="remark" :show-overflow-tooltip="true"/>
<el-table-column label="减免费用(元)" align="center" prop="leaseMoney" :show-overflow-tooltip="true">
<template slot-scope="scope" v-if="scope.row.leaseMoney">
{{ scope.row.leaseMoney.toFixed(2) }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<div class="tabelAllBottom">
<div class="columnAllNum">费用小计</div>
<div class="columnAll">
{{ reducCost }}
</div>
</div>
<div class="tabelAllBottom">
<div class="columnAllNum">合计</div>
<div class="columnAll">
{{ costAll.toFixed(2) }}
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import { getSltInfo, submitFee,submitCosts } from '@/api/cost/cost' import { getSltInfo, submitFee,submitCosts } from '@/api/cost/cost'
import vueEasyPrint from 'vue-easy-print'
export default { export default {
components: { vueEasyPrint },
name: '', name: '',
dicts: [], dicts: [],
props: { props: {
@ -249,6 +659,9 @@ export default {
// this.getProjectList(); // this.getProjectList();
}, },
methods: { methods: {
handlePrint() {
this.$refs.remarksPrintRef.print()
},
// ,getUnitList, getProjectList // ,getUnitList, getProjectList
getUnitList() { getUnitList() {
getUnitList().then((response) => { getUnitList().then((response) => {