Skip to content

DateTimePickerGroup 日期时间组合选择 ​

日期时间组合选择组件,基于 Vant PickerGroup + DatePicker + TimePicker + Popup + Field 组件实现。

类型标识 ​

  • t: 'date-time-picker-group'

额外 Props ​

属性名类型默认值描述
pickerGroupPropsPartial<PickerGroupProps>-VanPickerGroup 组件的属性
pickerGroupOnobject{}VanPickerGroup 组件的事件
pickerGroupSlotsPickerGroupSlots-VanPickerGroup 组件的插槽
isLinkbooleantrue是否展示右侧箭头并开启点击反馈
onRowClick(option, ev) => void-点击事件,传递此事件时会忽略内部打开弹窗操作
format(option) => any-对值进行格式化 - 显示在页面上的值
valueFormat(option) => any-对值进行格式化 - 提交值
valueUnformat(option) => string[]-取消值的格式化
valueTrigger'change' | 'confirm' | 'cancel''confirm'值触发方式
datePickerPropsPartial<DatePickerProps>-VanDatePicker 组件的属性
datePickerOnobject{}VanDatePicker 组件的事件
datePickerSlotsobject-VanDatePicker 组件的插槽
timePickerPropsPartial<TimePickerProps>-VanTimePicker 组件的属性
timePickerOnobject{}VanTimePicker 组件的事件
timePickerSlotsobject-VanTimePicker 组件的插槽
popupPropsPartial<PopupProps>-弹窗组件的属性
popupOnobject{}弹窗组件的事件

PickerGroupSlots ​

插槽名绑定值描述
toolbarCommonSlotsProps自定义整个顶部栏的内容
titleCommonSlotsProps自定义标题内容
confirmCommonSlotsProps自定义确认按钮内容
cancelCommonSlotsProps自定义取消按钮内容

Slots ​

支持所有 CommonSlots 插槽。

示例 ​

基础用法 ​

typescript
const formConfig = defineOption([
    {
        field: 'datetime',
        t: 'date-time-picker-group',
        label: '日期时间',
        placeholder: '选择日期和时间',
    },
]);

自定义日期时间范围 ​

typescript
const formConfig = defineOption([
    {
        field: 'appointment',
        t: 'date-time-picker-group',
        label: '预约时间',
        datePickerProps: {
            minDate: new Date(),
            maxDate: new Date(2025, 11, 31),
        },
        timePickerProps: {
            minHour: 9,
            maxHour: 18,
        },
    },
]);

自定义格式化 ​

typescript
const formConfig = defineOption([
    {
        field: 'datetime',
        t: 'date-time-picker-group',
        label: '日期时间',
        format: (option) => {
            const [date, time] = option;
            if (!date && !time) return '';
            const dateStr = date ? date.join('-') : '';
            const timeStr = time ? time.join(':') : '';
            return `${dateStr} ${timeStr}`;
        },
        valueFormat: (option) => {
            const [date, time] = option;
            const dateStr = date ? date.join('-') : '';
            const timeStr = time ? time.join(':') : '';
            return `${dateStr} ${timeStr}`.trim();
        },
    },
]);