From 452e5c5e9a340367c8fdb14b0bdecc96dcb29491 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 19 八月 2026 11:01:28 +0800
Subject: [PATCH] fix(router): 更新一袋一码首页路由标题

---
 src/views/wls/salesnotice/modules/form.vue |   62 ++++++++++++++++++++-----------
 1 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/src/views/wls/salesnotice/modules/form.vue b/src/views/wls/salesnotice/modules/form.vue
index a351b94..044cb38 100644
--- a/src/views/wls/salesnotice/modules/form.vue
+++ b/src/views/wls/salesnotice/modules/form.vue
@@ -1,6 +1,7 @@
 <script lang="ts" setup>
 import type { FormType } from '../data';
 
+import type { ErpSaleOrderApi } from '#/api/erp/sale/order';
 import type { MesWmSalesNoticeApi } from '#/api/mes/wm/salesnotice';
 
 import { computed, ref } from 'vue';
@@ -17,6 +18,8 @@
   submitSalesNotice,
   updateSalesNotice,
 } from '#/api/mes/wm/salesnotice';
+import { createSalesNoticeLine } from '#/api/mes/wm/salesnotice/line';
+import { getSaleOrderItemListByOrderId } from '#/api/erp/sale/order';
 import { $t } from '#/locales';
 
 import { useFormSchema } from '../data';
@@ -30,7 +33,6 @@
   // 鏄惁涓虹紪杈戞ā寮忥紙鍙繚瀛橈級
   ['create', 'update'].includes(formType.value),
 );
-const isFinish = computed(() => formType.value === 'finish'); // 鏄惁涓烘墽琛屽嚭搴撴ā寮�
 const canSubmit = computed(
   () =>
     // 鏄惁鍙彁浜�
@@ -40,9 +42,6 @@
 const getTitle = computed(() => {
   if (formType.value === 'detail') {
     return $t('ui.actionTitle.view', ['鍙戣揣閫氱煡鍗�']);
-  }
-  if (formType.value === 'finish') {
-    return '鎵ц鍑哄簱';
   }
   return formType.value === 'update'
     ? $t('ui.actionTitle.edit', ['鍙戣揣閫氱煡鍗�'])
@@ -87,11 +86,6 @@
   }
 }
 
-/** 鎵ц鍑哄簱锛堝悗绔殏鏈疄鐜帮紝鎻愮ず鐢ㄦ埛锛� */
-function handleFinish() {
-  message.info('鎵ц鍑哄簱鍔熻兘鏆傛椂涓嶆敮鎸侊紝鏁鏈熷緟锛�');
-}
-
 const [Modal, modalApi] = useVbenModal({
   async onConfirm() {
     if (!isEditable.value) {
@@ -109,17 +103,44 @@
       if (formData.value?.id) {
         await updateSalesNotice({ ...formData.value, ...data });
         formData.value = { ...formData.value, ...data };
-      } else {
-        const id = await createSalesNotice(data);
-        formData.value = {
-          ...data,
-          id,
-          status: MesWmSalesNoticeStatusEnum.PREPARE,
-        };
-        await formApi.setFieldValue('id', id);
-        await formApi.setFieldValue('status', formData.value.status);
-        formType.value = 'update';
+        emit('success');
+        message.success($t('ui.actionMessage.operationSuccess'));
+        await modalApi.close();
+        return;
       }
+      // 鏂板锛氫繚鎸佸脊绐楁墦寮�锛屽垏鎹㈠埌缂栬緫妯″紡
+      const id = await createSalesNotice(data);
+      // 閫夋嫨浜嗛攢鍞鍗曟椂锛岃嚜鍔ㄥ甫鍏ヨ鍗曚骇鍝佹槑缁�
+      if (data.saleOrderId) {
+        try {
+          const items = await getSaleOrderItemListByOrderId(data.saleOrderId);
+          if (items?.length) {
+            await Promise.all(items.map((item: ErpSaleOrderApi.SaleOrderItem) =>
+              createSalesNoticeLine({
+                noticeId: id,
+                saleOrderItemId: item.id,
+                itemId: item.productId,
+                itemCode: item.productBarCode,
+                itemName: item.productName,
+                unitMeasureName: item.productUnitName,
+                quantity: item.count,
+                batchCode: item.batchCode,
+                oqcCheckFlag: false,
+              }),
+            ));
+          }
+        } catch {
+          // 鑾峰彇璁㈠崟鏄庣粏澶辫触涓嶅奖鍝嶄富娴佺▼
+        }
+      }
+      formData.value = {
+        ...data,
+        id,
+        status: MesWmSalesNoticeStatusEnum.PREPARE,
+      };
+      await formApi.setFieldValue('id', id);
+      await formApi.setFieldValue('status', formData.value.status);
+      formType.value = 'update';
       originalSnapshot.value = JSON.stringify(await formApi.getValues());
       emit('success');
       message.success($t('ui.actionMessage.operationSuccess'));
@@ -173,9 +194,6 @@
         >
           <Button type="primary">鎻愪氦</Button>
         </Popconfirm>
-        <Button v-if="isFinish" type="primary" @click="handleFinish">
-          鎵ц鍑哄簱
-        </Button>
       </div>
     </template>
   </Modal>

--
Gitblit v1.9.3