feat(钢卷管理): 新增调制度和镀层种类字段

在钢卷管理的多个页面和组件中添加调制度(temperGrade)和镀层种类(coatingType)字段,包括表单输入、显示和查询功能。同时优化了部分页面布局和代码结构,移除了不再使用的质量状态枚举定义
This commit is contained in:
砂糖
2026-01-22 10:20:58 +08:00
parent a82c8ea825
commit 03d8ba1d2f
11 changed files with 237 additions and 95 deletions

View File

@@ -40,7 +40,8 @@
<div class="card-header">
<div class="header-left">
<el-tag type="info" size="small" class="coil-no-tag">{{ item.currentCoilNo }}</el-tag>
<el-tag type="info" size="small" class="coil-no-tag" :style="getBorderStyle(item)">{{ getTypeLabel(item) }}</el-tag>
<el-tag type="info" size="small" class="coil-no-tag" :style="getBorderStyle(item)">{{
getTypeLabel(item) }}</el-tag>
<span class="material-type">{{ item.materialType || '原料' }}</span>
<el-popover v-if="item.rawMaterial || item.product" placement="top" width="280" trigger="hover"
popper-class="material-params-popover">
@@ -130,6 +131,18 @@
<span class="param-label">净重</span>
<span class="param-value">{{ item.netWeight }}t</span>
</div>
<div class="param-row" v-if="item.length">
<span class="param-label">长度</span>
<span class="param-value">{{ item.length }}</span>
</div>
<div class="param-row" v-if="item.temperGrade">
<span class="param-label">调制度</span>
<span class="param-value">{{ item.temperGrade }}</span>
</div>
<div class="param-row" v-if="item.coatingType">
<span class="param-label">镀层种类</span>
<span class="param-value">{{ item.coatingType }}</span>
</div>
<div class="param-row" v-if="item.team">
<span class="param-label">班组</span>
<span class="param-value">{{ item.team }}</span>
@@ -180,8 +193,10 @@
<span class="info-value">{{ item.netWeight || '—' }}t</span>
</div>
</div>
<el-button v-if="item.dataType == 1 && item.status == 0" style="position: absolute; bottom: 10px; right: 10px;" type="success" icon="el-icon-refresh" size="mini" @click="handleRestoreMaterial(item)"
:loading="item.cancelling" class="action-btn">回滚</el-button>
<el-button v-if="item.dataType == 1 && item.status == 0"
style="position: absolute; bottom: 10px; right: 10px;" type="success" icon="el-icon-refresh"
size="mini" @click="handleRestoreMaterial(item)" :loading="item.cancelling"
class="action-btn">回滚</el-button>
</div>
<div class="card-footer" v-if="item.dataType != 10">
@@ -316,6 +331,12 @@
<el-form-item label="长度" prop="length">
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
@@ -574,21 +595,21 @@ export default {
console.log(row);
// 已发货
if (row.status == 1) {
return {border: '1.5px solid #007bff'}
return { border: '1.5px solid #007bff' }
}
// 历史钢卷
if (row.dataType == 0) {
return {border: '1.5px solid #6c757d'}
return { border: '1.5px solid #6c757d' }
}
// 当前钢卷
if (row.dataType == 1) {
return {border: '1.5px solid #28a745'}
return { border: '1.5px solid #28a745' }
}
// 还未入库的钢卷
if (row.dataType == 10) {
return {border: '1.5px solid #ffc107'}
return { border: '1.5px solid #ffc107' }
}
return {border: '1.5px solid #e4e7ed'}
return { border: '1.5px solid #e4e7ed' }
},
getTypeLabel(row) {
if (row.status == 1) {

View File

@@ -80,15 +80,6 @@
<el-form-item label="质量状态" prop="qualityStatus">
<el-select v-model="form.qualityStatus" placeholder="请选择质量状态" style="width: 100%"
:disabled="readonly">
<!-- <el-option label="A+" value="A+" />
<el-option label="A" value="A" />
<el-option label="A-" value="A-" />
<el-option label="B+" value="B+" />
<el-option label="B" value="B" />
<el-option label="B-" value="B-" />
<el-option label="C+" value="C+" />
<el-option label="C" value="C" />
<el-option label="C-" value="C-" /> -->
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
@@ -132,6 +123,21 @@
<el-input v-model="form.netWeight" placeholder="请输入净重" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="长度" prop="length">
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@@ -144,8 +150,6 @@
<el-row>
<el-col :span="12">
<el-form-item label="质量状态" prop="qualityStatus">
<!-- <memo-input v-model="form.qualityStatus" placeholder="请输入质量状态" storageKey="qualityStatus">
</memo-input> -->
<el-select v-model="form.qualityStatus" placeholder="请选择质量状态" style="width: 100%">
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
:value="item.value" />

View File

@@ -78,15 +78,6 @@
<el-form-item label="质量状态" prop="qualityStatus">
<el-select v-model="form.qualityStatus" placeholder="请选择质量状态" style="width: 100%"
:disabled="readonly">
<!-- <el-option label="A+" value="A+" />
<el-option label="A" value="A" />
<el-option label="A-" value="A-" />
<el-option label="B+" value="B+" />
<el-option label="B" value="B" />
<el-option label="B-" value="B-" />
<el-option label="C+" value="C+" />
<el-option label="C" value="C" />
<el-option label="C-" value="C-" /> -->
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
@@ -129,6 +120,22 @@
<el-input v-model="form.netWeight" placeholder="请输入净重" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="长度" prop="length">
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@@ -171,41 +178,16 @@
</div>
<div class="params-list">
<div class="param-item" v-if="item.itemType === 'raw_material' && item.rawMaterial">
<div class="param-row" v-if="item.rawMaterial.rawMaterialCode">
<span class="param-label">编号</span>
<span class="param-value">{{ item.rawMaterial.rawMaterialCode }}</span>
</div>
<div class="param-row" v-if="item.rawMaterial.specification">
<span class="param-label">规格</span>
<span class="param-value">{{ item.rawMaterial.specification }}</span>
</div>
<div class="param-row" v-if="item.rawMaterial.thickness">
<span class="param-label">厚度</span>
<span class="param-value">{{ item.rawMaterial.thickness }}mm</span>
</div>
<div class="param-row" v-if="item.rawMaterial.width">
<span class="param-label">宽度</span>
<span class="param-value">{{ item.rawMaterial.width }}mm</span>
</div>
</div>
<div class="param-item" v-else-if="item.itemType === 'product' && item.product">
<div class="param-row" v-if="item.product.productCode">
<span class="param-label">编号</span>
<span class="param-value">{{ item.product.productCode }}</span>
</div>
<div class="param-row" v-if="item.product.specification">
<span class="param-label">规格</span>
<span class="param-value">{{ item.product.specification }}</span>
</div>
<div class="param-row" v-if="item.product.thickness">
<span class="param-label">厚度</span>
<span class="param-value">{{ item.product.thickness }}mm</span>
</div>
<div class="param-row" v-if="item.product.width">
<span class="param-label">宽度</span>
<span class="param-value">{{ item.product.width }}mm</span>
</div>
</div>
<div class="param-divider"></div>
<div class="param-item">
@@ -217,6 +199,18 @@
<span class="param-label">净重</span>
<span class="param-value">{{ item.netWeight }}t</span>
</div>
<div class="param-row" v-if="item.length">
<span class="param-label">长度</span>
<span class="param-value">{{ item.length }}mm</span>
</div>
<div class="param-row" v-if="item.temperGrade">
<span class="param-label">调制度</span>
<span class="param-value">{{ item.temperGrade }}</span>
</div>
<div class="param-row" v-if="item.coatingType">
<span class="param-label">镀层种类</span>
<span class="param-value">{{ item.coatingType }}</span>
</div>
<div class="param-row" v-if="item.team">
<span class="param-label">班组</span>
<span class="param-value">{{ item.team }}</span>

View File

@@ -117,6 +117,16 @@
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />

View File

@@ -62,15 +62,6 @@
<el-col :span="24">
<el-form-item label="质量状态" prop="qualityStatus">
<el-select v-model="form.qualityStatus" placeholder="请选择质量状态" style="width: 100%">
<!-- <el-option label="A+" value="A+" />
<el-option label="A" value="A" />
<el-option label="A-" value="A-" />
<el-option label="B+" value="B+" />
<el-option label="B" value="B" />
<el-option label="B-" value="B-" />
<el-option label="C+" value="C+" />
<el-option label="C" value="C" />
<el-option label="C-" value="C-" /> -->
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
@@ -112,6 +103,21 @@
<el-input v-model="form.netWeight" placeholder="请输入净重" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="长度" prop="length">
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@@ -201,8 +207,7 @@
@click="openReceiptModal(scope.row)" v-loading="buttonLoading">签收</el-button>
<el-button v-if="scope.row.actionStatus == 0 || scope.row.actionStatus == 1" type="danger"
@click="handleReject(scope.row)" v-loading="buttonLoading">拒签</el-button>
<el-button type="warning" v-loading="buttonLoading"
@click="handleDelete(scope.row)">删除</el-button>
<el-button type="warning" v-loading="buttonLoading" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -283,15 +288,6 @@
</el-form-item>
<el-form-item label="质量状态" prop="qualityStatus">
<el-select v-model="editCoil.form.qualityStatus" placeholder="请选择质量状态" style="width: 100%">
<!-- <el-option label="A+" value="A+" />
<el-option label="A" value="A" />
<el-option label="A-" value="A-" />
<el-option label="B+" value="B+" />
<el-option label="B" value="B" />
<el-option label="B-" value="B-" />
<el-option label="C+" value="C+" />
<el-option label="C" value="C" />
<el-option label="C-" value="C-" /> -->
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
@@ -325,6 +321,12 @@
<el-form-item label="长度" prop="length">
<el-input v-model="editCoil.form.length" placeholder="请输入长度" />
</el-form-item>
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="editCoil.form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="editCoil.form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="editCoil.form.remark" placeholder="请输入备注" />
</el-form-item>
@@ -383,6 +385,9 @@ export default {
packingStatus: null,
packagingRequirement: null,
planId: null,
length: null,
temperGrade: null,
coatingType: null,
},
loading: false,
buttonLoading: false,
@@ -621,6 +626,9 @@ export default {
packingStatus: null,
packagingRequirement: null,
planId: this.form.planId,
length: null,
temperGrade: null,
coatingType: null,
}
this.getMaxCoilNoByPrefix()
this.getList()
@@ -630,7 +638,6 @@ export default {
}
})
},
// 打开收货弹窗
openReceiptModal(row) {
this.loading = true

View File

@@ -188,19 +188,21 @@
<template slot="append"></template>
</el-input-number>
</el-form-item>
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="targetCoil.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区">
<WarehouseSelect v-model="targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />
</el-form-item>
<!-- <el-form-item label="真实库区">
<actual-warehouse-select v-model="targetCoil.actualWarehouseId" placeholder="请选择" style="width: 100%"
clearable :disabled="readonly" />
</el-form-item> -->
</el-form>
</div>
</div>
<!-- 合卷规则说明 -->
<div class="rule-card">
<!-- <div class="rule-card">
<div class="rule-title">
<i class="el-icon-warning-outline"></i>
合卷规则
@@ -210,7 +212,7 @@
<li>所有源卷的物品类型和物品ID应保持一致</li>
<li>请确保录入正确的新钢卷号和班组信息</li>
</ul>
</div>
</div> -->
</div>
</div>
</div>
@@ -255,6 +257,8 @@ export default {
packingStatus: '',
trimmingRequirement: '',
length: null,
temperGrade: '',
coatingType: '',
},
buttonLoading: false,
loading: false,

View File

@@ -250,6 +250,12 @@
<el-form-item label="长度" prop="length" v-if="showLength">
<el-input v-model="form.length" placeholder="请输入长度" />
</el-form-item>
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="form.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="form.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
@@ -401,20 +407,6 @@ export default {
},
data() {
return {
qualityStatusEnum: [
{ label: 'A+', value: 'A+' },
{ label: 'A', value: 'A' },
{ label: 'A-', value: 'A-' },
{ label: 'B+', value: 'B+' },
{ label: 'B', value: 'B' },
{ label: 'B-', value: 'B-' },
{ label: 'C+', value: 'C+' },
{ label: 'C', value: 'C' },
{ label: 'C-', value: 'C-' },
{ label: 'D+', value: 'D+' },
{ label: 'D', value: 'D' },
{ label: 'D-', value: 'D-' },
],
// 按钮loading
buttonLoading: false,
// 遮罩层
@@ -568,6 +560,8 @@ export default {
{ label: '切边要求', prop: 'edgeRequirement' },
{ label: '包装要求', prop: 'packagingRequirement' },
{ label: '厂家', prop: 'itemManufacturer' },
{ label: '调制度', prop: 'temperGrade' },
{ label: '镀层种类', prop: 'coatingType' }
],
title: '详细信息'
},
@@ -738,6 +732,8 @@ export default {
updateTime: undefined,
updateBy: undefined,
materialType: '原料',
temperGrade: undefined,
coatingType: undefined,
};
this.resetForm("form");
},

View File

@@ -131,6 +131,18 @@
<span class="param-label">净重</span>
<span class="param-value">{{ item.netWeight }}t</span>
</div>
<div class="param-row" v-if="item.length">
<span class="param-label">长度</span>
<span class="param-value">{{ item.length }}</span>
</div>
<div class="param-row" v-if="item.temperGrade">
<span class="param-label">调制度</span>
<span class="param-value">{{ item.temperGrade }}</span>
</div>
<div class="param-row" v-if="item.coatingType">
<span class="param-label">镀层种类</span>
<span class="param-value">{{ item.coatingType }}</span>
</div>
<div class="param-row" v-if="item.team">
<span class="param-label">班组</span>
<span class="param-value">{{ item.team }}</span>

View File

@@ -0,0 +1,54 @@
<template>
<div>
分步分条
</div>
</template>
<script>
import { getMaterialCoil, listMaterialCoil } from '@/api/wms/coil'
import { completeAction } from '@/api/wms/pendingAction'
export default {
name: 'StepSplit',
props: {
actionId: {
type: String,
required: true,
},
coilId: {
type: String,
required: true,
},
},
data() {
return {
}
},
methods: {
// 查询待分条的钢卷信息
async getCoilInfo() {
},
// 查询钢卷的已分条列表
async getSplitList() {
},
// 新增一个分条表单
async addSplitForm() {
},
// 新增一个分条
async addSplit() {
},
// 完成整体分条
async completeSplit() {
},
}
}
</script>

View File

@@ -53,6 +53,14 @@
<span class="label">长度</span>
<span class="value">{{ motherCoil.length ? motherCoil.length + ' m' : '—' }}</span>
</div>
<div class="coil-info-row">
<span class="label">调制度</span>
<span class="value">{{ motherCoil.temperGrade || '—' }}</span>
</div>
<div class="coil-info-row">
<span class="label">镀层种类</span>
<span class="value">{{ motherCoil.coatingType || '—' }}</span>
</div>
<div class="coil-info-row" v-if="motherCoil.materialName || motherCoil.productName">
<span class="label">物料名称</span>
<span class="value">{{ motherCoil.materialName || motherCoil.productName || '—' }}</span>
@@ -184,6 +192,12 @@
<template slot="append"></template>
</el-input-number>
</el-form-item>
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="item.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="item.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区" required>
<WarehouseSelect v-model="item.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />
</el-form-item>
@@ -255,6 +269,8 @@ export default {
warehouseId: null,
actualWarehouseId: null,
length: undefined,
temperGrade: '',
coatingType: '',
}
],
loading: false,
@@ -436,7 +452,9 @@ export default {
qualityStatus: '',
packagingRequirement: '',
packingStatus: '',
trimmingRequirement: ''
trimmingRequirement: '',
temperGrade: '',
coatingType: '',
});
},

View File

@@ -54,6 +54,18 @@
<span class="info-label">净重</span>
<span class="info-value">{{ currentInfo.netWeight ? currentInfo.netWeight + ' t' : '—' }}</span>
</div>
<div class="info-row">
<span class="info-label">长度</span>
<span class="info-value">{{ currentInfo.length ? currentInfo.length + ' m' : '—' }}</span>
</div>
<div class="info-row">
<span class="info-label">调制度</span>
<span class="info-value">{{ currentInfo.temperGrade || '—' }}</span>
</div>
<div class="info-row">
<span class="info-label">镀层种类</span>
<span class="info-value">{{ currentInfo.coatingType || '—' }}</span>
</div>
<div class="info-row">
<span class="info-label">逻辑库区</span>
<span class="info-value">{{ currentInfo.nextWarehouseName || '—' }}</span>
@@ -162,6 +174,14 @@
</el-input-number>
</el-form-item>
<el-form-item label="调制度" prop="temperGrade">
<el-input v-model="updateForm.temperGrade" placeholder="请输入调制度" />
</el-form-item>
<el-form-item label="镀层种类" prop="coatingType">
<el-input v-model="updateForm.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区" prop="warehouseId">
<WarehouseSelect
v-model="updateForm.warehouseId"
@@ -289,6 +309,8 @@ export default {
packingStatus: '',
trimmingRequirement: '',
length: undefined,
temperGrade: '',
coatingType: '',
},
rules: {
currentCoilNo: [