Date Picker 日期选择器

用于选择日期。

选择某日

以「日」为粒度选择日期。

展示粒度由 type 决定。可通过 shortcuts 配置快捷项。disabled-date 为函数,用于禁用指定日期。

Default
Picker with quick options

其他粒度

可在标准日期选择器上扩展为周、月、年或多选日期等类型。

Week
Dates
Year
Years
Month
Months

日期范围

支持选择起止日期。

范围模式下左右面板默认联动;若希望两侧月份独立切换,可使用 unlink-panels

Default
To
With quick options
To

月份范围

支持选择月份区间。

范围模式下左右面板默认联动;若希望两侧年份独立切换,可使用 unlink-panels

Default
To
With quick options
To

年份范围

支持选择年份区间。

范围模式下左右面板默认联动;若希望两侧年份独立切换,可使用 unlink-panels

Default
To
With quick options
To

默认显示的月历

用户未选择时,日历默认定位到「今天」。可通过 default-value 指定其他日期,取值需能被 new Date() 解析。

typedaterange 时,default-value 作用于左侧日历。

date
daterange
-

日期格式

使用 format 控制输入框内展示格式;使用 value-format 控制绑定值的格式。

未指定时,组件接受并向外抛出 Date 对象。

Day.js 可用占位符见官方列表

WARNING

注意大小写。

Emits Date object
Value:
Use value-format
Value:
Timestamp
Value:

范围选择的默认时间

选择日期范围时,可为起止日期分别指定时间部分。

默认起止时间均为 00:00:00default-time 为最多包含两个 Date 的数组:第一项作用于开始日期,第二项作用于结束日期。

Component value:

-

自定义前缀内容

可自定义输入框前缀。

prefix-icon 设为你从其他 .vue 引入的组件,或由渲染函数生成的组件。

set prefix-icon

pre

自定义单元格

单元格内容可通过作用域插槽自定义,可拿到单元格数据。自定义结构需与默认结构一致,否则可能出现样式错位。

自定义图标

可通过插槽替换导航等图标。

date
date range
-
month range
-
year range
To

数据结构如下:

ts
interface DateCell {
  column: number
  customClass: string | undefined
  disabled: boolean
  end: boolean
  inRange: boolean
  row: number
  selected: Dayjs | undefined
  isCurrent: boolean | undefined
  isSelected: boolean
  renderText: string | undefined
  start: boolean
  text: number
  timestamp: number
  date: Date
  dayjs: Dayjs
  type: 'normal' | 'today' | 'week' | 'next-month' | 'prev-month'
}

国际化

默认语言为英文;若需其他语言请参考国际化

日期时间相关的区域设置(月份名称、每周起始日等)也在语言包中配置。

API

属性

名称说明类型默认值
model-value / v-model绑定值;范围选择时为长度 2 的数组number / string / Date / array''
readonly是否只读booleanfalse
disabled是否禁用booleanfalse
size输入框尺寸enum
editable文本框是否可编辑booleantrue
clearable是否显示清空按钮booleantrue
placeholder非范围模式下的占位符string''
start-placeholder范围模式下开始日期的占位符string
end-placeholder范围模式下结束日期的占位符string
type选择器类型enumdate
format输入框中展示值的格式string 参见日期格式YYYY-MM-DD
popper-class下拉面板的自定义类名string
popper-style下拉面板的自定义样式string / object
popper-optionsPopper 配置,详见 popper.jsobject{}
range-separator范围分隔符string'-'
default-value可选,日历默认定位的日期object
default-time可选,范围选择时默认的时间部分object
value-format可选,绑定值的格式;未指定时为 Datestring 参见日期格式
id同原生 idstring / array
name同原生 namestring / array''
unlink-panels范围选择时是否解除左右面板联动booleanfalse
prefix-icon自定义前缀图标;type 为时间类时默认为 Clock,否则为 Calendarstring / object''
clear-icon自定义清空图标string / objectCircleClose
validate-event是否触发表单校验booleantrue
disabled-date判断某日是否禁用的函数,参数为日期,返回布尔值Function
shortcuts快捷选项数组array[]
cell-class-name为单元格设置自定义类名Function
teleported是否将弹层挂载到 bodybooleantrue
empty-values视为空的取值,见 config-providerarray
value-on-clear清空后的绑定值,见 config-providerstring / number / boolean / Function
fallback-placementsTooltip 可能的位置,见 popper.jsarray['bottom', 'top', 'right', 'left']
placement下拉出现位置Placementbottom
show-footer是否显示底部栏booleantrue
show-confirm是否显示确认按钮booleantrue
show-week-number是否显示周数booleanfalse
automatic-dropdown输入框聚焦时是否自动展开面板(3.0 起默认值将改为 falsebooleantrue

事件

名称说明类型
change用户确认或点击外部关闭时触发Function
blur输入框失焦时触发Function
focus输入框聚焦时触发Function
clear点击清空时触发Function
calendar-change日历所选日期变化时触发,仅 range 模式Function
panel-change点击导航切换年月时触发Function
visible-change下拉显示/隐藏时触发Function

插槽

名称说明
default自定义单元格内容
range-separator自定义范围分隔符
prev-month上一月图标
next-month下一月图标
prev-year上一年图标
next-year下一年图标

暴露

名称说明类型
focus聚焦组件Function
blur使组件失焦Function
handleOpen打开弹层Function
handleClose关闭弹层Function

类型声明

展开类型声明
ts
import type { Options as PopperOptions } from '@popperjs/core'

type TimeLikeType = 'datetime' | 'datetimerange'

type Placement =
  | 'top'
  | 'top-start'
  | 'top-end'
  | 'bottom'
  | 'bottom-start'
  | 'bottom-end'
  | 'left'
  | 'left-start'
  | 'left-end'
  | 'right'
  | 'right-start'
  | 'right-end'