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

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

parent 0bb4121c
......@@ -3,7 +3,7 @@
name="dialog-fade"
@after-enter="afterEnter"
@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
role="dialog"
aria-modal="true"
......@@ -11,7 +11,8 @@
class="el-dialog"
:class="[{ 'is-fullscreen': fullscreen, 'el-dialog--center': center }, customClass]"
ref="dialog"
:style="style">
:style="style"
@mousedown="handleMousedown">
<div class="el-dialog__header">
<slot name="title">
<span class="el-dialog__title">{{ title }}</span>
......@@ -39,6 +40,8 @@
import Migrating from 'element-ui/src/mixins/migrating';
import emitter from 'element-ui/src/mixins/emitter';
let dialogMouseDown = false;
export default {
name: 'ElDialog',
......@@ -152,9 +155,19 @@
};
},
handleWrapperClick() {
if (!this.closeOnClickModal) return;
if (!this.closeOnClickModal || dialogMouseDown) return;
this.handleClose();
},
handleMousedown() {
dialogMouseDown = true;
},
handleMouseup() {
if (dialogMouseDown) {
this.$nextTick(_ => {
dialogMouseDown = false;
});
}
},
handleClose() {
if (typeof this.beforeClose === 'function') {
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