|
@@ -37,15 +37,17 @@ exports.install = Vue => {
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
if (el.domVisible) {
|
|
if (el.domVisible) {
|
|
- el.instance.$on('after-leave', _ => {
|
|
|
|
|
|
+ el.instance.$once('after-leave', _ => {
|
|
el.domVisible = false;
|
|
el.domVisible = false;
|
|
const target = binding.modifiers.fullscreen || binding.modifiers.body
|
|
const target = binding.modifiers.fullscreen || binding.modifiers.body
|
|
? document.body
|
|
? document.body
|
|
: el;
|
|
: el;
|
|
removeClass(target, 'el-loading-parent--relative');
|
|
removeClass(target, 'el-loading-parent--relative');
|
|
removeClass(target, 'el-loading-parent--hidden');
|
|
removeClass(target, 'el-loading-parent--hidden');
|
|
|
|
+ el.instance.hiding = false;
|
|
});
|
|
});
|
|
el.instance.visible = false;
|
|
el.instance.visible = false;
|
|
|
|
+ el.instance.hiding = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -65,7 +67,11 @@ exports.install = Vue => {
|
|
|
|
|
|
parent.appendChild(el.mask);
|
|
parent.appendChild(el.mask);
|
|
Vue.nextTick(() => {
|
|
Vue.nextTick(() => {
|
|
- el.instance.visible = true;
|
|
|
|
|
|
+ if (el.instance.hiding) {
|
|
|
|
+ el.instance.$emit('after-leave');
|
|
|
|
+ } else {
|
|
|
|
+ el.instance.visible = true;
|
|
|
|
+ };
|
|
});
|
|
});
|
|
el.domInserted = true;
|
|
el.domInserted = true;
|
|
}
|
|
}
|