Skip to content

TimePicker 时间选择器

规则

基础示例

js
const rule = {
    type: "TimePicker",
    field: "section_time",
    title: "活动时间",
    value: ''
}

Props 配置示例

自定义格式

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "选择时间",
    value: null,
    props: {
        format: "HH:mm:ss",
        placeholder: "请选择时间",
        clearable: true,
    }
}

12小时制

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "选择时间",
    value: null,
    props: {
        use12Hours: true,
        format: "hh:mm:ss a",
        placeholder: "请选择时间",
    }
}

限制时间范围

js
const rule = {
    type: "TimePicker",
    field: "workTime",
    title: "工作时间",
    value: null,
    props: {
        format: "HH:mm",
        placeholder: "请选择时间",
        hours: [9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
        minutes: [0, 15, 30, 45],
    }
}

禁用特定时间

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "选择时间",
    value: null,
    props: {
        format: "HH:mm:ss",
        placeholder: "请选择时间",
        isHourDisabled: (hour) => hour < 9 || hour > 18,
        isMinuteDisabled: (minute, hour) => {
            if (hour === 12) {
                return minute < 30;
            }
            return false;
        },
    }
}

Events 事件示例

监听时间变化

js
const rule = {
    type: "TimePicker",
    field: "time",
    title: "选择时间",
    value: null,
    props: {
        format: "HH:mm:ss",
        placeholder: "请选择时间",
        clearable: true,
    },
    on: {
        'update:value': (value, formattedValue) => {
            console.log('时间改变:', value, formattedValue);
        },
        blur: () => {
            console.log('失去焦点');
        },
        focus: () => {
            console.log('获得焦点');
        },
    },
}

时间选择后联动更新

js
const rule = [
    {
        type: "TimePicker",
        field: "startTime",
        title: "开始时间",
        value: null,
        props: {
            format: "HH:mm",
            placeholder: "请选择开始时间",
        },
        inject: true,
        on: {
            'update:value': ($inject, value) => {
                // 开始时间改变时,自动设置结束时间(开始时间+2小时)
                if (value) {
                    const endTime = value + 2 * 60 * 60 * 1000;
                    $inject.api.setValue('endTime', endTime);
                }
            },
        },
    },
    {
        type: "TimePicker",
        field: "endTime",
        title: "结束时间",
        value: null,
        props: {
            format: "HH:mm",
            placeholder: "请选择结束时间",
        },
    },
]

完整配置项:naive-ui_TimePicker

value :Number | String

Props

名称类型默认值说明版本
actionsArray<'now' | 'confirm'> | null['now', 'confirm']Time Picker 中支持的操作
clearablebooleanfalse是否可清空
disabledbooleanfalse是否禁用
formatstring'HH:mm:ss'时间格式化字符串,详情见 format
formatted-valuestring | nullundefined格式化后的值2.24.0
hoursnumber | number[]undefined通过数组指定显示的小时。当值为 number 时,将被当做时间步进处理
minutesnumber | number[]undefined通过数组指定显示的分钟。当值为 number 时,将被当做时间步进处理
secondsnumber | number[]undefined通过数组指定显示的秒。当值为 number 时,将被当做时间步进处理
input-readonlybooleanfalse设置输入框为只读(避免在移动设备上打开虚拟键盘)
is-hour-disabled(hour: number) => boolean() => false用于禁用小时的回调函数
is-minute-disabled(minute: number, hour: number) => boolean() => false用于禁用分钟的回调函数
is-second-disabled(second: number, minute: number, hour: number) => boolean() => false用于禁用秒钟的回调函数
placeholderstring'请选择时间'选择框的占位符
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
size'small' | 'medium' | 'large''medium'选择框的尺寸
use-12-hoursbooleanfalse是否使用 12 小时制的面板
value-formatstring跟随 format格式化后值的格式2.24.0
on-blur() => voidundefined选择框失去焦点时的回调
on-focus() => voidundefined选择框获得焦点时的回调
on-update:formatted-value(value: number | null, timestampValue: number | null) => voidundefined格式化的值发生改变时的回调2.24.0
on-update:value(value: number | null, formattedValue: string | null) => voidundefined值发生改变时的回调formattedValue 2.24.0

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