Skip to content

TimePicker 时间选择器

用于选择或输入任意时间点,支持滚轮面板、时间范围、12 小时制、禁用时间和底部操作栏。

TimePicker 与 TimeSelect

  • TimePicker:通过滚轮面板选择任意时间点。
  • TimeSelect:从预设的固定时间列表中选择。

基础用法

点击输入框打开面板,选择时、分、秒。

当前值:未选择

基础用法

禁用状态

设置 disabled 后不可交互。

禁用状态

可清空

设置 clearable 后,在有值且悬停或聚焦时显示清空按钮。

当前值:09:15:30

可清空

不同尺寸

通过 size 切换 large、默认和 small 三种尺寸。

不同尺寸

12 小时制

设置 use12-hours 后,显示值会按 AM/PM 格式渲染。

当前值:未选择

12 小时制

隐藏秒选择

show-seconds 设为 false 可只保留时分列。

当前值:未选择

隐藏秒选择

箭头控制模式

设置 arrow-control 后,时间列使用上下切换按钮。

箭头控制模式

步长设置

使用 hour-stepminute-stepsecond-step 控制可选增量。

小时步长:2,分钟步长:15,秒步长:30

步长设置

禁用时间

通过 disabled-time 禁用特定的小时、分钟或秒。

禁用 00:00-05:59、22:00-23:59,以及 12 点的部分分钟

禁用时间

时间范围选择

设置 is-range 后,可在同一个组件中选择开始和结束时间。

当前值:未选择

时间范围选择

范围自动排序

设置 order-on-confirm 后,确认时若结束时间早于开始时间,会自动交换顺序。

当前值:10:00:00 - 08:00:00

范围自动排序

完整功能演示

该示例组合了清空、底部操作区和自定义按钮文案。

完整功能演示

在 Nuxt 中使用

在 Nuxt 中接入 YH-UI 模块后可直接使用 YhTimePicker。输入框、初始值和占位符可以参与 SSR 渲染,弹层定位、滚动同步和 focus / open 等实例方法会在客户端激活后生效。

在 Nuxt 中使用

API

Props

名称说明类型默认值
model-value / v-model绑定值YhTimePickerValue | YhTimePickerRangeValueundefined
disabled是否禁用booleanfalse
editable输入框是否可编辑booleantrue
clearable是否允许清空booleantrue
size输入框尺寸'large' | 'default' | 'small'undefined
placeholder单选模式占位文本string''
start-placeholder范围模式开始输入框占位文本string''
end-placeholder范围模式结束输入框占位文本string''
name原生 inputnamestringundefined
is-range是否启用范围选择booleanfalse
format显示格式string'HH:mm:ss'
value-format输出字符串值时使用的格式,未传时回退到 formatstringundefined
prefix-icon已声明的前缀图标属性。当前模板仍固定渲染默认时钟图标,未消费该 propstring | Componentundefined
clear-icon已声明的清空图标属性。当前模板仍固定渲染默认清空图标,未消费该 propstring | Componentundefined
use12-hours是否启用 12 小时制booleanfalse
show-seconds是否显示秒列booleantrue
hour-step小时步长number1
minute-step分钟步长number1
second-step秒步长number1
disabled-time禁用时间配置YhTimePickerDisabledTimeConfigundefined
popper-class弹层自定义类名stringundefined
popper-style已声明的弹层样式属性。当前实现未将该 prop 合并到面板样式中string | Record<string, string>undefined
teleported是否将弹层传送到 bodybooleantrue
validate-event值变化和失焦时是否触发表单校验booleantrue
popper-offset输入框与弹层之间的偏移量number4
range-separator范围分隔文案string'-'
default-value当前没有值时,面板打开后使用的初始时间YhTimePickerValue | YhTimePickerRangeValueundefined
hour-options自定义小时选项number[]undefined
minute-options自定义分钟选项number[]undefined
second-options自定义秒选项number[]undefined
hide-on-blur失焦时是否关闭面板booleantrue
confirm-text确认按钮文案,为空时回退到语言包string''
cancel-text取消按钮文案,为空时回退到语言包string''
now-text当前时间按钮文案,为空时回退到语言包string''
show-footer是否显示底部操作区booleantrue
show-now是否显示“现在”按钮booleantrue
arrow-control是否启用箭头控制模式booleanfalse
tabindex原生 tabindexnumber | string0
id单选模式下原生 inputid。范围模式下两个输入框不会消费该 propstringundefined
order-on-confirm范围模式下确认时是否自动排序booleanfalse
theme-overrides组件级主题覆盖ComponentThemeVarsundefined

Events

名称说明回调参数
update:modelValue绑定值更新时触发(value: YhTimePickerValue | YhTimePickerRangeValue) => void
change值确认变更时触发(value: YhTimePickerValue | YhTimePickerRangeValue) => void
focus输入框获得焦点时触发(event: FocusEvent) => void
blur输入框失去焦点时触发(event: FocusEvent) => void
clear点击清空按钮时触发() => void
visible-change面板显示状态变化时触发(visible: boolean) => void
confirm点击确认按钮时触发(value: YhTimePickerValue | YhTimePickerRangeValue) => void
cancel点击取消按钮时触发() => void

Slots

名称说明参数
prefix输入框前缀内容-
suffix类型中已声明的后缀插槽,当前模板未渲染该插槽-
rangeSeparator自定义范围分隔内容-

Expose

名称说明类型
focus让输入框获得焦点() => void
blur让输入框失去焦点() => void
open打开面板() => void
close关闭面板() => void
inputRef单选模式输入框引用。范围模式下该引用不会指向起止输入框Ref<HTMLInputElement | undefined>

类型导出

名称说明
YhTimePickerPropsTimePicker props 类型
YhTimePickerEmitsTimePicker emits 类型
YhTimePickerSlotsTimePicker slots 类型
YhTimePickerExposeTimePicker expose 类型
YhTimePickerSize尺寸联合类型
YhTimePickerValue单值时间类型
YhTimePickerRangeValue时间范围类型
YhTimePickerDisabledTimeConfig禁用时间配置类型
YhTimePickerState面板内部时间状态类型
YhTimePickerInstance组件实例类型

主题变量

YhTimePicker 支持 themeOverrides。当前样式文件直接消费以下组件级 CSS 变量,其余边框、阴影、文字颜色等由全局主题令牌提供。

变量名说明默认值
--yh-time-picker-width单选模式宽度220px
--yh-time-picker-range-width范围模式宽度360px
--yh-time-picker-active-color激活项文字颜色var(--yh-color-primary)
--yh-time-picker-active-bg激活项背景色var(--yh-color-primary-light-9)
--yh-time-picker-hover-bg选项悬停背景色var(--yh-fill-color-light)
--yh-time-picker-panel-bg弹层背景色var(--yh-bg-color)
--yh-time-picker-border-radius弹层圆角var(--yh-radius-md)

Released under the MIT License.