77 clearable
88 class =" p-8"
99 />
10- <div class =" tree-height" :style =" treeStyle" >
11- <div v-if =" showShared && hasPermission(EditionConst.IS_EE, 'OR')" class =" border-b mb-4" >
12- <div
13- @click =" handleSharedNodeClick"
14- class =" shared-button flex cursor"
15- :class =" currentNodeKey === 'share' && 'active'"
16- >
17- <AppIcon
18- iconName =" app-shared-active"
19- style =" font-size : 18px "
20- class =" color-primary"
21- ></AppIcon >
22- <span class =" ml-8" >{{ shareTitle }}</span >
23- </div >
10+
11+ <div v-if =" showShared && hasPermission(EditionConst.IS_EE, 'OR')" class =" border-b mb-4" >
12+ <div
13+ @click =" handleSharedNodeClick"
14+ class =" shared-button flex cursor"
15+ :class =" currentNodeKey === 'share' && 'active'"
16+ >
17+ <AppIcon
18+ iconName =" app-shared-active"
19+ style =" font-size : 18px "
20+ class =" color-primary"
21+ ></AppIcon >
22+ <span class =" ml-8" >{{ shareTitle }}</span >
2423 </div >
24+ </div >
2525
26- <el-scrollbar >
27- <el-tree
28- ref =" treeRef"
29- :data =" data"
30- :props =" defaultProps"
31- @node-click =" handleNodeClick"
32- :filter-node-method =" filterNode"
33- :default-expanded-keys =" [currentNodeKey]"
34- :current-node-key =" currentNodeKey"
35- highlight-current
36- class =" overflow-inherit_node__children"
37- draggable
38- :allow-drop =" allowDrop"
39- :allow-drag =" allowDrag"
40- @node-drop =" handleDrop"
41- node-key =" id"
42- v-loading =" loading"
43- v-bind =" $attrs"
44- >
45- <template #default =" { node , data } " >
46- <div class =" flex-between w-full" @mouseenter.stop =" handleMouseEnter(data)" >
47- <div class =" flex align-center" >
48- <AppIcon iconName =" app-folder" style =" font-size : 20px " ></AppIcon >
49- <span class =" ml-8 ellipsis tree-label" style =" max-width : 110px " :title =" node.label" >{{
50- i18n_name(node.label)
51- }}</span >
52- </div >
26+ <el-scrollbar >
27+ <el-tree
28+ class =" overflow-inherit_node__children"
29+ :class ="
30+ showShared && hasPermission(EditionConst.IS_EE, 'OR')
31+ ? 'tree-height-shared'
32+ : 'tree-height '
33+ "
34+ :style =" treeStyle"
35+ ref =" treeRef"
36+ :data =" data"
37+ :props =" defaultProps"
38+ @node-click =" handleNodeClick"
39+ :filter-node-method =" filterNode"
40+ :default-expanded-keys =" [currentNodeKey]"
41+ :current-node-key =" currentNodeKey"
42+ highlight-current
43+ draggable
44+ :allow-drop =" allowDrop"
45+ :allow-drag =" allowDrag"
46+ @node-drop =" handleDrop"
47+ node-key =" id"
48+ v-loading =" loading"
49+ v-bind =" $attrs"
50+ >
51+ <template #default =" { node , data } " >
52+ <div class =" flex-between w-full" @mouseenter.stop =" handleMouseEnter(data)" >
53+ <div class =" flex align-center" >
54+ <AppIcon iconName =" app-folder" style =" font-size : 20px " ></AppIcon >
55+ <span class =" ml-8 ellipsis tree-label" style =" max-width : 110px " :title =" node.label" >{{
56+ i18n_name(node.label)
57+ }}</span >
58+ </div >
5359
54- <div
55- v-if =" canOperation && MoreFilledPermission(node, data)"
56- @click.stop
57- v-show =" hoverNodeId === data.id"
58- @mouseenter.stop =" handleMouseEnter(data)"
59- @mouseleave.stop =" handleMouseleave"
60- class =" mr-16"
61- >
62- <el-dropdown trigger =" click" :teleported =" false" >
63- <el-button text class =" w-full" v-if =" MoreFilledPermission(node, data)" >
64- <AppIcon iconName =" app-more" ></AppIcon >
65- </el-button >
66- <template #dropdown >
67- <el-dropdown-menu >
68- <el-dropdown-item
69- @click.stop =" openCreateFolder(data)"
70- v-if =" permissionPrecise.folderCreate(data.id)"
71- >
72- <AppIcon iconName =" app-add-folder" class =" color-secondary" ></AppIcon >
73- {{ $t('components.folder.addChildFolder') }}
74- </el-dropdown-item >
75- <el-dropdown-item
76- @click.stop =" openEditFolder(data)"
77- v-if =" permissionPrecise.folderEdit(data.id)"
78- >
79- <AppIcon iconName =" app-edit" class =" color-secondary" ></AppIcon >
80- {{ $t('common.edit') }}
81- </el-dropdown-item >
82- <el-dropdown-item
83- @click.stop =" openMoveToDialog(data)"
84- v-if =" node.level !== 1 && permissionPrecise.folderEdit(data.id)"
85- >
86- <AppIcon iconName =" app-migrate" class =" color-secondary" ></AppIcon >
87- {{ $t('common.moveTo') }}
88- </el-dropdown-item >
89- <el-dropdown-item
90- @click.stop =" openAuthorization(data)"
91- v-if =" permissionPrecise.folderAuth(data.id)"
92- >
93- <AppIcon iconName =" app-resource-authorization" class =" color-secondary" ></AppIcon >
94- {{ $t('views.system.resourceAuthorization.title') }}
95- </el-dropdown-item >
96- <el-dropdown-item
97- divided
98- @click.stop =" deleteFolder(data)"
99- :disabled =" !data.parent_id"
100- v-if =" permissionPrecise.folderDelete(data.id)"
101- >
102- <AppIcon iconName =" app-delete" class =" color-secondary" ></AppIcon >
103- {{ $t('common.delete') }}
104- </el-dropdown-item >
105- </el-dropdown-menu >
106- </template >
107- </el-dropdown >
108- </div >
60+ <div
61+ v-if =" canOperation && MoreFilledPermission(node, data)"
62+ @click.stop
63+ v-show =" hoverNodeId === data.id"
64+ @mouseenter.stop =" handleMouseEnter(data)"
65+ @mouseleave.stop =" handleMouseleave"
66+ class =" mr-16"
67+ >
68+ <el-dropdown trigger =" click" :teleported =" false" >
69+ <el-button text class =" w-full" v-if =" MoreFilledPermission(node, data)" >
70+ <AppIcon iconName =" app-more" ></AppIcon >
71+ </el-button >
72+ <template #dropdown >
73+ <el-dropdown-menu >
74+ <el-dropdown-item
75+ @click.stop =" openCreateFolder(data)"
76+ v-if =" permissionPrecise.folderCreate(data.id)"
77+ >
78+ <AppIcon iconName =" app-add-folder" class =" color-secondary" ></AppIcon >
79+ {{ $t('components.folder.addChildFolder') }}
80+ </el-dropdown-item >
81+ <el-dropdown-item
82+ @click.stop =" openEditFolder(data)"
83+ v-if =" permissionPrecise.folderEdit(data.id)"
84+ >
85+ <AppIcon iconName =" app-edit" class =" color-secondary" ></AppIcon >
86+ {{ $t('common.edit') }}
87+ </el-dropdown-item >
88+ <el-dropdown-item
89+ @click.stop =" openMoveToDialog(data)"
90+ v-if =" node.level !== 1 && permissionPrecise.folderEdit(data.id)"
91+ >
92+ <AppIcon iconName =" app-migrate" class =" color-secondary" ></AppIcon >
93+ {{ $t('common.moveTo') }}
94+ </el-dropdown-item >
95+ <el-dropdown-item
96+ @click.stop =" openAuthorization(data)"
97+ v-if =" permissionPrecise.folderAuth(data.id)"
98+ >
99+ <AppIcon
100+ iconName =" app-resource-authorization"
101+ class =" color-secondary"
102+ ></AppIcon >
103+ {{ $t('views.system.resourceAuthorization.title') }}
104+ </el-dropdown-item >
105+ <el-dropdown-item
106+ divided
107+ @click.stop =" deleteFolder(data)"
108+ :disabled =" !data.parent_id"
109+ v-if =" permissionPrecise.folderDelete(data.id)"
110+ >
111+ <AppIcon iconName =" app-delete" class =" color-secondary" ></AppIcon >
112+ {{ $t('common.delete') }}
113+ </el-dropdown-item >
114+ </el-dropdown-menu >
115+ </template >
116+ </el-dropdown >
109117 </div >
110- </template >
111- </el-tree >
112- </el-scrollbar >
113- </div >
118+ </div >
119+ </template >
120+ </el-tree >
121+ </el-scrollbar >
122+
114123 <CreateFolderDialog ref =" CreateFolderDialogRef" @refresh =" refreshFolder" :title =" title" />
115- <MoveToDialog
116- ref =" MoveToDialogRef"
117- :source =" props.source"
118- @refresh =" emit('refreshTree')"
119- />
124+ <MoveToDialog ref =" MoveToDialogRef" :source =" props.source" @refresh =" emit('refreshTree')" />
120125 <ResourceAuthorizationDrawer
121126 :type =" props.source"
122127 :is-folder =" true"
@@ -202,7 +207,7 @@ const MoreFilledPermission = (node: any, data: any) => {
202207}
203208
204209const MoveToDialogRef = ref ()
205- function openMoveToDialog(data : any ) {
210+ function openMoveToDialog(data : any ) {
206211 const obj = {
207212 id: data .id ,
208213 folder_type: props .source ,
@@ -211,14 +216,14 @@ function openMoveToDialog(data:any) {
211216}
212217
213218const allowDrag = (node : any ) => {
214- return permissionPrecise .value .folderEdit (node .data .id )
219+ return permissionPrecise .value .folderEdit (node .data .id )
215220}
216221
217222const allowDrop = (draggingNode : any , dropNode : any , type : string ) => {
218223 const dropData = dropNode .data
219224 if (type === ' inner' ) {
220225 return permissionPrecise .value .folderEdit (dropData .id )
221- }
226+ }
222227 return false
223228}
224229
@@ -234,9 +239,10 @@ const handleDrop = (draggingNode: any, dropNode: any, dropType: string, ev: Drag
234239 }
235240 const obj = {
236241 ... dragData ,
237- parent_id: newParentId
242+ parent_id: newParentId ,
238243 }
239- folderApi .putFolder (dragData .id , props .source , obj , loading )
244+ folderApi
245+ .putFolder (dragData .id , props .source , obj , loading )
240246 .then (() => {
241247 MsgSuccess (t (' common.saveSuccess' ))
242248 emit (' refreshTree' )
@@ -253,8 +259,8 @@ onBeforeRouteLeave((to, from) => {
253259onMounted (() => {
254260 bus .on (' select_node' , (id : string ) => {
255261 treeRef .value ?.setCurrentKey (id )
256- hoverNodeId .value = id
257- })
262+ hoverNodeId .value = id
263+ })
258264})
259265interface Tree {
260266 name: string
@@ -385,12 +391,15 @@ onUnmounted(() => {
385391 }
386392 }
387393 }
394+ .tree-height-shared {
395+ padding-top : 4px ;
396+ height : calc (100vh - 220px );
397+ }
388398 .tree-height {
389399 padding-top : 4px ;
390- height : calc (100vh - 210 px );
400+ height : calc (100vh - 180 px );
391401 }
392- }
393- :deep(.el-tree ) {
402+ :deep (.el-tree ) {
394403 .el- tree- node.is- dragging {
395404 opacity : 0.5 ;
396405 }
@@ -403,9 +412,10 @@ onUnmounted(() => {
403412 position : relative ;
404413 }
405414 }
406- :deep(.overflow-inherit_node__children ) {
407- .el-tree-node__children {
408- overflow : inherit !important ;
415+ :deep(.overflow-inherit_node__children ) {
416+ .el-tree-node__children {
417+ overflow : inherit !important ;
418+ }
409419 }
410420}
411421 </style >
0 commit comments