mirror of https://github.com/ElemeFE/element
Dialog: add opened event (#12828)
* Dialog: add opened event * Docs: update es dialog doc * Update dialog.mdpull/12839/head
parent
098ba463c3
commit
fff4d62567
|
@ -309,5 +309,6 @@ If the variable bound to `visible` is managed in Vuex store, the `.sync` can not
|
||||||
| Event Name | Description | Parameters |
|
| Event Name | Description | Parameters |
|
||||||
|---------- |-------- |---------- |
|
|---------- |-------- |---------- |
|
||||||
| open | triggers when the Dialog opens | — |
|
| open | triggers when the Dialog opens | — |
|
||||||
|
| opened | triggers when the Dialog opening animation ends | — |
|
||||||
| close | triggers when the Dialog closes | — |
|
| close | triggers when the Dialog closes | — |
|
||||||
| closed | triggers when the Dialog closing animation ends | — |
|
| closed | triggers when the Dialog closing animation ends | — |
|
||||||
|
|
|
@ -317,6 +317,7 @@ Si la variable ligada a `visible` se gestiona en el Vuex store, el `.sync` no pu
|
||||||
| Nombre de Evento | Descripcíon | Parámetros |
|
| Nombre de Evento | Descripcíon | Parámetros |
|
||||||
| ---------------- | ---------------------------------------- | ---------- |
|
| ---------------- | ---------------------------------------- | ---------- |
|
||||||
| open | se activa cuando se abre el cuadro de Diálogo | — |
|
| open | se activa cuando se abre el cuadro de Diálogo | — |
|
||||||
|
| opened | triggers when the Dialog opening animation ends | — |
|
||||||
| close | se dispara cuando el Diálogo se cierra | — |
|
| close | se dispara cuando el Diálogo se cierra | — |
|
||||||
| closed | se activa cuando finaliza la animación de cierre del Diálog | — |
|
| closed | se activa cuando finaliza la animación de cierre del Diálog | — |
|
||||||
|
|
||||||
|
|
|
@ -305,5 +305,6 @@ Dialog 的内容是懒渲染的,即在第一次被打开之前,传入的默
|
||||||
| 事件名称 | 说明 | 回调参数 |
|
| 事件名称 | 说明 | 回调参数 |
|
||||||
|---------- |-------- |---------- |
|
|---------- |-------- |---------- |
|
||||||
| open | Dialog 打开的回调 | — |
|
| open | Dialog 打开的回调 | — |
|
||||||
|
| opened | Dialog 打开动画结束时的回调 | — |
|
||||||
| close | Dialog 关闭的回调 | — |
|
| close | Dialog 关闭的回调 | — |
|
||||||
| closed | Dialog 关闭动画结束时的回调 | — |
|
| closed | Dialog 关闭动画结束时的回调 | — |
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<transition
|
<transition
|
||||||
name="dialog-fade"
|
name="dialog-fade"
|
||||||
|
@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">
|
||||||
<div
|
<div
|
||||||
|
@ -169,6 +170,9 @@
|
||||||
this.broadcast('ElSelectDropdown', 'updatePopper');
|
this.broadcast('ElSelectDropdown', 'updatePopper');
|
||||||
this.broadcast('ElDropdownMenu', 'updatePopper');
|
this.broadcast('ElDropdownMenu', 'updatePopper');
|
||||||
},
|
},
|
||||||
|
afterEnter() {
|
||||||
|
this.$emit('opened');
|
||||||
|
},
|
||||||
afterLeave() {
|
afterLeave() {
|
||||||
this.$emit('closed');
|
this.$emit('closed');
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,7 +157,9 @@ describe('Dialog', () => {
|
||||||
<div>
|
<div>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
@open="handleOpen"
|
@open="handleOpen"
|
||||||
|
@opened="handleOpened"
|
||||||
@close="handleClose"
|
@close="handleClose"
|
||||||
|
@closed="handleClosed"
|
||||||
:title="title"
|
:title="title"
|
||||||
:visible.sync="visible">
|
:visible.sync="visible">
|
||||||
<span>这是一段信息</span>
|
<span>这是一段信息</span>
|
||||||
|
@ -170,14 +172,23 @@ describe('Dialog', () => {
|
||||||
this.state = 'open';
|
this.state = 'open';
|
||||||
},
|
},
|
||||||
|
|
||||||
|
handleOpened() {
|
||||||
|
this.animationState = 'opened';
|
||||||
|
},
|
||||||
|
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.state = 'closed';
|
this.state = 'close';
|
||||||
|
},
|
||||||
|
|
||||||
|
handleClosed() {
|
||||||
|
this.animationState = 'closed';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
state: '',
|
state: '',
|
||||||
|
animationState: '',
|
||||||
title: 'dialog test',
|
title: 'dialog test',
|
||||||
visible: false
|
visible: false
|
||||||
};
|
};
|
||||||
|
@ -186,12 +197,14 @@ describe('Dialog', () => {
|
||||||
vm.visible = true;
|
vm.visible = true;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(vm.state).to.equal('open');
|
expect(vm.state).to.equal('open');
|
||||||
|
expect(vm.animationState).to.equal('opened');
|
||||||
vm.visible = false;
|
vm.visible = false;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
expect(vm.state).to.equal('closed');
|
expect(vm.state).to.equal('close');
|
||||||
|
expect(vm.animationState).to.equal('closed');
|
||||||
done();
|
done();
|
||||||
}, 50);
|
}, 400);
|
||||||
}, 50);
|
}, 400);
|
||||||
});
|
});
|
||||||
it('click dialog to close', done => {
|
it('click dialog to close', done => {
|
||||||
vm = createVue({
|
vm = createVue({
|
||||||
|
|
Loading…
Reference in New Issue