Dialog

Informa a usuarios preservando el estado de la página actual.

TIP

Este componente requiere el envoltorio <client-only></client-only> cuando se utiliza en SSR (por ejemplo: Nuxt) y SSG (por ejemplo: VitePress).

Uso básico

Dialog abre una caja de diálogo, y es bastante personalizable.

TIP

before-close solo funciona cuando el usuario hace clic en el icono de cerrar o en el backdrop. Si tiene botones que cierran el diálogo en el slot con nombre footer, puede añadir lo que se debería hacer con before-close en el manejador de eventos de clic de los botones.

Contenido personalizado

El contenido del Diálogo puede ser cualquier cosa, incluso una tabla o un formulario. Este ejemplo muestra cómo usar Element Plus Table y Form con Dialog.

Cabecera personalizada

El slot header se puede utilizar para personalizar el área donde se muestra el título. Para mantener la accesibilidad, utilice el atributo title cuando use el slot, o utilice la propiedad titleId para especificar qué elemento debe ser leído como el título del diálogo.

Diálogo anidado

Si un Diálogo está anidado en otro Diálogo, se requiere append-to-body.

Contenido centrado

El contenido del diálogo se puede centrar.

TIP

El contenido del Diálogo se muestra perezosamente, lo que significa que el slot por defecto se renderiza en el DOM después de que se abra. Por lo tanto, si necesita realizar una manipulación DOM o acceder a un componente usando ref, hágalo en el callback del evento open.

Alinear el diálogo al centro

Abrir diálogo desde el centro de la pantalla.

Destruir al cerrar

Cuando esta característica está activada, el contenido en el slot predeterminado se destruirá con una directiva v-if. Habilite esto cuando tenga problemas de rendimiento.

Diálogo arrastrable

Intento de arrastre para la parte del header.

TIP

Cuando se usa modal = false, por favor asegúrese de que append-to-body se estableció a true, porque Dialog es posicionado por position: relative, cuando modal es removido, Dialog se colocará basándose en la posición actual en el DOM, en lugar de Document.Body, por lo que el estilo será desordenado.

API

Attributes

NombreDescripciónTipoDefault
model-value / v-modelvisibilidad del diálogoboolean
titletítulo del diálogo. También se puede pasar con un slot con nombre (ver la tabla siguiente)string''
widthwidth of Dialog, default is 50%string / number''
fullscreensi el diálogo ocupa la pantalla completabooleanfalse
topvalue for margin-top of Dialog CSS, default is 15vhstring''
modalsi se muestra una máscarabooleantrue
modal-classcustom class names for maskstring
append-to-bodywhether to append Dialog itself to body. A nested Dialog should have this attribute set to truebooleanfalse
append-to 2.4.3which element the Dialog appends to. Will override append-to-bodystringbody
lock-scrollwhether scroll of body is disabled while Dialog is displayedbooleantrue
custom-class deprecatedcustom class names for Dialogstring''
open-delaythe Time(milliseconds) before opennumber0
close-delaythe Time(milliseconds) before closenumber0
close-on-click-modalwhether the Dialog can be closed by clicking the maskbooleantrue
close-on-press-escapewhether the Dialog can be closed by pressing ESCbooleantrue
show-closewhether to show a close buttonbooleantrue
before-closecallback before Dialog closes, and it will prevent Dialog from closing, use done to close the dialogFunction
draggableenable dragging feature for Dialogbooleanfalse
overflow 2.5.4draggable Dialog can overflow the viewportbooleanfalse
centerwhether to align the header and footer in centerbooleanfalse
align-center 2.2.16whether to align the dialog both horizontally and verticallybooleanfalse
destroy-on-closedestroy elements in Dialog when closedbooleanfalse
close-iconcustom close icon, default is Closestring / Component
z-indexsame as z-index in native CSS, z-order of dialognumber
header-aria-level a11yheader's aria-level attributestring2

WARNING

custom-class has been deprecated, and will be removed in 2.4.0, please use class.

Slots

NombreDescripción
contenido del diálogo
headercontenido de la cabecera del diálogo. Reemplazar esto elimina el título, pero no elimina el botón cerrar.
title deprecatedworks the same as the header slot. Use el slot header en lugar de este slot.
footercontenido del pie de página del diálogo

WARNING

title has been deprecated, and will be removed in 2.4.0, please use header.

Events

NombreDescripciónType
opense dispara cuando se abre el DialogFunction
openedse dispara cuando la animación de apertura del Dialog terminaFunction
closese dispara cuando el Diálogo se cierraFunction
closedse dispara cuando finaliza la animación de cierre del DiálogFunction
open-auto-focusse dispara después que el Dialog se abre y el contenido obtiene el focoFunction
close-auto-focusse dispara después que el Dialog se cierra y el contenido obtiene el focoFunction

FAQ

Usando el diálogo en SFC, el estilo de ámbito no tiene efecto.

Typical issue: #10515

PS: Since the dialog is rendered using Teleport, the style of the root node is recommended to be written globally.

Cuando se muestra y oculta el diálogo, hay una situación en la que los elementos de la página son desplazados de ida y vuelta.

Typical issue: #10481

PS: It is recommended to place the scroll area inside a vue mounted node, e.g. <div id="app" />, and use the overflow: hidden style for the body.

Fuente

ComponentesDocumentación

Contribuidores