Skip to content

Commit d40ae86

Browse files
feat: virtualized tree move
1 parent 8a48a6b commit d40ae86

6 files changed

Lines changed: 22 additions & 20 deletions

File tree

ui/src/components/folder-virtualized-tree/MoveToDialog.vue

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
:close-on-click-modal="false"
77
:close-on-press-escape="false"
88
align-center
9+
width="720"
910
>
10-
<folder-tree
11-
ref="treeRef"
11+
<FolderVirtualizedTree
1212
:source="source"
1313
:data="folderList"
14-
:default-expanded-keys="[currentNodeKey]"
14+
:currentNodeKey="currentNodeKey"
1515
:canOperation="false"
1616
class="move-to-dialog-tree"
1717
@handleNodeClick="folderClickHandle"
@@ -25,7 +25,7 @@
2525
type="primary"
2626
@click="submitHandle"
2727
:loading="loading"
28-
:disabled="!selectForderId || selectForderId === folder?.currentFolder?.id"
28+
:disabled="!selectForderId || (!isFolder && selectForderId === folder?.currentFolder?.id)"
2929
>
3030
{{ $t('common.confirm') }}
3131
</el-button>
@@ -53,7 +53,6 @@ const props = defineProps({
5353
},
5454
})
5555
56-
const treeRef = ref()
5756
const loading = ref(false)
5857
const dialogVisible = ref(false)
5958
const folderList = ref<any[]>([])
@@ -68,7 +67,6 @@ watch(dialogVisible, (bool) => {
6867
selectForderId.value = ''
6968
folderList.value = []
7069
currentNodeKey.value = ''
71-
treeRef.value?.clearCurrentKey()
7270
}
7371
})
7472
@@ -95,6 +93,7 @@ function getFolder() {
9593
}
9694
9795
function folderClickHandle(item: any) {
96+
currentNodeKey.value = item.id
9897
selectForderId.value = item.id
9998
}
10099
@@ -180,11 +179,9 @@ defineExpose({ open })
180179
padding: 0 !important;
181180
margin-bottom: 8px;
182181
}
183-
:deep(.el-scrollbar) {
182+
:deep(.maxkb-virtualized-tree) {
184183
border: 1px solid var(--el-border-color-light);
185184
border-radius: 6px;
186-
}
187-
:deep(.el-tree) {
188185
height: calc(100vh - 320px) !important;
189186
}
190187
}

ui/src/components/folder-virtualized-tree/VirtualizedTree.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
@after-drop="onAfterDrop"
1111
:rootDroppable="false"
1212
:statHandler="statHandler"
13-
:disableDrag="draggable"
14-
:disableDrop="draggable"
13+
:disableDrag="!draggable"
14+
:disableDrop="!draggable"
1515
>
1616
<template #default="{ node, stat }">
1717
<div

ui/src/components/folder-virtualized-tree/index.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
@handleNodeClick="handleNodeClick"
6262
:current-node-key="currentNodeKey"
6363
:filter-node-method="filterNode"
64+
:draggable="draggable"
6465
>
6566
<template #default="{ node, stat }">
6667
<div @mouseenter.stop="handleMouseEnter(node)" class="flex align-center custom-tree-node">
@@ -142,10 +143,14 @@
142143
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
143144
import { onBeforeRouteLeave } from 'vue-router'
144145
import VirtualizedTree from './VirtualizedTree.vue'
145-
import CreateFolderDialog from '@/components/folder-tree/CreateFolderDialog.vue'
146+
import CreateFolderDialog from '@/components/folder-virtualized-tree/CreateFolderDialog.vue'
146147
import ResourceAuthorizationDrawer from '@/components/resource-authorization-drawer/index.vue'
147-
import MoveToDialog from '@/components/folder-tree/MoveToDialog.vue'
148-
import { SORT_MENU_CONFIG, SORT_TYPES, type SortType } from '@/components/folder-tree/constant'
148+
import MoveToDialog from '@/components/folder-virtualized-tree/MoveToDialog.vue'
149+
import {
150+
SORT_MENU_CONFIG,
151+
SORT_TYPES,
152+
type SortType,
153+
} from '@/components/folder-virtualized-tree/constant'
149154
import { t } from '@/locales'
150155
import { debounce } from 'lodash'
151156
import { i18n_name } from '@/utils/common'

ui/src/views/application/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,9 +400,9 @@ import { onMounted, ref, reactive, computed } from 'vue'
400400
import { useRouter, useRoute } from 'vue-router'
401401
import type { CheckboxValueType } from 'element-plus'
402402
import CreateApplicationDialog from '@/views/application/component/CreateApplicationDialog.vue'
403-
import CreateFolderDialog from '@/components/folder-tree/CreateFolderDialog.vue'
403+
import CreateFolderDialog from '@/components/folder-virtualized-tree/CreateFolderDialog.vue'
404404
import CopyApplicationDialog from '@/views/application/component/CopyApplicationDialog.vue'
405-
import MoveToDialog from '@/components/folder-tree/MoveToDialog.vue'
405+
import MoveToDialog from '@/components/folder-virtualized-tree/MoveToDialog.vue'
406406
import ResourceAuthorizationDrawer from '@/components/resource-authorization-drawer/index.vue'
407407
import ResourceTriggerDrawer from '@/views/trigger/ResourceTriggerDrawer.vue'
408408
import TemplateStoreDialog from '@/views/application/template-store/TemplateStoreDialog.vue'

ui/src/views/knowledge/component/KnowledgeListContainer.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,8 +441,8 @@ import CreateWebKnowledgeDialog from '@/views/knowledge/create-component/CreateW
441441
import CreateLarkKnowledgeDialog from '@/views/knowledge/create-component/CreateLarkKnowledgeDialog.vue'
442442
import CreateWorkflowKnowledgeDialog from '@/views/knowledge/create-component/CreateWorkflowKnowledgeDialog.vue'
443443
import SyncWebDialog from '@/views/knowledge/component/SyncWebDialog.vue'
444-
import CreateFolderDialog from '@/components/folder-tree/CreateFolderDialog.vue'
445-
import MoveToDialog from '@/components/folder-tree/MoveToDialog.vue'
444+
import CreateFolderDialog from '@/components/folder-virtualized-tree/CreateFolderDialog.vue'
445+
import MoveToDialog from '@/components/folder-virtualized-tree/MoveToDialog.vue'
446446
import GenerateRelatedDialog from '@/components/generate-related-dialog/index.vue'
447447
import AuthorizedWorkspace from '@/views/system-shared/AuthorizedWorkspaceDialog.vue'
448448
import ResourceAuthorizationDrawer from '@/components/resource-authorization-drawer/index.vue'

ui/src/views/tool/component/ToolListContainer.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,11 +502,11 @@ import ToolFormDrawer from '@/views/tool/ToolFormDrawer.vue'
502502
import McpToolFormDrawer from '@/views/tool/McpToolFormDrawer.vue'
503503
import SkillToolFormDrawer from '@/views/tool/SkillToolFormDrawer.vue'
504504
import DataSourceToolFormDrawer from '@/views/tool/DataSourceToolFormDrawer.vue'
505-
import CreateFolderDialog from '@/components/folder-tree/CreateFolderDialog.vue'
505+
import CreateFolderDialog from '@/components/folder-virtualized-tree/CreateFolderDialog.vue'
506506
import AuthorizedWorkspace from '@/views/system-shared/AuthorizedWorkspaceDialog.vue'
507507
import ToolStoreDialog from '@/views/tool/tool-store/ToolStoreDialog.vue'
508508
import AddInternalToolDialog from '@/views/tool/tool-store/AddInternalToolDialog.vue'
509-
import MoveToDialog from '@/components/folder-tree/MoveToDialog.vue'
509+
import MoveToDialog from '@/components/folder-virtualized-tree/MoveToDialog.vue'
510510
import ResourceAuthorizationDrawer from '@/components/resource-authorization-drawer/index.vue'
511511
import McpToolConfigDialog from '@/views/tool/component/McpToolConfigDialog.vue'
512512
import ResourceTriggerDrawer from '@/views/trigger/ResourceTriggerDrawer.vue'

0 commit comments

Comments
 (0)