From 8f8dcdae7e40ba4e94a363aa8eb91c7665810bc3 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 31 八月 2026 15:29:17 +0800
Subject: [PATCH] fix: 新疆-绿能 1.报工自动生成产品入库单 + 勾选入库 + 不合格仓库兜底

---
 src/views/wls/returnsales/modules/form.vue |   35 ++++++++++++++++++++++++++++++++++-
 1 files changed, 34 insertions(+), 1 deletions(-)

diff --git a/src/views/wls/returnsales/modules/form.vue b/src/views/wls/returnsales/modules/form.vue
index 3cae020..e9cb5e2 100644
--- a/src/views/wls/returnsales/modules/form.vue
+++ b/src/views/wls/returnsales/modules/form.vue
@@ -19,6 +19,9 @@
   submitReturnSales,
   updateReturnSales,
 } from '#/api/mes/wm/returnsales';
+import type { ErpSaleOrderApi } from '#/api/erp/sale/order';
+
+import { getSaleOrder, getSaleOrderPage } from '#/api/erp/sale/order';
 import { $t } from '#/locales';
 
 import { useFormSchema } from '../data';
@@ -28,6 +31,7 @@
 const formType = ref<FormType>('create');
 const formData = ref<MesWmReturnSalesApi.ReturnSales>();
 const originalSnapshot = ref(''); // 琛ㄥ崟鍘熷鏁版嵁蹇収锛岀敤浜庢彁浜ゆ椂璺宠繃鏈彉鏇寸殑淇濆瓨璇锋眰
+const saleOrderItems = ref<ErpSaleOrderApi.SaleOrderItem[]>([]); // 褰撳墠閿�鍞鍗曠殑鐗╂枡琛�
 const isEditable = computed(() =>
   // 鏄惁涓虹紪杈戞ā寮忥紙鍙繚瀛橈級
   ['create', 'update'].includes(formType.value),
@@ -169,13 +173,41 @@
     // 鍔犺浇鏁版嵁
     const data = modalApi.getData<{ formType: FormType; id?: number }>();
     formType.value = data.formType;
-    formApi.setState({ schema: useFormSchema(formType.value, formApi) });
+    formApi.setState({
+      schema: useFormSchema(formType.value, formApi, (item) => {
+        if (item?.id) {
+          getSaleOrder(item.id as number).then((order) => {
+            saleOrderItems.value = (order as ErpSaleOrderApi.SaleOrder)?.items || [];
+          });
+        } else {
+          saleOrderItems.value = [];
+        }
+      }),
+    });
     formApi.setDisabled(!isEditable.value);
     modalApi.setState({ showConfirmButton: isEditable.value });
     if (data?.id) {
       modalApi.lock();
       try {
         formData.value = await getReturnSales(data.id);
+        // 閫氳繃閿�鍞鍗曞彿鍙嶆煡璁㈠崟ID锛岀‘淇� ErpSaleOrderSelect 鑳芥纭洖鏄�
+        const formValues = formData.value as MesWmReturnSalesApi.ReturnSales & {
+          saleOrderId?: number;
+        };
+        if (formValues.salesOrderCode && !formValues.saleOrderId) {
+          const orderPage = await getSaleOrderPage({
+            pageNo: 1,
+            pageSize: 1,
+            no: formValues.salesOrderCode,
+          } as never);
+          const first = orderPage?.list?.[0];
+          if (first) {
+            const orderId = Number(first.id);
+            formValues.saleOrderId = orderId;
+            const order = await getSaleOrder(orderId);
+            saleOrderItems.value = order?.items || [];
+          }
+        }
         // 璁剧疆鍒� values
         await formApi.setValues(formData.value);
       } finally {
@@ -198,6 +230,7 @@
           :client-id="formData.clientId"
           :form-type="formType"
           :return-id="formData.id"
+          :sale-order-items="saleOrderItems"
           :sales-order-code="formData.salesOrderCode"
         />
       </div>

--
Gitblit v1.9.3