feat(wms/coil/materialWarning): 完善物料超期预警查询条件

新增物料类型筛选、产品规格/材质/厂家等多维度查询字段,调整表单布局与默认参数,适配成品/原料两类物料的查询需求
This commit is contained in:
2026-07-01 15:33:38 +08:00
parent 2ff75fdc77
commit 20d598b099

View File

@@ -1,18 +1,78 @@
<template>
<div>
<el-form ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="100px">
<el-form-item label="超期天数">
<el-input-number v-model="overdueDays" :min="1" :max="3650" size="small" @change="handleQuery" />
<span style="margin-left: 6px; color: #909399; font-size: 12px;">创建超过此天数的钢卷</span>
<el-form ref="queryForm" :model="queryParams" size="small" :inline="true" label-width="60px">
<el-form-item label="物料类型" prop="materialType">
<el-select v-model="queryParams.materialType" placeholder="请选择物料类型" clearable @change="handleMaterialTypeChange">
<el-option label="成品" value="成品"></el-option>
<el-option label="原料" value="原料"></el-option>
</el-select>
</el-form-item>
<template v-if="queryParams.itemType">
<el-form-item label="产品名称" prop="itemName">
<muti-select v-model="queryParams.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable />
</el-form-item>
<el-form-item label="规格" prop="itemSpecification">
<memo-input v-model="queryParams.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="材质" prop="itemMaterial">
<muti-select v-model="queryParams.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable />
</el-form-item>
<el-form-item label="表面处理">
<el-input v-model="queryParams.itemSurfaceTreatmentDesc" placeholder="请输入表面处理" clearable size="small" />
</el-form-item>
</template>
<el-form-item label="逻辑库位" prop="warehouseId">
<warehouse-select v-model="queryParams.warehouseId" placeholder="请选择逻辑库位"
style="width: 200px; display: inline-block;" clearable />
style="display: inline-block;" clearable />
</el-form-item>
<el-form-item label="产品名称" prop="itemName">
<muti-select v-model="queryParams.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable />
<el-form-item label="入场卷号" prop="enterCoilNo">
<el-input v-model="queryParams.enterCoilNo" placeholder="请输入入场钢卷号" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="当前卷号" prop="currentCoilNo">
<el-input v-model="queryParams.currentCoilNo" placeholder="请输入当前钢卷号" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="厂家" prop="itemManufacturer">
<muti-select v-model="queryParams.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable />
</el-form-item>
<el-form-item label="包装" prop="packagingRequirement">
<el-select v-model="queryParams.packagingRequirement" placeholder="请选择包装" clearable style="width: 100%">
<el-option label="裸包" value="裸包" />
<el-option label="普包" value="普包" />
<el-option label="简包" value="简包" />
</el-select>
</el-form-item>
<el-form-item label="品质">
<muti-select v-model="queryParams.qualityStatusCsv" :options="dict.type.coil_quality_status" placeholder="请选择品质" clearable />
</el-form-item>
<el-form-item label="业务员" prop="saleName">
<el-input v-model="queryParams.saleName" placeholder="请输入业务员" clearable size="small" />
</el-form-item>
<el-form-item label="合同号" prop="contractNo">
<el-input v-model="queryParams.contractNo" placeholder="请输入合同号" clearable size="small" />
</el-form-item>
<el-form-item label="备注">
<el-input v-model="queryParams.remark" placeholder="请输入备注" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="超期天数">
<el-input-number v-model="overdueDays" :min="1" :max="3650" size="small" @change="handleQuery" />
<span style="margin-left: 6px; color: #909399; font-size: 12px;">创建超过此天数的钢卷</span>
</el-form-item>
<el-form-item>
@@ -25,7 +85,7 @@
<el-row :gutter="10" class="mb8">
<el-col :span="24">
<span style="color: #909399; font-size: 13px;">
查询条件创建时间早于 <b>{{ queryParams.byCreateTimeEnd }}</b>且当前仍在库status=0, dataType=1
查询条件创建时间早于 <b>{{ queryParams.byCreateTimeEnd }}</b>且当前仍在库
</span>
</el-col>
</el-row>
@@ -103,6 +163,8 @@ import ProductInfo from "@/components/KLPService/Renderer/ProductInfo";
import RawMaterialInfo from "@/components/KLPService/Renderer/RawMaterialInfo";
import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue";
import MutiSelect from "@/components/MutiSelect";
import MemoInput from "@/components/MemoInput";
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
import LabelRender from '../panels/LabelRender/index.vue'
import { getCoilTagPrintType } from '@/views/wms/coil/js/coilPrint';
@@ -121,6 +183,8 @@ export default {
RawMaterialInfo,
CoilNo,
MutiSelect,
MemoInput,
ActualWarehouseSelect,
LabelRender,
},
dicts: ['coil_itemname', 'coil_material', 'coil_manufacturer', 'coil_quality_status'],
@@ -139,10 +203,26 @@ export default {
pageSize: 50,
dataType: 1,
status: 0,
materialType: '成品',
itemType: 'product',
selectType: 'product',
byCreateTimeStart: '1970-01-01 00:00:00',
byCreateTimeEnd: formatDateTime(twentyDaysAgo),
warehouseId: undefined,
itemName: undefined,
enterCoilNo: undefined,
currentCoilNo: undefined,
itemSpecification: undefined,
itemMaterial: undefined,
itemManufacturer: undefined,
itemSurfaceTreatmentDesc: undefined,
trimmingRequirement: undefined,
packagingRequirement: undefined,
qualityStatusCsv: undefined,
actualWarehouseId: undefined,
saleName: undefined,
contractNo: undefined,
remark: undefined,
},
labelRender: {
visible: false,
@@ -162,7 +242,9 @@ export default {
endDate.setDate(endDate.getDate() - this.overdueDays);
this.queryParams.byCreateTimeEnd = formatDateTime(endDate);
const { orderBy, ...statisticQuery } = this.queryParams;
this.queryParams.selectType = this.queryParams.itemType;
const { orderBy, materialType, itemType, ...statisticQuery } = this.queryParams;
listMaterialCoil(this.queryParams).then(response => {
this.coilList = response.rows;
@@ -182,16 +264,46 @@ export default {
this.getList();
},
handleMaterialTypeChange(value) {
if (value === '原料') {
this.queryParams.itemType = 'raw_material';
this.queryParams.selectType = 'raw_material';
} else if (value === '成品') {
this.queryParams.itemType = 'product';
this.queryParams.selectType = 'product';
} else {
this.queryParams.itemType = undefined;
this.queryParams.selectType = undefined;
}
this.handleQuery();
},
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 50,
dataType: 1,
status: 0,
materialType: '成品',
itemType: 'product',
selectType: 'product',
byCreateTimeStart: '1970-01-01 00:00:00',
byCreateTimeEnd: '',
warehouseId: undefined,
itemName: undefined,
enterCoilNo: undefined,
currentCoilNo: undefined,
itemSpecification: undefined,
itemMaterial: undefined,
itemManufacturer: undefined,
itemSurfaceTreatmentDesc: undefined,
trimmingRequirement: undefined,
packagingRequirement: undefined,
qualityStatusCsv: undefined,
actualWarehouseId: undefined,
saleName: undefined,
contractNo: undefined,
remark: undefined,
orderBy: true,
};
this.overdueDays = 20;