refactor(wms): 使用CoilInfoRender组件重构钢卷信息展示

将多个文件中重复的钢卷信息展示代码提取为CoilInfoRender组件,提高代码复用性和可维护性
This commit is contained in:
2026-04-30 14:14:32 +08:00
parent 945c3560eb
commit 292e9df47d
5 changed files with 8 additions and 164 deletions

View File

@@ -3,6 +3,7 @@
:column="column"
:border="border"
size="small"
:title="title"
>
<template slot="extra">
<slot name="extra"></slot>
@@ -40,6 +41,9 @@ export default {
showOnlyValue: {
type: Boolean,
default: false
},
title: {
type: String,
}
},
computed: {

View File

@@ -8,45 +8,8 @@
刷新
</el-button>
</div>
<el-descriptions :column="5" v-loading="coilInfoLoading">
<el-descriptions-item label="入场钢卷号">{{ coilInfo.enterCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="当前钢卷号">{{ coilInfo.currentCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家原料卷号">{{ coilInfo.supplierCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="逻辑库位">{{ coilInfo.warehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="实际库区">{{ coilInfo.actualWarehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="班组">{{ coilInfo.team || '-' }}</el-descriptions-item>
<el-descriptions-item label="材料类型">{{ coilInfo.materialType || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品/原料">{{ coilInfo.itemName || '-' }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ coilInfo.specification || '-' }}</el-descriptions-item>
<el-descriptions-item label="材质">{{ coilInfo.material || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家">{{ coilInfo.manufacturer || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层质量">{{ coilInfo.zincLayer || '-' }}</el-descriptions-item>
<el-descriptions-item label="表面处理">{{ coilInfo.surfaceTreatmentDesc || '-'
}}</el-descriptions-item>
<el-descriptions-item label="质量状态">{{ coilInfo.qualityStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="切边要求">{{ coilInfo.trimmingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="原料材质">{{ coilInfo.packingStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="包装要求">{{ coilInfo.packagingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="实测厚度(mm)">{{ coilInfo.actualThickness || '-' }}</el-descriptions-item>
<el-descriptions-item label="实测宽度(mm)">{{ coilInfo.actualWidth || '-' }}</el-descriptions-item>
<el-descriptions-item label="长度">{{ coilInfo.length || '-' }}</el-descriptions-item>
<el-descriptions-item label="毛重">{{ coilInfo.grossWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="净重">{{ coilInfo.netWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="生产开始时间">{{ coilInfo.productionStartTime || '-'
}}</el-descriptions-item>
<el-descriptions-item label="生产结束时间">{{ coilInfo.productionEndTime || '-'
}}</el-descriptions-item>
<el-descriptions-item label="调制度">{{ coilInfo.temperGrade || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层种类">{{ coilInfo.coatingType || '-' }}</el-descriptions-item>
<el-descriptions-item label="钢卷表面处理">{{ coilInfo.coilSurfaceTreatment || '-' }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ coilInfo.remark || '-' }}</el-descriptions-item>
</el-descriptions>
<CoilInfoRender :column="5" :coilInfo="coilInfo" v-loading="coilInfoLoading"/>
</div>
<div class="exception-section">

View File

@@ -38,44 +38,7 @@
<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
<el-row>
<el-col :span="12" v-loading="coilLoading">
<el-descriptions :column="2">
<el-descriptions-item label="入场钢卷号">{{ coilInfo.enterCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="当前钢卷号">{{ coilInfo.currentCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家原料卷号">{{ coilInfo.supplierCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="逻辑库位">{{ coilInfo.warehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="实际库区">{{ coilInfo.actualWarehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="班组">{{ coilInfo.team || '-' }}</el-descriptions-item>
<el-descriptions-item label="材料类型">{{ coilInfo.materialType || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品/原料">{{ coilInfo.itemName || '-' }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ coilInfo.specification || '-' }}</el-descriptions-item>
<el-descriptions-item label="材质">{{ coilInfo.material || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家">{{ coilInfo.manufacturer || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层质量">{{ coilInfo.zincLayer || '-' }}</el-descriptions-item>
<el-descriptions-item label="表面处理">{{ coilInfo.surfaceTreatmentDesc || '-'
}}</el-descriptions-item>
<el-descriptions-item label="质量状态">{{ coilInfo.qualityStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="切边要求">{{ coilInfo.trimmingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="原料材质">{{ coilInfo.packingStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="包装要求">{{ coilInfo.packagingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="实测厚度(mm)">{{ coilInfo.actualThickness || '-' }}
mm</el-descriptions-item>
<el-descriptions-item label="实测宽度(mm)">{{ coilInfo.actualWidth || '-' }}
mm</el-descriptions-item>
<el-descriptions-item label="长度(mm)">{{ coilInfo.length || '-' }}
mm</el-descriptions-item>
<el-descriptions-item label="毛重">{{ coilInfo.grossWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="净重">{{ coilInfo.netWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="调制度">{{ coilInfo.temperGrade || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层种类">{{ coilInfo.coatingType || '-' }}</el-descriptions-item>
<el-descriptions-item label="钢卷表面处理">{{ coilInfo.coilSurfaceTreatment || '-' }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ coilInfo.remark || '-' }}</el-descriptions-item>
</el-descriptions>
<CoilInfoRender :coilInfo="coilInfo" :column="2" />
</el-col>
<el-col :span="12">
<abnormal-form ref="abnormalForm" v-model="form" :show-coil-selector="false"></abnormal-form>

View File

@@ -552,48 +552,7 @@
<!-- 钢卷改判弹窗 -->
<el-dialog title="钢卷改判" :visible.sync="judgeDialogVisible" width="800px" append-to-body>
<el-descriptions :column="3" border>
<el-descriptions-item label="入场钢卷号">{{ judgeForm.enterCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="当前钢卷号">{{ judgeForm.currentCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家原料卷号">{{ judgeForm.supplierCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="逻辑库位">{{ judgeForm.warehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="实际库区">{{ judgeForm.actualWarehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="班组">{{ judgeForm.team || '-' }}</el-descriptions-item>
<el-descriptions-item label="材料类型">{{ judgeForm.materialType || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品/原料">{{ judgeForm.itemName || '-' }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ judgeForm.specification || '-' }}</el-descriptions-item>
<el-descriptions-item label="材质">{{ judgeForm.material || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家">{{ judgeForm.manufacturer || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层质量">{{ judgeForm.zincLayer || '-' }}</el-descriptions-item>
<el-descriptions-item label="表面处理">{{ judgeForm.surfaceTreatmentDesc || '-'
}}</el-descriptions-item>
<el-descriptions-item label="质量状态">{{ judgeForm.qualityStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="切边要求">{{ judgeForm.trimmingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="原料材质">{{ judgeForm.packingStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="包装要求">{{ judgeForm.packagingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="实测厚度(mm)">{{ judgeForm.actualThickness || '-' }}
mm</el-descriptions-item>
<el-descriptions-item label="实测宽度(mm)">{{ judgeForm.actualWidth || '-' }}
mm</el-descriptions-item>
<el-descriptions-item label="长度(m)">{{ judgeForm.length || '-' }}
m</el-descriptions-item>
<el-descriptions-item label="毛重">{{ judgeForm.grossWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="净重">{{ judgeForm.netWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="生产开始时间">{{ judgeForm.productionStartTime || '-'
}}</el-descriptions-item>
<el-descriptions-item label="生产结束时间">{{ judgeForm.productionEndTime || '-'
}}</el-descriptions-item>
<el-descriptions-item label="调制度">{{ judgeForm.temperGrade || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层种类">{{ judgeForm.coatingType || '-' }}</el-descriptions-item>
<el-descriptions-item label="钢卷表面处理">{{ judgeForm.coilSurfaceTreatment || '-' }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ judgeForm.remark || '-' }}</el-descriptions-item>
</el-descriptions>
<CoilInfoRender :column="3" :coilInfo="judgeForm" border/>
<div style="margin-top: 20px; padding: 15px; background-color: #f5f7fa; border-radius: 4px;">
<el-form :model="judgeForm" label-width="120px">

View File

@@ -244,52 +244,7 @@
<!-- 分条钢卷详情选中列表项时显示 -->
<div class="split-detail-card" v-else-if="selectedSplitItem">
<el-card title="分条钢卷详情" shadow="hover">
<!-- <el-button type="primary" @click="handlePrint(selectedSplitItem)">打印</el-button> -->
<el-descriptions :column="2" border size="large">
<el-descriptions-item label="入场钢卷号">{{ selectedSplitItem.enterCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="当前钢卷号">{{ selectedSplitItem.currentCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家原料卷号">{{ selectedSplitItem.supplierCoilNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="逻辑库位">{{ selectedSplitItem.warehouseName || '-' }}</el-descriptions-item>
<el-descriptions-item label="实际库区">{{ selectedSplitItem.actualWarehouseName || '-'
}}</el-descriptions-item>
<el-descriptions-item label="班组">{{ selectedSplitItem.team || '-' }}</el-descriptions-item>
<el-descriptions-item label="材料类型">{{ selectedSplitItem.materialType || '-' }}</el-descriptions-item>
<el-descriptions-item label="产品/原料">{{ selectedSplitItem.itemName || '-' }}</el-descriptions-item>
<el-descriptions-item label="规格">{{ selectedSplitItem.specification || '-' }}</el-descriptions-item>
<el-descriptions-item label="材质">{{ selectedSplitItem.material || '-' }}</el-descriptions-item>
<el-descriptions-item label="厂家">{{ selectedSplitItem.manufacturer || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层质量">{{ selectedSplitItem.zincLayer || '-' }}</el-descriptions-item>
<el-descriptions-item label="表面处理">{{ selectedSplitItem.surfaceTreatmentDesc || '-'
}}</el-descriptions-item>
<el-descriptions-item label="质量状态">{{ selectedSplitItem.qualityStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="切边要求">{{ selectedSplitItem.trimmingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="原料材质">{{ selectedSplitItem.packingStatus || '-' }}</el-descriptions-item>
<el-descriptions-item label="包装要求">{{ selectedSplitItem.packagingRequirement || '-'
}}</el-descriptions-item>
<el-descriptions-item label="实测长度(m)">{{ selectedSplitItem.actualLength || '-' }}</el-descriptions-item>
<el-descriptions-item label="实测厚度(mm)">{{ selectedSplitItem.actualThickness || '-' }}</el-descriptions-item>
<el-descriptions-item label="实测宽度(mm)">{{ selectedSplitItem.actualWidth || '-' }}</el-descriptions-item>
<el-descriptions-item label="长度(m)">{{ selectedSplitItem.length || '-' }}</el-descriptions-item>
<el-descriptions-item label="毛重">{{ selectedSplitItem.grossWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="净重">{{ selectedSplitItem.netWeight || '-' }} t</el-descriptions-item>
<el-descriptions-item label="调制度">{{ selectedSplitItem.temperGrade || '-' }}</el-descriptions-item>
<el-descriptions-item label="镀层种类">{{ selectedSplitItem.coatingType || '-' }}</el-descriptions-item>
<el-descriptions-item label="钢卷表面处理">{{ selectedSplitItem.coilSurfaceTreatment || '-'
}}</el-descriptions-item>
<el-descriptions-item label="生产开始时间">{{ selectedSplitItem.productionStartTime || '-'
}}</el-descriptions-item>
<el-descriptions-item label="生产结束时间">{{ selectedSplitItem.productionEndTime || '-'
}}</el-descriptions-item>
<el-descriptions-item label="生产耗时">{{ selectedSplitItem.formattedDuration ||
(selectedSplitItem.productionDuration ? selectedSplitItem.productionDuration + ' 分钟' : '-')
}}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ selectedSplitItem.remark || '-' }}</el-descriptions-item>
</el-descriptions>
<CoilInfoRender :coilInfo="selectedSplitItem" :column="2" border/>
</el-card>
</div>