# درج Drawer
طبقة منبثقة تنزلق من حافة الشاشة، مناسبة للعمليات الثانوية كالتفاصيل والتصفية. أربعة اتجاهات، وحجم وسلوك قناع قابلان للتحكم.
درج
<template>
<div class="demo-col">
<div class="demo-row" style="gap: 12px; flex-wrap: wrap">
<LhButton type="primary" @click="open('right')">right الجانب الأيمن</LhButton>
<LhButton @click="open('left')">left الجانب الأيسر</LhButton>
<LhButton @click="open('top')">top الأعلى</LhButton>
<LhButton @click="open('bottom')">bottom الأسفل</LhButton>
<LhButton @click="openNoMask">عدم الإغلاق من القناع</LhButton>
</div>
<LhDrawer v-model="visible" :title="title" :direction="direction" :size="size">
<p style="margin: 0 0 8px">يتحكم direction في الاتجاه، وsize في الحجم (رقم بالبكسل أو سلسلة بنسبة مئوية).</p>
<p class="demo-note">يمكن للأزرار السفلية تشغيل تركيبات lockScroll / closeOnEsc وغيرها.</p>
<template #footer>
<LhButton @click="visible = false">إلغاء</LhButton>
<LhButton type="primary" @click="visible = false">حفظ</LhButton>
</template>
</LhDrawer>
<LhDrawer
v-model="noMask"
title="عدم الإغلاق عند النقر على القناع"
direction="right"
size="30%"
:mask-closable="false"
:show-close="true"
:lock-scroll="true"
:close-on-esc="false"
>
<p style="margin: 0">maskClosable=false وcloseOnEsc=false، لا يبقى للإغلاق إلا الأزرار أو أيقونة الإغلاق.</p>
<template #footer>
<LhButton type="primary" @click="noMask = false">إغلاق</LhButton>
</template>
</LhDrawer>
</div>
</template>
<script>
export default {
data: () => ({
visible: false,
noMask: false,
title: 'درج الجانب الأيمن',
direction: 'right',
size: '360px',
}),
methods: {
open(dir) {
this.direction = dir
this.title = `درج ${dir}`
this.size = dir === 'top' || dir === 'bottom' ? '30%' : '360px'
this.visible = true
},
openNoMask() {
this.noMask = true
},
},
}
</script>
# Props
| خاصية | الوصف | النوع | الافتراضي |
|---|---|---|---|
| v-model | هل يكون ظاهرًا (خاصية modelValue متحكَّم بها) | boolean | false |
| title | العنوان | string | — |
| direction | الاتجاه | 'right' \| 'left' \| 'top' \| 'bottom' | 'right' |
| size | الحجم: رقم بالبكسل، والسلسلة تدعم النسبة المئوية | string \| number | — |
| maskClosable | هل يُغلق عند النقر على القناع | boolean | true |
| showClose | هل يُعرض زر الإغلاق | boolean | true |
| teleportTarget | هدف تركيب الطبقة المنبثقة (محدِّد أو عنصر، الافتراضي body؛ لا يوجد Teleport في 2.7، يتم النقل يدويًا للمضيف) | string \| HTMLElement | — |
| lockScroll | هل يُقفل تمرير الصفحة | boolean | true |
| closeOnEsc | هل يستجيب للإغلاق بـ Esc | boolean | true |
| themeVars | متغيّرات السمة على مستوى المكوّن، تتجاوز تكوين ConfigProvider | Record<string, string> | — |
| bgPattern | خلفية النمط على مستوى المكوّن، تتجاوز تكوين ConfigProvider | string | — |
| sx | خصائص التخطيط السريع sx (تسري على اللوحة) | — | — |
# Slots
| فتحة | الوصف |
|---|---|
| header | منطقة العنوان (تأخذ افتراضيًا قيمة title) |
| default | نص الدرج الأساسي |
| footer | منطقة الأزرار السفلية |
Copyright © 2024-2026 FengMo WenXue