From 179e2962a0a480da4847c5bac10ef9f357cc7939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=8F=A8=E5=8F=A8?= Date: Mon, 20 Feb 2023 12:28:25 +0800 Subject: [PATCH] Dialog: fix esc close dialog --- packages/dialog/src/component.vue | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/dialog/src/component.vue b/packages/dialog/src/component.vue index 4450dfd1b..03136727a 100644 --- a/packages/dialog/src/component.vue +++ b/packages/dialog/src/component.vue @@ -113,7 +113,8 @@ data() { return { closed: false, - key: 0 + key: 0, + escape: null }; }, @@ -199,6 +200,14 @@ if (this.appendToBody) { document.body.appendChild(this.$el); } + }; + if (this.closeOnPressEscape && !this.modal) { + this.escape = e => { + if (e.keyCode === 27) { + this.hide(); + } + }; + window.addEventListener('keydown', this.escape); } }, @@ -206,6 +215,9 @@ // if appendToBody is true, remove DOM node after destroy if (this.appendToBody && this.$el && this.$el.parentNode) { this.$el.parentNode.removeChild(this.$el); + }; + if (this.closeOnPressEscape && !this.modal) { + window.removeEventListener('keydown', this.escape); } } };