From bb24e36294077c38129e031a7ab0cf14bc01c636 Mon Sep 17 00:00:00 2001 From: jmal Date: Fri, 18 Jul 2025 17:56:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=A9=BA=E9=97=B4=E5=92=8C=E9=85=8D=E9=A2=9D=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/Sidebar/index.vue | 10 +++++----- src/utils/number.js | 21 +++++++++++---------- src/views/setting/sys/cusomerInfo.vue | 13 +++++++------ 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue index b2b65c9..4b5b1b2 100644 --- a/src/layout/components/Sidebar/index.vue +++ b/src/layout/components/Sidebar/index.vue @@ -406,15 +406,15 @@ export default { if (this.takeUpSpace === 0) { this.takeUpSpace = this.userInfo.takeUpSpace } - const quota = this.userInfo.quota - const space = this.takeUpSpace/1024/1024/1024 - if(space && quota > 0){ - const percentage = Number((space/quota * 100).toFixed(5)) + const spaceBytes = this.takeUpSpace + const quotaBytes = this.userInfo.quota * 1024 * 1024 * 1024 + if(spaceBytes && quotaBytes > 0){ + const percentage = Number((spaceBytes/quotaBytes * 100).toFixed(5)) this.percentage = percentage > 100 ? 100 : percentage if(this.isCollapse){ return `${formatSize(this.takeUpSpace)}` } else { - return `${formatSize(this.takeUpSpace)}/${quota}GB` + return `${formatSize(this.takeUpSpace)}/${formatSize(quotaBytes)}` } } } diff --git a/src/utils/number.js b/src/utils/number.js index 30af345..56660a4 100644 --- a/src/utils/number.js +++ b/src/utils/number.js @@ -127,17 +127,18 @@ export function formatTime(agoTime) { * @param {*} size */ export function formatSize(size) { - if (size === 0) { - return '' - } else if (size < 1024) { - return size + 'B' - } else if (size < 1024 * 1024) { - return (size/1024).toFixed(1) + 'k' - } else if (size < 1024 * 1024 * 1024) { - return (size/(1024 * 1024)).toFixed(1) + 'M' - } else { - return (size/(1024 * 1024 * 1024)).toFixed(1) + 'G' + if (size === 0 || !size) return '0B'; + + const units = ['B', 'K', 'M', 'G', 'T']; + let index = 0; + let result = size; + + while (result >= 1024 && index < units.length - 1) { + result /= 1024; + index++; } + + return result.toFixed(1) + units[index]; } /** diff --git a/src/views/setting/sys/cusomerInfo.vue b/src/views/setting/sys/cusomerInfo.vue index 488a081..87c4335 100644 --- a/src/views/setting/sys/cusomerInfo.vue +++ b/src/views/setting/sys/cusomerInfo.vue @@ -241,12 +241,13 @@ } }, progressFormat() { - const space = this.userInfo.takeUpSpace/1024/1024/1024 - const quota = this.userInfo.quota - if(space && quota > 0){ - const percentage = Number((space/quota * 100).toFixed(1)) - this.percentage = percentage > 100 ? 100 : percentage - return `${this.percentage}% (${formatSize(this.userInfo.takeUpSpace)}/${quota}GB)`; + const spaceBytes = this.userInfo.takeUpSpace; + const quotaBytes = this.userInfo.quota * 1024 * 1024 * 1024; + + if (spaceBytes && quotaBytes > 0) { + const percentage = Number((spaceBytes / quotaBytes * 100).toFixed(1)); + this.percentage = percentage > 100 ? 100 : percentage; + return `${this.percentage}% (${formatSize(spaceBytes)}/${formatSize(quotaBytes)})`; } }, // 设置formData From 260ce945cd13a5c1d6efcb08335a085ed2318426 Mon Sep 17 00:00:00 2001 From: jmal Date: Fri, 25 Jul 2025 18:11:53 +0800 Subject: [PATCH 2/2] perf: optimal drag upload functionality and clean up context menu options --- src/components/ShowFile/ShowFile.vue | 16 +++---- .../SimpleUploader/dragUploadUtils.js | 43 +++++++++++++++++++ .../SimpleUploader/globalUploader.vue | 13 +++--- src/views/favorite/index.vue | 3 +- src/views/fileType/audio.vue | 2 +- src/views/fileType/document.vue | 2 +- src/views/fileType/image.vue | 2 +- src/views/fileType/video.vue | 2 +- src/views/mount/index.vue | 3 +- src/views/recently/index.vue | 2 +- src/views/tag/index.vue | 3 +- 11 files changed, 66 insertions(+), 25 deletions(-) create mode 100644 src/components/SimpleUploader/dragUploadUtils.js diff --git a/src/components/ShowFile/ShowFile.vue b/src/components/ShowFile/ShowFile.vue index 7b7e20c..37af97f 100644 --- a/src/components/ShowFile/ShowFile.vue +++ b/src/components/ShowFile/ShowFile.vue @@ -21,7 +21,7 @@ @@ -91,7 +91,7 @@ @@ -39,7 +38,7 @@ }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, diff --git a/src/views/fileType/audio.vue b/src/views/fileType/audio.vue index 5846a05..7149375 100644 --- a/src/views/fileType/audio.vue +++ b/src/views/fileType/audio.vue @@ -39,7 +39,7 @@ export default { }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, diff --git a/src/views/fileType/document.vue b/src/views/fileType/document.vue index 3f0be3f..67a2b63 100644 --- a/src/views/fileType/document.vue +++ b/src/views/fileType/document.vue @@ -39,7 +39,7 @@ export default { }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, diff --git a/src/views/fileType/image.vue b/src/views/fileType/image.vue index dd08c15..39f9573 100644 --- a/src/views/fileType/image.vue +++ b/src/views/fileType/image.vue @@ -38,7 +38,7 @@ export default { }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, diff --git a/src/views/fileType/video.vue b/src/views/fileType/video.vue index f5db228..23eddab 100644 --- a/src/views/fileType/video.vue +++ b/src/views/fileType/video.vue @@ -39,7 +39,7 @@ export default { }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, diff --git a/src/views/mount/index.vue b/src/views/mount/index.vue index e324a39..91e0eb5 100644 --- a/src/views/mount/index.vue +++ b/src/views/mount/index.vue @@ -9,7 +9,6 @@ :defaultSort="sortable" :queryCondition="queryCondition" :contextMenus="contextMenus" - homeHidden > @@ -39,7 +38,7 @@ }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, diff --git a/src/views/recently/index.vue b/src/views/recently/index.vue index 9ccc69a..951d11a 100644 --- a/src/views/recently/index.vue +++ b/src/views/recently/index.vue @@ -37,7 +37,7 @@ }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles}, + { label: '新建', operation: 'create' , child: createFiles}, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'}, ] diff --git a/src/views/tag/index.vue b/src/views/tag/index.vue index 515e73c..fca535e 100644 --- a/src/views/tag/index.vue +++ b/src/views/tag/index.vue @@ -8,7 +8,6 @@ :defaultSort="sortable" :queryCondition="queryCondition" :contextMenus="contextMenus" - homeHidden > @@ -38,7 +37,7 @@ export default { }, { label: '刷新', operation: 'refresh'}, { divider: true, operation: 'divider' }, - { label: '新建', operation: 'create' , homeDisable: true, child: createFiles + { label: '新建', operation: 'create' , child: createFiles }, { divider: true, operation: 'divider' }, { label: '写文章', operation: 'createMarkdownFile'},