TimePicker 时间选择器
规则
基础示例
js
const rule = {
type: "TimePicker",
field: "section_time",
title: "活动时间",
value: [],
props: {
isRange: true
},
}Props 配置示例
单时间选择
js
const rule = {
type: "TimePicker",
field: "startTime",
title: "开始时间",
value: "09:00:00",
props: {
placeholder: "请选择时间",
format: "HH:mm:ss",
valueFormat: "HH:mm:ss",
clearable: true,
},
}时间范围选择
js
const rule = {
type: "TimePicker",
field: "timeRange",
title: "营业时间",
value: ["09:00:00", "18:00:00"],
props: {
isRange: true,
rangeSeparator: "至",
startPlaceholder: "开始时间",
endPlaceholder: "结束时间",
format: "HH:mm:ss",
valueFormat: "HH:mm:ss",
},
}箭头控制
js
const rule = {
type: "TimePicker",
field: "appointment",
title: "预约时间",
value: "14:30:00",
props: {
arrowControl: true,
format: "HH:mm",
valueFormat: "HH:mm",
},
}禁用部分时间
js
const rule = {
type: "TimePicker",
field: "workTime",
title: "工作时间",
value: "09:00:00",
props: {
format: "HH:mm:ss",
disabledHours: () => {
// 禁用 0-8 点和 18-23 点
return [...Array(9).keys(), ...Array.from({length: 6}, (_, i) => i + 18)];
},
disabledMinutes: (hour) => {
// 在特定小时禁用某些分钟
if (hour === 12) {
return [0, 30];
}
return [];
},
},
}Events 事件示例
监听时间变化
js
const rule = {
type: "TimePicker",
field: "startTime",
title: "开始时间",
value: "09:00:00",
props: {
placeholder: "请选择时间",
format: "HH:mm:ss",
clearable: true,
},
on: {
change: (value) => {
console.log('时间改变:', value);
},
blur: (event) => {
console.log('失去焦点:', event);
},
focus: (event) => {
console.log('获得焦点:', event);
},
clear: () => {
console.log('清空时间');
},
'visible-change': (visible) => {
console.log('下拉框显示状态:', visible);
},
},
}完整配置项:Element_TimePicker
value :Number | String
Props
| 属性名 | 说明 | 类型 | 默认 |
|---|---|---|---|
| readonly | 完全只读 | boolean | false |
| disabled | 禁用 | boolean | false |
| editable | 文本框可输入 | boolean | true |
| clearable | 是否显示清除按钮 | boolean | true |
| size | 输入框尺寸 | enum | — |
| placeholder | 非范围选择时的占位内容 | string | '' |
| startPlaceholder | 范围选择时开始日期的占位内容 | string | — |
| endPlaceholder | 范围选择时结束日期的占位内容 | string | — |
| isRange | 是否为时间范围选择 | boolean | false |
| arrowControl | 是否使用箭头进行时间选择 | boolean | false |
| popperClass | TimePicker 下拉框的类名 | string | '' |
| rangeSeparator | 选择范围时的分隔符 | string | '-' |
| format | 显示在输入框中的格式 | string see date formats | — |
| defaultValue | 可选,选择器打开时默认显示的时间 | Date / object | — |
| valueFormat | 可选,绑定值的格式。 不指定则绑定值为 Date 对象 | string 参考 日期格式 | — |
| id | 等价于原生 input id 属性 | string / object | — |
| name | 等价于原生 input name 属性 | string | '' |
| ariaLabel | 等价于原生 input aria-label 属性 | string | — |
| prefixIcon | 自定义前缀图标 | string / Component | Clock |
| clearIcon | 自定义清除图标 | string / Component | CircleClose |
| disabledHours | 禁止选择部分小时选项 | Function | — |
| disabledMinutes | 禁止选择部分分钟选项 | Function | — |
| disabledSeconds | 禁止选择部分秒选项 | Function | — |
| teleported | 是否将 popover 的下拉列表镜像至 body 元素 | boolean | true |
| tabindex | 输入框的 tabindex | string / number | 0 |
| emptyValues | 组件的空值配置 参考config-provider | array | — |
| valueOnClear | 清空选项的值 参考 config-provider | string / number / boolean / Function | — |
| label | 等价于原生 input aria-label 属性 | string | — |
Events
| 事件名 | 说明 | 类型 |
|---|---|---|
| change | 用户确认选定的值时触发 | Function |
| blur | 在组件 Input 失去焦点时触发 | Function |
| focus | 在组件 Input 获得焦点时触发 | Function |
| clear | 可清空的模式下用户点击清空按钮时触发 | Function |
| visible-change | 当 TimePicker 的下拉列表出现/消失时触发 | Function |


