mirror of https://github.com/ElemeFE/element
feat: prevent close dialog/drawer when cursor dragging from body to mask
parent
17de41f3e2
commit
145570ff88
|
@ -6,6 +6,7 @@
|
||||||
<div
|
<div
|
||||||
v-show="visible"
|
v-show="visible"
|
||||||
class="el-dialog__wrapper"
|
class="el-dialog__wrapper"
|
||||||
|
@mousedown="clickStartElement = $event.target"
|
||||||
@click.self="handleWrapperClick">
|
@click.self="handleWrapperClick">
|
||||||
<div
|
<div
|
||||||
role="dialog"
|
role="dialog"
|
||||||
|
@ -113,7 +114,8 @@
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
closed: false,
|
closed: false,
|
||||||
key: 0
|
key: 0,
|
||||||
|
clickStartElement: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -162,9 +164,13 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
handleWrapperClick() {
|
handleWrapperClick(event) {
|
||||||
if (!this.closeOnClickModal) return;
|
if (
|
||||||
|
this.closeOnClickModal &&
|
||||||
|
(!this.clickStartElement || this.clickStartElement.contains(event.target))
|
||||||
|
) {
|
||||||
this.handleClose();
|
this.handleClose();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleClose() {
|
handleClose() {
|
||||||
if (typeof this.beforeClose === 'function') {
|
if (typeof this.beforeClose === 'function') {
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<div
|
<div
|
||||||
class="el-drawer__container"
|
class="el-drawer__container"
|
||||||
:class="visible && 'el-drawer__open'"
|
:class="visible && 'el-drawer__open'"
|
||||||
|
@mousedown="clickStartElement = $event.target"
|
||||||
@click.self="handleWrapperClick"
|
@click.self="handleWrapperClick"
|
||||||
role="document"
|
role="document"
|
||||||
tabindex="-1">
|
tabindex="-1">
|
||||||
|
@ -123,7 +124,8 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
closed: false,
|
closed: false,
|
||||||
prevActiveElement: null
|
prevActiveElement: null,
|
||||||
|
clickStartElement: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
@ -162,8 +164,11 @@ export default {
|
||||||
this.closed = true;
|
this.closed = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleWrapperClick() {
|
handleWrapperClick(event) {
|
||||||
if (this.wrapperClosable) {
|
if (
|
||||||
|
this.wrapperClosable &&
|
||||||
|
(!this.clickStartElement || this.clickStartElement.contains(event.target))
|
||||||
|
) {
|
||||||
this.closeDrawer();
|
this.closeDrawer();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue