Commit 56266277 authored by luckyCao's avatar luckyCao Committed by Zhi Cun

Dialog: Fix close bug (#15000) (#15544)

parent 0bb4121c
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
name="dialog-fade" name="dialog-fade"
@after-enter="afterEnter" @after-enter="afterEnter"
@after-leave="afterLeave"> @after-leave="afterLeave">
<div class="el-dialog__wrapper" v-show="visible" @click.self="handleWrapperClick"> <div class="el-dialog__wrapper" v-show="visible" @click.self="handleWrapperClick" @mouseup="handleMouseup">
<div <div
role="dialog" role="dialog"
aria-modal="true" aria-modal="true"
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
class="el-dialog" class="el-dialog"
:class="[{ 'is-fullscreen': fullscreen, 'el-dialog--center': center }, customClass]" :class="[{ 'is-fullscreen': fullscreen, 'el-dialog--center': center }, customClass]"
ref="dialog" ref="dialog"
:style="style"> :style="style"
@mousedown="handleMousedown">
<div class="el-dialog__header"> <div class="el-dialog__header">
<slot name="title"> <slot name="title">
<span class="el-dialog__title">{{ title }}</span> <span class="el-dialog__title">{{ title }}</span>
...@@ -39,6 +40,8 @@ ...@@ -39,6 +40,8 @@
import Migrating from 'element-ui/src/mixins/migrating'; import Migrating from 'element-ui/src/mixins/migrating';
import emitter from 'element-ui/src/mixins/emitter'; import emitter from 'element-ui/src/mixins/emitter';
let dialogMouseDown = false;
export default { export default {
name: 'ElDialog', name: 'ElDialog',
...@@ -152,9 +155,19 @@ ...@@ -152,9 +155,19 @@
}; };
}, },
handleWrapperClick() { handleWrapperClick() {
if (!this.closeOnClickModal) return; if (!this.closeOnClickModal || dialogMouseDown) return;
this.handleClose(); this.handleClose();
}, },
handleMousedown() {
dialogMouseDown = true;
},
handleMouseup() {
if (dialogMouseDown) {
this.$nextTick(_ => {
dialogMouseDown = false;
});
}
},
handleClose() { handleClose() {
if (typeof this.beforeClose === 'function') { if (typeof this.beforeClose === 'function') {
this.beforeClose(this.hide); this.beforeClose(this.hide);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment