diff --git a/src/api/mes/wm/materialStock/index.ts b/src/api/mes/wm/materialStock/index.ts index 9368f2de2..93bf45f93 100644 --- a/src/api/mes/wm/materialStock/index.ts +++ b/src/api/mes/wm/materialStock/index.ts @@ -45,5 +45,13 @@ export const WmMaterialStockApi = { // 导出库存台账 Excel exportMaterialStock: async (params: any) => { return await request.download({ url: '/mes/wm/material-stock/export-excel', params }) + }, + + // 获取库存精简列表(主要用于前端下拉,可按 itemId 过滤) + getMaterialStockSimpleList: async (itemId?: number) => { + return await request.get({ + url: '/mes/wm/material-stock/simple-list', + params: { itemId } + }) } } diff --git a/src/views/mes/wm/batch/components/WmBatchSelect.vue b/src/views/mes/wm/batch/components/WmBatchSelect.vue index be8aacaf4..301360781 100644 --- a/src/views/mes/wm/batch/components/WmBatchSelect.vue +++ b/src/views/mes/wm/batch/components/WmBatchSelect.vue @@ -29,6 +29,7 @@ defineOptions({ name: 'WmBatchSelect' }) const props = withDefaults( defineProps<{ modelValue?: number + itemId?: number disabled?: boolean clearable?: boolean placeholder?: string @@ -62,11 +63,22 @@ const handleFilter = (query: string) => { const keyword = query.toLowerCase() filteredList.value = allList.value.filter( (item) => - item.code?.toLowerCase().includes(keyword) || - item.itemCode?.toLowerCase().includes(keyword) + item.code?.toLowerCase().includes(keyword) || item.itemCode?.toLowerCase().includes(keyword) ) } +/** 监听 itemId 变化,前端过滤(如果是基于 itemId 的过滤) */ +watch( + () => props.itemId, + (val) => { + if (val) { + filteredList.value = allList.value.filter((item) => item.itemId === val) + } else { + filteredList.value = allList.value + } + } +) + /** 选中变化 */ const handleChange = (val: number | undefined) => { const item = allList.value.find((o) => o.id === val) @@ -76,6 +88,10 @@ const handleChange = (val: number | undefined) => { /** 加载批次列表 */ onMounted(async () => { allList.value = await BatchApi.getBatchSimpleList() - filteredList.value = allList.value + if (props.itemId) { + filteredList.value = allList.value.filter((item) => item.itemId === props.itemId) + } else { + filteredList.value = allList.value + } }) diff --git a/src/views/mes/wm/productsales/ProductSalesDetailForm.vue b/src/views/mes/wm/productsales/ProductSalesDetailForm.vue index 9294611c1..0a2079398 100644 --- a/src/views/mes/wm/productsales/ProductSalesDetailForm.vue +++ b/src/views/mes/wm/productsales/ProductSalesDetailForm.vue @@ -24,7 +24,11 @@ - + { + formData.value.batchCode = batch?.code +} + /** 提交表单 */ const submitForm = async () => { // 校验表单 @@ -146,7 +156,8 @@ const resetForm = () => { warehouseId: undefined, locationId: undefined, areaId: undefined, - batchId: undefined + batchId: undefined, + batchCode: undefined } formRef.value?.resetFields() } diff --git a/src/views/mes/wm/productsales/ProductSalesLineList.vue b/src/views/mes/wm/productsales/ProductSalesLineList.vue index 25be72ddb..1088ac8c1 100644 --- a/src/views/mes/wm/productsales/ProductSalesLineList.vue +++ b/src/views/mes/wm/productsales/ProductSalesLineList.vue @@ -90,7 +90,11 @@ - + @@ -140,7 +144,7 @@