From e6c042f8d26c1d8cb6e510c392679166e5caebee Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 30 七月 2026 09:23:45 +0800
Subject: [PATCH] feat(workorder): 添加工单表单保存功能

---
 src/views/mes/pro/workorder/modules/form.vue |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/src/views/mes/pro/workorder/modules/form.vue b/src/views/mes/pro/workorder/modules/form.vue
index 8de7795..c998ef8 100644
--- a/src/views/mes/pro/workorder/modules/form.vue
+++ b/src/views/mes/pro/workorder/modules/form.vue
@@ -110,8 +110,32 @@
           ? '瀹屾垚'
           : isCreateMode.value
             ? '鏂板'
-            : undefined,
+            : '淇濆瓨',
     });
+  }
+
+  /** 浠呬繚瀛橈紙涓嶆敼鍙樼姸鎬侊級 */
+  async function handleSave() {
+    const { valid } = await formApi.validate();
+    if (!valid || !formData.value?.id) return;
+    modalApi.lock();
+    try {
+      const data = (await formApi.getValues()) as MesProWorkOrderApi.WorkOrder;
+      await updateWorkOrder({ ...formData.value, ...data });
+      if (tempProcessList.value.length > 0) {
+        const processList = tempProcessList.value.map(item => ({
+          ...item,
+          workOrderId: formData.value!.id,
+        }));
+        await batchSaveWorkOrderProcess(processList);
+      }
+      formData.value = { ...formData.value, ...data };
+      originalSnapshot.value = JSON.stringify(await formApi.getValues());
+      emit('success');
+      message.success($t('ui.actionMessage.operationSuccess'));
+    } finally {
+      modalApi.unlock();
+    }
   }
 
   /** 鏌ョ湅璁㈠崟鏉$爜 */
@@ -329,6 +353,10 @@
       </Tabs>
     </template>
     <template #prepend-footer>
+      <Button v-if="canConfirm"
+              @click="handleSave">
+        淇濆瓨
+      </Button>
       <Button v-if="formType === 'detail' && formData?.id"
               @click="handleBarcode">
         鏌ョ湅鏉$爜

--
Gitblit v1.9.3