Skip to content

DatetimePickerView 日期时间选择器视图

用于构建日期时间滚筒选项的基础视图组件。

组件类型

基本用法

v-model 绑定选中值;默认 datetime 类型,值为时间戳。

html
<wd-datetime-picker-view v-model="value" @change="handleChange" />
ts
const value = ref<number>(Date.now())
const handleChange = ({ value }: { value: number | string }) => {
  console.log(value)
}

组件变体

日期类型

支持 datetimedateyear-monthyeartime 五种类型。

html
<wd-datetime-picker-view type="date" v-model="dateValue" />
<wd-datetime-picker-view type="year-month" v-model="yearMonthValue" />
<wd-datetime-picker-view type="year" v-model="yearValue" />
<wd-datetime-picker-view type="time" v-model="timeValue" />
<wd-datetime-picker-view type="datetime" v-model="datetimeValue" />
ts
const dateValue = ref<number>(Date.now())
const yearMonthValue = ref<number>(Date.now())
const yearValue = ref<number>(Date.now())
const timeValue = ref<string>('11:12')
const datetimeValue = ref<number>(Date.now())

开启秒选择

timedatetime 类型下可通过 use-second 展示秒列。

html
<wd-datetime-picker-view type="time" v-model="timeValue" use-second />
<wd-datetime-picker-view type="datetime" v-model="value" use-second />
ts
const timeValue = ref<string>('11:12:30')
const value = ref<number>(Date.now())

组件样式

修改内部格式

通过 formatter 自定义滚筒文案格式。

html
<wd-datetime-picker-view v-model="value" :formatter="formatter" />
ts
const formatter = (type: string, value: number) => {
  switch (type) {
    case 'year':
      return `${value}年`
    case 'month':
      return `${value}月`
    case 'date':
      return `${value}日`
    case 'hour':
      return `${value}时`
    case 'minute':
      return `${value}分`
    case 'second':
      return `${value}秒`
    default:
      return `${value}`
  }
}

过滤选项

通过 filter 按列过滤可选值。

html
<wd-datetime-picker-view v-model="value" :filter="filter" />
ts
const filter = ({ type, values }: { type: string; values: number[] }) => {
  if (type === 'minute') {
    return values.filter((value) => value % 5 === 0)
  }
  return values
}

Attributes

参数说明类型默认值
v-model / modelValue选中项,time 类型为字符串,其余类型为时间戳string | number-
type选择器类型,可选值为 datetimedateyear-monthtimeyearDateTimeTypedatetime
item-height单项高度number44
visible-item-count可见项数量number6
value-key选项值字段名stringvalue
label-key选项文案字段名stringlabel
formatter自定义选项文案格式化函数DatetimePickerViewFormatter-
filter自定义过滤函数DatetimePickerViewFilter-
column-formatter自定义列格式化函数DatetimePickerViewColumnFormatter-
min-date最小日期(时间戳)number当前年份前 10 年 1 月 1 日
max-date最大日期(时间戳)number当前年份后 10 年 12 月 31 日
min-hour最小小时(time 类型生效)number0
max-hour最大小时(time 类型生效)number23
min-minute最小分钟(time 类型生效)number0
max-minute最大分钟(time 类型生效)number59
use-second v1.10.0是否显示秒选择,仅 timedatetime 生效booleanfalse
min-second v1.10.0最小秒数,仅 timedatetime 生效number0
max-second v1.10.0最大秒数,仅 timedatetime 生效number59
immediate-change v1.2.25是否在手指松开时立即触发 change(仅微信/支付宝小程序)booleanfalse
boundary-min-date区间模式开始时间最小边界(用于联动)number-
boundary-max-date区间模式结束时间最大边界(用于联动)number-
custom-class根节点自定义类名string''
custom-style根节点自定义样式string''

Events

事件名称说明参数
change选中项变化时触发{ value, columns }
pickstart滚动开始时触发-
pickend滚动结束时触发-

Methods

方法名称说明参数
getSelectedOptions获取当前选中项对象数组-
correctValue纠正并返回合法值value: string | number
getOriginColumns获取原始列定义-

Types

DatetimePickerViewColumn

键名说明类型
type列类型year | month | date | hour | minute | second
values当前列可选值数组number[]

DatetimePickerViewOption

键名说明类型
value选项值number
label选项展示文本string
disabled是否禁用boolean

源代码

文档
组件

Released under the MIT License.

Released under the MIT License.