feat(wms/crm): 升级钢卷查询筛选条件,新增多维度搜索能力
1. 调整筛选表单布局,拆分钢卷号为入场卷号和当前卷号 2. 新增逻辑库区、物料类型筛选,替换旧的材料类型选择 3. 将单选型质量状态改为多选,并新增品名、材质、规格、厂家筛选条件 4. 注册新增的组件并添加对应字典依赖 5. 重构接口传参方式,优化筛选参数提交逻辑 6. 修复发货状态选项,移除冗余的在途选项
This commit is contained in:
@@ -133,29 +133,44 @@
|
||||
<div class="detail-card-body" style="padding: 12px;">
|
||||
<div v-loading="productCoilLoading">
|
||||
<el-form :inline="true" size="small" class="coil-filter-bar" style="margin-bottom: 8px;">
|
||||
<el-form-item label="钢卷号">
|
||||
<el-input v-model="productCoilBo.currentCoilNo" placeholder="当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
|
||||
<el-form-item label="入场卷号">
|
||||
<el-input v-model="productCoilBo.enterCoilNo" placeholder="请输入入场钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="材料类型">
|
||||
<el-select v-model="productCoilBo.materialType" placeholder="全部" clearable style="width: 100px;">
|
||||
<el-option label="成品" value="成品" />
|
||||
<el-option label="原料" value="原料" />
|
||||
</el-select>
|
||||
<el-form-item label="当前卷号">
|
||||
<el-input v-model="productCoilBo.currentCoilNo" placeholder="请输入当前钢卷号" clearable @keyup.enter.native="handleProductFilter" style="width: 160px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="质量状态">
|
||||
<el-select v-model="productCoilBo.qualityStatus" placeholder="全部" clearable style="width: 100px;">
|
||||
<el-option label="正常" value="0" />
|
||||
<el-option label="待检" value="1" />
|
||||
<el-option label="不合格" value="2" />
|
||||
<el-form-item label="逻辑库区">
|
||||
<warehouse-select v-model="productCoilBo.warehouseId" placeholder="请选择逻辑库位" style="width: 160px;" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料类型">
|
||||
<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-form-item>
|
||||
<el-form-item label="发货状态">
|
||||
<el-select v-model="productCoilBo.status" placeholder="全部" clearable style="width: 100px;">
|
||||
<el-option label="在库" :value="0" />
|
||||
<el-option label="在途" :value="1" />
|
||||
<el-option label="已发货" :value="2" />
|
||||
<el-option label="已发货" :value="1" />
|
||||
</el-select>
|
||||
</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-button type="primary" size="mini" @click="handleProductFilter">查询</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 { batchUpdateContractCoil } from '@/api/wms/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 {
|
||||
name: 'ApsOrderTrack',
|
||||
components: { CoilTable, ContractSelect },
|
||||
dicts: ['wip_pack_saleman'],
|
||||
components: { CoilTable, ContractSelect, WarehouseSelect, MemoInput, MutiSelect },
|
||||
dicts: ['wip_pack_saleman', 'coil_itemname', 'coil_material', 'coil_manufacturer', 'coil_quality_status'],
|
||||
data() {
|
||||
return {
|
||||
ORDER_STATUS,
|
||||
@@ -418,10 +436,10 @@ export default {
|
||||
if (!this.currentOrder || !this.currentOrder.orderId) return
|
||||
this.productCoilLoading = true
|
||||
listProductCoilsByContract({
|
||||
contractId: this.currentOrder.orderId,
|
||||
orderId: this.currentOrder.orderId,
|
||||
pageNum: this.productPagination.currentPage,
|
||||
pageSize: this.productPagination.pageSize,
|
||||
coilBo: this.productCoilBo
|
||||
...this.productCoilBo
|
||||
}).then(res => {
|
||||
this.productCoilList = res.rows || []
|
||||
this.productPagination.total = res.total || 0
|
||||
@@ -431,11 +449,12 @@ export default {
|
||||
},
|
||||
fetchProductCoilStatistics() {
|
||||
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 || {}
|
||||
})
|
||||
},
|
||||
handleProductFilter() {
|
||||
this.productCoilBo.selectType = this.productCoilBo.itemType || ''
|
||||
this.productPagination.currentPage = 1
|
||||
this.fetchProductCoils()
|
||||
this.fetchProductCoilStatistics()
|
||||
|
||||
Reference in New Issue
Block a user