From c011166320f4d7c94fbe649c91f300379d3b0d13 Mon Sep 17 00:00:00 2001 From: qwas Date: Sat, 31 Jan 2026 17:34:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=87=E4=BB=B6=E5=88=97?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=88=97=E8=A1=A8=E8=A7=86?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/FileGrid.vue | 514 +++++++++++++++++++++--------- web/src/views/files/FilesView.vue | 35 ++ 2 files changed, 400 insertions(+), 149 deletions(-) diff --git a/web/src/components/FileGrid.vue b/web/src/components/FileGrid.vue index f227f5b..2e13376 100644 --- a/web/src/components/FileGrid.vue +++ b/web/src/components/FileGrid.vue @@ -6,7 +6,7 @@ import { getFileIcon, getFileTypeColor, isImage } from '@/utils/file' const props = defineProps({ files: { type: Array, - required: true, + required: false, default: () => [], }, folders: { @@ -29,6 +29,10 @@ const props = defineProps({ type: Boolean, default: true, }, + viewMode: { + type: String, + default: 'grid', // 'grid' or 'list' + }, }) const emit = defineEmits([ @@ -90,71 +94,232 @@ const hoveredFolder = ref(null) diff --git a/web/src/views/files/FilesView.vue b/web/src/views/files/FilesView.vue index 4731c1d..b365b4f 100644 --- a/web/src/views/files/FilesView.vue +++ b/web/src/views/files/FilesView.vue @@ -44,6 +44,7 @@ const selectedFiles = ref([]) const selectedFolders = ref([]) const isSelectionMode = ref(false) const showBatchMoveModal = ref(false) +const viewMode = ref('grid') // 'grid' or 'list' const moveTargetFolderId = ref(null) const moveBreadcrumbs = ref([]) const moveFolders = ref([]) @@ -432,6 +433,39 @@ onMounted(async () => {

+ +
+ + +
-
+
-
+
@@ -685,7 +687,7 @@ onMounted(async () => {
显示 {{ files.length }} / {{ totalFiles }} 个文件 @@ -724,7 +726,7 @@ onMounted(async () => {
🔍
@@ -742,7 +744,7 @@ onMounted(async () => { @upload-complete="handleDragUploadComplete" >
{ @rename-file="handleRenameFile" /> -
+