From a566919a24d34bc5db34dba21b02252c39a6b1a5 Mon Sep 17 00:00:00 2001 From: zyh Date: Thu, 2 Jun 2022 10:07:27 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E9=98=B2=E6=AD=A2clickoutside?= =?UTF-8?q?=E5=90=8E=E8=A1=A8=E5=8D=95=E8=87=AA=E5=8A=A8=E8=81=9A=E7=84=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/common/js/tools.js | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/nezha-fronted/src/components/common/js/tools.js b/nezha-fronted/src/components/common/js/tools.js index 91dc7f438..a430a8312 100644 --- a/nezha-fronted/src/components/common/js/tools.js +++ b/nezha-fronted/src/components/common/js/tools.js @@ -4,7 +4,7 @@ import i18n from '../i18n' import bus from '@/libs/bus' import moment from 'moment-timezone' /* 弹窗点击外部后关闭 */ -const exceptClassName = ['prevent-clickoutside', 'config-dropdown', 'nz-pop', 'el-picker', 'chart-box-dropdown', 'metric-dropdown', 'el-cascader__dropdown', 'no-style-class', 'el-message-box', 'nz-dashboard-dropdown', 'el-autocomplete-suggestion', 'nz-temp-box', 'el-time-panel', 'el-dropdown-menu', 'el-select-dropdown','no-close'] // clickoutside排除的class(白名单) no-style-class:没有任何样式的class +const exceptClassName = ['prevent-clickoutside', 'config-dropdown', 'nz-pop', 'el-picker', 'chart-box-dropdown', 'metric-dropdown', 'el-cascader__dropdown', 'no-style-class', 'el-message-box', 'nz-dashboard-dropdown', 'el-autocomplete-suggestion', 'nz-temp-box', 'el-time-panel', 'el-dropdown-menu', 'el-select-dropdown', 'no-close'] // clickoutside排除的class(白名单) no-style-class:没有任何样式的class export const clickoutside = { // 初始化指令 bind (el, binding, vnode) { @@ -39,14 +39,17 @@ export const clickoutside = { if (oldValue) { // const newValue = JSON.parse(JSON.stringify(binding.value.obj)) if (unsavedChange == 'on' && !isEqual(oldValue, el.__newValue__)) { - MessageBox.confirm(i18n.t('tip.confirmCancel'), { - confirmButtonText: i18n.t('tip.yes'), - cancelButtonText: i18n.t('tip.no'), - type: 'warning' - }).then(() => { - if (binding.value.func) { - binding.value.func() - } + // 防止表单自动聚焦 + setTimeout(() => { + MessageBox.confirm(i18n.t('tip.confirmCancel'), { + confirmButtonText: i18n.t('tip.yes'), + cancelButtonText: i18n.t('tip.no'), + type: 'warning' + }).then(() => { + if (binding.value.func) { + binding.value.func() + } + }).catch(err => err) }) } else { binding.value.func()