DatePicker 日期选择器

大约 5 分钟

DatePicker 日期选择器

输入或选择日期的控件。

何时使用

当用户需要输入一个日期,可以点击标准输入框,弹出日期面板进行选择。

代码演示

基本用法
最简单的用法,在浮层中可以选择或者输入日期。


范围选择器
通过设置 picker 属性,指定范围选择器类型。


日期格式
使用 format 属性,可以自定义日期显示格式。


禁用
选择框的不可用状态。


日期时间选择
增加选择时间功能,当 showTime 为一个对象时,其属性会传递给内建的 TimePicker


不可选择日期和时间
可用 disabledDatedisabledTime 分别禁止选择部分日期和时间,其中 disabledTime 需要和 showTime 一起使用。


三种大小
三种大小的输入框,若不设置,则为 default


后缀图标
通过 suffixIcon 自定义后缀图标

共同的 API

以下 API 为 DatePicker、 RangePicker 共享的 API。

参数说明类型默认值版本
pressLine
新增
组件右上角文本string
allowClear是否显示清除按钮booleantrue
autofocus自动获取焦点booleanfalse
bordered是否有边框booleantrue
dateRender自定义日期单元格的内容v-slot:dateRender="{current, today}"-
disabled禁用booleanfalse
disabledDate不可选择的日期(currentDate: dayjs) => boolean-
format设置日期格式,为数组时支持多格式匹配,展示以第一个为准。配置参考 dayjsopen in new window,支持自定义格式formatTypeYYYY-MM-DD
dropdownClassName额外的弹出日历 classNamestring-
getPopupContainer定义浮层的容器,默认为 body 上新建 divfunction(trigger)-
inputReadOnly设置输入框为只读(避免在移动设备上打开虚拟键盘)booleanfalse
locale国际化配置object默认配置open in new window-
mode日期面板的状态time | date | month | year | decade-
nextIcon自定义下一个图标slot-3.0
open控制弹层是否展开boolean-
picker设置选择器类型date | week | month | quarter | yeardatequarter
placeholder输入框提示文字string | [string, string]-
popupStyle额外的弹出日历样式CSSProperties{}
prevIcon自定义上一个图标slot-3.0
size输入框大小,large 高度为 40px,small 为 24px,默认是 32pxlarge | middle | small-
suffixIcon自定义的选择框后缀图标v-slot:suffixIcon-
superNextIcon自定义 << 切换图标slot-3.0
superPrevIcon自定义 >> 切换图标slot-3.0
valueFormat可选,绑定值的格式,对 value、defaultValue、defaultPickerValue 起作用。不指定则绑定值为 dayjs 对象string,具体格式open in new window-

共有的事件

事件名称说明回调参数
openChange弹出日历和关闭日历的回调function(status)
panelChange日期面板变化时的回调function(value, mode)-

共同的方法

名称描述
blur()移除焦点
focus()获取焦点

DatePicker

参数说明类型默认值版本
defaultPickerValue默认面板日期dayjsopen in new window-
disabledTime不可选择的时间function(date)-
format展示的日期格式,配置参考 dayjsopen in new windowformatTypeYYYY-MM-DD
renderExtraFooter在面板中添加额外的页脚v-slot:renderExtraFooter="mode"-
showNow当设定了 showTime 的时候,面板是否显示“此刻”按钮boolean-
showTime增加时间选择功能Object | booleanTimePicker Options
showTime.defaultValue设置用户选择日期时默认的时分秒,例子dayjsopen in new windowdayjs()
showToday是否展示“今天”按钮booleantrue
value(v-model)日期dayjsopen in new window-

DatePicker 事件

事件名称说明回调参数
change时间发生变化的回调function(date: dayjs | string, dateString: string)
ok点击确定按钮的回调function(date: dayjs | string)

DatePicker[picker=year]

参数说明类型默认值版本
format展示的日期格式,配置参考 dayjsopen in new windowformatTypeYYYY

DatePicker[picker=quarter]

参数说明类型默认值版本
format展示的日期格式,配置参考 dayjsopen in new windowformatTypeYYYY-\QQ

DatePicker[picker=month]

参数说明类型默认值版本
format展示的日期格式,配置参考 dayjsopen in new windowformatTypeYYYY-MM
monthCellRender自定义的月份内容渲染方法v-slot:monthCellRender="{current, locale}"-

DatePicker[picker=week]

参数说明类型默认值版本
format展示的日期格式,配置参考 dayjsopen in new windowformatTypeYYYY-wo

RangePicker

参数说明类型默认值版本
allowEmpty允许起始项部分为空[boolean, boolean][false, false]
dateRender自定义日期单元格的内容。v-slot:dateRender="{current: dayjs, today: dayjs, info: { range: start | end }}"-
defaultPickerValue默认面板日期dayjsopen in new window[]-
disabled禁用起始项[boolean, boolean]-
disabledTime不可选择的时间function(date: dayjs, partial: start | end)-
format展示的日期格式formatTypeYYYY-MM-DD HH:mm:ss
ranges预设时间范围快捷选择{ [range: string]: dayjsopen in new window[] } | { [range: string]: () => dayjsopen in new window[] }-
renderExtraFooter在面板中添加额外的页脚v-slot:renderExtraFooter="mode"-
separator设置分隔符string | v-slot:separator<SwapRightOutlined />
showTime增加时间选择功能Object|booleanTimePicker Options
showTime.defaultValue设置用户选择日期时默认的时分秒,例子dayjsopen in new window[][dayjs(), dayjs()]
value(v-model)日期dayjsopen in new window[]-

RangePicker 事件

事件名称说明回调参数
calendarChange待选日期发生变化的回调function(dates: [dayjs, dayjs] | [string, string], dateStrings: [string, string], info: { range:start|end })
change日期范围发生变化的回调function(dates: [dayjs, dayjs] | [string, string], dateStrings: [string, string])
ok点击确定按钮的回调function(dates: [dayjs, dayjs] | [string, string])
上次编辑于:
贡献者: Xiou.Wang,Noah.Su