From b26f9ec544240f91d72d82dc9c25e69eed3499df Mon Sep 17 00:00:00 2001 From: jmal Date: Tue, 9 Jul 2024 16:19:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=87=E4=BB=B6=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E5=92=8C=E9=87=8D=E5=91=BD=E5=90=8D=E6=B7=BB=E5=8A=A0=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ShowFile/ShowFile.vue | 50 +++++++++++--- src/components/preview/FileDetails.vue | 94 +++++++++++++++----------- src/styles/index.scss | 3 +- 3 files changed, 96 insertions(+), 51 deletions(-) diff --git a/src/components/ShowFile/ShowFile.vue b/src/components/ShowFile/ShowFile.vue index 4e1cb30..6c2621b 100644 --- a/src/components/ShowFile/ShowFile.vue +++ b/src/components/ShowFile/ShowFile.vue @@ -294,6 +294,9 @@ @@ -905,10 +908,11 @@ export default { { iconClass: 'menu-favorite', label: '收藏', operation: 'favorite' }, { iconClass: 'menu-details', - label: '详细信息', + label: '详情', + shortcut: "space", operation: 'details', }, - { iconClass: 'menu-rename', label: '重命名', operation: 'rename' }, + { iconClass: 'menu-rename', label: '重命名', operation: 'rename', shortcut: 'F2' }, { iconClass: 'menu-copy', label: '移动或复制', operation: 'copy' }, { iconClass: 'menu-download', label: '下载', operation: 'download' }, { iconClass: 'menu-remove', label: '删除', operation: 'remove' }, @@ -1057,6 +1061,7 @@ export default { audioPreviewRow: {}, audioPreviewVisible: false, drawer: false, + drawerShowTime: 0, // drawer显示的时间 rowStyleExecuting: false, selectRowData: [], selectOrgin: -1, // 选择起点(主要用于按住shift键多选) @@ -1078,11 +1083,11 @@ export default { draging: 0, // 是否正在拖拽中,0:没有拖拽,1:拖拽中, getFileListed: false, onCreateFilename: '', - deleteConfirmVisible: false, - permanentDelete: false, - permanentDeleteDisable: false, - selectDeleteFile: [], - deleteLoading: false, + deleteConfirmVisible: false, // 删除确认弹窗 + permanentDelete: false, // 是否永久删除 + permanentDeleteDisable: false, // 是否禁用永久删除选项 + selectDeleteFile: [], // 选中的删除文件 + deleteLoading: false, // 删除loading } }, computed: { @@ -1331,12 +1336,35 @@ export default { }, keydown(event) { const isMac = navigator.platform.startsWith('Mac') - const { key, c, keyCode, ctrlKey, metaKey } = event + const { keyCode, ctrlKey, metaKey } = event this.isCmd = (isMac && metaKey) || (!isMac && ctrlKey) + console.log(keyCode) // shift if (event.keyCode === 16 && event.shiftKey) { this.selectPin = true } + // space + if (keyCode === 32) { + if (this.inputting || this.editingIndex !== -1) { + event.target.select() + } else { + if (this.selectRowData.length > 0 && !this.drawer) { + this.drawer = true + this.drawerShowTime = Date.now() + } + event.preventDefault() + event.stopPropagation() + } + } + // F2 + if (keyCode === 113) { + if (this.selectRowData.length > 0 && !this.drawer) { + this.renameFileName = this.rowContextData.name + this.editingIndex = this.rowContextData.index + } + event.preventDefault() + event.stopPropagation() + } // ctrl + A / cmd + A if (this.isCmd && keyCode === 65) { if (this.inputting || this.editingIndex !== -1) { @@ -1360,6 +1388,12 @@ export default { if (keyCode === 16) { this.selectPin = false } + // space + if (keyCode === 32) { + if (this.drawer && Date.now() - this.drawerShowTime >= 500) { + this.drawer = false + } + } }, onmessage(msg) { let fileDoc = msg.body diff --git a/src/components/preview/FileDetails.vue b/src/components/preview/FileDetails.vue index e21ec56..17a1cdd 100644 --- a/src/components/preview/FileDetails.vue +++ b/src/components/preview/FileDetails.vue @@ -1,7 +1,10 @@ @@ -187,7 +194,11 @@ export default { } .details-form { - margin: 20px 10px 0 20px; + padding: 20px 0; + + >>> .el-scrollbar__view { + max-height: 50vh; + } >>> .el-form-item__content { white-space: normal; @@ -205,6 +216,7 @@ export default { } >>> .details-scan { + margin-bottom: 10px; .el-button--mini, .el-button--mini.is-round { padding: 5px 15px; } diff --git a/src/styles/index.scss b/src/styles/index.scss index 7d07ee8..f154cf4 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -228,8 +228,7 @@ input { } kbd { display: inline-block; - margin: 6px 2px; - padding: 8px 8px; + padding: 5px 5px; font: 14px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace); line-height: 10px; color: #1f2328;