From b2d86b12d6df7489eac5c09f5802c928f3d073e2 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 4 Apr 2026 10:15:26 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=8D=95=E7=BC=96=E7=A0=81=E5=8F=8A?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增生产工单编码规则和状态管理逻辑,优化工单创建和更新流程。 同时,更新前端表单以支持新的工单状态和来源单据字段,提升用户体验。 --- src/views/mes/pro/workorder/WorkorderForm.vue | 17 +++++++---- src/views/mes/pro/workorder/index.vue | 30 +++++++++++++++++-- src/views/mes/utils/constants.ts | 3 +- 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/views/mes/pro/workorder/WorkorderForm.vue b/src/views/mes/pro/workorder/WorkorderForm.vue index 49e99c233..d44ee702a 100644 --- a/src/views/mes/pro/workorder/WorkorderForm.vue +++ b/src/views/mes/pro/workorder/WorkorderForm.vue @@ -79,7 +79,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import { ProWorkOrderApi, ProWorkOrderVO } from '@/api/mes/pro/workorder' -import { generateRandomStr } from '@/utils' +import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record' import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue' import MdClientSelect from '@/views/mes/md/client/components/MdClientSelect.vue' import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue' import WorkOrderBomList from './WorkOrderBomList.vue' import WorkOrderItemList from './WorkOrderItemList.vue' -import { MesProWorkOrderSourceTypeEnum, MesProWorkOrderTypeEnum } from '@/views/mes/utils/constants' +import { + MesProWorkOrderSourceTypeEnum, + MesProWorkOrderTypeEnum, + MesAutoCodeRuleCode +} from '@/views/mes/utils/constants' defineOptions({ name: 'WorkOrderForm' }) @@ -219,13 +223,16 @@ const formRef = ref() // 表单 Ref const isDetail = computed(() => formType.value === 'detail') /** 生成工单编码 */ -const generateCode = () => { - formData.value.code = 'MO' + generateRandomStr(10) +const generateCode = async () => { + formData.value.code = await AutoCodeRecordApi.generateAutoCode( + MesAutoCodeRuleCode.PRO_WORK_ORDER_CODE + ) } /** 打开弹窗 */ const open = async (type: string, id?: number, parentRow?: any) => { dialogVisible.value = true + // todo @AI:有什么办法,计算 compute 计算么?结果 formData.parentid + type? dialogTitle.value = parentRow ? '新增子工单' : type === 'detail' diff --git a/src/views/mes/pro/workorder/index.vue b/src/views/mes/pro/workorder/index.vue index 3373c6ab5..c55db7983 100644 --- a/src/views/mes/pro/workorder/index.vue +++ b/src/views/mes/pro/workorder/index.vue @@ -27,6 +27,15 @@ class="!w-240px" /> + + + @@ -48,7 +57,22 @@ /> - + + + + + + - -