feat(报表): 添加分条线统计组件并扩展合同字段

添加分条线专用的统计组件SplitSummary,用于展示分条处理的产出与消耗对比数据
在多个报表模板中集成该组件并添加钢卷高亮功能
扩展CrmOrder相关类的合同信息字段
This commit is contained in:
砂糖
2026-04-13 16:23:40 +08:00
parent 5ee730bffa
commit 37dc213605
11 changed files with 582 additions and 16 deletions

View File

@@ -100,14 +100,17 @@
}}</el-descriptions-item>
</el-descriptions>
<!-- 分条信息统计 -->
<split-summary :origin-outputlist="list" :origin-loss-list="lossList" :common-coil-ids="commonCoilIds"></split-summary>
<el-descriptions title="明细信息" :column="3" border>
</el-descriptions>
<el-tabs v-model="activeTab">
<el-tab-pane label="产出钢卷" name="output">
<coil-table :columns="outputColumns" :data="list"></coil-table>
<coil-table :columns="outputColumns" :data="list" :highlight-config="{ rows: commonCoilIds }"></coil-table>
</el-tab-pane>
<el-tab-pane label="投入钢卷" name="loss">
<coil-table :columns="lossColumns" :data="lossList"></coil-table>
<coil-table :columns="lossColumns" :data="lossList" :highlight-config="{ rows: commonCoilIds }"></coil-table>
</el-tab-pane>
</el-tabs>
@@ -135,6 +138,7 @@ import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
import { calcSummary, calcAbSummary, calcMSummary } from "@/views/wms/report/js/calc";
import ColumnsSetting from "@/views/wms/report/components/setting/columns.vue";
import CoilTable from "@/views/wms/report/components/coilTable/index.vue";
import SplitSummary from "@/views/wms/report/components/summary/splitSummary.vue";
import { saveReportFile } from "@/views/wms/report/js/reportFile";
export default {
@@ -148,6 +152,7 @@ export default {
WarehouseSelect,
ColumnsSetting,
CoilTable,
SplitSummary,
},
props: {
actionTypes: {
@@ -279,7 +284,28 @@ export default {
},
mSummary() {
return calcMSummary(this.list, this.lossList)
}
},
// 找出list和lossList中id相同的卷
commonCoilIds() {
if (this.productionLine !== '分条线') {
return []
}
// 获取list中的coilId集合
const outputCoilIds = new Set(this.list.map(item => item.coilId))
// 获取lossList中的coilId集合
const lossCoilIds = new Set(this.lossList.map(item => item.coilId))
// 找出两个集合中相同的coilId
const commonIds = []
outputCoilIds.forEach(id => {
if (lossCoilIds.has(id)) {
commonIds.push(id)
}
})
return commonIds
},
},
methods: {
// 加载列设置