From 91eff4781fa4142d1f62d30a0fa1de5cae424eaf Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 18:23:12 +0800
Subject: [PATCH] refactor: 单据审核改为审批配置状态机(前端统一审核弹窗)

---
 src/views/mes/pd/tech-confirm/modules/form.vue |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/views/mes/pd/tech-confirm/modules/form.vue b/src/views/mes/pd/tech-confirm/modules/form.vue
index 5ae8653..85a8dfe 100644
--- a/src/views/mes/pd/tech-confirm/modules/form.vue
+++ b/src/views/mes/pd/tech-confirm/modules/form.vue
@@ -8,6 +8,8 @@
   import { useVbenModal } from '@vben/common-ui';
   import { $t } from '@vben/locales';
 
+  import { MesPdTechConfirmStatusEnum } from '#/packages/constants/src';
+
   import { message } from 'ant-design-vue';
 
   import { useVbenForm } from '#/adapter/form';
@@ -55,8 +57,21 @@
         return;
       }
       modalApi.lock();
-      // 鎻愪氦琛ㄥ崟
-      const data = (await formApi.getValues()) as MesPdTechConfirmApi.TechConfirm;
+      // 鎻愪氦琛ㄥ崟锛氬彧鎻愪氦鐢ㄦ埛鍙~鍐欑殑涓氬姟瀛楁锛岀姸鎬佷笌娴佺▼娲剧敓瀛楁鐢卞悗绔寜娴佺▼鎺ㄨ繘锛屼笉鍥炰紶
+      const {
+        status,
+        drafterId,
+        drafterName,
+        draftTime,
+        reviewerId,
+        reviewerName,
+        reviewTime,
+        reviewRemark,
+        customerConfirmUser,
+        customerConfirmTime,
+        ...values
+      } = await formApi.getValues();
+      const data = values as MesPdTechConfirmApi.TechConfirm;
       try {
         await (data.id ? updateTechConfirm(data) : createTechConfirm(data));
         // 鍏抽棴骞舵彁绀�
@@ -75,7 +90,7 @@
       // 鍔犺浇鏁版嵁
       const data = modalApi.getData<{ formType: FormType; id?: number }>();
       formType.value = data.formType;
-      formApi.setState({ schema: useFormSchema(formApi) });
+      formApi.setState({ schema: useFormSchema(formType.value, formApi) });
       formApi.setDisabled(formType.value === 'detail');
       modalApi.setState({ showConfirmButton: formType.value !== 'detail' });
       if (!data?.id) {
@@ -86,6 +101,14 @@
         formData.value = await getTechConfirm(data.id);
         // 璁剧疆鍒� values
         await formApi.setValues(formData.value);
+        // 浠呰崏绋夸笌瀹℃牳涓嶉�氳繃鍙慨鏀癸紱寰呭鏍� / 宸插鏍� / 瀹㈡埛宸茬‘璁や负閿佸畾鎴栫粓鎬�
+        const editable =
+          formData.value?.status === MesPdTechConfirmStatusEnum.DRAFT ||
+          formData.value?.status === MesPdTechConfirmStatusEnum.REJECTED;
+        if (!editable) {
+          formApi.setDisabled(true);
+          modalApi.setState({ showConfirmButton: false });
+        }
       } finally {
         modalApi.unlock();
       }

--
Gitblit v1.9.3