Skip to content

مربع حوار Dialog ​

الاستخدام الأساسي ​

vue
<template>
  <lh-button @click="visible = true">فتح مربع الحوار</lh-button>

  <lh-dialog v-model="visible" title="عنوان" width="80%">
    <view>هذا محتوى مربع الحوار</view>
    <template #footer>
      <lh-button @click="visible = false">إلغاء</lh-button>
      <lh-button type="primary" @click="visible = false">تأكيد</lh-button>
    </template>
  </lh-dialog>
</template>

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

التموضع ​

vue
<template>
  <lh-dialog v-model="visible" position="bottom" title="طبقة سفلية">
    <view>محتوى سفلي</view>
  </lh-dialog>

  <lh-dialog v-model="visible" fullscreen title="ملء الشاشة">
    <view>محتوى ملء الشاشة</view>
  </lh-dialog>
</template>

تحمل الطبقة السفلية تلقائيًا env(safe-area-inset-bottom) لتتوافق مع الشاشات الكاملة.

Props ​

الخاصيةالوصفالنوعالافتراضي
modelValue (v-model)ظاهر أم لاbooleanfalse
titleالعنوانstring—
widthالعرضstring | number—
topالمسافة عن الأعلىstring | number—
fullscreenملء الشاشةbooleanfalse
positionالتموضع'center' | 'top' | 'bottom''center'
closeOnClickModalالإغلاق عند النقر على القناعbooleantrue
closeOnPressEscapeالإغلاق بـ Esc (لا توجد أحداث للوحة المفاتيح في MP، فلا أثر له)booleantrue
lockScrollقفل تمرير الخلفية (في H5 فقط)booleantrue
zIndexالترتيب الطبقي؛ يُخصَّص تلقائيًا عند عدم التمريرnumber—
customClassصنف مخصّصstring—
themeVarsمتغيّرات سمة خاصة بالمكوّنRecord<string, string>—
sxخصائص تخطيط سريعةLhSxProps—

Slots ​

الفتحةالوصف
defaultالمحتوى
footerمنطقة الأزرار السفلية

Events ​

الحدثالوصفمعامل الاستدعاء
update:modelValueتغيّر الظهور(visible: boolean)
openالفتح—
closeالإغلاق—

الفروق عن نسخة Vue3

  • تركيب الطبقة المنبثقة عبر root-portal (في H5 عبر teleport، وفي MP عبر root-portal أو التخفيض إلى تموضع fixed داخل الصفحة).
  • focus-trap غير متاح في طرف MP: يُرجع حارس الترجمة LH_IS_H5 القيمة false مباشرة دون استدعاء focus-trap.
  • lockScroll بلا أثر في طرف MP: لا يوجد قفل لتمرير body في البرنامج المصغر، ويعتمد الاعتراض بالنقر على القناع كحل احتياطي.
  • closeOnPressEscape بلا أثر في طرف MP (لا توجد أحداث للوحة المفاتيح).