# منتقي الوقت TimePicker

منتقي الوقت. اختيار الساعة / الدقيقة / الثانية عبر أعمدة دوّارة؛ عندما لا يحتوي format على ss يُخفى عمود الثوانيات تلقائيًا؛ ويعرض arrowControl التحكم بأزرار في رأس العمود. تُحمَّل اللوحة على body (لا يوجد Teleport في Vue2).

اختيار الوقت
<template>
  <div class="demo-col" style="gap: 16px">
    <div class="demo-row" style="gap: 12px; flex-wrap: wrap">
      <LhTimePicker v-model="t1" format="HH:mm:ss" placeholder="اختر الوقت" clearable />
      <LhTimePicker v-model="t2" format="HH:mm" placeholder="ساعة ودقيقة (بدون عمود الثواني)" size="small" />
      <LhTimePicker v-model="t3" format="HH:mm:ss" arrow-control placeholder="تحكم بالأسهم" size="large" />
      <LhTimePicker v-model="t1" format="HH:mm:ss" disabled placeholder="معطّل" />
      <LhTimePicker v-model="t1" format="HH:mm:ss" readonly placeholder="للقراءة فقط" />
    </div>
    <LhTimePicker
      v-model="t4"
      format="HH:mm:ss"
      :step-hour="2"
      :step-minute="15"
      :step-second="30"
      placeholder="الخطوة: ساعة 2 / دقيقة 15 / ثانية 30"
    />
    <p class="demo-note">ساعة ودقيقة وثانية: {{ fmt(t1) }}|ساعة ودقيقة: {{ fmt(t2) }}|أسهم: {{ fmt(t3) }}|خطوات: {{ fmt(t4) }}</p>
  </div>
</template>

<script>
export default {
  data: () => ({
    t1: new Date(2026, 9, 3, 14, 30, 0),
    t2: null,
    t3: null,
    t4: null,
  }),
  methods: {
    fmt(v) {
      if (!(v instanceof Date)) return '(غير محدد)'
      const p = (n) => String(n).padStart(2, '0')
      return p(v.getHours()) + ':' + p(v.getMinutes()) + ':' + p(v.getSeconds())
    },
  },
}
</script>

# Props

خاصية الوصف النوع الافتراضي
v-model القيمة المختارة حاليًا Date \| null —
mode الوضع (مخصص للربط مع التاريخ والوقت، ويُعرض حاليًا كأعمدة وقت) LhTimePickerMode —
size الحجم 'small' \| 'medium' \| 'large' 'medium'
disabled / clearable / readonly معطّل / قابل للمسح / للقراءة فقط boolean false
placeholder نص العنصر النائب string حزمة اللغة
format صيغة العرض (HH:mm:ss, HH:mm)؛ يُخفى عمود الثوانيات عند غياب ss string 'HH:mm:ss'
arrowControl التحكم بالأسهم (زرّا أعلى وأسفل في رأس العمود) boolean false
stepHour / stepMinute / stepSecond خطوة الساعة / الدقيقة / الثانية number 1
teleportTarget هدف تركيب الطبقة المنبثقة string \| HTMLElement 'body'
sx خاصية sx المختصرة للتخطيط — —

# Events

input (v-model), change (value)

# إمكانية الوصول

كل عمود role="spinbutton" + aria-valuenow/min/max، ويدعم كلٌّ من التمرير الدوّار والأسهم التنقّل بمفاتيح الاتجاه؛ العنصر المُشغِّل role="combobox" + aria-expanded، وزر التأكيد في اللوحة قابل للوصول بالتركيز.

Copyright © 2024-2026 FengMo WenXue