|
@@ -3,13 +3,16 @@
|
|
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
|
|
|
|
+ v-show="visible"
|
|
|
|
+ class="el-dialog__wrapper"
|
|
|
|
+ @click.self="handleWrapperClick">
|
|
<div
|
|
<div
|
|
role="dialog"
|
|
role="dialog"
|
|
|
|
+ :key="key"
|
|
aria-modal="true"
|
|
aria-modal="true"
|
|
:aria-label="title || 'dialog'"
|
|
:aria-label="title || 'dialog'"
|
|
- class="el-dialog"
|
|
|
|
- :class="[{ 'is-fullscreen': fullscreen, 'el-dialog--center': center }, customClass]"
|
|
|
|
|
|
+ :class="['el-dialog', { 'is-fullscreen': fullscreen, 'el-dialog--center': center }, customClass]"
|
|
ref="dialog"
|
|
ref="dialog"
|
|
:style="style">
|
|
:style="style">
|
|
<div class="el-dialog__header">
|
|
<div class="el-dialog__header">
|
|
@@ -102,12 +105,15 @@
|
|
center: {
|
|
center: {
|
|
type: Boolean,
|
|
type: Boolean,
|
|
default: false
|
|
default: false
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ destroyOnClose: Boolean
|
|
},
|
|
},
|
|
|
|
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- closed: false
|
|
|
|
|
|
+ closed: false,
|
|
|
|
+ key: 0
|
|
};
|
|
};
|
|
},
|
|
},
|
|
|
|
|
|
@@ -126,6 +132,11 @@
|
|
} else {
|
|
} else {
|
|
this.$el.removeEventListener('scroll', this.updatePopper);
|
|
this.$el.removeEventListener('scroll', this.updatePopper);
|
|
if (!this.closed) this.$emit('close');
|
|
if (!this.closed) this.$emit('close');
|
|
|
|
+ if (this.destroyOnClose) {
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.key++;
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|