Skip to content

DatePicker 日期选择器

规则

基础示例

js
const rule = {
    type: "DatePicker",
    field: "section_day",
    title: "活动日期",
    value: ['2018-02-20 12:12:12', '2018-03-20 12:12:12'],
    props: {
        type: "datetimerange",
        placeholder:"请选择活动日期",
    }
}

Props 配置示例

日期选择(date)

js
const rule = {
    type: "DatePicker",
    field: "date",
    title: "选择日期",
    value: null,
    props: {
        type: "date",
        format: "yyyy-MM-dd",
        placeholder: "请选择日期",
        clearable: true,
    }
}

日期时间选择(datetime)

js
const rule = {
    type: "DatePicker",
    field: "datetime",
    title: "选择日期时间",
    value: null,
    props: {
        type: "datetime",
        format: "yyyy-MM-dd HH:mm:ss",
        placeholder: "请选择日期时间",
        clearable: true,
    }
}

日期范围选择(daterange)

js
const rule = {
    type: "DatePicker",
    field: "dateRange",
    title: "日期范围",
    value: null,
    props: {
        type: "daterange",
        format: "yyyy-MM-dd",
        startPlaceholder: "开始日期",
        endPlaceholder: "结束日期",
        clearable: true,
    }
}

日期时间范围选择(datetimerange)

js
const rule = {
    type: "DatePicker",
    field: "datetimeRange",
    title: "日期时间范围",
    value: null,
    props: {
        type: "datetimerange",
        format: "yyyy-MM-dd HH:mm:ss",
        startPlaceholder: "开始日期时间",
        endPlaceholder: "结束日期时间",
        clearable: true,
    }
}

月份选择(month)

js
const rule = {
    type: "DatePicker",
    field: "month",
    title: "选择月份",
    value: null,
    props: {
        type: "month",
        format: "yyyy-MM",
        placeholder: "请选择月份",
        clearable: true,
    }
}

年份选择(year)

js
const rule = {
    type: "DatePicker",
    field: "year",
    title: "选择年份",
    value: null,
    props: {
        type: "year",
        format: "yyyy",
        placeholder: "请选择年份",
        clearable: true,
    }
}

Events 事件示例

监听日期变化

js
const rule = {
    type: "DatePicker",
    field: "date",
    title: "选择日期",
    value: null,
    props: {
        type: "date",
        format: "yyyy-MM-dd",
        placeholder: "请选择日期",
        clearable: true,
    },
    on: {
        'update:value': (value, formattedValue) => {
            console.log('日期改变:', value, formattedValue);
        },
        blur: () => {
            console.log('失去焦点');
        },
        focus: () => {
            console.log('获得焦点');
        },
    },
}

日期选择后联动更新

js
const rule = [
    {
        type: "DatePicker",
        field: "startDate",
        title: "开始日期",
        value: null,
        props: {
            type: "date",
            format: "yyyy-MM-dd",
            placeholder: "请选择开始日期",
        },
        inject: true,
        on: {
            'update:value': ($inject, value) => {
                // 开始日期改变时,自动设置结束日期(开始日期+7天)
                if (value) {
                    const endDate = value + 7 * 24 * 60 * 60 * 1000;
                    $inject.api.setValue('endDate', endDate);
                }
            },
        },
    },
    {
        type: "DatePicker",
        field: "endDate",
        title: "结束日期",
        value: null,
        props: {
            type: "date",
            format: "yyyy-MM-dd",
            placeholder: "请选择结束日期",
        },
    },
]

完整配置项:naive-ui_DatePicker

value: String | Array

DatePicker

Props

名称类型默认值说明版本
clearablebooleanfalse是否支持清除
default-formatted-valuestring | [string, string] | nullundefinedDate Picker 格式化后的值
disabledbooleanfalse是否禁用
first-day-of-week0 | 1 | 2 | 3 | 4 | 5 | 6undefined日历上一周的开始,0 代表周一
formatted-valuestring | [string, string] | nullundefined格式化之后的值2.24.0
input-readonlybooleanfalse设置输入框为只读(避免在移动设备上打开虚拟键盘)
placement'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end' | 'bottom-start'面板的弹出位置2.25.0
shortcutsRecord<string, number | (() => number)> | Record<string, [number, number] | (() => [number, number])>undefined自定义快捷按钮
size'small' | 'medium' | 'large''medium'尺寸
type'date' | 'datetime' | 'daterange' | 'datetimerange' | 'month' | 'year' | 'quarter' | 'date'Date Picker 的类型'quarter' v2.22.0
value-formatstring跟随 format 属性绑定值的格式,详情见 format
on-blur() => voidundefined用户 blur 时执行的回调
on-focus() => voidundefined用户 focus 时执行的回调

Date 类型的 Props

名称类型默认值说明版本
actionsArray<'clear' | 'now'> | null['clear', 'now']Date 类型的 Date Picker 中支持的操作
formatstring'YYYY-MM-dd'时间格式化字符串,详情见 format
is-date-disabled(current: number) => booleanundefined日期禁用的校验函数
placeholderstring'选择日期'自动填充的提示信息
on-update:formatted-value(value: string | null, timestampValue: number | null) => voidundefined可控数据更新时触发的回调函数2.24.0
on-update:value(value: number | null, formattedValue: string | null) => voidundefined可控数据更新时触发的回调函数formattedValue 2.24.0

DateTime 类型的 Props

名称类型默认值说明版本
actionsArray<'clear' | 'now' | 'confirm'> | null['clear', 'now', 'confirm']DateTime 类型的 Date Picker 中支持的操作
default-timestringundefined默认时间,格式为 HH:mm:ss2.22.0
formatstring'YYYY-MM-dd HH:mm:ss'时间格式化字符串,详情见 format
is-date-disabled(current: number) => booleanundefined日期禁用的校验函数
is-time-disabled(current: number) => { isHourDisabled: boolean, isMinuteDisabled: boolean, isSecondDisabled: boolean }undefined时间禁用的校验函数
placeholderstring'选择日期时间'提示信息
update-value-on-closebooleanfalse关闭面板时更新值
on-update:formatted-value(value: string | null, timestampValue: number | null) => voidundefined数据更新时触发的回调函数2.24.0
on-update:value(value: number | null, formattedValue: string | null) => voidundefined数据更新时触发的回调函数formattedValue 2.24.0

DateRange 类型的 Props

名称类型默认值说明版本
actionsArray<'clear' | 'confirm'> | null['clear', 'confirm']DateRange 类型的 Date Picker 中支持的用户操作
end-placeholderstring'结束日期'DateRange 中 end 选框的提示信息
formatstring'YYYY-MM-dd'时间格式化字符串,详情见 format
is-date-disabled(current: number, phase: 'start' | 'end', value: [number, number] | null) => booleanundefined日期禁用的校验函数
is-time-disabled(current: number, phase: 'start' | 'end', value: [number, number] | null) => { isHourDisabled?: () => boolean, isMinuteDisabled?: () => boolean, isSecondDisabled?: () => boolean }undefined时间禁用的校验函数
close-on-selectbooleanfalse用户选择时间范围后是否自动关闭面板
separatorstring'至'start 选框与 end 选框之间的分隔符
start-placeholderstring'开始日期'DateRange 中 start 选框的提示信息
update-value-on-closebooleanfalse关闭面板时是否更新值
on-update:formatted-value(value: [string, string] | null, timestampValue: [number, number] | null) => voidundefined数据更新时触发的回调函数2.24.0
on-update:value(value: [number, number] | null, formattedValue: [string, string] | null) => voidundefined数据更新时触发的回调函数formattedValue 2.24.0

DateTimeRange 类型的 Props

名称类型默认值说明版本
actionsArray<'clear' | 'confirm'> | null['clear', 'confirm']DateTimeRange 类型的 Date Picker 中支持的用户操作
default-timestring | Array<string | undefined>undefined默认时间,格式为 HH:mm:ss2.22.0
end-placeholderstring'结束日期时间'DateTimeRange 中 end 选框的提示信息
formatstring'YYYY-MM-dd HH:mm:ss'时间格式化字符串,详情见 format
is-date-disabled(current: number, phase: 'start' | 'end', value: [number, number] | null) => booleanundefined日期禁用的校验函数
is-time-disabled(current: number, phase: 'start' | 'end', value: [number, number]) => { isHourDisabled?: () => boolean, isMinuteDisabled?: () => boolean, isSecondDisabled?: () => boolean }undefined时间禁用的校验函数
separatorstring'to'start 选框与 end 选框之间的分隔符
start-placeholderstring'开始日期时间'DateTimeRange 中 start 选框的提示信息
update-value-on-closebooleanfalse关闭面板时是否更新值
on-update:formatted-value(value: [string, string] | null, timestampValue: [number, number] | null) => voidundefined数据更新时触发的回调函数2.24.0
on-update:value(value: [number, number] | null, formattedValue: [string, string] | null) => voidundefined数据更新时触发的回调函数formattedValue 2.24.0

Month 类型的 Props

名称类型默认值说明版本
actionsArray<'clear' | 'now' | 'confirm'> | null['clear', 'now']Month 类型的 Date Picker 中支持的操作
formatstring'YYYY-MM'时间格式化字符串,详情见 format
is-date-disabled(current: number) => booleanundefined月份禁用的校验函数
placeholderstring'选择月份'自动填充的提示信息
on-update:formatted-value(value: string | null, timestampValue: number | null) => voidundefined可控数据更新时触发的回调函数2.24.0
on-update:value(value: number | null, formattedValue: string | null) => voidundefined可控数据更新时触发的回调函数formattedValue 2.24.0

Year 类型的 Props

名称类型默认值说明版本
actionsArray<'clear' | 'now'> | null['clear', 'now']Year 类型的 Date Picker 中支持的操作
formatstring'YYYY'时间格式化字符串,详情见 format
is-date-disabled(current: number) => booleanundefined年份禁用的校验函数
placeholderstring'选择年份'自动填充的提示信息
on-update:formatted-value(value: string | null, timestampValue: number | null) => voidundefined可控数据更新时触发的回调函数2.24.0
on-update:value(value: number | null, formattedValue: string | null) => voidundefined可控数据更新时触发的回调函数formattedValue 2.24.0

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用