Skip to content

FxDatePicker 日期选择器

日期选择器用于日期输入。

FxDatePicker 属于 @fx/components

输入日期

按「日」选择的基础日期选择器。测量维度由 type 属性决定,可通过 shortcuts 启用快捷选项,通过 disabled-date 设置禁用日期。

其他测量维度

通过扩展标准日期选择器,可以选择周、月、年或多个日期。

日期范围

支持选择日期范围。范围模式下左右两面板默认联动,如需两面板独立切换月份,可使用 unlink-panels 属性。

月份范围

支持选择月份范围。范围模式下左右两面板默认联动,如需两面板独立切换年份,可使用 unlink-panels 属性。

年份范围

支持选择年份范围。范围模式下左右两面板默认联动,如需两面板独立切换年份,可使用 unlink-panels 属性。

单面板

默认情况下日期范围选择器有两个面板。如需单面板,设置 single-panel 属性。

默认值

若用户未选择日期,默认展示今天的日历。可通过 default-value 设置其他日期,其值应能被 new Date() 解析。typedaterange 时,default-value 设置左侧日历。

日期格式

format 控制输入框显示文本的格式;用 value-format 控制绑定值的格式。默认情况下,组件接受并发射 Date 对象。

WARNING

注意大小写

起止日期的默认时间

选择日期范围时,可为起止日期分别指定时间部分。默认起止日期的时间部分均为 00:00:00,设置 default-time 可分别改变,接受最多两个 Date 对象的数组。

自定义前缀内容

可自定义前缀内容。将 prefix-icon 设置为从其他 .vue 引入的组件,或由 render 函数生成。

自定义内容

可自定义单元格内容,作用域插槽中可获取单元格数据。注意自定义内容结构应与默认结构一致,否则可能出现样式错位。

自定义图标

通过插槽可使用自定义图标。

扩展能力

以下为 FxDatePicker 在基础日期选择之外额外提供的能力。

尺寸

size 支持 large / default / small

快捷选项

shortcuts 数组每一项含 { text, value }value 可为 Date() => Date(范围面板则为 [Date, Date]() => [Date, Date])。

禁用日期

disabled-date 接收 (date: Date) => boolean,返回 true 表示禁用。下例禁用周末。

周选择

type="week" + show-week-number 可显示周数;可通过 format 自定义显示格式。

本地化

默认为中文,i18n 切换能力规划中。

API

Attributes

属性说明类型默认值
model-value / v-model绑定值,range 时数组长度为 2number | string | Date | array
readonly是否只读booleanfalse
disabled是否禁用booleanfalse
size输入框尺寸'' | 'large' | 'default' | 'small'
editable输入框是否可键入booleantrue
clearable是否显示清空按钮booleantrue
placeholder非范围模式的占位string
start-placeholder范围模式起始占位string
end-placeholder范围模式结束占位string
type选择器类型'year' | 'years' | 'month' | 'months' | 'date' | 'dates' | 'datetime' | 'week' | 'datetimerange' | 'daterange' | 'monthrange' | 'yearrange'date
format输入框显示格式stringYYYY-MM-DD
popper-class下拉自定义类名string
popper-style下拉自定义样式string | object
popper-options透传浮层选项object{}
range-separator范围分隔符string'-'
default-value默认聚焦日期Date | [Date, Date]
default-time选日期范围时使用的时间Date | [Date, Date]
value-format绑定值格式,未指定则绑定 Date 对象string
id原生 idstring | [string, string]
name原生 namestring | [string, string]
unlink-panels范围模式两面板独立翻月booleanfalse
single-panel范围模式仅展示一面板booleanfalse
prefix-icon自定义前缀图标string | Componentep:calendar / ep:clock
clear-icon自定义清空图标string | Componentep:circle-close
validate-event是否触发表单校验booleantrue
disabled-date禁用日期判定函数,返回 Boolean(date: Date) => boolean
shortcuts快捷选项数组Array<{ text: string; value: Date | Function }>[]
cell-class-name单元格自定义类(date: Date) => string
teleported是否将下拉挂载到 bodybooleantrue
empty-values组件的空值列表array
value-on-clear清空时回填的值string | number | boolean | Function
fallback-placements浮层备选位置列表Placement[]['bottom','top','right','left']
placement浮层位置Placementbottom
show-footer是否显示底部按钮区booleantrue
show-confirm是否显示确认按钮booleantrue
show-week-number是否显示周数booleanfalse
automatic-dropdown聚焦输入框时自动展开面板booleantrue
date-format面板内日期显示格式stringYYYY-MM-DD
time-format面板内时间显示格式stringHH:mm:ss
disabled-hours禁用小时(仅 datetime* 生效)(role: string, comparingDate?: Dayjs) => number[]
disabled-minutes禁用分钟(仅 datetime* 生效)(hour: number, role: string, comparingDate?: Dayjs) => number[]
disabled-seconds禁用秒(仅 datetime* 生效)(hour: number, minute: number, role: string, comparingDate?: Dayjs) => number[]
show-now是否显示「此刻」按钮(仅 datetime*)booleantrue
arrow-control时间面板是否用箭头选择booleanfalse
save-on-blur失焦时是否保存当前时间值booleantrue
tabindex输入框 tabindexstring | number0
aria-labela11y 标签string

Events

事件名说明类型
change用户确认选值或点击外部时触发(val) => void
blur输入框失焦时触发(e: FocusEvent) => void
focus输入框聚焦时触发(e: FocusEvent) => void
clear点击清空按钮时触发() => void
calendar-change面板日期交互时触发,仅 range(val: [Date, null | Date]) => void
panel-change点击导航按钮时触发(date: Date | [Date, Date], mode: 'month' | 'year', view?: string) => void
visible-change下拉显隐时触发(visible: boolean) => void

Slots

插槽名说明
default自定义单元格内容
range-separator自定义范围分隔内容
prev-month上月导航图标
next-month下月导航图标
prev-year上年导航图标
next-year下年导航图标
prefix自定义前缀内容(替代 prefix-icon)

Exposes

方法说明类型
focus聚焦输入框() => void
blur失焦输入框() => void
handleOpen打开下拉() => void
handleClose关闭下拉() => void

类型声明

展开查看
ts
type Placement =
  | 'top'
  | 'top-start'
  | 'top-end'
  | 'bottom'
  | 'bottom-start'
  | 'bottom-end'
  | 'left'
  | 'left-start'
  | 'left-end'
  | 'right'
  | 'right-start'
  | 'right-end'