From 52a3e4348fc9c12919768cf770acfdd3bceefc0f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 29 七月 2026 16:34:43 +0800
Subject: [PATCH] 银川 1.客户公海查询接口修改

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

diff --git a/src/views/mes/pro/workorder/modules/form.vue b/src/views/mes/pro/workorder/modules/form.vue
index bc00c84..8de7795 100644
--- a/src/views/mes/pro/workorder/modules/form.vue
+++ b/src/views/mes/pro/workorder/modules/form.vue
@@ -2,7 +2,6 @@
   import type { FormType } from "../data";
 
   import type { MesProWorkOrderApi } from "#/api/mes/pro/workorder";
-  import type { MesProWorkOrderBomApi } from "#/api/mes/pro/workorder/bom";
   import type { MesProWorkOrderProcessApi } from "#/api/mes/pro/workorder/process";
 
   import { computed, ref } from "vue";
@@ -23,12 +22,11 @@
     getWorkOrder,
     updateWorkOrder,
   } from "#/api/mes/pro/workorder";
-  import { batchSaveWorkOrderProcess } from "#/api/mes/pro/workorder/process";
+  import { batchSaveWorkOrderProcess, getWorkOrderProcessListByWorkOrderId } from "#/api/mes/pro/workorder/process";
   import { $t } from "#/locales";
   import { BarcodeDetail } from "#/views/wls/barcode/components";
 
   import { useFormSchema } from "../data";
-  import BomList from "./bom-list.vue";
   import ItemList from "./item-list.vue";
   import ProcessList from "./process-list.vue";
 
@@ -36,7 +34,7 @@
   const formType = ref<FormType>("create");
   const formData = ref<MesProWorkOrderApi.WorkOrder>();
   const originalSnapshot = ref("");
-  const subTabsName = ref("bom");
+  const subTabsName = ref("process");
   const barcodeDetailRef = ref<InstanceType<typeof BarcodeDetail>>();
   const processListRef = ref<InstanceType<typeof ProcessList>>();
   const currentProductId = ref<number>(); // 褰撳墠閫変腑鐨勪骇鍝� ID锛堢敤浜庡伐搴忓姞杞斤級
@@ -110,7 +108,9 @@
         ? '纭'
         : isFinish.value
           ? '瀹屾垚'
-          : undefined,
+          : isCreateMode.value
+            ? '鏂板'
+            : undefined,
     });
   }
 
@@ -125,39 +125,6 @@
       formData.value.code,
       formData.value.name
     );
-  }
-
-  /** 浠� BOM 鐗╂枡琛岄濉瓙璁㈠崟 */
-  async function handleGenerateWorkOrder(
-    bomRow: MesProWorkOrderBomApi.WorkOrderBom
-  ) {
-    const current = formData.value;
-    if (!current) {
-      return;
-    }
-    formData.value = undefined;
-    formType.value = "create";
-    subTabsName.value = "bom";
-    applySchema();
-    await formApi.resetForm();
-    await formApi.setValues({
-      clientId: current.clientId,
-      name: `${bomRow.itemName}銆�${bomRow.quantity}銆�${
-        bomRow.unitMeasureName || ""
-      }`,
-      orderSourceCode: current.orderSourceCode,
-      orderSourceType: current.orderSourceType,
-      parentId: current.id,
-      productId: bomRow.itemId,
-      quantity: bomRow.quantity,
-      requestDate: current.requestDate,
-      type: current.type,
-      vendorId: current.vendorId,
-    });
-    // 璁剧疆褰撳墠浜у搧 ID锛岃Е鍙戝伐搴忓姞杞�
-    currentProductId.value = bomRow.itemId;
-    originalSnapshot.value = JSON.stringify(await formApi.getValues());
-    message.info("宸蹭粠 BOM 鐗╂枡棰勫~瀛愯鍗曪紝璇疯ˉ鍏呰鍗曠紪鐮佺瓑淇℃伅鍚庝繚瀛�");
   }
 
   /** 宸ュ簭鍒楄〃鍙樺寲鍥炶皟 */
@@ -195,7 +162,13 @@
             }));
             await batchSaveWorkOrderProcess(processList);
           }
-          // 3. 纭宸ュ崟
+          // 3. 鏍¢獙鏄惁鏈夊伐搴�
+          const processes = await getWorkOrderProcessListByWorkOrderId(formData.value.id);
+          if (!processes || processes.length === 0) {
+            message.warning('褰撳墠璁㈠崟鏈厤缃伐搴忥紝璇峰厛鍦ㄥ伐鍗曚腑缁存姢宸ュ簭淇℃伅鍚庡啀纭');
+            return;
+          }
+          // 4. 纭宸ュ崟
           await confirmWorkOrder(formData.value.id);
           message.success('璁㈠崟宸茬‘璁�');
           await modalApi.close();
@@ -208,6 +181,12 @@
       // ---- 瀹屾垚璁㈠崟妯″紡 ----
       if (isFinish.value) {
         if (!formData.value?.id) return;
+        // 鏍¢獙鏄惁鏈夊伐搴�
+        const processes = await getWorkOrderProcessListByWorkOrderId(formData.value.id);
+        if (!processes || processes.length === 0) {
+          message.warning('褰撳墠璁㈠崟鏈厤缃伐搴忥紝璇峰厛鍦ㄥ伐鍗曚腑缁存姢宸ュ簭淇℃伅鍚庡啀瀹屾垚');
+          return;
+        }
         try {
           await confirm('纭瑕佸畬鎴愯璁㈠崟鍚楋紵');
         } catch {
@@ -289,7 +268,7 @@
         parentRow?: MesProWorkOrderApi.WorkOrder;
       }>();
       formType.value = data.formType;
-      subTabsName.value = "bom";
+      subTabsName.value = "process";
       tempProcessList.value = [];
       applySchema();
       if (data?.id) {
@@ -320,25 +299,16 @@
 
 <template>
   <Modal :title="getTitle"
-         class="w-3/5">
+         class="w-3/5"
+         content-class="!max-h-[80vh] overflow-y-auto">
     <Form class="mx-4" />
-    <!-- BOM / 宸ュ簭 / 鐗╂枡闇�姹� Tab -->
+    <!-- 宸ュ簭 / 鐗╂枡闇�姹� Tab -->
     <template v-if="showTabs">
       <Tabs v-model:active-key="subTabsName"
             class="mx-4">
-        <Tabs.TabPane key="bom"
-                      tab="璁㈠崟 BOM">
-          <BomList v-if="formData?.id"
-                   :form-type="formType"
-                   :work-order="formData"
-                   :work-order-id="formData.id"
-                   @generate-work-order="handleGenerateWorkOrder" />
-          <div v-else class="text-gray-400 text-center py-8">
-            璇峰厛淇濆瓨宸ュ崟鍚庡啀閰嶇疆 BOM
-          </div>
-        </Tabs.TabPane>
         <Tabs.TabPane key="process"
-                      tab="宸ュ簭">
+                      tab="宸ュ簭"
+                      forceRender>
           <ProcessList
             ref="processListRef"
             :form-type="formType"

--
Gitblit v1.9.3