perf: Optimize file directory style

v3.2
wangdan-fit2cloud 2025-11-05 11:44:57 +08:00
parent ddc60dd1c3
commit b841d862a8
3 changed files with 138 additions and 126 deletions

View File

@ -7,7 +7,7 @@
clearable clearable
class="p-8" class="p-8"
/> />
<div class="tree-height" :style="treeStyle">
<div v-if="showShared && hasPermission(EditionConst.IS_EE, 'OR')" class="border-b mb-4"> <div v-if="showShared && hasPermission(EditionConst.IS_EE, 'OR')" class="border-b mb-4">
<div <div
@click="handleSharedNodeClick" @click="handleSharedNodeClick"
@ -25,6 +25,13 @@
<el-scrollbar> <el-scrollbar>
<el-tree <el-tree
class="overflow-inherit_node__children"
:class="
showShared && hasPermission(EditionConst.IS_EE, 'OR')
? 'tree-height-shared'
: 'tree-height '
"
:style="treeStyle"
ref="treeRef" ref="treeRef"
:data="data" :data="data"
:props="defaultProps" :props="defaultProps"
@ -33,7 +40,6 @@
:default-expanded-keys="[currentNodeKey]" :default-expanded-keys="[currentNodeKey]"
:current-node-key="currentNodeKey" :current-node-key="currentNodeKey"
highlight-current highlight-current
class="overflow-inherit_node__children"
draggable draggable
:allow-drop="allowDrop" :allow-drop="allowDrop"
:allow-drag="allowDrag" :allow-drag="allowDrag"
@ -90,7 +96,10 @@
@click.stop="openAuthorization(data)" @click.stop="openAuthorization(data)"
v-if="permissionPrecise.folderAuth(data.id)" v-if="permissionPrecise.folderAuth(data.id)"
> >
<AppIcon iconName="app-resource-authorization" class="color-secondary"></AppIcon> <AppIcon
iconName="app-resource-authorization"
class="color-secondary"
></AppIcon>
{{ $t('views.system.resourceAuthorization.title') }} {{ $t('views.system.resourceAuthorization.title') }}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item <el-dropdown-item
@ -110,13 +119,9 @@
</template> </template>
</el-tree> </el-tree>
</el-scrollbar> </el-scrollbar>
</div>
<CreateFolderDialog ref="CreateFolderDialogRef" @refresh="refreshFolder" :title="title" /> <CreateFolderDialog ref="CreateFolderDialogRef" @refresh="refreshFolder" :title="title" />
<MoveToDialog <MoveToDialog ref="MoveToDialogRef" :source="props.source" @refresh="emit('refreshTree')" />
ref="MoveToDialogRef"
:source="props.source"
@refresh="emit('refreshTree')"
/>
<ResourceAuthorizationDrawer <ResourceAuthorizationDrawer
:type="props.source" :type="props.source"
:is-folder="true" :is-folder="true"
@ -202,7 +207,7 @@ const MoreFilledPermission = (node: any, data: any) => {
} }
const MoveToDialogRef = ref() const MoveToDialogRef = ref()
function openMoveToDialog(data:any) { function openMoveToDialog(data: any) {
const obj = { const obj = {
id: data.id, id: data.id,
folder_type: props.source, folder_type: props.source,
@ -234,9 +239,10 @@ const handleDrop = (draggingNode: any, dropNode: any, dropType: string, ev: Drag
} }
const obj = { const obj = {
...dragData, ...dragData,
parent_id: newParentId parent_id: newParentId,
} }
folderApi.putFolder(dragData.id, props.source, obj, loading) folderApi
.putFolder(dragData.id, props.source, obj, loading)
.then(() => { .then(() => {
MsgSuccess(t('common.saveSuccess')) MsgSuccess(t('common.saveSuccess'))
emit('refreshTree') emit('refreshTree')
@ -253,7 +259,7 @@ onBeforeRouteLeave((to, from) => {
onMounted(() => { onMounted(() => {
bus.on('select_node', (id: string) => { bus.on('select_node', (id: string) => {
treeRef.value?.setCurrentKey(id) treeRef.value?.setCurrentKey(id)
hoverNodeId.value=id hoverNodeId.value = id
}) })
}) })
interface Tree { interface Tree {
@ -385,12 +391,15 @@ onUnmounted(() => {
} }
} }
} }
.tree-height-shared {
padding-top: 4px;
height: calc(100vh - 220px);
}
.tree-height { .tree-height {
padding-top: 4px; padding-top: 4px;
height: calc(100vh - 210px); height: calc(100vh - 180px);
} }
} :deep(.el-tree) {
:deep(.el-tree) {
.el-tree-node.is-dragging { .el-tree-node.is-dragging {
opacity: 0.5; opacity: 0.5;
} }
@ -403,9 +412,10 @@ onUnmounted(() => {
position: relative; position: relative;
} }
} }
:deep(.overflow-inherit_node__children) { :deep(.overflow-inherit_node__children) {
.el-tree-node__children { .el-tree-node__children {
overflow: inherit !important; overflow: inherit !important;
} }
}
} }
</style> </style>

View File

@ -1,5 +1,9 @@
<template> <template>
<div v-show="show" class="workflow-dropdown-menu border border-r-6 white-bg" :style="{ width: activeName === 'base' ? '400px':'640px' }"> <div
v-show="show"
class="workflow-dropdown-menu border border-r-6 white-bg"
:style="{ width: activeName === 'base' ? '400px' : '640px' }"
>
<el-tabs v-model="activeName" class="workflow-dropdown-tabs" @tab-change="handleClick"> <el-tabs v-model="activeName" class="workflow-dropdown-tabs" @tab-change="handleClick">
<div <div
v-show="activeName === 'base'" v-show="activeName === 'base'"
@ -80,6 +84,7 @@
:shareTitle="$t('views.shared.shared_tool')" :shareTitle="$t('views.shared.shared_tool')"
:showShared="permissionPrecise['is_share']()" :showShared="permissionPrecise['is_share']()"
:canOperation="false" :canOperation="false"
:treeStyle="{ height: '400px' }"
/> />
</div> </div>
</template> </template>
@ -103,6 +108,7 @@
:currentNodeKey="folder.currentFolder?.id" :currentNodeKey="folder.currentFolder?.id"
@handleNodeClick="folderClickHandle" @handleNodeClick="folderClickHandle"
:canOperation="false" :canOperation="false"
:treeStyle="{ height: '400px' }"
/> />
</div> </div>
</template> </template>
@ -342,9 +348,5 @@ onMounted(() => {})
:deep(.el-tabs__header) { :deep(.el-tabs__header) {
margin-bottom: 0; margin-bottom: 0;
} }
:deep(.tree-height) {
height: 400px;
}
} }
</style> </style>

View File

@ -60,7 +60,7 @@
:maxTableHeight="260" :maxTableHeight="260"
:row-key="(row: any) => row.id" :row-key="(row: any) => row.id"
style="min-width: 600px" style="min-width: 600px"
:expand-row-keys="defaultExpandKeys"
show-overflow-tooltip show-overflow-tooltip
> >
<el-table-column type="selection" width="55" :reserve-selection="true"> </el-table-column> <el-table-column type="selection" width="55" :reserve-selection="true"> </el-table-column>