Skip to content

Diálogo ​

Uso básico ​

vue
<template>
  <lh-button @click="visible = true">Abrir el diálogo</lh-button>

  <lh-dialog v-model="visible" title="Título" width="80%">
    <view>Este es el contenido del diálogo</view>
    <template #footer>
      <lh-button @click="visible = false">Cancelar</lh-button>
      <lh-button type="primary" @click="visible = false">Aceptar</lh-button>
    </template>
  </lh-dialog>
</template>

<script setup lang="ts">
import { ref } from 'vue'
const visible = ref(false)
</script>

Posicionamiento ​

vue
<template>
  <lh-dialog v-model="visible" position="bottom" title="Capa flotante inferior">
    <view>Contenido inferior</view>
  </lh-dialog>

  <lh-dialog v-model="visible" fullscreen title="Pantalla completa">
    <view>Contenido a pantalla completa</view>
  </lh-dialog>
</template>

La capa flotante inferior incorpora automáticamente env(safe-area-inset-bottom) para adaptarse a las pantallas completas.

Props ​

PropDescripciónTipoPredeterminado
modelValue (v-model)Si está visiblebooleanfalse
titleTítulostring—
widthAnchostring | number—
topDistancia superiorstring | number—
fullscreenA pantalla completabooleanfalse
positionPosicionamiento'center' | 'top' | 'bottom''center'
closeOnClickModalSe cierra al hacer clic en la capa de fondobooleantrue
closeOnPressEscapeSe cierra con Esc (sin eventos de teclado en MP; no funciona)booleantrue
lockScrollBloquea el desplazamiento del fondo (solo efectivo en H5)booleantrue
zIndexNivel; si no se pasa, se asigna de forma autoincrementalnumber—
customClassClase personalizadastring—
themeVarsVariables de tema a nivel de componenteRecord<string, string>—
sxProps rápidas de disposiciónLhSxProps—

Slots ​

SlotDescripción
defaultContenido
footerZona de botones del pie

Events ​

EventoDescripciónParámetros de la retrollamada
update:modelValueCambio de visibilidad(visible: boolean)
openApertura—
closeCierre—

Diferencias frente a la versión Vue3

  • El montaje de la capa flotante usa root-portal (en H5 es teleport; en MP, root-portal o la degradación fixed dentro de la página).
  • focus-trap no está disponible en la plataforma MP: la salvaguarda de compilación LH_IS_H5 hace que devuelva false directamente, sin invocar focus-trap.
  • lockScroll no es efectivo en la plataforma MP: el Mini Programa no puede bloquear el desplazamiento del body; la capa de fondo intercepta los clics como alternativa.
  • closeOnPressEscape no es efectivo en la plataforma MP (no hay eventos de teclado).