From 5af93de4f553fd4c574d28e54644da8f0c4f0afc Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 7 Apr 2026 18:48:03 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=96=B0=E5=A2=9E=20B?= =?UTF-8?q?OM=20=E5=AD=90=E7=89=A9=E6=96=99=E9=80=89=E6=8B=A9=E5=99=A8?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=8F=8A=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../md/item/components/MdProductBomSelect.vue | 183 ++++++++++++++++++ .../components/MdProductBomSelectDialog.vue | 143 ++++++++++++++ .../mes/pro/route/RouteProductBomList.vue | 17 +- .../mes/pro/workorder/WorkOrderBomList.vue | 16 +- 4 files changed, 355 insertions(+), 4 deletions(-) create mode 100644 src/views/mes/md/item/components/MdProductBomSelect.vue create mode 100644 src/views/mes/md/item/components/MdProductBomSelectDialog.vue diff --git a/src/views/mes/md/item/components/MdProductBomSelect.vue b/src/views/mes/md/item/components/MdProductBomSelect.vue new file mode 100644 index 000000000..7faab73ab --- /dev/null +++ b/src/views/mes/md/item/components/MdProductBomSelect.vue @@ -0,0 +1,183 @@ + + + + + + diff --git a/src/views/mes/md/item/components/MdProductBomSelectDialog.vue b/src/views/mes/md/item/components/MdProductBomSelectDialog.vue new file mode 100644 index 000000000..969085c66 --- /dev/null +++ b/src/views/mes/md/item/components/MdProductBomSelectDialog.vue @@ -0,0 +1,143 @@ + + + + + + diff --git a/src/views/mes/pro/route/RouteProductBomList.vue b/src/views/mes/pro/route/RouteProductBomList.vue index 629e8d9cf..5d15b511c 100644 --- a/src/views/mes/pro/route/RouteProductBomList.vue +++ b/src/views/mes/pro/route/RouteProductBomList.vue @@ -35,7 +35,12 @@ - + import { ProRouteProductBomApi, ProRouteProductBomVO } from '@/api/mes/pro/route/productbom' import { ProRouteProcessApi } from '@/api/mes/pro/route/process' -import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue' +import MdProductBomSelect from '@/views/mes/md/item/components/MdProductBomSelect.vue' +import { MdProductBomVO } from '@/api/mes/md/item/productBom' defineOptions({ name: 'RouteProductBomList' }) @@ -139,6 +145,13 @@ const openForm = (type: string, row?: ProRouteProductBomVO) => { formRef.value?.resetFields() } +/** BOM 物料选中变化:自动回填用量比例 */ +const handleBomItemChange = (bom: MdProductBomVO | undefined) => { + if (bom) { + formData.value.quantity = bom.quantity ?? 1 + } +} + /** 提交表单 */ const submitForm = async () => { const valid = await formRef.value.validate() diff --git a/src/views/mes/pro/workorder/WorkOrderBomList.vue b/src/views/mes/pro/workorder/WorkOrderBomList.vue index 1a8642723..9639776a4 100644 --- a/src/views/mes/pro/workorder/WorkOrderBomList.vue +++ b/src/views/mes/pro/workorder/WorkOrderBomList.vue @@ -67,7 +67,11 @@ v-loading="formLoading" > - + @@ -94,7 +98,8 @@ import { ProWorkOrderBomApi, ProWorkOrderBomVO } from '@/api/mes/pro/workorder/bom' import { MesProWorkOrderStatusEnum, MesProWorkOrderTypeEnum } from '@/views/mes/utils/constants' import { DICT_TYPE } from '@/utils/dict' -import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue' +import MdProductBomSelect from '@/views/mes/md/item/components/MdProductBomSelect.vue' +import { MdProductBomVO } from '@/api/mes/md/item/productBom' defineOptions({ name: 'WorkOrderBomList' }) @@ -188,6 +193,13 @@ const resetForm = () => { formRef.value?.resetFields() } +/** BOM 物料选中变化:自动回填预计使用量 */ +const handleBomItemChange = (bom: MdProductBomVO | undefined) => { + if (bom) { + formData.value.quantity = bom.quantity ?? undefined + } +} + /** 打开 BOM 弹窗 */ const openForm = (type: string, row?: any) => { resetForm()