feat(钢卷): 重构标签打印逻辑并添加合卷操作功能

重构钢卷标签打印逻辑,提取公共方法到coilPrint.js
添加合卷操作区功能,支持200-299操作类型
为合卷表单添加验证规则
This commit is contained in:
砂糖
2026-03-16 13:15:54 +08:00
parent d613058104
commit b27f246fa0
7 changed files with 152 additions and 77 deletions

View File

@@ -102,11 +102,11 @@
<div class="target-coil-body">
<el-form size="small" label-width="80px" :model="targetCoil" :rules="rules">
<div class="form-row">
<el-form-item label="卷号" class="form-item-half">
<el-form-item label="卷号" class="form-item-half" prop="currentCoilNo">
<el-input v-model="targetCoil.currentCoilNo" placeholder="输入目标卷号" :disabled="readonly"></el-input>
<current-coil-no :current-coil-no="targetCoil.currentCoilNo" />
</el-form-item>
<el-form-item label="班组" class="form-item-half">
<el-form-item label="班组" class="form-item-half" prop="team">
<el-select v-model="targetCoil.team" placeholder="请选择班组" style="width: 100%" :disabled="readonly">
<el-option key="甲" label="甲" value="甲" />
<el-option key="乙" label="乙" value="乙" />
@@ -115,14 +115,14 @@
</div>
<div class="form-row">
<el-form-item label="材料类型" class="form-item-half">
<el-form-item label="材料类型" class="form-item-half" prop="materialType">
<el-select v-model="targetCoil.materialType" placeholder="请选择材料类型" style="width: 100%"
:disabled="readonly" @change="handleMaterialTypeChange">
<el-option label="原料" value="原料" />
<el-option label="成品" value="成品" />
</el-select>
</el-form-item>
<el-form-item :label="getItemLabel" class="form-item-half">
<el-form-item :label="getItemLabel" class="form-item-half" prop="itemId">
<raw-material-selector v-if="targetCoil.materialType === '原料'" v-model="targetCoil.itemId"
placeholder="请选择原料" style="width: 100%" clearable
:disabled="readonly || !targetCoil.materialType" />
@@ -166,13 +166,13 @@
</div>
<div class="form-row">
<el-form-item label="毛重(t)" class="form-item-half">
<el-form-item label="毛重(t)" prop="grossWeight" class="form-item-half">
<el-input-number precision="3" :controls="false" v-model="targetCoil.grossWeight" placeholder="请输入毛重"
type="number" :step="0.01" :disabled="readonly">
<template slot="append"></template>
</el-input-number>
</el-form-item>
<el-form-item label="净重(t)" class="form-item-half">
<el-form-item label="净重(t)" prop="netWeight" class="form-item-half">
<el-input-number precision="3" :controls="false" v-model="targetCoil.netWeight" placeholder="请输入净重"
type="number" :step="0.01" :disabled="readonly">
<template slot="append"></template>
@@ -181,7 +181,7 @@
</div>
<div class="form-row">
<el-form-item label="长度(m)" class="form-item-half">
<el-form-item label="长度(m)" prop="length" class="form-item-half">
<el-input-number :controls="false" v-model="targetCoil.length" placeholder="请输入长度" type="number"
:step="0.01" :disabled="readonly">
<template slot="append"></template>
@@ -211,7 +211,7 @@
<el-form-item label="镀层种类" prop="coatingType" class="form-item-half">
<MemoInput storageKey="coatingType" v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
</el-form-item>
<el-form-item label="逻辑库区" class="form-item-half">
<el-form-item label="逻辑库区" prop="warehouseId" class="form-item-half">
<WarehouseSelect v-model="targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />
</el-form-item>
</div>
@@ -272,7 +272,35 @@ export default {
actualWidth: undefined,
},
rules: {
currentCoilNo: [
{ required: true, message: "当前钢卷号不能为空", trigger: "blur" },
{
// 当前钢卷号必须大于等于10位
validator: (rule, value, callback) => {
if (value.length < 10) {
callback(new Error('当前钢卷号必须大于等于10位'));
} else {
callback();
}
}, trigger: 'blur'
},
],
team: [
{ required: true, message: "班组不能为空", trigger: "change" }
],
materialType: [
{ required: true, message: "材料类型不能为空", trigger: "change" }
],
itemId: [
{ required: true, message: "物品ID不能为空", trigger: "blur" }
],
itemType: [
{ required: true, message: "物品类型不能为空", trigger: "change" }
],
// 净重和毛重
netWeight: [
{ required: true, message: "净重不能为空", trigger: "blur" }
],
},
buttonLoading: false,
loading: false,