Skip to content

DatePicker 日期选择器

用于选择或输入日期的控件。支持日期、周、月、年、季度及其范围选择,具有极致的视觉美感与流畅的交互体验。

展示模式

DatePicker 支持多种时间单位的面板直接展示,这种模式常用于自定义布局或仪表盘中。

选择模式:
单元格形状:
2026年三月
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
已选:未选择
全功能展示

基础用法

通过 type 属性,可以快捷切换日期、月份、年份的选择模式。

基础用法

高级配置

DatePicker 提供了丰富的属性来满足精细化的定制需求,如自定义图标、特殊显示格式等。

高级配置项

单元格形状

外观样式不仅支持现代感十足的圆形(默认),还支持经典稳重的方形。

形状切换

自定义单元格内容

通过 cell-render 属性或 date-cell 插槽,可以自定义日期单元格的显示内容,例如添加农历、节日、节气或业务标记。

节日与节气

禁用与只读

使用 disabled 属性禁用组件,使用 readonly 属性设置为只读。

状态演示

不同的尺寸

组件提供了 largedefaultsmall 三种尺寸,以适应不同的页面空间。

尺寸演示

快捷预设

通过 presets 属性可以配置快捷选项,极大提升用户选择效率。

快捷选项

禁用特定日期

通过 disabled-date 函数可以自定义哪些日期不可被选择。

日期过滤

范围选择

设置 type*range 即可开启范围选择模式。

-
-
范围模式

在 Nuxt 中使用

DatePicker 组件完美支持 Nuxt 3/4 的 SSR 渲染。在 Nuxt 项目中使用时,组件及其依赖(如样式、Hooks)会自动导入,无需手动注册。

Nuxt 中使用

SSR 说明

DatePicker 内部已对 Hydration 进行了优化,确保在 SSR 场景下服务端与客户端生成的 DOM 结构完全一致。

API

Props

属性名说明类型默认值
v-model / model-value绑定值Date | string | number | Array
type显示类型DatePickerType'date'
cell-shape单元格形状'round' | 'square''round'
disabled是否禁用booleanfalse
readonly是否只读booleanfalse
clearable是否显示清空按钮booleantrue
size尺寸'large' | 'default' | 'small''default'
placeholder非范围选择时的占位内容string'请选择日期'
start-placeholder范围选择时的开始占位内容string'开始日期'
end-placeholder范围选择时的结束占位内容string'结束日期'
format显示在输入框中的格式string
value-format绑定值的格式string
date-format面板显示的日期格式string'YYYY-MM-DD'
time-format面板显示的时间格式string'HH:mm:ss'
range-separator选择范围时的分隔符string'-'
first-day-of-week第一天是星期几 (1-7)number7
disabled-date禁用日期函数(date: Date) => boolean
presets快捷选项DatePickerPreset[][]
preset-position快捷选项的位置'left' | 'right' | 'top' | 'bottom''bottom'
show-footer是否显示底部操作栏booleantrue
status输入框状态'success' | 'warning' | 'error'
order-on-confirm范围选择时是否自动排序booleanfalse
prefix-icon自定义前缀图标string | Component
clear-icon自定义清除图标string | Component
default-value选择器打开时默认显示的日期Date | Date[]
default-time默认时间(datetime 模式下)Date | Date[]
panel-only是否内联显示(只显示面板)booleanfalse
cell-render自定义单元格渲染函数(date: Date) => string | { text: string; className?: string }
teleported是否将面板插入到 bodybooleantrue
popper-class下拉框类名string
validate-event是否触发表单验证booleantrue

Events

事件名说明回调参数
update:modelValue绑定值更新时触发(value: DateValue | DateRangeValue) => void
change值改变时触发(value: DateValue | DateRangeValue) => void
focus获取焦点时触发(event: FocusEvent) => void
blur失去焦点时触发(event: FocusEvent) => void
clear点击清空按钮时触发() => void
confirm点击确认按钮时触发(value: DateValue | DateRangeValue) => void
panel-change面板视图切换时触发(value: Date, mode: PanelView) => void
visible-change面板显示/隐藏时触发(visible: boolean) => void

Slots

插槽名说明
prefix-icon自定义输入框前缀图标
clear-icon自定义清除图标
extra面板中的额外内容
date-cell自定义日期单元格 (Scope: { cell: CalendarCell })
footer自定义底部区域

主题变量

所有颜色变量已与全局主题系统对接,自动支持暗黑模式:

变量名说明默认值
--yh-date-picker-width普通输入框宽度220px
--yh-date-picker-range-width范围输入框宽度400px
--yh-date-picker-primary主题主颜色var(--yh-color-primary)
--yh-date-picker-text-main主要文字颜色var(--yh-text-color-primary)
--yh-date-picker-text-secondary次要文字颜色var(--yh-text-color-secondary)
--yh-date-picker-border边框颜色var(--yh-border-color)
--yh-date-picker-panel-width面板物理宽度380px
--yh-date-picker-panel-bg面板背景颜色var(--yh-bg-color-overlay)
--yh-date-picker-panel-shadow面板阴影var(--yh-shadow-lg)
--yh-date-picker-item-hover悬停背景颜色var(--yh-fill-color-light)
--yh-date-picker-range-bg范围选择背景var(--yh-color-primary-light-9)

Released under the MIT License.