60 lines
2.7 KiB
Vue
60 lines
2.7 KiB
Vue
<template>
|
||
<div class="pdo-report">
|
||
<ReportBody v-loading="loading" title="实绩报表" :summary="reportSummary" :dataset="reportDetail" :columns="columns" />
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import ReportBody from './body.vue'
|
||
import { getReportSummary, getReportDetail } from '@/api/l2/report'
|
||
|
||
export default {
|
||
name: 'PdoReport',
|
||
components: {
|
||
ReportBody
|
||
},
|
||
data() {
|
||
return {
|
||
loading: false,
|
||
reportSummary: [],
|
||
reportDetail: [],
|
||
columns: []
|
||
}
|
||
},
|
||
methods: {
|
||
async fetchReportData() {
|
||
this.loading = true
|
||
const res = await getReportSummary()
|
||
this.reportSummary = [
|
||
{ label: '成品卷数', value: res.coilCount }, // coilCount=总卷数,结合“成品总重/原料总重”场景,推测为成品卷数
|
||
{ label: '平均出口厚度[mm]', value: res.avgExitThickness }, // avgExitThickness=平均出口厚度,厚度用“平均”更符合实际(单卷厚度均匀,无“总厚度”概念)
|
||
{ label: '原料总重[t]', value: res.totalEntryWeight }, // totalEntryWeight=总入口重量,入口重量即原料重量
|
||
{ label: '总出口长度[mm]', value: res.totalExitLength }, // totalExitLength=总出口长度,补充原“去锌总重”(无对应字段)的空缺,符合卷材加工的核心维度
|
||
{ label: '平均出口宽度[mm]', value: res.avgExitWidth }, // avgExitWidth=平均出口宽度,宽度用“平均”更合理(单卷宽度固定,“总宽度”无业务意义)
|
||
{ label: '成品总重[t]', value: res.totalActualWeight }, // totalActualWeight=总实际重量,实际重量即成品最终重量
|
||
{ label: '总理论重量[t]', value: res.totalTheoryWeight }, // totalTheoryWeight=总理论重量,工业场景中常用“理论重量vs实际重量”对比
|
||
{ label: '成材率', value: (res.yieldRate * 100).toFixed(2) + '%' } // yieldRate=成材率,原配置正确,保留
|
||
];
|
||
const res2 = await getReportDetail()
|
||
this.reportDetail = res2
|
||
this.columns = [
|
||
{ label: '出口物料ID', prop: 'exitMatId' },
|
||
{ label: '入口物料ID', prop: 'entryMatId' },
|
||
{ label: '机组号', prop: 'groupNo' },
|
||
{ label: '班次号', prop: 'shiftNo' },
|
||
{ label: '钢种', prop: 'steelGrade' },
|
||
{ label: '出口厚度(mm)', prop: 'exitThickness' },
|
||
{ label: '出口宽度(mm)', prop: 'exitWidth' },
|
||
{ label: '出口长度(m)', prop: 'exitLength' },
|
||
{ label: '理论重量(kg)', prop: 'theoryWeight' },
|
||
{ label: '实际重量(kg)', prop: 'actualWeight' },
|
||
{ label: '上线时间', prop: 'onlineTime' },
|
||
]
|
||
this.loading = false
|
||
}
|
||
},
|
||
mounted() {
|
||
this.fetchReportData()
|
||
}
|
||
}
|
||
</script> |