Skip to content
API 风格:

TimePicker ​

LhTimePicker is used to select a specific time.

Basic Usage ​

Basic Usage
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhTimePicker } from '@lh-ui/vue3'

const timeVal = ref('')
</script>

<template>
  <LhTimePicker v-model="timeVal" placeholder="Select time" />
</template>
vue
<script>
import { LhTimePicker } from '@lh-ui/vue3'

export default {
  components: { LhTimePicker },
  data() {
    return {
      timeVal: '',
    }
  },
}
</script>

<template>
  <LhTimePicker v-model="timeVal" placeholder="Select time" />
</template>

Time Range ​

Time Range
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhTimePicker } from '@lh-ui/vue3'

const timeRange = ref([])
</script>

<template>
  <!-- Time Range -->
  <LhTimePicker v-model="timeRange" type="timerange" placeholder="Range" />
</template>
vue
<script>
import { LhTimePicker } from '@lh-ui/vue3'

export default {
  components: { LhTimePicker },
  data() {
    return {
      timeRange: [],
    }
  },
}
</script>

<template>
  <!-- Time Range -->
  <LhTimePicker v-model="timeRange" type="timerange" placeholder="Range" />
</template>

Type Definitions ​

The TypeScript type structures exported by this component (auto-extracted from packages/components/time-picker/src/types.ts and @lh-ui/share/core/* sources; click each entry to expand; see the Props table above for attribute descriptions):

LhTimePickerProps
ts
export interface LhTimePickerProps {
  modelValue?: Date | null
  size?: LhComponentSize
  disabled?: boolean
  clearable?: boolean
  placeholder?: string
  format?: string
  readonly?: boolean
  arrowControl?: boolean
  start?: number
  end?: number
  stepHour?: number
  stepMinute?: number
  stepSecond?: number
  sx?: LhSxProps
}
LhComponentSize (from @lh-ui/share/core/shared)
ts
export type LhComponentSize = (typeof LH_SIZE_CONST)[keyof typeof LH_SIZE_CONST]

Placeholder, readonly and arrow control ​

placeholder sets the hint text; readonly blocks editing; arrow-control navigates the columns with arrow keys; start / end bound the selectable time; step-hour / step-minute / step-second customize column steps.

placeholder / readonly
vue
<script setup lang="ts">
import { ref } from 'vue'
const tp1 = ref(null)
const tp2 = ref(new Date())
</script>

<template>
  <!-- Placeholder -->
  <LhTimePicker v-model="tp1" placeholder="Pick a reminder time" />
  <!-- Readonly -->
  <LhTimePicker :model-value="tp2" readonly />
</template>
vue
<script>
export default {
  data() {
    return {
      tp1: null,
      tp2: new Date(),
    }
  },
}
</script>

<template>
  <!-- Placeholder -->
  <LhTimePicker v-model="tp1" placeholder="Pick a reminder time" />
  <!-- Readonly -->
  <LhTimePicker :model-value="tp2" readonly />
</template>

Size, disabled, clearable and format ​

size controls the input size; disabled blocks interaction; clearable shows the clear button; format customizes the displayed format.

size / disabled / clearable / format
vue
<script setup lang="ts">
import { ref } from 'vue'
const tp4 = ref(new Date())
const tp5 = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="tp4" size="small" clearable format="HH:mm" />
  <LhTimePicker v-model="tp5" disabled />
</template>
vue
<script>
export default {
  data() {
    return {
      tp4: new Date(),
      tp5: new Date(),
    }
  },
}
</script>

<template>
  <LhTimePicker v-model="tp4" size="small" clearable format="HH:mm" />
  <LhTimePicker v-model="tp5" disabled />
</template>

Props ​

PropDescriptionTypeDefault
modelValueBound valueDatenull
sizeSize"small" | "medium" | "large" | "mini" | "x-large"'medium'
disabledDisabledbooleanfalse
clearableClearablebooleantrue
placeholderPlaceholder (generated from format using the timepicker.hour/minute/second locale messages when unset)string''
formatTime formatstring'HH:mm:ss'
readonly—booleantrue
arrowControl—booleanfalse
start—number0
end—number24
stepHour—number1
stepMinute—number1
stepSecond—number1
sxShorthand layout props (e.g. { mt: 2, w: '50%' }), applied as inline styles on the trigger root element (the floating panel is not affected)LhSxProps—

Events ​

EventDescriptionCallback
update:modelValueValue change(value: string | string[]) => void
changeSelection changed(time, timeString) => void
clearClear clicked() => void

Beauty of tradition, foundation of code