From 6f10d1a4ba4df1565927ced7d70e77fe21f487e1 Mon Sep 17 00:00:00 2001
From: 康鲁杰 <60095866+KangLujie@users.noreply.github.com>
Date: 星期三, 25 六月 2025 15:28:49 +0800
Subject: [PATCH] 修改自定义表单

---
 ruoyi-ui/apps/web-antd/src/views/tool/page-designer/page-drawer.vue |   40 +++++++++++++++++++++-------------------
 1 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/ruoyi-ui/apps/web-antd/src/views/tool/page-designer/page-drawer.vue b/ruoyi-ui/apps/web-antd/src/views/tool/page-designer/page-drawer.vue
index a73c4ee..153664d 100644
--- a/ruoyi-ui/apps/web-antd/src/views/tool/page-designer/page-drawer.vue
+++ b/ruoyi-ui/apps/web-antd/src/views/tool/page-designer/page-drawer.vue
@@ -40,6 +40,7 @@
 const modalVisible = ref(false);
 const modalLoading = ref(false);
 const currentEditId = ref<string | number>(''); // 褰撳墠缂栬緫鐨処D
+const fullMenuTree = ref([]);
 
 // 鎵撳紑寮圭獥
 const open = async (params: ModalProps = { update: false }) => {
@@ -51,16 +52,16 @@
     await setupPageSelect();
     
     if (params.id) {
-      await formApi.setFieldValue('menuId', params.id);
+      await formApi.setFieldValue('menuParentId', params.id);
       if (params.update) {
         // 鑾峰彇璇︽儏鏁版嵁
         const record = await pageInfo(params.id);
-        console.log('缂栬緫鏁版嵁:', record);
         
         // 璁剧疆鍩虹琛ㄥ崟鏁版嵁
+        const menuParentId = String(record.menuParentId || record.parentId || '');
         await formApi.setValues({
           name: record.name,
-          menuId: record.menuId || record.parentId || params.id,  // 浼樺厛浣跨敤menuId锛屽叾娆arentId
+          menuParentId: menuParentId,  // 鐢� menuParentId 瀛楁
           status: record.status,
           remark: record.remark,
           actionsFunc: record.actionsFunc ? JSON.parse(record.actionsFunc) : ['add', 'edit', 'delete', 'query']
@@ -80,7 +81,6 @@
             // 鎭㈠閫変腑鐨勫瓧娈�
             if (record.showColumn) {
               selectedFields.value = JSON.parse(record.showColumn);
-              console.log('鎭㈠閫変腑瀛楁:', selectedFields.value);
             }
           } catch (e) {
             console.error('鍔犺浇琛ㄥ崟璁捐鏁版嵁澶辫触:', e);
@@ -116,36 +116,46 @@
   filteredList.forEach(item => { item.menuName = $t(item.menuName); });
   // 杞负鏍戠粨鏋�
   const menuTree = listToTree(filteredList, { id: 'menuId', pid: 'parentId' });
-  // 鍔犳牴鑺傜偣
-  const fullMenuTree = [
+  // 閫掑綊鏄犲皠 menuId -> menuParentId
+  function mapMenuIdToParentId(list) {
+    return list.map(item => {
+      const newItem = { ...item, menuParentId: item.menuId };
+      if (item.children) {
+        newItem.children = mapMenuIdToParentId(item.children);
+      }
+      return newItem;
+    });
+  }
+  fullMenuTree.value = [
     {
       menuId: 0,
+      menuParentId: 0,
       menuName: $t('menu.root'),
-      children: menuTree,
+      children: mapMenuIdToParentId(menuTree),
     },
   ];
   // 鐢熸垚鍏ㄨ矾寰勫悕
-  addFullName(fullMenuTree, 'menuName', ' / ');
+  addFullName(fullMenuTree.value, 'menuName', ' / ');
 
   formApi.updateSchema([
     {
       componentProps: {
         fieldNames: {
           label: 'menuName',
-          value: 'menuId',
+          value: 'menuId', // 鐢� menuId
           children: 'children'
         },
         getPopupContainer,
         listHeight: 300,
         showSearch: true,
-        treeData: fullMenuTree,
+        treeData: fullMenuTree.value,
         treeDefaultExpandAll: false,
         treeDefaultExpandedKeys: [0],
         treeLine: { showLeafIcon: false },
         treeNodeFilterProp: 'menuName',
         treeNodeLabelProp: 'fullName',
       },
-      fieldName: 'menuId',
+      fieldName: 'menuParentId', // 鐢� menuParentId
     },
   ]);
 }
@@ -155,7 +165,6 @@
 const syncAllFields = () => {
   // 鑾峰彇琛ㄥ崟缁勪欢鐨勮鍒欐弿杩�
   const formDesc = designer.value?.getFormDescription?.();
-  console.log('琛ㄥ崟缁勪欢鎻忚堪:', formDesc);
   
   if (!formDesc || !Array.isArray(formDesc)) {
     message.warning('鏆傛棤璁捐鏁版嵁');
@@ -170,7 +179,6 @@
       field: item.field
     }));
   
-  console.log('鎻愬彇鐨勫瓧娈�:', allFields);
   
   if (allFields.length === 0) {
     message.warning('鏈壘鍒板彲鐢ㄥ瓧娈�');
@@ -190,7 +198,6 @@
 
 // 澶勭悊璁捐鍣ㄥ彉鍖�
 const handleDesignerChange = () => {
-  console.log('璁捐鍣ㄥ唴瀹瑰彉鍖�');
   nextTick(() => {
     updateFieldOptions();
   });
@@ -198,9 +205,6 @@
 
 // 褰撹璁″櫒鍐呭鍙樺寲鏃舵洿鏂板瓧娈甸�夐」
 const updateFieldOptions = () => {
-  console.log('updateFieldOptions');
-  console.log('designer.value', designer.value);
-  
   // 鑾峰彇琛ㄥ崟缁勪欢鐨勮鍒欐弿杩�
   const formDesc = designer.value?.getFormDescription?.();
   if (!formDesc || !Array.isArray(formDesc)) return;
@@ -216,8 +220,6 @@
     label: item.title,
     value: item.field
   }));
-  
-  console.log('鏇存柊鍚庣殑瀛楁閫夐」:', fieldOptions.value);
 };
 
 // 鐩戝惉璁捐鍣ㄥ唴瀹瑰彉鍖�

--
Gitblit v1.9.3