From d3233c4bb41873390379b8ee9bcee264ff66d7db Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 29 May 2026 11:40:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=BB=9F=E4=B8=80=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=20schema=20=E6=8C=82=E8=BD=BD=E4=B8=8E=20resetForm=20?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crm/permission/modules/transfer-form.vue | 1 - .../src/views/iot/product/product/data.ts | 4 +- .../iot/product/product/modules/form.vue | 6 +-- .../views/iot/rule/data/rule/modules/form.vue | 1 - .../modules/product-property-add-form.vue | 1 - .../discountActivity/modules/form.vue | 8 ++-- .../views/mes/cal/holiday/modules/form.vue | 1 - .../src/views/mes/cal/plan/modules/form.vue | 5 +-- .../src/views/mes/cal/team/modules/form.vue | 5 +-- .../views/mes/dv/checkplan/modules/form.vue | 5 +-- .../views/mes/dv/checkrecord/modules/form.vue | 1 - .../views/mes/dv/machinery/modules/form.vue | 4 -- .../mes/dv/machinery/type/modules/form.vue | 5 +-- .../mes/dv/maintenrecord/modules/form.vue | 1 - .../src/views/mes/dv/repair/modules/form.vue | 5 +-- .../src/views/mes/dv/subject/modules/form.vue | 5 +-- .../views/mes/md/autocode/modules/form.vue | 1 - .../mes/md/autocode/modules/part-form.vue | 1 - .../src/views/mes/md/client/modules/form.vue | 5 +-- .../src/views/mes/md/item/modules/form.vue | 5 +-- .../views/mes/md/item/type/modules/form.vue | 5 +-- .../views/mes/md/unitmeasure/modules/form.vue | 1 - .../src/views/mes/md/vendor/modules/form.vue | 5 +-- .../views/mes/md/workstation/modules/form.vue | 5 +-- .../md/workstation/workshop/modules/form.vue | 5 +-- .../mes/pro/andon/record/modules/form.vue | 4 -- .../views/mes/pro/feedback/modules/form.vue | 4 -- .../mes/pro/process/modules/content-form.vue | 1 - .../views/mes/pro/process/modules/form.vue | 5 +-- .../views/mes/pro/route/modules/bom-form.vue | 1 - .../src/views/mes/pro/route/modules/form.vue | 5 +-- .../mes/pro/route/modules/process-form.vue | 1 - .../mes/pro/route/modules/product-form.vue | 1 - .../src/views/mes/qc/defect/modules/form.vue | 5 +-- .../views/mes/qc/indicator/modules/form.vue | 5 +-- .../views/mes/qc/template/modules/form.vue | 5 +-- .../qc/template/modules/indicator-form.vue | 1 - .../mes/qc/template/modules/item-form.vue | 1 - .../src/views/mes/tm/tool/modules/form.vue | 5 +-- .../views/mes/tm/tool/type/modules/form.vue | 5 +-- .../web-antd/src/views/mes/utils/constants.ts | 43 +++++++++++++++++++ .../src/views/wms/md/item/brand/data.ts | 4 +- .../views/wms/md/item/brand/modules/form.vue | 5 +-- .../src/views/wms/md/item/category/data.ts | 4 +- .../wms/md/item/category/modules/form.vue | 5 +-- apps/web-antd/src/views/wms/md/item/data.ts | 4 +- .../src/views/wms/md/item/modules/form.vue | 5 +-- .../src/views/wms/md/merchant/data.ts | 4 +- .../views/wms/md/merchant/modules/form.vue | 5 +-- .../src/views/wms/md/warehouse/data.ts | 4 +- .../views/wms/md/warehouse/modules/form.vue | 4 +- .../views/wms/order/check/modules/form.vue | 1 - .../views/wms/order/movement/modules/form.vue | 1 - .../views/wms/order/receipt/modules/form.vue | 1 - .../views/wms/order/shipment/modules/form.vue | 1 - .../crm/permission/modules/transfer-form.vue | 1 - .../src/views/iot/product/product/data.ts | 4 +- .../iot/product/product/modules/form.vue | 6 +-- .../views/iot/rule/data/rule/modules/form.vue | 1 - .../modules/product-property-add-form.vue | 1 - .../discountActivity/modules/form.vue | 8 ++-- .../views/mes/cal/holiday/modules/form.vue | 1 - .../src/views/mes/cal/plan/modules/form.vue | 5 +-- .../src/views/mes/cal/team/modules/form.vue | 5 +-- .../views/mes/dv/checkplan/modules/form.vue | 5 +-- .../views/mes/dv/checkrecord/modules/form.vue | 1 - .../views/mes/dv/machinery/modules/form.vue | 4 -- .../mes/dv/machinery/type/modules/form.vue | 5 +-- .../mes/dv/maintenrecord/modules/form.vue | 1 - .../src/views/mes/dv/repair/modules/form.vue | 5 +-- .../src/views/mes/dv/subject/modules/form.vue | 5 +-- .../views/mes/md/autocode/modules/form.vue | 1 - .../mes/md/autocode/modules/part-form.vue | 1 - .../src/views/mes/md/client/modules/form.vue | 5 +-- .../src/views/mes/md/item/modules/form.vue | 5 +-- .../views/mes/md/item/type/modules/form.vue | 5 +-- .../views/mes/md/unitmeasure/modules/form.vue | 1 - .../src/views/mes/md/vendor/modules/form.vue | 5 +-- .../views/mes/md/workstation/modules/form.vue | 5 +-- .../md/workstation/workshop/modules/form.vue | 5 +-- .../mes/pro/andon/record/modules/form.vue | 4 -- .../views/mes/pro/feedback/modules/form.vue | 4 -- .../mes/pro/process/modules/content-form.vue | 1 - .../views/mes/pro/process/modules/form.vue | 5 +-- .../views/mes/pro/route/modules/bom-form.vue | 1 - .../src/views/mes/pro/route/modules/form.vue | 5 +-- .../mes/pro/route/modules/process-form.vue | 1 - .../mes/pro/route/modules/product-form.vue | 1 - .../src/views/mes/qc/defect/modules/form.vue | 5 +-- .../views/mes/qc/indicator/modules/form.vue | 5 +-- .../views/mes/qc/template/modules/form.vue | 5 +-- .../qc/template/modules/indicator-form.vue | 1 - .../mes/qc/template/modules/item-form.vue | 1 - .../src/views/mes/tm/tool/modules/form.vue | 5 +-- .../views/mes/tm/tool/type/modules/form.vue | 5 +-- apps/web-ele/src/views/mes/utils/constants.ts | 43 +++++++++++++++++++ .../src/views/wms/md/item/brand/data.ts | 4 +- .../views/wms/md/item/brand/modules/form.vue | 5 +-- .../src/views/wms/md/item/category/data.ts | 4 +- .../wms/md/item/category/modules/form.vue | 5 +-- apps/web-ele/src/views/wms/md/item/data.ts | 4 +- .../src/views/wms/md/item/modules/form.vue | 5 +-- .../web-ele/src/views/wms/md/merchant/data.ts | 4 +- .../views/wms/md/merchant/modules/form.vue | 5 +-- .../src/views/wms/md/warehouse/data.ts | 4 +- .../views/wms/md/warehouse/modules/form.vue | 4 +- .../views/wms/order/check/modules/form.vue | 1 - .../views/wms/order/movement/modules/form.vue | 1 - .../views/wms/order/receipt/modules/form.vue | 1 - .../views/wms/order/shipment/modules/form.vue | 1 - packages/constants/src/dict-enum.ts | 2 + 111 files changed, 172 insertions(+), 292 deletions(-) diff --git a/apps/web-antd/src/views/crm/permission/modules/transfer-form.vue b/apps/web-antd/src/views/crm/permission/modules/transfer-form.vue index 21883543f..96b046147 100644 --- a/apps/web-antd/src/views/crm/permission/modules/transfer-form.vue +++ b/apps/web-antd/src/views/crm/permission/modules/transfer-form.vue @@ -100,7 +100,6 @@ const [Modal, modalApi] = useVbenModal({ }, async onOpenChange(isOpen: boolean) { if (!isOpen) { - await formApi.resetForm(); return; } // 加载数据 diff --git a/apps/web-antd/src/views/iot/product/product/data.ts b/apps/web-antd/src/views/iot/product/product/data.ts index 3abe66307..a61b5cc9e 100644 --- a/apps/web-antd/src/views/iot/product/product/data.ts +++ b/apps/web-antd/src/views/iot/product/product/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { IotProductApi } from '#/api/iot/product/product'; @@ -14,7 +14,7 @@ import { getSimpleProductCategoryList } from '#/api/iot/product/category'; /** 基础表单字段(不含图标、图片、描述) */ export function useBasicFormSchema( - formApi?: any, + formApi?: VbenFormApi, generateProductKey?: () => string, ): VbenFormSchema[] { return [ diff --git a/apps/web-antd/src/views/iot/product/product/modules/form.vue b/apps/web-antd/src/views/iot/product/product/modules/form.vue index eb5caddad..a22c0a834 100644 --- a/apps/web-antd/src/views/iot/product/product/modules/form.vue +++ b/apps/web-antd/src/views/iot/product/product/modules/form.vue @@ -60,9 +60,6 @@ const [AdvancedForm, advancedFormApi] = useVbenForm({ showDefaultActions: false, }); -/** 基础表单需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useBasicFormSchema(formApi, generateProductKey) }); - /** 获取高级表单的值(如果表单未挂载,则从 formData 中获取) */ async function getAdvancedFormValues() { if (advancedFormApi.isMounted) { @@ -106,6 +103,9 @@ const [Modal, modalApi] = useVbenModal({ activeKey.value = []; return; } + formApi.setState({ + schema: useBasicFormSchema(formApi, generateProductKey), + }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-antd/src/views/iot/rule/data/rule/modules/form.vue b/apps/web-antd/src/views/iot/rule/data/rule/modules/form.vue index 3faafe325..59851ad90 100644 --- a/apps/web-antd/src/views/iot/rule/data/rule/modules/form.vue +++ b/apps/web-antd/src/views/iot/rule/data/rule/modules/form.vue @@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (!isOpen) { formData.value = undefined; - await formApi.resetForm(); sourceConfigRef.value?.setData([]); return; } diff --git a/apps/web-antd/src/views/mall/product/spu/form/modules/product-property-add-form.vue b/apps/web-antd/src/views/mall/product/spu/form/modules/product-property-add-form.vue index f34a8d194..1ec33b733 100644 --- a/apps/web-antd/src/views/mall/product/spu/form/modules/product-property-add-form.vue +++ b/apps/web-antd/src/views/mall/product/spu/form/modules/product-property-add-form.vue @@ -134,7 +134,6 @@ const [Modal, modalApi] = useVbenModal({ if (!isOpen) { return; } - await formApi.resetForm(); }, }); diff --git a/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue index a0eff3e1d..0f159017a 100644 --- a/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue +++ b/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue @@ -7,7 +7,7 @@ import type { SpuProperty, } from '#/views/mall/product/spu/components'; -import { computed, nextTick, ref } from 'vue'; +import { computed, ref } from 'vue'; import { useVbenForm, useVbenModal } from '@vben/common-ui'; import { PromotionDiscountTypeEnum } from '@vben/constants'; @@ -213,13 +213,11 @@ function handleSkuDiscountPercentChange(row: SkuExtension) { } /** 重置表单 */ -async function resetForm() { +function resetForm() { spuList.value = []; spuPropertyList.value = []; spuIdList.value = []; formData.value = {}; - await nextTick(); - await formApi.resetForm(); } // ================= 弹窗相关 ================= @@ -264,7 +262,7 @@ const [Modal, modalApi] = useVbenModal({ }, async onOpenChange(isOpen: boolean) { if (!isOpen) { - await resetForm(); + resetForm(); return; } // 加载数据 diff --git a/apps/web-antd/src/views/mes/cal/holiday/modules/form.vue b/apps/web-antd/src/views/mes/cal/holiday/modules/form.vue index 166514c50..aac5a48d6 100644 --- a/apps/web-antd/src/views/mes/cal/holiday/modules/form.vue +++ b/apps/web-antd/src/views/mes/cal/holiday/modules/form.vue @@ -50,7 +50,6 @@ const [Modal, modalApi] = useVbenModal({ if (!isOpen) { return; } - await formApi.resetForm(); const data = modalApi.getData<{ day: string }>(); if (!data?.day) { return; diff --git a/apps/web-antd/src/views/mes/cal/plan/modules/form.vue b/apps/web-antd/src/views/mes/cal/plan/modules/form.vue index bbfdac011..c76ed81e6 100644 --- a/apps/web-antd/src/views/mes/cal/plan/modules/form.vue +++ b/apps/web-antd/src/views/mes/cal/plan/modules/form.vue @@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 确认排班计划 */ async function handleConfirmPlan() { const { valid } = await formApi.validate(); @@ -106,7 +103,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'shift'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/cal/team/modules/form.vue b/apps/web-antd/src/views/mes/cal/team/modules/form.vue index 4f4128b48..388db173d 100644 --- a/apps/web-antd/src/views/mes/cal/team/modules/form.vue +++ b/apps/web-antd/src/views/mes/cal/team/modules/form.vue @@ -45,9 +45,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'member'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/dv/checkplan/modules/form.vue b/apps/web-antd/src/views/mes/dv/checkplan/modules/form.vue index 3277e9f77..650003ed6 100644 --- a/apps/web-antd/src/views/mes/dv/checkplan/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/checkplan/modules/form.vue @@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -81,7 +78,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'machinery'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/dv/checkrecord/modules/form.vue b/apps/web-antd/src/views/mes/dv/checkrecord/modules/form.vue index 95c7aa8de..0f85d632f 100644 --- a/apps/web-antd/src/views/mes/dv/checkrecord/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/checkrecord/modules/form.vue @@ -103,7 +103,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/dv/machinery/modules/form.vue b/apps/web-antd/src/views/mes/dv/machinery/modules/form.vue index b148583a8..9599dc74a 100644 --- a/apps/web-antd/src/views/mes/dv/machinery/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/machinery/modules/form.vue @@ -47,9 +47,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formType.value, formApi) }); - /** 查看设备条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -91,7 +88,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); subTabsName.value = 'check'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/dv/machinery/type/modules/form.vue b/apps/web-antd/src/views/mes/dv/machinery/type/modules/form.vue index bf17aed85..4a0269d17 100644 --- a/apps/web-antd/src/views/mes/dv/machinery/type/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/machinery/type/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-antd/src/views/mes/dv/maintenrecord/modules/form.vue b/apps/web-antd/src/views/mes/dv/maintenrecord/modules/form.vue index 837f1ef62..0827b1cef 100644 --- a/apps/web-antd/src/views/mes/dv/maintenrecord/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/maintenrecord/modules/form.vue @@ -110,7 +110,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/dv/repair/modules/form.vue b/apps/web-antd/src/views/mes/dv/repair/modules/form.vue index ded9ae757..d9863755b 100644 --- a/apps/web-antd/src/views/mes/dv/repair/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/repair/modules/form.vue @@ -57,9 +57,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 提交维修工单 */ async function handleSubmit() { const { valid } = await formApi.validate(); @@ -164,7 +161,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/dv/subject/modules/form.vue b/apps/web-antd/src/views/mes/dv/subject/modules/form.vue index ebda266c9..a1f953a78 100644 --- a/apps/web-antd/src/views/mes/dv/subject/modules/form.vue +++ b/apps/web-antd/src/views/mes/dv/subject/modules/form.vue @@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -69,7 +66,7 @@ const [Modal, modalApi] = useVbenModal({ if (!isOpen) { return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/md/autocode/modules/form.vue b/apps/web-antd/src/views/mes/md/autocode/modules/form.vue index 04290bf51..75e6f9550 100644 --- a/apps/web-antd/src/views/mes/md/autocode/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/autocode/modules/form.vue @@ -76,7 +76,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData(); if (!data?.id) { diff --git a/apps/web-antd/src/views/mes/md/autocode/modules/part-form.vue b/apps/web-antd/src/views/mes/md/autocode/modules/part-form.vue index 205a2125b..d1ba56e4e 100644 --- a/apps/web-antd/src/views/mes/md/autocode/modules/part-form.vue +++ b/apps/web-antd/src/views/mes/md/autocode/modules/part-form.vue @@ -86,7 +86,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-antd/src/views/mes/md/client/modules/form.vue b/apps/web-antd/src/views/mes/md/client/modules/form.vue index 49e3a4eff..7b78ec05b 100644 --- a/apps/web-antd/src/views/mes/md/client/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/client/modules/form.vue @@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -75,7 +72,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'productSalesLine'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/md/item/modules/form.vue b/apps/web-antd/src/views/mes/md/item/modules/form.vue index 15ff74a2b..9008507c5 100644 --- a/apps/web-antd/src/views/mes/md/item/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/item/modules/form.vue @@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看物料条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -103,7 +100,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'bom'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/md/item/type/modules/form.vue b/apps/web-antd/src/views/mes/md/item/type/modules/form.vue index 9d59b4646..3b91a56ec 100644 --- a/apps/web-antd/src/views/mes/md/item/type/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/item/type/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -65,7 +62,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-antd/src/views/mes/md/unitmeasure/modules/form.vue b/apps/web-antd/src/views/mes/md/unitmeasure/modules/form.vue index cfd906fc8..3f4e0af35 100644 --- a/apps/web-antd/src/views/mes/md/unitmeasure/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/unitmeasure/modules/form.vue @@ -68,7 +68,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-antd/src/views/mes/md/vendor/modules/form.vue b/apps/web-antd/src/views/mes/md/vendor/modules/form.vue index f12e7c206..a55a2cab9 100644 --- a/apps/web-antd/src/views/mes/md/vendor/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/vendor/modules/form.vue @@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'itemReceiptLine'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/md/workstation/modules/form.vue b/apps/web-antd/src/views/mes/md/workstation/modules/form.vue index aa3f269bf..204cb5214 100644 --- a/apps/web-antd/src/views/mes/md/workstation/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/workstation/modules/form.vue @@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看工作站条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -102,7 +99,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'machine'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/md/workstation/workshop/modules/form.vue b/apps/web-antd/src/views/mes/md/workstation/workshop/modules/form.vue index 1b708029b..372006587 100644 --- a/apps/web-antd/src/views/mes/md/workstation/workshop/modules/form.vue +++ b/apps/web-antd/src/views/mes/md/workstation/workshop/modules/form.vue @@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看车间条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -92,7 +89,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/pro/andon/record/modules/form.vue b/apps/web-antd/src/views/mes/pro/andon/record/modules/form.vue index 1b7272681..e233b77f1 100644 --- a/apps/web-antd/src/views/mes/pro/andon/record/modules/form.vue +++ b/apps/web-antd/src/views/mes/pro/andon/record/modules/form.vue @@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formType.value, formApi) }); - /** 处置:保存(保持 ACTIVE 状态) */ async function handleSave() { modalApi.lock(); @@ -136,7 +133,6 @@ const [Modal, modalApi] = useVbenModal({ formType.value = data.formType; formApi.setState({ schema: useFormSchema(formType.value, formApi) }); modalApi.setState({ showConfirmButton: formType.value === 'create' }); - await formApi.resetForm(); if (formType.value === 'create') { // 新增时,发起人默认为当前用户 await formApi.setValues({ userId: userStore.userInfo?.id }); diff --git a/apps/web-antd/src/views/mes/pro/feedback/modules/form.vue b/apps/web-antd/src/views/mes/pro/feedback/modules/form.vue index d0c8a84ce..40e22c3e8 100644 --- a/apps/web-antd/src/views/mes/pro/feedback/modules/form.vue +++ b/apps/web-antd/src/views/mes/pro/feedback/modules/form.vue @@ -82,9 +82,6 @@ const [Form, formApi] = useVbenForm({ wrapperClass: 'grid-cols-3', }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formType.value, formApi) }); - /** 提交前对齐数量:根据 checkFlag 决定 uncheck/合格/不良归零策略 */ function alignQuantity(data: MesProFeedbackApi.Feedback) { if (data.checkFlag) { @@ -239,7 +236,6 @@ const [Modal, modalApi] = useVbenModal({ showConfirmButton: formType.value !== 'detail' && formType.value !== 'approve', }); - await formApi.resetForm(); if (!data?.id) { // 新增:默认报工人和报工时间,并自动生成报工单号 const code = await generateAutoCode( diff --git a/apps/web-antd/src/views/mes/pro/process/modules/content-form.vue b/apps/web-antd/src/views/mes/pro/process/modules/content-form.vue index eb4270b25..ff0c33ac2 100644 --- a/apps/web-antd/src/views/mes/pro/process/modules/content-form.vue +++ b/apps/web-antd/src/views/mes/pro/process/modules/content-form.vue @@ -65,7 +65,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-antd/src/views/mes/pro/process/modules/form.vue b/apps/web-antd/src/views/mes/pro/process/modules/form.vue index a3d910c8d..540c0bea6 100644 --- a/apps/web-antd/src/views/mes/pro/process/modules/form.vue +++ b/apps/web-antd/src/views/mes/pro/process/modules/form.vue @@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({ wrapperClass: 'grid-cols-3', }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -79,7 +76,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/pro/route/modules/bom-form.vue b/apps/web-antd/src/views/mes/pro/route/modules/bom-form.vue index 8e2f4c243..e03a816bd 100644 --- a/apps/web-antd/src/views/mes/pro/route/modules/bom-form.vue +++ b/apps/web-antd/src/views/mes/pro/route/modules/bom-form.vue @@ -78,7 +78,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-antd/src/views/mes/pro/route/modules/form.vue b/apps/web-antd/src/views/mes/pro/route/modules/form.vue index f381fe8d2..9defcdcf5 100644 --- a/apps/web-antd/src/views/mes/pro/route/modules/form.vue +++ b/apps/web-antd/src/views/mes/pro/route/modules/form.vue @@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({ wrapperClass: 'grid-cols-2', }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTab.value = 'process'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/pro/route/modules/process-form.vue b/apps/web-antd/src/views/mes/pro/route/modules/process-form.vue index d4f7681fa..b742c6388 100644 --- a/apps/web-antd/src/views/mes/pro/route/modules/process-form.vue +++ b/apps/web-antd/src/views/mes/pro/route/modules/process-form.vue @@ -81,7 +81,6 @@ const [Modal, modalApi] = useVbenModal({ // 工序下拉依赖远程数据,schema 在弹窗打开时再生成 const schema = await loadSchema(); formApi.setState({ schema }); - await formApi.resetForm(); } finally { modalApi.unlock(); } diff --git a/apps/web-antd/src/views/mes/pro/route/modules/product-form.vue b/apps/web-antd/src/views/mes/pro/route/modules/product-form.vue index 47ce4ba12..a3b0e5d25 100644 --- a/apps/web-antd/src/views/mes/pro/route/modules/product-form.vue +++ b/apps/web-antd/src/views/mes/pro/route/modules/product-form.vue @@ -83,7 +83,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-antd/src/views/mes/qc/defect/modules/form.vue b/apps/web-antd/src/views/mes/qc/defect/modules/form.vue index a3dc3badf..a0076a4e8 100644 --- a/apps/web-antd/src/views/mes/qc/defect/modules/form.vue +++ b/apps/web-antd/src/views/mes/qc/defect/modules/form.vue @@ -34,9 +34,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -61,7 +58,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-antd/src/views/mes/qc/indicator/modules/form.vue b/apps/web-antd/src/views/mes/qc/indicator/modules/form.vue index 7b40dbfd1..d9a8ee39c 100644 --- a/apps/web-antd/src/views/mes/qc/indicator/modules/form.vue +++ b/apps/web-antd/src/views/mes/qc/indicator/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用(生成编码、跨字段联动),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-antd/src/views/mes/qc/template/modules/form.vue b/apps/web-antd/src/views/mes/qc/template/modules/form.vue index 701d0f3fe..4966a298c 100644 --- a/apps/web-antd/src/views/mes/qc/template/modules/form.vue +++ b/apps/web-antd/src/views/mes/qc/template/modules/form.vue @@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (formType.value === 'detail') { @@ -80,7 +77,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'indicator'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-antd/src/views/mes/qc/template/modules/indicator-form.vue b/apps/web-antd/src/views/mes/qc/template/modules/indicator-form.vue index cfbd1a238..59ac8cf69 100644 --- a/apps/web-antd/src/views/mes/qc/template/modules/indicator-form.vue +++ b/apps/web-antd/src/views/mes/qc/template/modules/indicator-form.vue @@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData< MesQcTemplateIndicatorApi.TemplateIndicator & { templateId: number } diff --git a/apps/web-antd/src/views/mes/qc/template/modules/item-form.vue b/apps/web-antd/src/views/mes/qc/template/modules/item-form.vue index 72262de2c..f417263b2 100644 --- a/apps/web-antd/src/views/mes/qc/template/modules/item-form.vue +++ b/apps/web-antd/src/views/mes/qc/template/modules/item-form.vue @@ -68,7 +68,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData< MesQcTemplateItemApi.TemplateItem & { templateId: number } diff --git a/apps/web-antd/src/views/mes/tm/tool/modules/form.vue b/apps/web-antd/src/views/mes/tm/tool/modules/form.vue index f964457e0..03f88e467 100644 --- a/apps/web-antd/src/views/mes/tm/tool/modules/form.vue +++ b/apps/web-antd/src/views/mes/tm/tool/modules/form.vue @@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看工具条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -90,7 +87,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/tm/tool/type/modules/form.vue b/apps/web-antd/src/views/mes/tm/tool/type/modules/form.vue index 9b8ce574b..172563cda 100644 --- a/apps/web-antd/src/views/mes/tm/tool/type/modules/form.vue +++ b/apps/web-antd/src/views/mes/tm/tool/type/modules/form.vue @@ -43,9 +43,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -74,7 +71,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-antd/src/views/mes/utils/constants.ts b/apps/web-antd/src/views/mes/utils/constants.ts index 15993c32a..d931e83d1 100644 --- a/apps/web-antd/src/views/mes/utils/constants.ts +++ b/apps/web-antd/src/views/mes/utils/constants.ts @@ -141,6 +141,8 @@ export const MesAutoCodeRuleCode = { PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE', QC_DEFECT_CODE: 'QC_DEFECT_CODE', QC_INDICATOR_CODE: 'QC_INDICATOR_CODE', + QC_INDICATOR_RESULT_CODE: 'QC_INDICATOR_RESULT_CODE', + QC_IQC_CODE: 'QC_IQC_CODE', QC_TEMPLATE_CODE: 'QC_TEMPLATE_CODE', TM_TOOL_TYPE_CODE: 'TM_TOOL_TYPE_CODE', TM_TOOL_CODE: 'TM_TOOL_CODE', @@ -215,6 +217,47 @@ export const MesQcResultValueType = { FILE: 5, } as const; +/** MES 业务类型常量 */ +export const MesBizTypeEnum = { + // WM 仓库模块 [100, 200) + WM_ARRIVAL_NOTICE: 100, // 到货通知单 + WM_RETURN_ISSUE: 116, // 生产退料 + WM_PRODUCT_SALES: 118, // 销售出库 + WM_RETURN_SALES: 119, // 销售退货入库 + WM_OUTSOURCE_RECPT: 121, // 外协入库 + + // PRO 生产模块 [300, 400) + PRO_FEEDBACK: 304, // 生产报工 +} as const; + +/** MES 质检来源单据类型枚举 */ +export const MesQcSourceDocTypeEnum = { + // IQC + ARRIVAL_NOTICE: MesBizTypeEnum.WM_ARRIVAL_NOTICE, + OUTSOURCE_RECPT: MesBizTypeEnum.WM_OUTSOURCE_RECPT, + // IPQC + PRO_FEEDBACK: MesBizTypeEnum.PRO_FEEDBACK, + // OQC + PRODUCT_SALES: MesBizTypeEnum.WM_PRODUCT_SALES, + // RQC + RETURN_ISSUE: MesBizTypeEnum.WM_RETURN_ISSUE, + RETURN_SALES: MesBizTypeEnum.WM_RETURN_SALES, +} as const; + +/** MES 质检类型枚举 */ +export const MesQcTypeEnum = { + IQC: 1, // 来料检验 + IPQC: 2, // 过程检验 + OQC: 3, // 出货检验 + RQC: 4, // 退货检验 +} as const; + +/** MES 质检单状态枚举 */ +export const MesQcStatusEnum = { + DRAFT: MesOrderStatusConstants.DRAFT, + FINISHED: MesOrderStatusConstants.FINISHED, +} as const; + /** MES 编码规则分段类型枚举 */ export const MesAutoCodePartTypeEnum = { INPUT: 1, diff --git a/apps/web-antd/src/views/wms/md/item/brand/data.ts b/apps/web-antd/src/views/wms/md/item/brand/data.ts index 5865a1215..55feec3fe 100644 --- a/apps/web-antd/src/views/wms/md/item/brand/data.ts +++ b/apps/web-antd/src/views/wms/md/item/brand/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h } from 'vue'; @@ -9,7 +9,7 @@ import { z } from '#/adapter/form'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改商品品牌的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-antd/src/views/wms/md/item/brand/modules/form.vue b/apps/web-antd/src/views/wms/md/item/brand/modules/form.vue index 8b69b50be..9f20b8b34 100644 --- a/apps/web-antd/src/views/wms/md/item/brand/modules/form.vue +++ b/apps/web-antd/src/views/wms/md/item/brand/modules/form.vue @@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -66,7 +63,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { return; diff --git a/apps/web-antd/src/views/wms/md/item/category/data.ts b/apps/web-antd/src/views/wms/md/item/category/data.ts index 12169a006..30e3823a7 100644 --- a/apps/web-antd/src/views/wms/md/item/category/data.ts +++ b/apps/web-antd/src/views/wms/md/item/category/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { WmsItemCategoryApi } from '#/api/wms/md/item/category'; @@ -15,7 +15,7 @@ import { getItemCategorySimpleList } from '#/api/wms/md/item/category'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改商品分类的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { fieldName: 'id', diff --git a/apps/web-antd/src/views/wms/md/item/category/modules/form.vue b/apps/web-antd/src/views/wms/md/item/category/modules/form.vue index 584dc0d95..b4b26853d 100644 --- a/apps/web-antd/src/views/wms/md/item/category/modules/form.vue +++ b/apps/web-antd/src/views/wms/md/item/category/modules/form.vue @@ -41,9 +41,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -70,7 +67,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { formData.value = data; diff --git a/apps/web-antd/src/views/wms/md/item/data.ts b/apps/web-antd/src/views/wms/md/item/data.ts index 9b4a4e555..47482e5ac 100644 --- a/apps/web-antd/src/views/wms/md/item/data.ts +++ b/apps/web-antd/src/views/wms/md/item/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h, markRaw } from 'vue'; @@ -13,7 +13,7 @@ import { WmsItemBrandSelect } from './brand/components'; import { WmsItemCategorySelect } from './category/components'; /** 新增/修改商品的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-antd/src/views/wms/md/item/modules/form.vue b/apps/web-antd/src/views/wms/md/item/modules/form.vue index ccc707efd..482eca9a8 100644 --- a/apps/web-antd/src/views/wms/md/item/modules/form.vue +++ b/apps/web-antd/src/views/wms/md/item/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - async function resetSkuForm(item?: WmsItemApi.Item) { await nextTick(); await skuFormRef.value?.setRows(item?.skus); @@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); await resetSkuForm(); // 加载数据 const data = modalApi.getData(); diff --git a/apps/web-antd/src/views/wms/md/merchant/data.ts b/apps/web-antd/src/views/wms/md/merchant/data.ts index 5f76f7387..bbc16d574 100644 --- a/apps/web-antd/src/views/wms/md/merchant/data.ts +++ b/apps/web-antd/src/views/wms/md/merchant/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h } from 'vue'; @@ -12,7 +12,7 @@ import { z } from '#/adapter/form'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改往来企业的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-antd/src/views/wms/md/merchant/modules/form.vue b/apps/web-antd/src/views/wms/md/merchant/modules/form.vue index 35871a5ac..4a1329efb 100644 --- a/apps/web-antd/src/views/wms/md/merchant/modules/form.vue +++ b/apps/web-antd/src/views/wms/md/merchant/modules/form.vue @@ -40,9 +40,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { return; diff --git a/apps/web-antd/src/views/wms/md/warehouse/data.ts b/apps/web-antd/src/views/wms/md/warehouse/data.ts index e64ccecd3..7b1813a09 100644 --- a/apps/web-antd/src/views/wms/md/warehouse/data.ts +++ b/apps/web-antd/src/views/wms/md/warehouse/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h } from 'vue'; @@ -9,7 +9,7 @@ import { z } from '#/adapter/form'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改仓库的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-antd/src/views/wms/md/warehouse/modules/form.vue b/apps/web-antd/src/views/wms/md/warehouse/modules/form.vue index 95d3e7eaa..9d16aa0fd 100644 --- a/apps/web-antd/src/views/wms/md/warehouse/modules/form.vue +++ b/apps/web-antd/src/views/wms/md/warehouse/modules/form.vue @@ -40,9 +40,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -69,6 +66,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { await formApi.setValues({ sort: 0 }); diff --git a/apps/web-antd/src/views/wms/order/check/modules/form.vue b/apps/web-antd/src/views/wms/order/check/modules/form.vue index 59e87dac9..6094ec1b2 100644 --- a/apps/web-antd/src/views/wms/order/check/modules/form.vue +++ b/apps/web-antd/src/views/wms/order/check/modules/form.vue @@ -535,7 +535,6 @@ const [Modal, modalApi] = useVbenModal({ setDetails([]); return; } - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-antd/src/views/wms/order/movement/modules/form.vue b/apps/web-antd/src/views/wms/order/movement/modules/form.vue index f1d2a7d30..1e0bf8f5d 100644 --- a/apps/web-antd/src/views/wms/order/movement/modules/form.vue +++ b/apps/web-antd/src/views/wms/order/movement/modules/form.vue @@ -373,7 +373,6 @@ const [Modal, modalApi] = useVbenModal({ setDetails([]); return; } - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-antd/src/views/wms/order/receipt/modules/form.vue b/apps/web-antd/src/views/wms/order/receipt/modules/form.vue index 2b7acf71c..fd47e02ce 100644 --- a/apps/web-antd/src/views/wms/order/receipt/modules/form.vue +++ b/apps/web-antd/src/views/wms/order/receipt/modules/form.vue @@ -317,7 +317,6 @@ const [Modal, modalApi] = useVbenModal({ setDetails([]); return; } - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-antd/src/views/wms/order/shipment/modules/form.vue b/apps/web-antd/src/views/wms/order/shipment/modules/form.vue index eb077a1c7..4928298ee 100644 --- a/apps/web-antd/src/views/wms/order/shipment/modules/form.vue +++ b/apps/web-antd/src/views/wms/order/shipment/modules/form.vue @@ -360,7 +360,6 @@ const [Modal, modalApi] = useVbenModal({ return; } initializing.value = true; - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-ele/src/views/crm/permission/modules/transfer-form.vue b/apps/web-ele/src/views/crm/permission/modules/transfer-form.vue index 594777048..6f5b39621 100644 --- a/apps/web-ele/src/views/crm/permission/modules/transfer-form.vue +++ b/apps/web-ele/src/views/crm/permission/modules/transfer-form.vue @@ -100,7 +100,6 @@ const [Modal, modalApi] = useVbenModal({ }, async onOpenChange(isOpen: boolean) { if (!isOpen) { - await formApi.resetForm(); return; } // 加载数据 diff --git a/apps/web-ele/src/views/iot/product/product/data.ts b/apps/web-ele/src/views/iot/product/product/data.ts index f108be5f8..6e5926077 100644 --- a/apps/web-ele/src/views/iot/product/product/data.ts +++ b/apps/web-ele/src/views/iot/product/product/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { IotProductApi } from '#/api/iot/product/product'; @@ -14,7 +14,7 @@ import { getSimpleProductCategoryList } from '#/api/iot/product/category'; /** 基础表单字段(不含图标、图片、描述) */ export function useBasicFormSchema( - formApi?: any, + formApi?: VbenFormApi, generateProductKey?: () => string, ): VbenFormSchema[] { return [ diff --git a/apps/web-ele/src/views/iot/product/product/modules/form.vue b/apps/web-ele/src/views/iot/product/product/modules/form.vue index 58c9186a5..ad6a790b3 100644 --- a/apps/web-ele/src/views/iot/product/product/modules/form.vue +++ b/apps/web-ele/src/views/iot/product/product/modules/form.vue @@ -60,9 +60,6 @@ const [AdvancedForm, advancedFormApi] = useVbenForm({ showDefaultActions: false, }); -/** 基础表单需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useBasicFormSchema(formApi, generateProductKey) }); - /** 获取高级表单的值(如果表单未挂载,则从 formData 中获取) */ async function getAdvancedFormValues() { if (advancedFormApi.isMounted) { @@ -106,6 +103,9 @@ const [Modal, modalApi] = useVbenModal({ activeKey.value = []; return; } + formApi.setState({ + schema: useBasicFormSchema(formApi, generateProductKey), + }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-ele/src/views/iot/rule/data/rule/modules/form.vue b/apps/web-ele/src/views/iot/rule/data/rule/modules/form.vue index 7f4adf27e..393f17d09 100644 --- a/apps/web-ele/src/views/iot/rule/data/rule/modules/form.vue +++ b/apps/web-ele/src/views/iot/rule/data/rule/modules/form.vue @@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({ async onOpenChange(isOpen: boolean) { if (!isOpen) { formData.value = undefined; - await formApi.resetForm(); sourceConfigRef.value?.setData([]); return; } diff --git a/apps/web-ele/src/views/mall/product/spu/form/modules/product-property-add-form.vue b/apps/web-ele/src/views/mall/product/spu/form/modules/product-property-add-form.vue index 789ecd139..6516e30ea 100644 --- a/apps/web-ele/src/views/mall/product/spu/form/modules/product-property-add-form.vue +++ b/apps/web-ele/src/views/mall/product/spu/form/modules/product-property-add-form.vue @@ -134,7 +134,6 @@ const [Modal, modalApi] = useVbenModal({ if (!isOpen) { return; } - await formApi.resetForm(); }, }); diff --git a/apps/web-ele/src/views/mall/promotion/discountActivity/modules/form.vue b/apps/web-ele/src/views/mall/promotion/discountActivity/modules/form.vue index 3dd8c1867..b529caee1 100644 --- a/apps/web-ele/src/views/mall/promotion/discountActivity/modules/form.vue +++ b/apps/web-ele/src/views/mall/promotion/discountActivity/modules/form.vue @@ -7,7 +7,7 @@ import type { SpuProperty, } from '#/views/mall/product/spu/components'; -import { computed, nextTick, ref } from 'vue'; +import { computed, ref } from 'vue'; import { useVbenForm, useVbenModal } from '@vben/common-ui'; import { PromotionDiscountTypeEnum } from '@vben/constants'; @@ -213,13 +213,11 @@ function handleSkuDiscountPercentChange(row: SkuExtension) { } /** 重置表单 */ -async function resetForm() { +function resetForm() { spuList.value = []; spuPropertyList.value = []; spuIdList.value = []; formData.value = {}; - await nextTick(); - await formApi.resetForm(); } // ================= 弹窗相关 ================= @@ -264,7 +262,7 @@ const [Modal, modalApi] = useVbenModal({ }, async onOpenChange(isOpen: boolean) { if (!isOpen) { - await resetForm(); + resetForm(); return; } // 加载数据 diff --git a/apps/web-ele/src/views/mes/cal/holiday/modules/form.vue b/apps/web-ele/src/views/mes/cal/holiday/modules/form.vue index b7d155991..38c8c74b9 100644 --- a/apps/web-ele/src/views/mes/cal/holiday/modules/form.vue +++ b/apps/web-ele/src/views/mes/cal/holiday/modules/form.vue @@ -50,7 +50,6 @@ const [Modal, modalApi] = useVbenModal({ if (!isOpen) { return; } - await formApi.resetForm(); const data = modalApi.getData<{ day: string }>(); if (!data?.day) { return; diff --git a/apps/web-ele/src/views/mes/cal/plan/modules/form.vue b/apps/web-ele/src/views/mes/cal/plan/modules/form.vue index 4300f3edf..433658c5b 100644 --- a/apps/web-ele/src/views/mes/cal/plan/modules/form.vue +++ b/apps/web-ele/src/views/mes/cal/plan/modules/form.vue @@ -50,9 +50,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 确认排班计划 */ async function handleConfirmPlan() { const { valid } = await formApi.validate(); @@ -107,7 +104,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'shift'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/cal/team/modules/form.vue b/apps/web-ele/src/views/mes/cal/team/modules/form.vue index 17a70a355..959de5dc0 100644 --- a/apps/web-ele/src/views/mes/cal/team/modules/form.vue +++ b/apps/web-ele/src/views/mes/cal/team/modules/form.vue @@ -45,9 +45,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'member'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/dv/checkplan/modules/form.vue b/apps/web-ele/src/views/mes/dv/checkplan/modules/form.vue index edda2c7b8..179675c36 100644 --- a/apps/web-ele/src/views/mes/dv/checkplan/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/checkplan/modules/form.vue @@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -81,7 +78,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'machinery'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/dv/checkrecord/modules/form.vue b/apps/web-ele/src/views/mes/dv/checkrecord/modules/form.vue index c355deebc..67d2874a8 100644 --- a/apps/web-ele/src/views/mes/dv/checkrecord/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/checkrecord/modules/form.vue @@ -103,7 +103,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/dv/machinery/modules/form.vue b/apps/web-ele/src/views/mes/dv/machinery/modules/form.vue index 524946e24..e8727173a 100644 --- a/apps/web-ele/src/views/mes/dv/machinery/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/machinery/modules/form.vue @@ -47,9 +47,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formType.value, formApi) }); - /** 查看设备条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -91,7 +88,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); subTabsName.value = 'check'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/dv/machinery/type/modules/form.vue b/apps/web-ele/src/views/mes/dv/machinery/type/modules/form.vue index 5a3aae39c..d7357471e 100644 --- a/apps/web-ele/src/views/mes/dv/machinery/type/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/machinery/type/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-ele/src/views/mes/dv/maintenrecord/modules/form.vue b/apps/web-ele/src/views/mes/dv/maintenrecord/modules/form.vue index 02158e5cd..5211903a8 100644 --- a/apps/web-ele/src/views/mes/dv/maintenrecord/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/maintenrecord/modules/form.vue @@ -110,7 +110,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/dv/repair/modules/form.vue b/apps/web-ele/src/views/mes/dv/repair/modules/form.vue index fcff4d0ea..695138673 100644 --- a/apps/web-ele/src/views/mes/dv/repair/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/repair/modules/form.vue @@ -57,9 +57,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 提交维修工单 */ async function handleSubmit() { const { valid } = await formApi.validate(); @@ -164,7 +161,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/dv/subject/modules/form.vue b/apps/web-ele/src/views/mes/dv/subject/modules/form.vue index abdb412be..82e0bc189 100644 --- a/apps/web-ele/src/views/mes/dv/subject/modules/form.vue +++ b/apps/web-ele/src/views/mes/dv/subject/modules/form.vue @@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -69,7 +66,7 @@ const [Modal, modalApi] = useVbenModal({ if (!isOpen) { return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/md/autocode/modules/form.vue b/apps/web-ele/src/views/mes/md/autocode/modules/form.vue index a87d7b7ec..50b0261db 100644 --- a/apps/web-ele/src/views/mes/md/autocode/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/autocode/modules/form.vue @@ -76,7 +76,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData(); if (!data?.id) { diff --git a/apps/web-ele/src/views/mes/md/autocode/modules/part-form.vue b/apps/web-ele/src/views/mes/md/autocode/modules/part-form.vue index ee839560a..efc1e95a1 100644 --- a/apps/web-ele/src/views/mes/md/autocode/modules/part-form.vue +++ b/apps/web-ele/src/views/mes/md/autocode/modules/part-form.vue @@ -86,7 +86,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-ele/src/views/mes/md/client/modules/form.vue b/apps/web-ele/src/views/mes/md/client/modules/form.vue index 3d22f5f4e..1b66c01c5 100644 --- a/apps/web-ele/src/views/mes/md/client/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/client/modules/form.vue @@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -75,7 +72,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'productSalesLine'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/md/item/modules/form.vue b/apps/web-ele/src/views/mes/md/item/modules/form.vue index 913e02eec..101113e24 100644 --- a/apps/web-ele/src/views/mes/md/item/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/item/modules/form.vue @@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看物料条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -103,7 +100,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'bom'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/md/item/type/modules/form.vue b/apps/web-ele/src/views/mes/md/item/type/modules/form.vue index 580690139..7c6f7328d 100644 --- a/apps/web-ele/src/views/mes/md/item/type/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/item/type/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -65,7 +62,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-ele/src/views/mes/md/unitmeasure/modules/form.vue b/apps/web-ele/src/views/mes/md/unitmeasure/modules/form.vue index dc5eb9cdf..1167c4195 100644 --- a/apps/web-ele/src/views/mes/md/unitmeasure/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/unitmeasure/modules/form.vue @@ -68,7 +68,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-ele/src/views/mes/md/vendor/modules/form.vue b/apps/web-ele/src/views/mes/md/vendor/modules/form.vue index 433e7f8dc..66c020901 100644 --- a/apps/web-ele/src/views/mes/md/vendor/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/vendor/modules/form.vue @@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'itemReceiptLine'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/md/workstation/modules/form.vue b/apps/web-ele/src/views/mes/md/workstation/modules/form.vue index b9d2e87ae..0e24bae46 100644 --- a/apps/web-ele/src/views/mes/md/workstation/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/workstation/modules/form.vue @@ -52,9 +52,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看工作站条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -102,7 +99,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'machine'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/md/workstation/workshop/modules/form.vue b/apps/web-ele/src/views/mes/md/workstation/workshop/modules/form.vue index 191bbbd94..3f8fe45cd 100644 --- a/apps/web-ele/src/views/mes/md/workstation/workshop/modules/form.vue +++ b/apps/web-ele/src/views/mes/md/workstation/workshop/modules/form.vue @@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看车间条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -92,7 +89,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/pro/andon/record/modules/form.vue b/apps/web-ele/src/views/mes/pro/andon/record/modules/form.vue index 83261cd22..7963930d5 100644 --- a/apps/web-ele/src/views/mes/pro/andon/record/modules/form.vue +++ b/apps/web-ele/src/views/mes/pro/andon/record/modules/form.vue @@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formType.value, formApi) }); - /** 处置:保存(保持 ACTIVE 状态) */ async function handleSave() { modalApi.lock(); @@ -136,7 +133,6 @@ const [Modal, modalApi] = useVbenModal({ formType.value = data.formType; formApi.setState({ schema: useFormSchema(formType.value, formApi) }); modalApi.setState({ showConfirmButton: formType.value === 'create' }); - await formApi.resetForm(); if (formType.value === 'create') { // 新增时,发起人默认为当前用户 await formApi.setValues({ userId: userStore.userInfo?.id }); diff --git a/apps/web-ele/src/views/mes/pro/feedback/modules/form.vue b/apps/web-ele/src/views/mes/pro/feedback/modules/form.vue index 91896b74c..879223439 100644 --- a/apps/web-ele/src/views/mes/pro/feedback/modules/form.vue +++ b/apps/web-ele/src/views/mes/pro/feedback/modules/form.vue @@ -88,9 +88,6 @@ const [Form, formApi] = useVbenForm({ wrapperClass: 'grid-cols-3', }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formType.value, formApi) }); - /** 提交前对齐数量:根据 checkFlag 决定 uncheck/合格/不良归零策略 */ function alignQuantity(data: MesProFeedbackApi.Feedback) { if (data.checkFlag) { @@ -247,7 +244,6 @@ const [Modal, modalApi] = useVbenModal({ showConfirmButton: formType.value !== 'detail' && formType.value !== 'approve', }); - await formApi.resetForm(); if (!data?.id) { // 新增:默认报工人和报工时间,并自动生成报工单号 const code = await generateAutoCode( diff --git a/apps/web-ele/src/views/mes/pro/process/modules/content-form.vue b/apps/web-ele/src/views/mes/pro/process/modules/content-form.vue index 46544dccd..62675bdb2 100644 --- a/apps/web-ele/src/views/mes/pro/process/modules/content-form.vue +++ b/apps/web-ele/src/views/mes/pro/process/modules/content-form.vue @@ -65,7 +65,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-ele/src/views/mes/pro/process/modules/form.vue b/apps/web-ele/src/views/mes/pro/process/modules/form.vue index 4afb9aa04..451f6d6a8 100644 --- a/apps/web-ele/src/views/mes/pro/process/modules/form.vue +++ b/apps/web-ele/src/views/mes/pro/process/modules/form.vue @@ -48,9 +48,6 @@ const [Form, formApi] = useVbenForm({ wrapperClass: 'grid-cols-3', }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -79,7 +76,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/pro/route/modules/bom-form.vue b/apps/web-ele/src/views/mes/pro/route/modules/bom-form.vue index e348b31b4..5feeb51f3 100644 --- a/apps/web-ele/src/views/mes/pro/route/modules/bom-form.vue +++ b/apps/web-ele/src/views/mes/pro/route/modules/bom-form.vue @@ -78,7 +78,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-ele/src/views/mes/pro/route/modules/form.vue b/apps/web-ele/src/views/mes/pro/route/modules/form.vue index ce15b7657..105b7aee7 100644 --- a/apps/web-ele/src/views/mes/pro/route/modules/form.vue +++ b/apps/web-ele/src/views/mes/pro/route/modules/form.vue @@ -44,9 +44,6 @@ const [Form, formApi] = useVbenForm({ wrapperClass: 'grid-cols-2', }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -82,7 +79,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTab.value = 'process'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/pro/route/modules/process-form.vue b/apps/web-ele/src/views/mes/pro/route/modules/process-form.vue index eb5fe30a0..af5e2938f 100644 --- a/apps/web-ele/src/views/mes/pro/route/modules/process-form.vue +++ b/apps/web-ele/src/views/mes/pro/route/modules/process-form.vue @@ -81,7 +81,6 @@ const [Modal, modalApi] = useVbenModal({ // 工序下拉依赖远程数据,schema 在弹窗打开时再生成 const schema = await loadSchema(); formApi.setState({ schema }); - await formApi.resetForm(); } finally { modalApi.unlock(); } diff --git a/apps/web-ele/src/views/mes/pro/route/modules/product-form.vue b/apps/web-ele/src/views/mes/pro/route/modules/product-form.vue index f07c1a532..626506762 100644 --- a/apps/web-ele/src/views/mes/pro/route/modules/product-form.vue +++ b/apps/web-ele/src/views/mes/pro/route/modules/product-form.vue @@ -83,7 +83,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData<{ id?: number; diff --git a/apps/web-ele/src/views/mes/qc/defect/modules/form.vue b/apps/web-ele/src/views/mes/qc/defect/modules/form.vue index 0b0ce0cd6..7041c3d9e 100644 --- a/apps/web-ele/src/views/mes/qc/defect/modules/form.vue +++ b/apps/web-ele/src/views/mes/qc/defect/modules/form.vue @@ -34,9 +34,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -61,7 +58,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-ele/src/views/mes/qc/indicator/modules/form.vue b/apps/web-ele/src/views/mes/qc/indicator/modules/form.vue index 72ed12284..98444ed27 100644 --- a/apps/web-ele/src/views/mes/qc/indicator/modules/form.vue +++ b/apps/web-ele/src/views/mes/qc/indicator/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用(生成编码、跨字段联动),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData(); if (!data || !data.id) { diff --git a/apps/web-ele/src/views/mes/qc/template/modules/form.vue b/apps/web-ele/src/views/mes/qc/template/modules/form.vue index bfedadfc5..53672d7fa 100644 --- a/apps/web-ele/src/views/mes/qc/template/modules/form.vue +++ b/apps/web-ele/src/views/mes/qc/template/modules/form.vue @@ -49,9 +49,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用(生成编码按钮),所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (formType.value === 'detail') { @@ -80,7 +77,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); subTabsName.value = 'indicator'; // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); diff --git a/apps/web-ele/src/views/mes/qc/template/modules/indicator-form.vue b/apps/web-ele/src/views/mes/qc/template/modules/indicator-form.vue index 073ff2ca7..31581cd0a 100644 --- a/apps/web-ele/src/views/mes/qc/template/modules/indicator-form.vue +++ b/apps/web-ele/src/views/mes/qc/template/modules/indicator-form.vue @@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData< MesQcTemplateIndicatorApi.TemplateIndicator & { templateId: number } diff --git a/apps/web-ele/src/views/mes/qc/template/modules/item-form.vue b/apps/web-ele/src/views/mes/qc/template/modules/item-form.vue index 12df446f9..9a5f25a5e 100644 --- a/apps/web-ele/src/views/mes/qc/template/modules/item-form.vue +++ b/apps/web-ele/src/views/mes/qc/template/modules/item-form.vue @@ -69,7 +69,6 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); // 加载数据 const data = modalApi.getData< MesQcTemplateItemApi.TemplateItem & { templateId: number } diff --git a/apps/web-ele/src/views/mes/tm/tool/modules/form.vue b/apps/web-ele/src/views/mes/tm/tool/modules/form.vue index 8ab516ab1..ccb2b405e 100644 --- a/apps/web-ele/src/views/mes/tm/tool/modules/form.vue +++ b/apps/web-ele/src/views/mes/tm/tool/modules/form.vue @@ -46,9 +46,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - /** 查看工具条码 */ function handleBarcode() { if (!formData.value?.id) { @@ -90,7 +87,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/tm/tool/type/modules/form.vue b/apps/web-ele/src/views/mes/tm/tool/type/modules/form.vue index e9a3cc46f..99a3d1730 100644 --- a/apps/web-ele/src/views/mes/tm/tool/type/modules/form.vue +++ b/apps/web-ele/src/views/mes/tm/tool/type/modules/form.vue @@ -43,9 +43,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { if (isDetail.value) { @@ -74,7 +71,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); // 加载数据 const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; diff --git a/apps/web-ele/src/views/mes/utils/constants.ts b/apps/web-ele/src/views/mes/utils/constants.ts index 15993c32a..d931e83d1 100644 --- a/apps/web-ele/src/views/mes/utils/constants.ts +++ b/apps/web-ele/src/views/mes/utils/constants.ts @@ -141,6 +141,8 @@ export const MesAutoCodeRuleCode = { PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE', QC_DEFECT_CODE: 'QC_DEFECT_CODE', QC_INDICATOR_CODE: 'QC_INDICATOR_CODE', + QC_INDICATOR_RESULT_CODE: 'QC_INDICATOR_RESULT_CODE', + QC_IQC_CODE: 'QC_IQC_CODE', QC_TEMPLATE_CODE: 'QC_TEMPLATE_CODE', TM_TOOL_TYPE_CODE: 'TM_TOOL_TYPE_CODE', TM_TOOL_CODE: 'TM_TOOL_CODE', @@ -215,6 +217,47 @@ export const MesQcResultValueType = { FILE: 5, } as const; +/** MES 业务类型常量 */ +export const MesBizTypeEnum = { + // WM 仓库模块 [100, 200) + WM_ARRIVAL_NOTICE: 100, // 到货通知单 + WM_RETURN_ISSUE: 116, // 生产退料 + WM_PRODUCT_SALES: 118, // 销售出库 + WM_RETURN_SALES: 119, // 销售退货入库 + WM_OUTSOURCE_RECPT: 121, // 外协入库 + + // PRO 生产模块 [300, 400) + PRO_FEEDBACK: 304, // 生产报工 +} as const; + +/** MES 质检来源单据类型枚举 */ +export const MesQcSourceDocTypeEnum = { + // IQC + ARRIVAL_NOTICE: MesBizTypeEnum.WM_ARRIVAL_NOTICE, + OUTSOURCE_RECPT: MesBizTypeEnum.WM_OUTSOURCE_RECPT, + // IPQC + PRO_FEEDBACK: MesBizTypeEnum.PRO_FEEDBACK, + // OQC + PRODUCT_SALES: MesBizTypeEnum.WM_PRODUCT_SALES, + // RQC + RETURN_ISSUE: MesBizTypeEnum.WM_RETURN_ISSUE, + RETURN_SALES: MesBizTypeEnum.WM_RETURN_SALES, +} as const; + +/** MES 质检类型枚举 */ +export const MesQcTypeEnum = { + IQC: 1, // 来料检验 + IPQC: 2, // 过程检验 + OQC: 3, // 出货检验 + RQC: 4, // 退货检验 +} as const; + +/** MES 质检单状态枚举 */ +export const MesQcStatusEnum = { + DRAFT: MesOrderStatusConstants.DRAFT, + FINISHED: MesOrderStatusConstants.FINISHED, +} as const; + /** MES 编码规则分段类型枚举 */ export const MesAutoCodePartTypeEnum = { INPUT: 1, diff --git a/apps/web-ele/src/views/wms/md/item/brand/data.ts b/apps/web-ele/src/views/wms/md/item/brand/data.ts index cebea33e7..692c23138 100644 --- a/apps/web-ele/src/views/wms/md/item/brand/data.ts +++ b/apps/web-ele/src/views/wms/md/item/brand/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h } from 'vue'; @@ -9,7 +9,7 @@ import { z } from '#/adapter/form'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改商品品牌的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-ele/src/views/wms/md/item/brand/modules/form.vue b/apps/web-ele/src/views/wms/md/item/brand/modules/form.vue index 2630f0493..193796eae 100644 --- a/apps/web-ele/src/views/wms/md/item/brand/modules/form.vue +++ b/apps/web-ele/src/views/wms/md/item/brand/modules/form.vue @@ -39,9 +39,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -66,7 +63,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { return; diff --git a/apps/web-ele/src/views/wms/md/item/category/data.ts b/apps/web-ele/src/views/wms/md/item/category/data.ts index e6e536434..be1da0778 100644 --- a/apps/web-ele/src/views/wms/md/item/category/data.ts +++ b/apps/web-ele/src/views/wms/md/item/category/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { WmsItemCategoryApi } from '#/api/wms/md/item/category'; @@ -15,7 +15,7 @@ import { getItemCategorySimpleList } from '#/api/wms/md/item/category'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改商品分类的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { fieldName: 'id', diff --git a/apps/web-ele/src/views/wms/md/item/category/modules/form.vue b/apps/web-ele/src/views/wms/md/item/category/modules/form.vue index ec7b39937..369398247 100644 --- a/apps/web-ele/src/views/wms/md/item/category/modules/form.vue +++ b/apps/web-ele/src/views/wms/md/item/category/modules/form.vue @@ -41,9 +41,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -70,7 +67,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { formData.value = data; diff --git a/apps/web-ele/src/views/wms/md/item/data.ts b/apps/web-ele/src/views/wms/md/item/data.ts index 0e0fb4042..e8463a57a 100644 --- a/apps/web-ele/src/views/wms/md/item/data.ts +++ b/apps/web-ele/src/views/wms/md/item/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h, markRaw } from 'vue'; @@ -13,7 +13,7 @@ import { WmsItemBrandSelect } from './brand/components'; import { WmsItemCategorySelect } from './category/components'; /** 新增/修改商品的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-ele/src/views/wms/md/item/modules/form.vue b/apps/web-ele/src/views/wms/md/item/modules/form.vue index 87ec84ba6..67f42d878 100644 --- a/apps/web-ele/src/views/wms/md/item/modules/form.vue +++ b/apps/web-ele/src/views/wms/md/item/modules/form.vue @@ -38,9 +38,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - async function resetSkuForm(item?: WmsItemApi.Item) { await nextTick(); await skuFormRef.value?.setRows(item?.skus); @@ -77,7 +74,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); await resetSkuForm(); // 加载数据 const data = modalApi.getData(); diff --git a/apps/web-ele/src/views/wms/md/merchant/data.ts b/apps/web-ele/src/views/wms/md/merchant/data.ts index 95903f7b1..189c6870b 100644 --- a/apps/web-ele/src/views/wms/md/merchant/data.ts +++ b/apps/web-ele/src/views/wms/md/merchant/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h } from 'vue'; @@ -12,7 +12,7 @@ import { z } from '#/adapter/form'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改往来企业的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-ele/src/views/wms/md/merchant/modules/form.vue b/apps/web-ele/src/views/wms/md/merchant/modules/form.vue index 2e4e2807f..bdefaa2c8 100644 --- a/apps/web-ele/src/views/wms/md/merchant/modules/form.vue +++ b/apps/web-ele/src/views/wms/md/merchant/modules/form.vue @@ -40,9 +40,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -67,7 +64,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } - await formApi.resetForm(); + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { return; diff --git a/apps/web-ele/src/views/wms/md/warehouse/data.ts b/apps/web-ele/src/views/wms/md/warehouse/data.ts index 42cca9655..0803bf321 100644 --- a/apps/web-ele/src/views/wms/md/warehouse/data.ts +++ b/apps/web-ele/src/views/wms/md/warehouse/data.ts @@ -1,4 +1,4 @@ -import type { VbenFormSchema } from '#/adapter/form'; +import type { VbenFormApi, VbenFormSchema } from '#/adapter/form'; import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import { h } from 'vue'; @@ -9,7 +9,7 @@ import { z } from '#/adapter/form'; import { generateWmsCode } from '#/views/wms/utils/constants'; /** 新增/修改仓库的表单 */ -export function useFormSchema(formApi?: any): VbenFormSchema[] { +export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { return [ { component: 'Input', diff --git a/apps/web-ele/src/views/wms/md/warehouse/modules/form.vue b/apps/web-ele/src/views/wms/md/warehouse/modules/form.vue index 93709fe89..985092a7f 100644 --- a/apps/web-ele/src/views/wms/md/warehouse/modules/form.vue +++ b/apps/web-ele/src/views/wms/md/warehouse/modules/form.vue @@ -40,9 +40,6 @@ const [Form, formApi] = useVbenForm({ showDefaultActions: false, }); -/** 表单 schema 需要 formApi 引用,所以通过 setState 设置 schema */ -formApi.setState({ schema: useFormSchema(formApi) }); - const [Modal, modalApi] = useVbenModal({ async onConfirm() { const { valid } = await formApi.validate(); @@ -69,6 +66,7 @@ const [Modal, modalApi] = useVbenModal({ formData.value = undefined; return; } + formApi.setState({ schema: useFormSchema(formApi) }); const data = modalApi.getData(); if (!data || !data.id) { await formApi.setValues({ sort: 0 }); diff --git a/apps/web-ele/src/views/wms/order/check/modules/form.vue b/apps/web-ele/src/views/wms/order/check/modules/form.vue index b7dfb9c21..fb259a46d 100644 --- a/apps/web-ele/src/views/wms/order/check/modules/form.vue +++ b/apps/web-ele/src/views/wms/order/check/modules/form.vue @@ -535,7 +535,6 @@ const [Modal, modalApi] = useVbenModal({ setDetails([]); return; } - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-ele/src/views/wms/order/movement/modules/form.vue b/apps/web-ele/src/views/wms/order/movement/modules/form.vue index 596e61d7e..148277c07 100644 --- a/apps/web-ele/src/views/wms/order/movement/modules/form.vue +++ b/apps/web-ele/src/views/wms/order/movement/modules/form.vue @@ -373,7 +373,6 @@ const [Modal, modalApi] = useVbenModal({ setDetails([]); return; } - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-ele/src/views/wms/order/receipt/modules/form.vue b/apps/web-ele/src/views/wms/order/receipt/modules/form.vue index 0597d0230..72fdb7369 100644 --- a/apps/web-ele/src/views/wms/order/receipt/modules/form.vue +++ b/apps/web-ele/src/views/wms/order/receipt/modules/form.vue @@ -317,7 +317,6 @@ const [Modal, modalApi] = useVbenModal({ setDetails([]); return; } - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/apps/web-ele/src/views/wms/order/shipment/modules/form.vue b/apps/web-ele/src/views/wms/order/shipment/modules/form.vue index 12c0e7ef1..19fa19fa1 100644 --- a/apps/web-ele/src/views/wms/order/shipment/modules/form.vue +++ b/apps/web-ele/src/views/wms/order/shipment/modules/form.vue @@ -360,7 +360,6 @@ const [Modal, modalApi] = useVbenModal({ return; } initializing.value = true; - await formApi.resetForm(); const data = modalApi.getData<{ formType: FormType; id?: number }>(); formType.value = data.formType; if (data?.id) { diff --git a/packages/constants/src/dict-enum.ts b/packages/constants/src/dict-enum.ts index 19cba23c0..43ab651a8 100644 --- a/packages/constants/src/dict-enum.ts +++ b/packages/constants/src/dict-enum.ts @@ -216,6 +216,8 @@ const MES_DICT = { MES_INDICATOR_TYPE: 'mes_indicator_type', // MES 检测项类型 MES_QC_RESULT_TYPE: 'mes_qc_result_type', // MES 质检结果值类型 MES_QC_TYPE: 'mes_qc_type', // MES 质检方案类型 + MES_QC_CHECK_RESULT: 'mes_qc_check_result', // MES 检测结果 + MES_QC_SOURCE_DOC_TYPE: 'mes_qc_source_doc_type', // MES 来源单据类型 MES_DEFECT_LEVEL: 'mes_defect_level', // MES 缺陷等级 MES_WM_BARCODE_BIZ_TYPE: 'mes_wm_barcode_biz_type', // MES 条码业务类型 MES_WM_BARCODE_FORMAT: 'mes_wm_barcode_format', // MES 条码格式