From 300798981dac252170e1ac7c299735837306259f Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 10 Jun 2022 20:59:01 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E9=94=AE=E7=9B=98?= =?UTF-8?q?=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/functions/common.js | 36 +++++++++++++++---- resources/assets/js/functions/eeui.js | 5 +++ resources/assets/js/pages/manage/file.vue | 1 + .../sass/pages/components/file-content.scss | 1 + 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/resources/assets/js/functions/common.js b/resources/assets/js/functions/common.js index d63c6caa8..3ea9b9715 100755 --- a/resources/assets/js/functions/common.js +++ b/resources/assets/js/functions/common.js @@ -1125,17 +1125,39 @@ }, /** - * 主动失去焦点 + * 主动失去焦点(关闭键盘) * @param el */ onBlur(el = null) { - if (el) { - el.blur(); - } else { - if (document.activeElement && typeof document.activeElement.blur === "function") { - document.activeElement.blur(); + setTimeout(_ => { + $A.eeuiAppKeyboardHide(); + if (el) { + el.blur(); + } else { + if (document.activeElement) { + if (document.activeElement.tagName === "BODY") { + let inputElement = document.getElementById("toLoseFocusInput") + if (!inputElement) { + inputElement = document.createElement("input"); + inputElement.id = "toLoseFocusInput"; + inputElement.type = "text"; + inputElement.style.position = "fixed"; + inputElement.style.top = "0px"; + inputElement.style.left = "0px"; + inputElement.style.zIndex = "-1"; + inputElement.style.opacity = "0"; + inputElement.addEventListener("focus", e => { + document.activeElement.blur(); + }); + document.body.appendChild(inputElement); + } + inputElement.focus() + } else { + document.activeElement.blur(); + } + } } - } + }, 1); } }); diff --git a/resources/assets/js/functions/eeui.js b/resources/assets/js/functions/eeui.js index 0ffd3ed4d..211c2bf05 100755 --- a/resources/assets/js/functions/eeui.js +++ b/resources/assets/js/functions/eeui.js @@ -53,6 +53,11 @@ requireModuleJs("eeui").keepScreenOff(); }, + eeuiAppKeyboardHide() { + if (!$A.isEEUiApp) return; + requireModuleJs("eeui").keyboardHide(); + }, + eeuiAppSendMessage(object) { if (!$A.isEEUiApp) return; requireModuleJs("webview").sendMessage(object); diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index 12a267843..bf09a065d 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -641,6 +641,7 @@ export default { fileShow(val) { if (!val) { this.browseFile(0) + $A.onBlur() } }, diff --git a/resources/assets/sass/pages/components/file-content.scss b/resources/assets/sass/pages/components/file-content.scss index ebe319b62..ccff94af5 100644 --- a/resources/assets/sass/pages/components/file-content.scss +++ b/resources/assets/sass/pages/components/file-content.scss @@ -5,6 +5,7 @@ left: 0; right: 0; bottom: 0; + z-index: 1; display: flex; flex-direction: column; border-radius: 18px 18px 0 0;