From e23fdf87e6c3bc6d42198b9309617195f2efd6c0 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 06 七月 2024 23:40:08 +0800
Subject: [PATCH] 高级表单优化

---
 src/views/demo/tree/EditTree.vue |  117 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 58 insertions(+), 59 deletions(-)

diff --git a/src/views/demo/tree/EditTree.vue b/src/views/demo/tree/EditTree.vue
index c2f2ad4..e0492f7 100644
--- a/src/views/demo/tree/EditTree.vue
+++ b/src/views/demo/tree/EditTree.vue
@@ -50,71 +50,70 @@
     </Row>
   </PageWrapper>
 </template>
-<script lang="ts">
-  import { defineComponent, h } from 'vue';
+<script lang="ts" setup>
+  import { h } from 'vue';
   import { Row, Col } from 'ant-design-vue';
-  import { BasicTree, TreeActionItem, ContextMenuItem } from '/@/components/Tree/index';
+  import { BasicTree, TreeActionItem, ContextMenuItem } from '@/components/Tree';
   import { treeData, treeData2, treeData3 } from './data';
   import { PlusOutlined, DeleteOutlined } from '@ant-design/icons-vue';
-  import { PageWrapper } from '/@/components/Page';
+  import { PageWrapper } from '@/components/Page';
 
-  export default defineComponent({
-    components: { BasicTree, PageWrapper, Row, Col },
-    setup() {
-      function handlePlus(node: any) {
-        console.log(node);
-      }
+  import { EventDataNode } from 'ant-design-vue/es/vc-tree/interface';
 
-      function getRightMenuList(node: any): ContextMenuItem[] {
-        return [
-          {
-            label: '鏂板',
-            handler: () => {
-              console.log('鐐瑰嚮浜嗘柊澧�', node);
-            },
-            icon: 'bi:plus',
-          },
-          {
-            label: '鍒犻櫎',
-            handler: () => {
-              console.log('鐐瑰嚮浜嗗垹闄�', node);
-            },
-            icon: 'bx:bxs-folder-open',
-          },
-        ];
-      }
-      const actionList: TreeActionItem[] = [
-        {
-          // show:()=>boolean;
-          render: (node) => {
-            return h(PlusOutlined, {
-              class: 'ml-2',
-              onClick: () => {
-                handlePlus(node);
-              },
-            });
-          },
+  function handlePlus(node: any) {
+    console.log(node);
+  }
+
+  function getRightMenuList(node: EventDataNode): Promise<ContextMenuItem[]> {
+    const menu = [
+      {
+        label: '鏂板',
+        handler: () => {
+          console.log('鐐瑰嚮浜嗘柊澧�', node);
         },
-        {
-          render: () => {
-            return h(DeleteOutlined);
-          },
+        icon: 'bi:plus',
+      },
+      {
+        label: '鍒犻櫎',
+        handler: () => {
+          console.log('鐐瑰嚮浜嗗垹闄�', node);
         },
-      ];
-
-      function createIcon({ level }) {
-        if (level === 1) {
-          return 'ion:git-compare-outline';
-        }
-        if (level === 2) {
-          return 'ion:home';
-        }
-        if (level === 3) {
-          return 'ion:airplane';
-        }
-        return '';
-      }
-      return { treeData, treeData2, treeData3, actionList, getRightMenuList, createIcon };
+        icon: 'bx:bxs-folder-open',
+      },
+    ];
+    return new Promise((resolve) => {
+      resolve(menu);
+    });
+  }
+  const actionList: TreeActionItem[] = [
+    {
+      // show:() => boolean;
+      render: (node) => {
+        return h(PlusOutlined, {
+          class: 'ml-2',
+          onClick: () => {
+            handlePlus(node);
+          },
+        });
+      },
     },
-  });
+    {
+      render: () => {
+        return h(DeleteOutlined);
+      },
+    },
+  ];
+
+  function createIcon({ level }) {
+    if (level === 1) {
+      return 'ion:git-compare-outline';
+    }
+    if (level === 2) {
+      return 'ion:home';
+    }
+    if (level === 3) {
+      return 'ion:airplane';
+    }
+    return '';
+  }
 </script>

--
Gitblit v1.9.3