diff --git a/src/components/FileBrowser.vue b/src/components/FileBrowser.vue index 0fe3b483..ea7aae06 100644 --- a/src/components/FileBrowser.vue +++ b/src/components/FileBrowser.vue @@ -134,6 +134,9 @@ const refreshPending = ref(false) // 排序 const sort = ref('name') +// 是否显示目录树 +const showDirTree = ref(false) + // 计算属性 const storagesArray = computed(() => { const storageCodes = props.storages?.map(item => item.type) @@ -163,6 +166,11 @@ function sortChanged(s: string) { refreshPending.value = true } +// 切换目录树 +function switchDirTree(state: boolean) { + showDirTree.value = !state +} + // 文件列表 const fileListItems = ref([]) @@ -202,14 +210,18 @@ const fileListStyle = computed(() => { @sortchanged="sortChanged" />
- + +
+ +
+
{ :refreshpending="refreshPending" :sort="sort" :listStyle="fileListStyle" + :showTree="showDirTree" @pathchanged="pathChanged" @loading="loadingChanged" @refreshed="refreshPending = false" @filedeleted="refreshPending = true" @renamed="refreshPending = true" @items-updated="fileListUpdated" + @switch-tree="switchDirTree" />
diff --git a/src/components/filebrowser/FileList.vue b/src/components/filebrowser/FileList.vue index 332eaac3..65c1d2cd 100644 --- a/src/components/filebrowser/FileList.vue +++ b/src/components/filebrowser/FileList.vue @@ -30,10 +30,19 @@ const inProps = defineProps({ }, sort: String, listStyle: String, + showTree: Boolean, }) // 对外事件 -const emit = defineEmits(['loading', 'pathchanged', 'refreshed', 'filedeleted', 'renamed', 'items-updated']) +const emit = defineEmits([ + 'loading', + 'pathchanged', + 'refreshed', + 'filedeleted', + 'renamed', + 'items-updated', + 'switch-tree', +]) // 确认框 const createConfirm = useConfirm() @@ -369,6 +378,11 @@ function formatTime(timestape: number) { return new Date(timestape * 1000).toLocaleString() } +// 切换文件树显示 +function switchFileTree() { + emit('switch-tree', inProps.showTree) +} + // 监听refreshPending变化 watch( () => inProps.refreshpending, @@ -535,6 +549,9 @@ onMounted(() => {