Skip to content

Boîte de dialogue ​

Utilisation de base ​

vue
<template>
  <lh-button @click="visible = true">Ouvrir la boîte de dialogue</lh-button>

  <lh-dialog v-model="visible" title="Titre" width="80%">
    <view>Ceci est le contenu de la boîte de dialogue</view>
    <template #footer>
      <lh-button @click="visible = false">Annuler</lh-button>
      <lh-button type="primary" @click="visible = false">Confirmer</lh-button>
    </template>
  </lh-dialog>
</template>

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

Positionnement ​

vue
<template>
  <lh-dialog v-model="visible" position="bottom" title="Calque inférieur">
    <view>Contenu inférieur</view>
  </lh-dialog>

  <lh-dialog v-model="visible" fullscreen title="Plein écran">
    <view>Contenu plein écran</view>
  </lh-dialog>
</template>

Le calque inférieur intègre automatiquement env(safe-area-inset-bottom) pour s'adapter aux écrans tout-tactile.

Props ​

PropDescriptionTypeValeur par défaut
modelValue (v-model)Affiché ou nonbooleanfalse
titleTitrestring—
widthLargeurstring | number—
topDistance depuis le hautstring | number—
fullscreenPlein écranbooleanfalse
positionPositionnement'center' | 'top' | 'bottom''center'
closeOnClickModalFermer au clic sur le masquebooleantrue
closeOnPressEscapeFermer avec Esc (MP sans événement clavier, sans effet)booleantrue
lockScrollVerrouiller le défilement de l'arrière-plan (uniquement valable sur H5)booleantrue
zIndexNiveau z ; auto-incrémenté si omisnumber—
customClassNom de classe personnaliséstring—
themeVarsVariables de thème de niveau composantRecord<string, string>—
sxPropriétés de mise en page rapideLhSxProps—

Slots ​

SlotDescription
defaultContenu
footerZone des boutons du pied

Events ​

ÉvénementDescriptionParamètre de callback
update:modelValueChangement d'affichage(visible: boolean)
openOuverture—
closeFermeture—

Différences avec la version Vue3

  • Le montage du calque passe par root-portal (en H5, teleport ; en MP, root-portal ou repli fixed dans la page).
  • focus-trap est indisponible côté MP : le garde de compilation LH_IS_H5 renvoie directement false, focus-trap n'est pas appelé.
  • lockScroll est sans effet côté MP : le Mini Programme n'a pas de verrouillage du défilement de body, le repli se fait par interception des clics par le masque.
  • closeOnPressEscape est sans effet côté MP (pas d'événement clavier).