From 84d5f2ddb619b227a6f8b2e331326bc824dd68d5 Mon Sep 17 00:00:00 2001 From: WXL <wl_5969728@163.com> Date: 星期日, 28 九月 2025 10:13:20 +0800 Subject: [PATCH] 档案和附件相关 --- src/components/CustomImageViewer/index.vue | 38 +++++++++++++++++++++++++++++++++++++- 1 files changed, 37 insertions(+), 1 deletions(-) diff --git a/src/components/CustomImageViewer/index.vue b/src/components/CustomImageViewer/index.vue index 0457395..942cb20 100644 --- a/src/components/CustomImageViewer/index.vue +++ b/src/components/CustomImageViewer/index.vue @@ -87,6 +87,11 @@ if (!newVal) { this.showTip = false; this.tipMessage = ''; + this.removeKeyListener(); + } else { + this.$nextTick(() => { + this.addKeyListener(); + }); } } }, @@ -117,7 +122,6 @@ showTipMessage(message) { this.tipMessage = message; this.showTip = true; - // 2绉掑悗鑷姩闅愯棌鎻愮ず setTimeout(() => { this.hideTip(); }, 2000); @@ -128,7 +132,39 @@ }, handleError() { console.error(`鍥剧墖鍔犺浇澶辫触: ${this.currentUrl}`); + }, + + // 閿洏浜嬩欢澶勭悊 + handleKeydown(event) { + switch(event.key) { + case 'ArrowLeft': + event.preventDefault(); // 闃绘榛樿琛屼负 + this.goPrev(); + break; + case 'ArrowRight': + event.preventDefault(); + this.goNext(); + break; + case 'Escape': + event.preventDefault(); + this.close(); + break; + } + }, + addKeyListener() { + document.addEventListener('keydown', this.handleKeydown); + }, + removeKeyListener() { + document.removeEventListener('keydown', this.handleKeydown); } + }, + mounted() { + if (this.visible) { + this.addKeyListener(); + } + }, + beforeUnmount() { + this.removeKeyListener(); } }; </script> -- Gitblit v1.9.3