From b51265aacb3e3adc00be85c159cfee8027f7d40b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 21 七月 2026 11:04:42 +0800
Subject: [PATCH] 银川 1.销售订单页面、物料管理页面联调

---
 src/views/wls/materialstock/components/select-dialog.vue |    2 
 src/views/erp/sale/order/index.vue                       |    2 
 src/views/wls/materialstock/data.ts                      |   15 ++++---
 src/api/wls/productsales/index.ts                        |    1 
 src/views/basicData/mdm/data.ts                          |   12 ++---
 src/api/mes/wm/productsales/index.ts                     |    1 
 src/views/basicData/mdm/modules/form.vue                 |    8 +++-
 src/views/wls/productsales/data.ts                       |   25 ++++++++----
 8 files changed, 40 insertions(+), 26 deletions(-)

diff --git a/src/api/mes/wm/productsales/index.ts b/src/api/mes/wm/productsales/index.ts
index b0fddcf..08c1e86 100644
--- a/src/api/mes/wm/productsales/index.ts
+++ b/src/api/mes/wm/productsales/index.ts
@@ -14,6 +14,7 @@
     clientCode?: string; // 瀹㈡埛缂栫爜
     clientName?: string; // 瀹㈡埛鍚嶇О
     salesOrderCode?: string; // 閿�鍞鍗曠紪鍙�
+    saleOrderId?: number; // 閿�鍞鍗旾D
     salesDate?: number; // 鍑哄簱鏃ユ湡
     contactName?: string; // 鏀惰揣浜�
     contactTelephone?: string; // 鑱旂郴鏂瑰紡
diff --git a/src/api/wls/productsales/index.ts b/src/api/wls/productsales/index.ts
index 260bad7..a2fee8a 100644
--- a/src/api/wls/productsales/index.ts
+++ b/src/api/wls/productsales/index.ts
@@ -14,6 +14,7 @@
     clientCode?: string; // 瀹㈡埛缂栫爜
     clientName?: string; // 瀹㈡埛鍚嶇О
     salesOrderCode?: string; // 閿�鍞鍗曠紪鍙�
+    saleOrderId?: number; // 閿�鍞鍗旾D
     salesDate?: number; // 鍑哄簱鏃ユ湡
     contactName?: string; // 鏀惰揣浜�
     contactTelephone?: string; // 鑱旂郴鏂瑰紡
diff --git a/src/views/basicData/mdm/data.ts b/src/views/basicData/mdm/data.ts
index c77d66f..29076e7 100644
--- a/src/views/basicData/mdm/data.ts
+++ b/src/views/basicData/mdm/data.ts
@@ -19,7 +19,7 @@
 let unitListPromise: Promise<any[]> | null = null;
 
 /** 灏嗘墎骞冲垎绫诲垪琛ㄨ浆涓� TreeSelect 鎵�闇�鐨勬爲褰㈢粨鏋� */
-function buildCategoryTree(list: any[]): any[] {
+export function buildCategoryTree(list: any[]): any[] {
   const map = new Map<number, any>();
   const roots: any[] = [];
   for (const item of list) {
@@ -59,7 +59,7 @@
 }
 
 /** 鏂板/淇敼鐨勮〃鍗� */
-export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
+export function useFormSchema(formApi?: VbenFormApi, categoryTreeData: any[] = []): VbenFormSchema[] {
   return [
     {
       component: "Input",
@@ -103,7 +103,7 @@
       rules: "required",
     },
     {
-      component: "ApiTreeSelect",
+      component: "TreeSelect",
       fieldName: "categoryId",
       label: "鐗╂枡鍒嗙被",
       rules: "selectRequired",
@@ -111,10 +111,8 @@
         placeholder: "璇烽�夋嫨鐗╂枡鍒嗙被",
         allowClear: true,
         treeDefaultExpandAll: true,
-        api: async () => {
-          const res = await getItemTypeSimpleList();
-          return buildCategoryTree(res || []);
-        },
+        treeData: categoryTreeData,
+        fieldNames: { label: 'label', value: 'value', children: 'children' },
       },
     },
     {
diff --git a/src/views/basicData/mdm/modules/form.vue b/src/views/basicData/mdm/modules/form.vue
index 43e149b..c1f5eb7 100644
--- a/src/views/basicData/mdm/modules/form.vue
+++ b/src/views/basicData/mdm/modules/form.vue
@@ -11,7 +11,8 @@
 import { createItem, getItem, updateItem } from '#/api/mdm/item';
 import { $t } from '#/locales';
 
-import { useFormSchema, clearUnitListCache } from '../data';
+import { useFormSchema, clearUnitListCache, buildCategoryTree } from '../data';
+import { getItemTypeSimpleList } from '#/api/mes/md/item/type';
 
 defineOptions({ name: "ItemForm" });
 
@@ -56,8 +57,11 @@
     const data = modalApi.getData<MdmItemApi.Item>();
     // 娓呴櫎鍗曚綅缂撳瓨锛岀‘淇濊幏鍙栨渶鏂版暟鎹�
     clearUnitListCache();
+    // 鍔犺浇鏈�鏂板垎绫绘暟鎹�
+    const categoryRes = await getItemTypeSimpleList();
+    const categoryTreeData = buildCategoryTree(categoryRes || []);
     // 璁剧疆 schema锛坒ormApi 宸插垵濮嬪寲锛�
-    formApi.setState({ schema: useFormSchema(formApi) });
+    formApi.setState({ schema: useFormSchema(formApi, categoryTreeData) });
     if (data?.id) {
       // 缂栬緫妯″紡
       modalApi.lock();
diff --git a/src/views/erp/sale/order/index.vue b/src/views/erp/sale/order/index.vue
index 985ef0e..2df5b89 100644
--- a/src/views/erp/sale/order/index.vue
+++ b/src/views/erp/sale/order/index.vue
@@ -342,7 +342,7 @@
               type: 'link',
               icon: 'ant-design:file-protect-outlined',
               auth: ['mes:wm-sales-notice:create'],
-              ifShow: () => row.status === 20 && (row.canCreateSalesNotice || row.productionStatus === 1),
+              ifShow: () => row.status === 20 && row.canCreateSalesNotice,
               onClick: handleGenerateNotice.bind(null, row),
             },
             {
diff --git a/src/views/wls/materialstock/components/select-dialog.vue b/src/views/wls/materialstock/components/select-dialog.vue
index 477359d..cc5e91c 100644
--- a/src/views/wls/materialstock/components/select-dialog.vue
+++ b/src/views/wls/materialstock/components/select-dialog.vue
@@ -161,7 +161,7 @@
             // 榛樿鏌ユ湭鍐荤粨
             frozen: false,
             itemTypeId: searchItemTypeId.value,
-            itemId: formValues.mdmItemId ?? props.mdmItemId,
+            itemId: props.mdmItemId,
             warehouseId: formValues.warehouseId ?? props.warehouseId,
             virtualFilter:
               props.virtualFilter === 'all' ? undefined : props.virtualFilter,
diff --git a/src/views/wls/materialstock/data.ts b/src/views/wls/materialstock/data.ts
index 4befafd..3efe144 100644
--- a/src/views/wls/materialstock/data.ts
+++ b/src/views/wls/materialstock/data.ts
@@ -8,7 +8,6 @@
 import { DICT_TYPE } from '@vben/constants';
 
 import { MdItemSelect } from '#/views/mes/md/item/components';
-import { MdVendorSelect } from '#/views/mes/md/vendor/components';
 
 import {
   WmWarehouseAreaSelect,
@@ -197,19 +196,21 @@
 export function useSelectGridFormSchema(): VbenFormSchema[] {
   return [
     {
-      fieldName: 'itemId',
+      fieldName: 'itemName',
       label: '鐗╂枡',
-      component: markRaw(MdItemSelect),
+      component: 'Input',
       componentProps: {
-        placeholder: '璇烽�夋嫨鐗╂枡',
+        allowClear: true,
+        placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
       },
     },
     {
-      fieldName: 'vendorId',
+      fieldName: 'vendorName',
       label: '渚涘簲鍟�',
-      component: markRaw(MdVendorSelect),
+      component: 'Input',
       componentProps: {
-        placeholder: '璇烽�夋嫨渚涘簲鍟�',
+        allowClear: true,
+        placeholder: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О',
       },
     },
     {
diff --git a/src/views/wls/productsales/data.ts b/src/views/wls/productsales/data.ts
index ed70c62..31a2dec 100644
--- a/src/views/wls/productsales/data.ts
+++ b/src/views/wls/productsales/data.ts
@@ -139,14 +139,6 @@
       },
     },
     {
-      fieldName: 'salesOrderCode',
-      component: 'Input',
-      dependencies: {
-        triggerFields: [''],
-        show: () => false,
-      },
-    },
-    {
       fieldName: 'saleOrderId',
       label: '閿�鍞鍗曠紪鍙�',
       component: markRaw(ErpSaleOrderSelect),
@@ -163,6 +155,23 @@
         },
       },
       rules: 'selectRequired',
+      dependencies: {
+        triggerFields: ['salesOrderCode'],
+        if: () => formType === 'create',
+      },
+    },
+    {
+      fieldName: 'salesOrderCode',
+      label: '閿�鍞鍗曠紪鍙�',
+      component: 'Input',
+      componentProps: {
+        disabled: true,
+        placeholder: '閿�鍞鍗曠紪鍙�',
+      },
+      dependencies: {
+        triggerFields: [''],
+        if: () => formType !== 'create',
+      },
     },
     {
       fieldName: 'salesDate',

--
Gitblit v1.9.3