未结算报表增加费用减免列
This commit is contained in:
parent
b406c7ddca
commit
e472d8042e
|
|
@ -92,18 +92,26 @@
|
|||
{{ scope.row.scrapCost || 0 }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="减免费用" align="center" prop="reductionCost" width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
@click="showCostDetail(scope.row, 'reduction')"
|
||||
:style="{color: scope.row.reductionCost > 0 ? '#409EFF' : '#606266'}"
|
||||
:disabled="!(scope.row.reductionCost > 0)">
|
||||
{{ scope.row.reductionCost || 0 }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="合计费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
@click="showCostDetail(scope.row, 'total')"
|
||||
:style="{color: scope.row.costs > 0 ? '#409EFF' : '#606266'}"
|
||||
:disabled="!(scope.row.costs > 0)">
|
||||
<span v-if="scope.row.costs != null && scope.row.costs != ''">
|
||||
{{ scope.row.costs.toFixed(2) }}
|
||||
</span>
|
||||
<span v-else>{{ 0.00 }}</span>
|
||||
:style="{color: calculateTotalCost(scope.row) > 0 ? '#409EFF' : '#606266'}"
|
||||
:disabled="!(calculateTotalCost(scope.row) > 0)">
|
||||
{{ calculateTotalCost(scope.row).toFixed(2) }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -163,6 +171,13 @@
|
|||
<el-table-column label="规格型号" align="center" prop="model" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="单位" align="center" prop="unit" width="80" />
|
||||
<el-table-column label="维修数量" align="center" prop="repairQuantity" width="100" />
|
||||
<el-table-column label="是否收费" align="center" prop="partType" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.partType === '收费'">收费</span>
|
||||
<span v-else-if="scope.row.partType === '不收费'">不收费</span>
|
||||
<span v-else>{{ scope.row.partType || '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="维修费用(元)" align="center" prop="cost" width="120">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.cost ? scope.row.cost.toFixed(2) : '0.00' }}
|
||||
|
|
@ -210,6 +225,26 @@
|
|||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 减免费用详情表格 -->
|
||||
<el-table
|
||||
v-if="costDetailType === 'reduction'"
|
||||
v-loading="costDetailLoading"
|
||||
:data="costDetailList"
|
||||
border
|
||||
stripe
|
||||
height="500">
|
||||
<el-table-column label="序号" align="center" type="index" width="60" />
|
||||
<el-table-column label="机具名称" align="center" prop="name" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="机具规格" align="center" prop="model" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="单位" align="center" prop="unit" width="80" />
|
||||
<el-table-column label="减免数量" align="center" prop="reductionQuantity" width="100" />
|
||||
<el-table-column label="减免费用(元)" align="center" prop="cost" width="120">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.cost ? scope.row.cost.toFixed(2) : '0.00' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 合计费用详情表格 -->
|
||||
<el-table
|
||||
v-if="costDetailType === 'total'"
|
||||
|
|
@ -222,12 +257,46 @@
|
|||
<el-table-column label="名称" align="center" prop="name" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="型号" align="center" prop="model" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="单位" align="center" prop="unit" width="80" />
|
||||
<el-table-column label="单价(元)" align="center" prop="unitPrice" width="100" />
|
||||
<el-table-column label="数量" align="center" prop="quantity" width="80" />
|
||||
<el-table-column label="归还数量" align="center" prop="returnQuantity" width="100" />
|
||||
<el-table-column label="租赁日期" align="center" prop="leaseDate" width="120" />
|
||||
<el-table-column label="退还日期" align="center" prop="returnDate" width="120" />
|
||||
<el-table-column label="天数" align="center" prop="days" width="80" />
|
||||
<el-table-column label="单价(元)" align="center" prop="unitPrice" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.costType === 'lease'">{{ scope.row.unitPrice || 0 }}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="数量" align="center" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.costType === 'lease'">{{ scope.row.quantity || 0 }}</span>
|
||||
<span v-else-if="scope.row.costType === 'repair'">{{ scope.row.repairQuantity || 0 }}</span>
|
||||
<span v-else-if="scope.row.costType === 'lose'">{{ scope.row.loseQuantity || 0 }}</span>
|
||||
<span v-else-if="scope.row.costType === 'scrap'">{{ scope.row.scrapQuantity || 0 }}</span>
|
||||
<span v-else-if="scope.row.costType === 'reduction'">{{ scope.row.reductionQuantity || 0 }}</span>
|
||||
<span v-else>{{ scope.row.quantity || 0 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="归还数量" align="center" width="100">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.costType === 'lease'">{{ scope.row.returnQuantity || 0 }}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="租赁日期" align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.costType === 'lease'">{{ scope.row.leaseDate || '-' }}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="退还日期" align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.costType === 'lease'">{{ scope.row.returnDate || '-' }}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="天数" align="center" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.costType === 'lease'">{{ scope.row.days || 0 }}</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="费用(元)" align="center" prop="cost" width="100">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.cost ? scope.row.cost.toFixed(2) : '0.00' }}
|
||||
|
|
@ -239,6 +308,7 @@
|
|||
<el-tag v-else-if="scope.row.costType === 'repair'" type="warning">维修费用</el-tag>
|
||||
<el-tag v-else-if="scope.row.costType === 'lose'" type="danger">丢失费用</el-tag>
|
||||
<el-tag v-else-if="scope.row.costType === 'scrap'" type="info">报废费用</el-tag>
|
||||
<el-tag v-else-if="scope.row.costType === 'reduction'" type="success">减免费用</el-tag>
|
||||
<el-tag v-else>未知</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -495,7 +565,7 @@ export default {
|
|||
scrapCost: row.scrapCost || 0,
|
||||
reductionCost: row.reductionCost || 0
|
||||
};
|
||||
this.agreementContent.costAll = Number(this.agreementContent.leaseCost) + Number(this.agreementContent.repairCost) + Number(this.agreementContent.scrapCost) + Number(this.agreementContent.loseCost) - Number(this.agreementContent.reductionCost)
|
||||
this.agreementContent.costAll = this.calculateTotalCost(row)
|
||||
// costAllUpper 中文大写
|
||||
this.agreementContent.costAllUpper = toChineseAmount(this.agreementContent.costAll.toFixed(2))
|
||||
} catch (error) {
|
||||
|
|
@ -514,6 +584,7 @@ export default {
|
|||
'repair': '维修费用',
|
||||
'lose': '丢失费用',
|
||||
'scrap': '报废费用',
|
||||
'reduction': '减免费用',
|
||||
'total': '合计费用'
|
||||
};
|
||||
|
||||
|
|
@ -540,13 +611,17 @@ export default {
|
|||
case 'scrap':
|
||||
sourceList = row.scrapList || [];
|
||||
break;
|
||||
case 'reduction':
|
||||
sourceList = row.reductionList || [];
|
||||
break;
|
||||
case 'total':
|
||||
// 合计费用显示所有类型的数据
|
||||
const allLists = [
|
||||
...(row.leaseList || []).map(item => ({...item, costType: 'lease'})),
|
||||
...(row.repairList || []).map(item => ({...item, costType: 'repair'})),
|
||||
...(row.loseList || []).map(item => ({...item, costType: 'lose'})),
|
||||
...(row.scrapList || []).map(item => ({...item, costType: 'scrap'}))
|
||||
...(row.scrapList || []).map(item => ({...item, costType: 'scrap'})),
|
||||
...(row.reductionList || []).map(item => ({...item, costType: 'reduction'}))
|
||||
];
|
||||
sourceList = allLists;
|
||||
break;
|
||||
|
|
@ -578,7 +653,8 @@ export default {
|
|||
} else if (costType === 'repair' || (costType === 'total' && item.costType === 'repair')) {
|
||||
return {
|
||||
...baseData,
|
||||
repairQuantity: item.num || 0
|
||||
repairQuantity: item.num || 0,
|
||||
partType: item.partType
|
||||
};
|
||||
} else if (costType === 'lose' || (costType === 'total' && item.costType === 'lose')) {
|
||||
return {
|
||||
|
|
@ -590,6 +666,11 @@ export default {
|
|||
...baseData,
|
||||
scrapQuantity: item.num || 0
|
||||
};
|
||||
} else if (costType === 'reduction' || (costType === 'total' && item.costType === 'reduction')) {
|
||||
return {
|
||||
...baseData,
|
||||
reductionQuantity: item.num || 0
|
||||
};
|
||||
}
|
||||
|
||||
return baseData;
|
||||
|
|
@ -615,6 +696,7 @@ export default {
|
|||
{ key: 'repairCost', title: '维修费用' },
|
||||
{ key: 'loseCost', title: '丢失费用' },
|
||||
{ key: 'scrapCost', title: '报废费用' },
|
||||
{ key: 'reductionCost', title: '减免费用' },
|
||||
{ key: 'costs', title: '合计费用(元)' }
|
||||
];
|
||||
|
||||
|
|
@ -636,9 +718,9 @@ export default {
|
|||
if (row.settlementType === 2) return '安全工器具';
|
||||
return '总费用';
|
||||
} else if (col.key === 'costs') {
|
||||
// 处理合计费用格式
|
||||
return row.costs != null && row.costs !== '' ? parseFloat(row.costs.toFixed(2)) : 0.00;
|
||||
} else if (col.key === 'leaseCost' || col.key === 'repairCost' || col.key === 'loseCost' || col.key === 'scrapCost') {
|
||||
// 处理合计费用格式 - 前端计算
|
||||
return parseFloat(this.calculateTotalCost(row).toFixed(2));
|
||||
} else if (col.key === 'leaseCost' || col.key === 'repairCost' || col.key === 'loseCost' || col.key === 'scrapCost' || col.key === 'reductionCost') {
|
||||
// 处理费用字段格式
|
||||
return row[col.key] || 0;
|
||||
} else {
|
||||
|
|
@ -663,6 +745,7 @@ export default {
|
|||
{ wch: 12 }, // 维修费用
|
||||
{ wch: 12 }, // 丢失费用
|
||||
{ wch: 12 }, // 报废费用
|
||||
{ wch: 12 }, // 减免费用
|
||||
{ wch: 15 } // 合计费用
|
||||
];
|
||||
worksheet['!cols'] = columnWidths;
|
||||
|
|
@ -733,6 +816,7 @@ export default {
|
|||
{ key: 'model', title: '规格型号' },
|
||||
{ key: 'unit', title: '单位' },
|
||||
{ key: 'repairQuantity', title: '维修数量' },
|
||||
{ key: 'partType', title: '是否收费' },
|
||||
{ key: 'cost', title: '维修费用(元)' }
|
||||
];
|
||||
fileName = '维修费用详情';
|
||||
|
|
@ -760,6 +844,17 @@ export default {
|
|||
fileName = '报废费用详情';
|
||||
sheetName = '报废费用';
|
||||
break;
|
||||
case 'reduction':
|
||||
columns = [
|
||||
{ key: 'name', title: '机具名称' },
|
||||
{ key: 'model', title: '机具规格' },
|
||||
{ key: 'unit', title: '单位' },
|
||||
{ key: 'reductionQuantity', title: '减免数量' },
|
||||
{ key: 'cost', title: '减免费用(元)' }
|
||||
];
|
||||
fileName = '减免费用详情';
|
||||
sheetName = '减免费用';
|
||||
break;
|
||||
case 'total':
|
||||
columns = [
|
||||
{ key: 'name', title: '名称' },
|
||||
|
|
@ -800,11 +895,23 @@ export default {
|
|||
'lease': '租赁费用',
|
||||
'repair': '维修费用',
|
||||
'lose': '丢失费用',
|
||||
'scrap': '报废费用'
|
||||
'scrap': '报废费用',
|
||||
'reduction': '减免费用'
|
||||
};
|
||||
value = typeMap[value] || value;
|
||||
}
|
||||
|
||||
// 特殊处理是否收费字段
|
||||
if (col.key === 'partType') {
|
||||
if (value === '收费') {
|
||||
value = '收费';
|
||||
} else if (value === '不收费') {
|
||||
value = '不收费';
|
||||
} else {
|
||||
value = value || '-';
|
||||
}
|
||||
}
|
||||
|
||||
// 处理数值字段的格式
|
||||
if (col.key === 'cost' || col.key === 'unitPrice') {
|
||||
value = typeof value === 'number' ? parseFloat(value.toFixed(2)) : value;
|
||||
|
|
@ -858,6 +965,17 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
// 计算合计费用
|
||||
calculateTotalCost(row) {
|
||||
const leaseCost = Number(row.leaseCost) || 0;
|
||||
const repairCost = Number(row.repairCost) || 0;
|
||||
const loseCost = Number(row.loseCost) || 0;
|
||||
const scrapCost = Number(row.scrapCost) || 0;
|
||||
const reductionCost = Number(row.reductionCost) || 0;
|
||||
|
||||
return leaseCost + repairCost + loseCost + scrapCost - reductionCost;
|
||||
},
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue