From bff63ed3dd1a585f84b8c41f9396fa6f7a4ff4c7 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 31 七月 2026 16:21:20 +0800
Subject: [PATCH] 银川 1.质量管理模块AI辅助判定检验结果联调

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

diff --git a/src/views/mes/pro/workorder/modules/form.vue b/src/views/mes/pro/workorder/modules/form.vue
index 72d0374..1181216 100644
--- a/src/views/mes/pro/workorder/modules/form.vue
+++ b/src/views/mes/pro/workorder/modules/form.vue
@@ -99,17 +99,41 @@
   });
 
   /** 閲嶆柊鎸傝浇 schema 骞舵寜琛ㄥ崟鎬佹帶鍒跺簳閮ㄦ寜閽� */
+  const mainActionText = computed(() => {
+    if (isConfirm.value) return '纭';
+    if (isFinish.value) return '瀹屾垚';
+    return '鎻愪氦';
+  });
+
+  const showMainBtn = computed(() => isEditable.value || isConfirm.value || isFinish.value);
+
   function applySchema() {
     formApi.setState({ schema: useFormSchema(formType.value, formApi) });
-    const showBtn = isEditable.value || isConfirm.value || isFinish.value;
-    modalApi.setState({
-      showConfirmButton: showBtn,
-      confirmText: isConfirm.value || canConfirm.value
-        ? '纭'
-        : isFinish.value
-          ? '瀹屾垚'
-          : undefined,
-    });
+    modalApi.setState({ showCancelButton: false, showConfirmButton: false });
+  }
+
+  /** 浠呬繚瀛橈紙涓嶆敼鍙樼姸鎬侊級 */
+  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();
+    }
   }
 
   /** 鏌ョ湅璁㈠崟鏉$爜 */
@@ -327,10 +351,26 @@
       </Tabs>
     </template>
     <template #prepend-footer>
-      <Button v-if="formType === 'detail' && formData?.id"
-              @click="handleBarcode">
-        鏌ョ湅鏉$爜
-      </Button>
+      <div class="flex flex-auto items-center">
+        <Button v-if="showMainBtn"
+                type="primary"
+                @click="modalApi.onConfirm()">
+          {{ mainActionText }}
+        </Button>
+      </div>
+    </template>
+    <template #append-footer>
+      <div class="flex gap-2">
+        <Button v-if="canConfirm"
+                @click="handleSave">
+          淇濆瓨淇敼
+        </Button>
+        <Button v-if="formType === 'detail' && formData?.id"
+                @click="handleBarcode">
+          鏌ョ湅鏉$爜
+        </Button>
+        <Button @click="modalApi.close()">鍙栨秷</Button>
+      </div>
     </template>
   </Modal>
   <BarcodeDetail ref="barcodeDetailRef" />

--
Gitblit v1.9.3