# Sélecteur d'heure
Sélecteur d'heure. Des colonnes à roue permettent de choisir l'heure / minute / seconde ; lorsque format ne contient pas ss, la colonne des secondes est automatiquement masquée ; arrowControl remplace les roues par des boutons-flèches en tête de colonne. Le panneau est monté sur body (Vue2 n'a pas de Teleport).
Sélecteur d'heure
<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="Choisir l'heure" clearable />
<LhTimePicker v-model="t2" format="HH:mm" placeholder="Heure/minute (sans secondes)" size="small" />
<LhTimePicker v-model="t3" format="HH:mm:ss" arrow-control placeholder="Contrôle par flèches" size="large" />
<LhTimePicker v-model="t1" format="HH:mm:ss" disabled placeholder="Désactivé" />
<LhTimePicker v-model="t1" format="HH:mm:ss" readonly placeholder="Lecture seule" />
</div>
<LhTimePicker
v-model="t4"
format="HH:mm:ss"
:step-hour="2"
:step-minute="15"
:step-second="30"
placeholder="Pas : heure 2 / minute 15 / seconde 30"
/>
<p class="demo-note">Heure/min/sec : {{ fmt(t1) }} | Heure/min : {{ fmt(t2) }} | Flèches : {{ fmt(t3) }} | Pas : {{ 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 "(non sélectionné)"
const p = (n) => String(n).padStart(2, '0')
return p(v.getHours()) + ':' + p(v.getMinutes()) + ':' + p(v.getSeconds())
},
},
}
</script>
# Props
| Prop | Description | Type | Valeur par défaut |
|---|---|---|---|
| v-model | Sélection courante | Date \| null | — |
| mode | Mode (réservé à la liaison date-heure ; actuellement rendu sous forme de colonnes d'heure) | LhTimePickerMode | — |
| size | Taille | 'small' \| 'medium' \| 'large' | 'medium' |
| disabled / clearable / readonly | Désactivé / effaçable / lecture seule | boolean | false |
| placeholder | Texte de l'espace réservé | string | Pack de langue |
| format | Format d'affichage (HH:mm:ss, HH:mm) ; la colonne des secondes est masquée lorsque ss est absent | string | 'HH:mm:ss' |
| arrowControl | Contrôle par flèches (boutons haut/bas en tête de colonne) | boolean | false |
| stepHour / stepMinute / stepSecond | Pas des heures / minutes / secondes | number | 1 |
| teleportTarget | Cible de montage du panneau flottant | string \| HTMLElement | 'body' |
| sx | Propriétés de mise en page rapide | — | — |
# Events
input (v-model), change (value)
# Accessibilité
Chaque colonne est role="spinbutton" + aria-valuenow/min/max ; les deux interactions (roue et flèches) prennent en charge les flèches directionnelles du clavier ;
le déclencheur est role="combobox" + aria-expanded, et le bouton de confirmation du panneau est accessible au focus.
Copyright © 2024-2026 FengMo WenXue