diff --git a/src/api/mes/pro/task/index.ts b/src/api/mes/pro/task/index.ts index 81b435a5b..f08ddaf23 100644 --- a/src/api/mes/pro/task/index.ts +++ b/src/api/mes/pro/task/index.ts @@ -33,6 +33,7 @@ export interface ProTaskVO { finishDate: Date // 完成日期 cancelDate: Date // 取消日期 status: number // 任务状态 + checkFlag: boolean // 是否质检(派生自工艺路线工序) remark: string // 备注 } diff --git a/src/api/mes/wm/materialStock/index.ts b/src/api/mes/wm/materialstock/index.ts similarity index 100% rename from src/api/mes/wm/materialStock/index.ts rename to src/api/mes/wm/materialstock/index.ts diff --git a/src/views/mes/md/client/components/MdClientSelectDialog.vue b/src/views/mes/md/client/components/MdClientSelectDialog.vue index 4f0bba5e7..0a435a56e 100644 --- a/src/views/mes/md/client/components/MdClientSelectDialog.vue +++ b/src/views/mes/md/client/components/MdClientSelectDialog.vue @@ -40,6 +40,15 @@ class="!w-220px" /> + + + 搜索 @@ -93,6 +102,7 @@ + @@ -74,13 +74,13 @@ const props = withDefaults( itemId?: number // 按物料 ID 过滤 batchId?: number // 按批次 ID 过滤 warehouseId?: number // 按仓库 ID 过滤 - excludeVirtual?: boolean // 是否排除虚拟线边仓库存(默认 true) + virtualFilter?: 'exclude' | 'only' | 'all' // 虚拟仓过滤:'exclude' 排除(默认),'only' 只看,'all' 不过滤 disabled?: boolean // 是否禁用 clearable?: boolean // 是否允许清空 placeholder?: string // 占位文字 }>(), { - excludeVirtual: true, + virtualFilter: 'exclude', disabled: false, clearable: true, placeholder: '请选择库存' diff --git a/src/views/mes/wm/materialStock/components/WmMaterialStockSelectDialog.vue b/src/views/mes/wm/materialstock/components/WmMaterialStockSelectDialog.vue similarity index 92% rename from src/views/mes/wm/materialStock/components/WmMaterialStockSelectDialog.vue rename to src/views/mes/wm/materialstock/components/WmMaterialStockSelectDialog.vue index 5eedaf7b2..2131a9b72 100644 --- a/src/views/mes/wm/materialStock/components/WmMaterialStockSelectDialog.vue +++ b/src/views/mes/wm/materialstock/components/WmMaterialStockSelectDialog.vue @@ -6,7 +6,7 @@ itemId — 按物料 ID 过滤库存(可选) batchId — 按批次 ID 过滤库存(可选) warehouseId — 按仓库 ID 过滤库存(可选) - excludeVirtual — 是否排除虚拟线边仓库存(默认 true) + virtualFilter — 虚拟线边仓过滤模式:'exclude' 排除虚拟仓(默认),'only' 只看虚拟仓,'all' 不过滤 Events: selected(rows: WmMaterialStockVO[]) — 确认选择后触发,单选时数组长度为 1 Expose: @@ -159,6 +159,7 @@ import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue' import WmWarehouseSelect from '@/views/mes/wm/warehouse/components/WmWarehouseSelect.vue' import WmWarehouseLocationSelect from '@/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue' import WmWarehouseAreaSelect from '@/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue' +import { MesWmWarehouseConstants } from '@/views/mes/utils/constants' defineOptions({ name: 'WmMaterialStockSelectDialog' }) @@ -168,11 +169,11 @@ const props = withDefaults( itemId?: number // 按物料 ID 过滤 batchId?: number // 按批次 ID 过滤 warehouseId?: number // 按仓库 ID 过滤 - excludeVirtual?: boolean // 是否排除虚拟线边仓库存(默认 true) + virtualFilter?: 'exclude' | 'only' | 'all' // 虚拟仓过滤:'exclude' 排除(默认),'only' 只看,'all' 不过滤 }>(), { multiple: true, - excludeVirtual: true + virtualFilter: 'exclude' } ) @@ -265,10 +266,16 @@ const getList = async () => { loading.value = true try { const data = await WmMaterialStockApi.getMaterialStockPage(queryParams) - // 前端过滤虚拟线边仓(非虚拟仓查询时排除 warehouseCode 含 WIP_VIRTUAL 的记录) - if (props.excludeVirtual) { + // 前端过滤虚拟线边仓 + if (props.virtualFilter === 'only') { + // 只看虚拟仓:正向限定 + list.value = data.list.filter((row: WmMaterialStockVO) => + row.warehouseCode?.includes(MesWmWarehouseConstants.WIP_VIRTUAL) + ) + } else if (props.virtualFilter === 'exclude') { + // 排除虚拟仓 list.value = data.list.filter( - (row: WmMaterialStockVO) => !row.warehouseCode?.includes('WIP_VIRTUAL') + (row: WmMaterialStockVO) => !row.warehouseCode?.includes(MesWmWarehouseConstants.WIP_VIRTUAL) ) } else { list.value = data.list @@ -380,15 +387,21 @@ defineExpose({ open }) /** 拼装 el-alert 提示文字 */ const alertTitle = computed(() => { const parts: string[] = [] - if (props.batchId != null) parts.push('批次') - if (props.warehouseId != null) parts.push('仓库') - if (props.excludeVirtual) parts.push('排除虚拟仓') + if (props.batchId != null) { + parts.push('批次') + } + if (props.warehouseId != null) { + parts.push('仓库') + } + if (props.virtualFilter === 'only') { + parts.push('只看虚拟仓') + } return `已按${parts.join('/')}预过滤` }) /** 是否显示 alert 提示 */ const showAlert = computed(() => { - return props.batchId != null || props.warehouseId != null + return props.batchId != null || props.warehouseId != null || props.virtualFilter === 'only' }) diff --git a/src/views/mes/wm/materialStock/index.vue b/src/views/mes/wm/materialstock/index.vue similarity index 100% rename from src/views/mes/wm/materialStock/index.vue rename to src/views/mes/wm/materialstock/index.vue diff --git a/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue b/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue index 71460b674..bab9b4aa3 100644 --- a/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue +++ b/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue @@ -78,7 +78,7 @@ v-model="formData.materialStockId" placeholder="请选择库存" class="!w-1/1" - :exclude-virtual="false" + virtual-filter="only" @change="handleStockChange" /> diff --git a/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue b/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue index 43ecb3882..1735ef53b 100644 --- a/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue +++ b/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue @@ -19,6 +19,7 @@ diff --git a/src/views/mes/wm/returnissue/ReturnIssueLineList.vue b/src/views/mes/wm/returnissue/ReturnIssueLineList.vue index 08c1d4dfd..9406eb8b8 100644 --- a/src/views/mes/wm/returnissue/ReturnIssueLineList.vue +++ b/src/views/mes/wm/returnissue/ReturnIssueLineList.vue @@ -88,6 +88,7 @@ v-model="formData.materialStockId" placeholder="请选择库存" class="!w-1/1" + virtual-filter="only" @change="handleStockChange" />