From 4039d50f086600706462d5e2e45b3397aa870d9c Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 24 七月 2026 17:09:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0

---
 src/views/basicData/mdm/data.ts |   86 ++++++++++++++++++++++++++-----------------
 1 files changed, 52 insertions(+), 34 deletions(-)

diff --git a/src/views/basicData/mdm/data.ts b/src/views/basicData/mdm/data.ts
index 3ff52a2..953b9f2 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 鎵�闇�鐨勬爲褰㈢粨鏋� */
+export 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) {
@@ -35,8 +53,13 @@
   return unitListPromise;
 }
 
+/** 娓呴櫎鍗曚綅鍒楄〃缂撳瓨 */
+export function clearUnitListCache() {
+  unitListCache = null;
+}
+
 /** 鏂板/淇敼鐨勮〃鍗� */
-export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
+export function useFormSchema(formApi?: VbenFormApi, categoryTreeData: any[] = []): VbenFormSchema[] {
   return [
     {
       component: "Input",
@@ -80,19 +103,16 @@
       rules: "required",
     },
     {
-      component: "ApiSelect",
+      component: "TreeSelect",
       fieldName: "categoryId",
       label: "鐗╂枡鍒嗙被",
       rules: "selectRequired",
       componentProps: {
         placeholder: "璇烽�夋嫨鐗╂枡鍒嗙被",
         allowClear: true,
-        api: async () => {
-          const res = await getItemTypeSimpleList();
-          return res || [];
-        },
-        labelField: "name",
-        valueField: "id",
+        treeDefaultExpandAll: true,
+        treeData: categoryTreeData,
+        fieldNames: { label: 'label', value: 'value', children: 'children' },
       },
     },
     {
@@ -254,17 +274,6 @@
       fieldName: 'isBatchManaged',
       label: '鎵规绠$悊',
       defaultValue: false,
-      componentProps: {
-        class: "w-auto",
-        checkedChildren: "鏄�",
-        unCheckedChildren: "鍚�",
-      },
-      rules: z.boolean().default(false),
-    },
-    {
-      component: "Switch",
-      fieldName: "syncMes",
-      label: "鍚屾鍒� MES",
       componentProps: {
         class: "w-auto",
         checkedChildren: "鏄�",
@@ -532,27 +541,36 @@
       },
     },
     {
-      field: "isBatchManaged",
-      title: "鎵规绠$悊",
-      minWidth: 80,
-      slots: { default: "isBatchManaged" },
-    },
-    {
-      field: "status",
-      title: "鐘舵��",
-      minWidth: 80,
-      cellRender: {
-        name: "CellDict",
-        props: { type: DICT_TYPE.COMMON_STATUS },
-      },
-    },
-    {
       field: "createTime",
       title: "鍒涘缓鏃堕棿",
       minWidth: 180,
       formatter: "formatDateTime",
     },
     {
+      field: "isBatchManaged",
+      title: "鎵规绠$悊",
+      width: 80,
+      fixed: "right",
+      slots: { default: "isBatchManaged" },
+    },
+    {
+      field: "syncedMes",
+      title: "鍚屾鐘舵��",
+      width: 90,
+      fixed: "right",
+      slots: { default: "syncedMes" },
+    },
+    {
+      field: "status",
+      title: "鐘舵��",
+      width: 80,
+      fixed: "right",
+      cellRender: {
+        name: "CellDict",
+        props: { type: DICT_TYPE.COMMON_STATUS },
+      },
+    },
+    {
       title: "鎿嶄綔",
       width: 180,
       fixed: "right",

--
Gitblit v1.9.3