From bd621d07ac185927ad62a9f984ab4df0bbc3b6ff Mon Sep 17 00:00:00 2001 From: yanzy <1319542051@qq.com> Date: Thu, 6 Nov 2025 22:11:09 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96upload-panel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/upload/index.ts | 2 +- src/views/files/components/upload-panel.vue | 198 +++++++++++++++----- src/views/files/index.vue | 36 +--- 3 files changed, 158 insertions(+), 78 deletions(-) diff --git a/src/store/modules/upload/index.ts b/src/store/modules/upload/index.ts index 54b991e..ffa1a2a 100644 --- a/src/store/modules/upload/index.ts +++ b/src/store/modules/upload/index.ts @@ -94,7 +94,7 @@ export const useUploadTaskStore = defineStore('uploadTask', () => { status: 'pending', progress: 0, parentId, - } + }; }); taskList.value.push(...newTasks); diff --git a/src/views/files/components/upload-panel.vue b/src/views/files/components/upload-panel.vue index ef8a91d..9280898 100644 --- a/src/views/files/components/upload-panel.vue +++ b/src/views/files/components/upload-panel.vue @@ -1,93 +1,195 @@ -- Gitee From e5df81d035000b3a1c55380f5e54cbf91398643c Mon Sep 17 00:00:00 2001 From: yanzy <1319542051@qq.com> Date: Thu, 6 Nov 2025 22:27:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BC=A0=E8=BE=93=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/routes/modules/root.ts | 12 ++ src/views/files/components/upload-panel.vue | 9 - src/views/files/transmission.vue | 218 ++++++++++++++++++++ 3 files changed, 230 insertions(+), 9 deletions(-) create mode 100644 src/views/files/transmission.vue diff --git a/src/router/routes/modules/root.ts b/src/router/routes/modules/root.ts index 9a978b1..9a7392e 100644 --- a/src/router/routes/modules/root.ts +++ b/src/router/routes/modules/root.ts @@ -45,6 +45,18 @@ const ROOT: AppRouteRecordRaw = { order: 3, }, }, + { + path: 'transmission', + name: 'transmission', + component: () => import('@/views/files/transmission.vue'), + meta: { + title: '传输', + requiresAuth: true, + icon: 'IconSwap', + hideInMenu: false, + order: 4, + }, + }, { path: 'profile', name: 'profile', diff --git a/src/views/files/components/upload-panel.vue b/src/views/files/components/upload-panel.vue index 9280898..30ac248 100644 --- a/src/views/files/components/upload-panel.vue +++ b/src/views/files/components/upload-panel.vue @@ -128,30 +128,21 @@ () => uploadStore.isExpanded, (isExpanded) => { if (isExpanded) { - // (A) 当面板展开时: - // 使用 nextTick 确保 DOM 元素已经渲染 requestAnimationFrame(() => { - // requestAnimationFrame 比 nextTick 更适合测量 if (!expandedPanelRef.value) return; - // 创建一个 Observer 实例 panelObserver.value = new ResizeObserver((entries) => { - // 当尺寸变化时,更新我们的 ref if (entries[0]) { measuredPanelHeight.value = entries[0].contentRect.height; } }); - // 开始监视! panelObserver.value.observe(expandedPanelRef.value); }); } else { - // (B) 当面板折叠时: if (panelObserver.value) { - // 停止监视,清理资源 panelObserver.value.disconnect(); panelObserver.value = null; } - // 重置测量高度 measuredPanelHeight.value = 0; } } diff --git a/src/views/files/transmission.vue b/src/views/files/transmission.vue new file mode 100644 index 0000000..a932b64 --- /dev/null +++ b/src/views/files/transmission.vue @@ -0,0 +1,218 @@ + + + + + -- Gitee