From b0a9f07e3ca25c7d5f6e7764600cbc3cde6f949b Mon Sep 17 00:00:00 2001 From: fofolee Date: Tue, 17 May 2022 21:50:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20subinput=20=E5=92=8C=20sel?= =?UTF-8?q?ectList=20=E7=9A=84=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 1 + src/components/CommandRunResult.vue | 10 +++++----- src/components/quickcommandUI/SelectList.vue | 7 +++++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6e291e2..b750a9f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -28,6 +28,7 @@ export default defineComponent({ utools: UTOOLS, cronJobs: {}, enterData: {}, + subInputEvent: null, }; }, created: function () { diff --git a/src/components/CommandRunResult.vue b/src/components/CommandRunResult.vue index 6e354bb..548ba61 100644 --- a/src/components/CommandRunResult.vue +++ b/src/components/CommandRunResult.vue @@ -84,7 +84,6 @@ export default { runResult: [], runResultStatus: true, subInputValue: "", - subInputListener: null, ctrlCListener: null, quickcommandListener: null, history: [], @@ -226,7 +225,7 @@ export default { setTimeout(() => { if (this.subInputValue) querySubInput(); }, 100); - this.subInputListener = (event) => { + let listener = (event) => { event.preventDefault(); switch (event.keyCode) { case 13: @@ -248,7 +247,8 @@ export default { break; } }; - document.addEventListener("keydown", this.subInputListener, true); + this.$root.subInputEvent = ["keydown", listener, true]; + document.addEventListener(...this.$root.subInputEvent); }, // payload 临时赋值 async getTempPayload(currentCommand) { @@ -308,10 +308,10 @@ export default { }, stopRun() { this.runResult = []; - if (!!this.subInputListener) { + if (!!this.$root.subInputEvent) { this.subInputValue = ""; utools.removeSubInput(); - document.removeEventListener("keydown", this.subInputListener, true); + document.removeEventListener(...this.$root.subInputEvent); } this.clear(); this.frameInitHeight = 0; diff --git a/src/components/quickcommandUI/SelectList.vue b/src/components/quickcommandUI/SelectList.vue index dd362ef..54db0f7 100644 --- a/src/components/quickcommandUI/SelectList.vue +++ b/src/components/quickcommandUI/SelectList.vue @@ -205,12 +205,15 @@ export default { clear() { utools.removeSubInput(); - document.removeEventListener("keydown", this.keyHandler); + document.removeEventListener("keydown", this.keyHandler, true); this.setUtoolsHeight(this.listMaxHeight); }, addListeners() { - document.addEventListener("keydown", this.keyHandler); + // 如果之前启用了子输入框,先移除监听 + if (this.$root.subInputEvent) + document.removeEventListener(...this.$root.subInputEvent); + document.addEventListener("keydown", this.keyHandler, true); }, }, };