feat(wms/crm): 升级钢卷查询筛选条件,新增多维度搜索能力

1. 调整筛选表单布局,拆分钢卷号为入场卷号和当前卷号
2. 新增逻辑库区、物料类型筛选,替换旧的材料类型选择
3. 将单选型质量状态改为多选,并新增品名、材质、规格、厂家筛选条件
4. 注册新增的组件并添加对应字典依赖
5. 重构接口传参方式,优化筛选参数提交逻辑
6. 修复发货状态选项,移除冗余的在途选项
This commit is contained in:
砂糖
2026-07-10 09:45:47 +08:00
parent bf1ac5ed2e
commit 94876b1c86
3 changed files with 172 additions and 78 deletions

View File

@@ -60,29 +60,44 @@
<!-- 生产成果 --> <!-- 生产成果 -->
<div v-show="activeTab === 'product'" v-loading="productCoilLoading"> <div v-show="activeTab === 'product'" v-loading="productCoilLoading">
<el-form :inline="true" size="small" class="coil-filter-bar"> <el-form :inline="true" size="small" class="coil-filter-bar">
<el-form-item label="卷号"> <el-form-item label="入场卷号">
<el-input v-model="productCoilBo.currentCoilNo" placeholder="当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" /> <el-input v-model="productCoilBo.enterCoilNo" placeholder="请输入入场钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
</el-form-item> </el-form-item>
<el-form-item label="材料类型"> <el-form-item label="当前卷号">
<el-select v-model="productCoilBo.materialType" placeholder="全部" clearable style="width: 100px;"> <el-input v-model="productCoilBo.currentCoilNo" placeholder="请输入当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
<el-option label="成品" value="成品" />
<el-option label="原料" value="原料" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态"> <el-form-item label="逻辑库区">
<el-select v-model="productCoilBo.qualityStatus" placeholder="全部" clearable style="width: 100px;"> <warehouse-select v-model="productCoilBo.warehouseId" placeholder="请选择逻辑库位" style="width: 160px;" clearable />
<el-option label="正常" value="0" /> </el-form-item>
<el-option label="待检" value="1" /> <el-form-item label="物料类型">
<el-option label="不合格" value="2" /> <el-select v-model="productCoilBo.itemType" placeholder="全部" clearable style="width: 100px;" @change="handleProductFilter">
<el-option label="成品" value="product" />
<el-option label="原料" value="raw_material" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发货状态"> <el-form-item label="发货状态">
<el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;"> <el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;">
<el-option label="在库" :value="0" /> <el-option label="在库" :value="0" />
<el-option label="在途" :value="1" /> <el-option label="已发货" :value="1" />
<el-option label="已发货" :value="2" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态">
<muti-select v-model="productCoilBo.qualityStatusCsv" :options="dict.type.coil_quality_status" placeholder="请选择品质" clearable style="width: 160px;" />
</el-form-item>
<template v-if="productCoilBo.itemType">
<el-form-item label="品名">
<muti-select v-model="productCoilBo.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="材质">
<muti-select v-model="productCoilBo.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="规格">
<memo-input v-model="productCoilBo.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="厂家">
<muti-select v-model="productCoilBo.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable style="width: 160px;" />
</el-form-item>
</template>
<el-form-item> <el-form-item>
<el-button type="primary" size="mini" @click="handleProductFilter">查询</el-button> <el-button type="primary" size="mini" @click="handleProductFilter">查询</el-button>
<el-button size="mini" @click="resetProductFilter">重置</el-button> <el-button size="mini" @click="resetProductFilter">重置</el-button>
@@ -104,29 +119,44 @@
<!-- 发货配卷 --> <!-- 发货配卷 -->
<div v-show="activeTab === 'coil'" v-loading="deliveryCoilLoading"> <div v-show="activeTab === 'coil'" v-loading="deliveryCoilLoading">
<el-form :inline="true" size="small" class="coil-filter-bar"> <el-form :inline="true" size="small" class="coil-filter-bar">
<el-form-item label="卷号"> <el-form-item label="入场卷号">
<el-input v-model="deliveryCoilBo.currentCoilNo" placeholder="当前钢卷号" clearable @keyup.enter.native="handleDeliveryFilter" style="width: 160px;" /> <el-input v-model="deliveryCoilBo.enterCoilNo" placeholder="请输入入场钢卷号" clearable @keyup.enter.native="handleDeliveryFilter" style="width: 160px;" />
</el-form-item> </el-form-item>
<el-form-item label="材料类型"> <el-form-item label="当前卷号">
<el-select v-model="deliveryCoilBo.materialType" placeholder="全部" clearable style="width: 100px;"> <el-input v-model="deliveryCoilBo.currentCoilNo" placeholder="请输入当前钢卷号" clearable @keyup.enter.native="handleDeliveryFilter" style="width: 160px;" />
<el-option label="成品" value="成品" />
<el-option label="原料" value="原料" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态"> <el-form-item label="逻辑库区">
<el-select v-model="deliveryCoilBo.qualityStatus" placeholder="全部" clearable style="width: 100px;"> <warehouse-select v-model="deliveryCoilBo.warehouseId" placeholder="请选择逻辑库位" style="width: 160px;" clearable />
<el-option label="正常" value="0" /> </el-form-item>
<el-option label="待检" value="1" /> <el-form-item label="物料类型">
<el-option label="不合格" value="2" /> <el-select v-model="deliveryCoilBo.itemType" placeholder="全部" clearable style="width: 100px;" @change="handleDeliveryFilter">
<el-option label="成品" value="product" />
<el-option label="原料" value="raw_material" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发货状态"> <el-form-item label="发货状态">
<el-select v-model="deliveryCoilBo.status" placeholder="全部" clearable style="width: 100px;"> <el-select v-model="deliveryCoilBo.status" placeholder="全部" clearable style="width: 100px;">
<el-option label="在库" :value="0" /> <el-option label="在库" :value="0" />
<el-option label="在途" :value="1" /> <el-option label="已发货" :value="1" />
<el-option label="已发货" :value="2" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态">
<muti-select v-model="deliveryCoilBo.qualityStatusCsv" :options="dict.type.coil_quality_status" placeholder="请选择品质" clearable style="width: 160px;" />
</el-form-item>
<template v-if="deliveryCoilBo.itemType">
<el-form-item label="品名">
<muti-select v-model="deliveryCoilBo.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="材质">
<muti-select v-model="deliveryCoilBo.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="规格">
<memo-input v-model="deliveryCoilBo.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="厂家">
<muti-select v-model="deliveryCoilBo.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable style="width: 160px;" />
</el-form-item>
</template>
<el-form-item> <el-form-item>
<el-button type="primary" size="mini" @click="handleDeliveryFilter">查询</el-button> <el-button type="primary" size="mini" @click="handleDeliveryFilter">查询</el-button>
<el-button size="mini" @click="resetDeliveryFilter">重置</el-button> <el-button size="mini" @click="resetDeliveryFilter">重置</el-button>
@@ -190,6 +220,9 @@ import { batchUpdateContractCoil } from "@/api/wms/coil";
import FileList from "@/components/FileList"; import FileList from "@/components/FileList";
import DeliveryTable from "../../components/DeliveryTable.vue"; import DeliveryTable from "../../components/DeliveryTable.vue";
import ContractPreview from "./ContractPreview.vue"; import ContractPreview from "./ContractPreview.vue";
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
import MemoInput from "@/components/MemoInput";
import MutiSelect from "@/components/MutiSelect";
// 导入可能需要的组件 // 导入可能需要的组件
import OrderDetail from "../../components/OrderDetail.vue"; import OrderDetail from "../../components/OrderDetail.vue";
@@ -212,8 +245,12 @@ export default {
OrderEdit, OrderEdit,
ReceiveTable, ReceiveTable,
OrderObjection, OrderObjection,
OrderRecord OrderRecord,
WarehouseSelect,
MemoInput,
MutiSelect
}, },
dicts: ['coil_itemname', 'coil_material', 'coil_manufacturer', 'coil_quality_status'],
props: { props: {
orderId: { orderId: {
type: [Number, String], type: [Number, String],
@@ -377,10 +414,10 @@ export default {
fetchProductCoils() { fetchProductCoils() {
this.productCoilLoading = true; this.productCoilLoading = true;
listProductCoilsByContract({ listProductCoilsByContract({
contractId: this.orderId, orderId: this.orderId,
pageNum: this.productPagination.currentPage, pageNum: this.productPagination.currentPage,
pageSize: this.productPagination.pageSize, pageSize: this.productPagination.pageSize,
coilBo: this.productCoilBo ...this.productCoilBo
}).then(res => { }).then(res => {
this.productCoilList = res.rows || []; this.productCoilList = res.rows || [];
this.productPagination.total = res.total || 0; this.productPagination.total = res.total || 0;
@@ -394,11 +431,12 @@ export default {
}); });
}, },
fetchProductCoilStatistics() { fetchProductCoilStatistics() {
getProductCoilsStatisticsByContract({ contractId: this.orderId, coilBo: this.productCoilBo }).then(res => { getProductCoilsStatisticsByContract({ ...this.productCoilBo, orderId: this.orderId }).then(res => {
this.productCoilStatistics = res.data || {}; this.productCoilStatistics = res.data || {};
}); });
}, },
handleProductFilter() { handleProductFilter() {
this.productCoilBo.selectType = this.productCoilBo.itemType || '';
this.productPagination.currentPage = 1; this.productPagination.currentPage = 1;
this.fetchProductCoils(); this.fetchProductCoils();
this.fetchProductCoilStatistics(); this.fetchProductCoilStatistics();
@@ -408,6 +446,7 @@ export default {
this.handleProductFilter(); this.handleProductFilter();
}, },
handleDeliveryFilter() { handleDeliveryFilter() {
this.deliveryCoilBo.selectType = this.deliveryCoilBo.itemType || '';
this.deliveryPagination.currentPage = 1; this.deliveryPagination.currentPage = 1;
this.fetchDeliveryCoils(); this.fetchDeliveryCoils();
this.fetchDeliveryCoilStatistics(); this.fetchDeliveryCoilStatistics();

View File

@@ -78,29 +78,44 @@
<el-tab-pane label="生产成果" name="production"> <el-tab-pane label="生产成果" name="production">
<div v-loading="productCoilLoading"> <div v-loading="productCoilLoading">
<el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;"> <el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;">
<el-form-item label="卷号"> <el-form-item label="入场卷号">
<el-input v-model="productCoilBo.currentCoilNo" placeholder="当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" /> <el-input v-model="productCoilBo.enterCoilNo" placeholder="请输入入场钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
</el-form-item> </el-form-item>
<el-form-item label="材料类型"> <el-form-item label="当前卷号">
<el-select v-model="productCoilBo.materialType" placeholder="全部" clearable style="width: 100px;"> <el-input v-model="productCoilBo.currentCoilNo" placeholder="请输入当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
<el-option label="成品" value="成品" />
<el-option label="原料" value="原料" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态"> <el-form-item label="逻辑库区">
<el-select v-model="productCoilBo.qualityStatus" placeholder="全部" clearable style="width: 100px;"> <warehouse-select v-model="productCoilBo.warehouseId" placeholder="请选择逻辑库位" style="width: 160px;" clearable />
<el-option label="正常" value="0" /> </el-form-item>
<el-option label="待检" value="1" /> <el-form-item label="物料类型">
<el-option label="不合格" value="2" /> <el-select v-model="productCoilBo.itemType" placeholder="全部" clearable style="width: 100px;" @change="handleProductFilter">
<el-option label="成品" value="product" />
<el-option label="原料" value="raw_material" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发货状态"> <el-form-item label="发货状态">
<el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;"> <el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;">
<el-option label="在库" :value="0" /> <el-option label="在库" :value="0" />
<el-option label="在途" :value="1" /> <el-option label="已发货" :value="1" />
<el-option label="已发货" :value="2" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态">
<muti-select v-model="productCoilBo.qualityStatusCsv" :options="dict.type.coil_quality_status" placeholder="请选择品质" clearable style="width: 160px;" />
</el-form-item>
<template v-if="productCoilBo.itemType">
<el-form-item label="品名">
<muti-select v-model="productCoilBo.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="材质">
<muti-select v-model="productCoilBo.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="规格">
<memo-input v-model="productCoilBo.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="厂家">
<muti-select v-model="productCoilBo.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable style="width: 160px;" />
</el-form-item>
</template>
<el-form-item> <el-form-item>
<el-button type="primary" size="mini" @click="handleProductFilter">查询</el-button> <el-button type="primary" size="mini" @click="handleProductFilter">查询</el-button>
<el-button size="mini" @click="resetProductFilter">重置</el-button> <el-button size="mini" @click="resetProductFilter">重置</el-button>
@@ -114,22 +129,38 @@
<el-tab-pane label="计划发货" name="planDelivery"> <el-tab-pane label="计划发货" name="planDelivery">
<div v-loading="deliveryCoilLoading"> <div v-loading="deliveryCoilLoading">
<el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;"> <el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;">
<el-form-item label="卷号"> <el-form-item label="入场卷号">
<el-input v-model="deliveryCoilBo.currentCoilNo" placeholder="当前钢卷号" clearable @keyup.enter.native="handleDeliveryFilter" style="width: 160px;" /> <el-input v-model="deliveryCoilBo.enterCoilNo" placeholder="请输入入场钢卷号" clearable @keyup.enter.native="handleDeliveryFilter" style="width: 160px;" />
</el-form-item> </el-form-item>
<el-form-item label="材料类型"> <el-form-item label="当前卷号">
<el-select v-model="deliveryCoilBo.materialType" placeholder="全部" clearable style="width: 100px;"> <el-input v-model="deliveryCoilBo.currentCoilNo" placeholder="请输入当前钢卷号" clearable @keyup.enter.native="handleDeliveryFilter" style="width: 160px;" />
<el-option label="成品" value="成品" /> </el-form-item>
<el-option label="原料" value="原料" /> <el-form-item label="逻辑库区">
<warehouse-select v-model="deliveryCoilBo.warehouseId" placeholder="请选择逻辑库位" style="width: 160px;" clearable />
</el-form-item>
<el-form-item label="物料类型">
<el-select v-model="deliveryCoilBo.itemType" placeholder="全部" clearable style="width: 100px;" @change="handleDeliveryFilter">
<el-option label="成品" value="product" />
<el-option label="原料" value="raw_material" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态"> <el-form-item label="质量状态">
<el-select v-model="deliveryCoilBo.qualityStatus" placeholder="全部" clearable style="width: 100px;"> <muti-select v-model="deliveryCoilBo.qualityStatusCsv" :options="dict.type.coil_quality_status" placeholder="请选择品质" clearable style="width: 160px;" />
<el-option label="正常" value="0" />
<el-option label="待检" value="1" />
<el-option label="不合格" value="2" />
</el-select>
</el-form-item> </el-form-item>
<template v-if="deliveryCoilBo.itemType">
<el-form-item label="品名">
<muti-select v-model="deliveryCoilBo.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="材质">
<muti-select v-model="deliveryCoilBo.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="规格">
<memo-input v-model="deliveryCoilBo.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="厂家">
<muti-select v-model="deliveryCoilBo.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable style="width: 160px;" />
</el-form-item>
</template>
<el-form-item> <el-form-item>
<el-button type="primary" size="mini" @click="handleDeliveryFilter">查询</el-button> <el-button type="primary" size="mini" @click="handleDeliveryFilter">查询</el-button>
<el-button size="mini" @click="resetDeliveryFilter">重置</el-button> <el-button size="mini" @click="resetDeliveryFilter">重置</el-button>
@@ -178,6 +209,9 @@ import { listData, getData, delData, addData, updateData } from "@/api/system/di
import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type"; import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type";
import CoilTable from "../components/CoilTable.vue"; import CoilTable from "../components/CoilTable.vue";
import DeliveryTable from "../components/DeliveryTable.vue"; import DeliveryTable from "../components/DeliveryTable.vue";
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
import MemoInput from "@/components/MemoInput";
import MutiSelect from "@/components/MutiSelect";
import { listDeliveryWaybill } from "@/api/wms/deliveryWaybill"; import { listDeliveryWaybill } from "@/api/wms/deliveryWaybill";
import { listCustomer } from "@/api/crm/customer"; import { listCustomer } from "@/api/crm/customer";
@@ -186,8 +220,8 @@ import { listProductCoilsBySalesman, getProductCoilsStatisticsBySalesman, listDe
export default { export default {
name: "Data", name: "Data",
components: { DragResizePanel, CoilTable, DeliveryTable }, components: { DragResizePanel, CoilTable, DeliveryTable, WarehouseSelect, MemoInput, MutiSelect },
dicts: ['sys_normal_disable'], dicts: ['sys_normal_disable', 'coil_itemname', 'coil_material', 'coil_manufacturer', 'coil_quality_status'],
data() { data() {
return { return {
// 遮罩层 // 遮罩层
@@ -425,6 +459,7 @@ export default {
}); });
}, },
handleProductFilter() { handleProductFilter() {
this.productCoilBo.selectType = this.productCoilBo.itemType || '';
this.productPagination.currentPage = 1; this.productPagination.currentPage = 1;
if (this.selectedItem) { if (this.selectedItem) {
this.fetchProductCoils(this.selectedItem.dictValue); this.fetchProductCoils(this.selectedItem.dictValue);
@@ -459,6 +494,7 @@ export default {
}); });
}, },
handleDeliveryFilter() { handleDeliveryFilter() {
this.deliveryCoilBo.selectType = this.deliveryCoilBo.itemType || '';
this.deliveryPagination.currentPage = 1; this.deliveryPagination.currentPage = 1;
if (this.selectedItem) { if (this.selectedItem) {
this.fetchDeliveryCoils(this.selectedItem.dictValue); this.fetchDeliveryCoils(this.selectedItem.dictValue);

View File

@@ -133,29 +133,44 @@
<div class="detail-card-body" style="padding: 12px;"> <div class="detail-card-body" style="padding: 12px;">
<div v-loading="productCoilLoading"> <div v-loading="productCoilLoading">
<el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;"> <el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;">
<el-form-item label="卷号"> <el-form-item label="入场卷号">
<el-input v-model="productCoilBo.currentCoilNo" placeholder="当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" /> <el-input v-model="productCoilBo.enterCoilNo" placeholder="请输入入场钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
</el-form-item> </el-form-item>
<el-form-item label="材料类型"> <el-form-item label="当前卷号">
<el-select v-model="productCoilBo.materialType" placeholder="全部" clearable style="width: 100px;"> <el-input v-model="productCoilBo.currentCoilNo" placeholder="请输入当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
<el-option label="成品" value="成品" />
<el-option label="原料" value="原料" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态"> <el-form-item label="逻辑库区">
<el-select v-model="productCoilBo.qualityStatus" placeholder="全部" clearable style="width: 100px;"> <warehouse-select v-model="productCoilBo.warehouseId" placeholder="请选择逻辑库位" style="width: 160px;" clearable />
<el-option label="正常" value="0" /> </el-form-item>
<el-option label="待检" value="1" /> <el-form-item label="物料类型">
<el-option label="不合格" value="2" /> <el-select v-model="productCoilBo.itemType" placeholder="全部" clearable style="width: 100px;" @change="handleProductFilter">
<el-option label="成品" value="product" />
<el-option label="原料" value="raw_material" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="发货状态"> <el-form-item label="发货状态">
<el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;"> <el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;">
<el-option label="在库" :value="0" /> <el-option label="在库" :value="0" />
<el-option label="在途" :value="1" /> <el-option label="已发货" :value="1" />
<el-option label="已发货" :value="2" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="质量状态">
<muti-select v-model="productCoilBo.qualityStatusCsv" :options="dict.type.coil_quality_status" placeholder="请选择品质" clearable style="width: 160px;" />
</el-form-item>
<template v-if="productCoilBo.itemType">
<el-form-item label="品名">
<muti-select v-model="productCoilBo.itemName" :options="dict.type.coil_itemname" placeholder="请选择物料" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="材质">
<muti-select v-model="productCoilBo.itemMaterial" :options="dict.type.coil_material" placeholder="请选择材质" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="规格">
<memo-input v-model="productCoilBo.itemSpecification" storageKey="coilSpec" placeholder="请选择规格" clearable style="width: 160px;" />
</el-form-item>
<el-form-item label="厂家">
<muti-select v-model="productCoilBo.itemManufacturer" :options="dict.type.coil_manufacturer" placeholder="请选择厂家" clearable style="width: 160px;" />
</el-form-item>
</template>
<el-form-item> <el-form-item>
<el-button type="primary" size="mini" @click="handleProductFilter">查询</el-button> <el-button type="primary" size="mini" @click="handleProductFilter">查询</el-button>
<el-button size="mini" @click="resetProductFilter">重置</el-button> <el-button size="mini" @click="resetProductFilter">重置</el-button>
@@ -228,11 +243,14 @@ import CoilTable from '@/views/crm/components/CoilTable.vue'
import ContractSelect from '@/components/KLPService/ContractSelect' import ContractSelect from '@/components/KLPService/ContractSelect'
import { batchUpdateContractCoil } from '@/api/wms/coil' import { batchUpdateContractCoil } from '@/api/wms/coil'
import { listProductCoilsByContract, getProductCoilsStatisticsByContract } from '@/api/crm/coil' import { listProductCoilsByContract, getProductCoilsStatisticsByContract } from '@/api/crm/coil'
import WarehouseSelect from '@/components/KLPService/WarehouseSelect'
import MemoInput from '@/components/MemoInput'
import MutiSelect from '@/components/MutiSelect'
export default { export default {
name: 'ApsOrderTrack', name: 'ApsOrderTrack',
components: { CoilTable, ContractSelect }, components: { CoilTable, ContractSelect, WarehouseSelect, MemoInput, MutiSelect },
dicts: ['wip_pack_saleman'], dicts: ['wip_pack_saleman', 'coil_itemname', 'coil_material', 'coil_manufacturer', 'coil_quality_status'],
data() { data() {
return { return {
ORDER_STATUS, ORDER_STATUS,
@@ -418,10 +436,10 @@ export default {
if (!this.currentOrder || !this.currentOrder.orderId) return if (!this.currentOrder || !this.currentOrder.orderId) return
this.productCoilLoading = true this.productCoilLoading = true
listProductCoilsByContract({ listProductCoilsByContract({
contractId: this.currentOrder.orderId, orderId: this.currentOrder.orderId,
pageNum: this.productPagination.currentPage, pageNum: this.productPagination.currentPage,
pageSize: this.productPagination.pageSize, pageSize: this.productPagination.pageSize,
coilBo: this.productCoilBo ...this.productCoilBo
}).then(res => { }).then(res => {
this.productCoilList = res.rows || [] this.productCoilList = res.rows || []
this.productPagination.total = res.total || 0 this.productPagination.total = res.total || 0
@@ -431,11 +449,12 @@ export default {
}, },
fetchProductCoilStatistics() { fetchProductCoilStatistics() {
if (!this.currentOrder || !this.currentOrder.orderId) return if (!this.currentOrder || !this.currentOrder.orderId) return
getProductCoilsStatisticsByContract({ contractId: this.currentOrder.orderId, coilBo: this.productCoilBo }).then(res => { getProductCoilsStatisticsByContract({ ...this.productCoilBo, orderId: this.currentOrder.orderId }).then(res => {
this.productCoilStatistics = res.data || {} this.productCoilStatistics = res.data || {}
}) })
}, },
handleProductFilter() { handleProductFilter() {
this.productCoilBo.selectType = this.productCoilBo.itemType || ''
this.productPagination.currentPage = 1 this.productPagination.currentPage = 1
this.fetchProductCoils() this.fetchProductCoils()
this.fetchProductCoilStatistics() this.fetchProductCoilStatistics()