# Selector de hora

Selector de hora. Las horas / minutos / segundos se eligen mediante columnas de rueda; si format no contiene ss, la columna de segundos se oculta automáticamente; arrowControl cambia al control mediante flechas en la cabecera de las columnas. El panel se monta en body (Vue2 no dispone de Teleport).

Selector de hora
<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="Seleccionar hora" clearable />
      <LhTimePicker v-model="t2" format="HH:mm" placeholder="Hora y minuto (sin columna de segundos)" size="small" />
      <LhTimePicker v-model="t3" format="HH:mm:ss" arrow-control placeholder="Control con flechas" size="large" />
      <LhTimePicker v-model="t1" format="HH:mm:ss" disabled placeholder="Desactivado" />
      <LhTimePicker v-model="t1" format="HH:mm:ss" readonly placeholder="Solo lectura" />
    </div>
    <LhTimePicker
      v-model="t4"
      format="HH:mm:ss"
      :step-hour="2"
      :step-minute="15"
      :step-second="30"
      placeholder="Saltos: hora 2 / minuto 15 / segundo 30"
    />
    <p class="demo-note">Hora, minuto y segundo: {{ fmt(t1) }} | Hora y minuto: {{ fmt(t2) }} | Flechas: {{ fmt(t3) }} | Saltos: {{ 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 '(sin selección)'
      const p = (n) => String(n).padStart(2, '0')
      return p(v.getHours()) + ':' + p(v.getMinutes()) + ':' + p(v.getSeconds())
    },
  },
}
</script>

# Props

Prop Descripción Tipo Predeterminado
v-model Selección actual Date \| null —
mode Modo (reservado para la vinculación con fecha y hora; actualmente se renderiza como columnas de hora) LhTimePickerMode —
size Tamaño 'small' \| 'medium' \| 'large' 'medium'
disabled / clearable / readonly Desactivado / borrable / solo lectura boolean false
placeholder Texto del marcador de posición string Paquete de idioma
format Formato de visualización (HH:mm:ss, HH:mm); si no contiene ss, se oculta la columna de segundos string 'HH:mm:ss'
arrowControl Control con flechas (botones arriba/abajo en la cabecera de las columnas) boolean false
stepHour / stepMinute / stepSecond Salto de horas / minutos / segundos number 1
teleportTarget Destino de montaje de la capa emergente string \| HTMLElement 'body'
sx Prop abreviada de maquetación — —

# Events

input(v-model)、change (value)

# Accesibilidad

Cada columna usa role="spinbutton" + aria-valuenow/min/max, y tanto la rueda como las flechas admiten las teclas de dirección del teclado; el disparador usa role="combobox" + aria-expanded, y el botón de confirmación del panel es accesible mediante el foco.

Copyright © 2024-2026 FengMo WenXue