From d5ee3b5be73472fe9156bec3907c91bb8346326e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 20 七月 2026 15:33:36 +0800
Subject: [PATCH] 银川 1.新增计量单位后,在物料管理页面中新增物料时,选择单位时没有带出 2.销售订单生成发货通知单按钮权限判断修改

---
 src/views/basicData/mdm/data.ts |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/src/views/basicData/mdm/data.ts b/src/views/basicData/mdm/data.ts
index 3ff52a2..c77d66f 100644
--- a/src/views/basicData/mdm/data.ts
+++ b/src/views/basicData/mdm/data.ts
@@ -18,6 +18,24 @@
 let unitListCache: any[] | null = null;
 let unitListPromise: Promise<any[]> | null = null;
 
+/** 灏嗘墎骞冲垎绫诲垪琛ㄨ浆涓� TreeSelect 鎵�闇�鐨勬爲褰㈢粨鏋� */
+function buildCategoryTree(list: any[]): any[] {
+  const map = new Map<number, any>();
+  const roots: any[] = [];
+  for (const item of list) {
+    map.set(item.id, { label: item.name, value: item.id, children: [] });
+  }
+  for (const item of list) {
+    const node = map.get(item.id)!;
+    if (item.parentId && map.has(item.parentId)) {
+      map.get(item.parentId)!.children.push(node);
+    } else {
+      roots.push(node);
+    }
+  }
+  return roots;
+}
+
 /** 鑾峰彇鍗曚綅鍒楄〃锛堝甫缂撳瓨锛� */
 async function getUnitListCached() {
   if (unitListCache) {
@@ -33,6 +51,11 @@
     unitListPromise = null;
   });
   return unitListPromise;
+}
+
+/** 娓呴櫎鍗曚綅鍒楄〃缂撳瓨 */
+export function clearUnitListCache() {
+  unitListCache = null;
 }
 
 /** 鏂板/淇敼鐨勮〃鍗� */
@@ -80,19 +103,18 @@
       rules: "required",
     },
     {
-      component: "ApiSelect",
+      component: "ApiTreeSelect",
       fieldName: "categoryId",
       label: "鐗╂枡鍒嗙被",
       rules: "selectRequired",
       componentProps: {
         placeholder: "璇烽�夋嫨鐗╂枡鍒嗙被",
         allowClear: true,
+        treeDefaultExpandAll: true,
         api: async () => {
           const res = await getItemTypeSimpleList();
-          return res || [];
+          return buildCategoryTree(res || []);
         },
-        labelField: "name",
-        valueField: "id",
       },
     },
     {

--
Gitblit v1.9.3