mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-14 17:31:02 +08:00
55348b30b6
* style: use prettier * style: just prettier format, no code changes * style: eslint fix object-shorthand, prefer-const * style: fix no-void * style: no-console
154 lines
8.6 KiB
Markdown
154 lines
8.6 KiB
Markdown
## TimePicker
|
|
|
|
Use Time Picker for time input.
|
|
|
|
### Arbitrary time picker
|
|
|
|
Can pick an arbitrary time.
|
|
|
|
:::demo Use `el-time-picker` label, and you can limit the time range by specifying `disabledHours` `disabledMinutes` and `disabledSeconds`. By default, you can scroll the mouse wheel to pick time, alternatively you can use the control arrows when the `arrow-control` attribute is set.
|
|
|
|
```html
|
|
<template>
|
|
<el-time-picker
|
|
v-model="value1"
|
|
:disabled-hours="disabledHours"
|
|
:disabled-minutes="disabledMinutes"
|
|
:disabled-seconds="disabledSeconds"
|
|
placeholder="Arbitrary time"
|
|
>
|
|
</el-time-picker>
|
|
<el-time-picker
|
|
arrow-control
|
|
v-model="value2"
|
|
:disabled-hours="disabledHours"
|
|
:disabled-minutes="disabledMinutes"
|
|
:disabled-seconds="disabledSeconds"
|
|
placeholder="Arbitrary time"
|
|
>
|
|
</el-time-picker>
|
|
</template>
|
|
|
|
<script>
|
|
const makeRange = (start, end) => {
|
|
const result = []
|
|
for (let i = start; i <= end; i++) {
|
|
result.push(i)
|
|
}
|
|
return result
|
|
}
|
|
export default {
|
|
data() {
|
|
return {
|
|
value1: new Date(2016, 9, 10, 18, 40),
|
|
value2: new Date(2016, 9, 10, 18, 40),
|
|
}
|
|
},
|
|
methods: {
|
|
// e.g. allow 17:30:00 - 18:30:00
|
|
disabledHours() {
|
|
return makeRange(0, 16).concat(makeRange(19, 23))
|
|
},
|
|
disabledMinutes(hour) {
|
|
if (hour === 17) {
|
|
return makeRange(0, 29)
|
|
}
|
|
if (hour === 18) {
|
|
return makeRange(31, 59)
|
|
}
|
|
},
|
|
disabledSeconds(hour, minute) {
|
|
if (hour === 18 && minute === 30) {
|
|
return makeRange(1, 59)
|
|
}
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
```
|
|
|
|
:::
|
|
|
|
### Arbitrary time range
|
|
|
|
Can pick an arbitrary time range.
|
|
|
|
:::demo We can pick a time range by adding an `is-range` attribute. Also, `arrow-control` is supported in range mode.
|
|
|
|
```html
|
|
<template>
|
|
<el-time-picker
|
|
is-range
|
|
v-model="value1"
|
|
range-separator="To"
|
|
start-placeholder="Start time"
|
|
end-placeholder="End time"
|
|
>
|
|
</el-time-picker>
|
|
<el-time-picker
|
|
is-range
|
|
arrow-control
|
|
v-model="value2"
|
|
range-separator="To"
|
|
start-placeholder="Start time"
|
|
end-placeholder="End time"
|
|
>
|
|
</el-time-picker>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
value1: [new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)],
|
|
value2: [new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)],
|
|
}
|
|
},
|
|
}
|
|
</script>
|
|
```
|
|
|
|
:::
|
|
|
|
### Attributes
|
|
|
|
| Attribute | Description | Type | Accepted Values | Default |
|
|
| --------------------- | ------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------- | -------------------- |
|
|
| model-value / v-model | binding value | Date | — | — |
|
|
| readonly | whether TimePicker is read only | boolean | — | false |
|
|
| disabled | whether TimePicker is disabled | boolean | — | false |
|
|
| editable | whether the input is editable | boolean | — | true |
|
|
| clearable | whether to show clear button | boolean | — | true |
|
|
| size | size of Input | string | medium / small / mini | — |
|
|
| placeholder | placeholder in non-range mode | string | — | — |
|
|
| start-placeholder | placeholder for the start time in range mode | string | — | — |
|
|
| end-placeholder | placeholder for the end time in range mode | string | — | — |
|
|
| is-range | whether to pick a time range | boolean | — | false |
|
|
| arrow-control | whether to pick time using arrow buttons | boolean | — | false |
|
|
| align | alignment | left / center / right | left |
|
|
| popper-class | custom class name for TimePicker's dropdown | string | — | — |
|
|
| range-separator | range separator | string | — | '-' |
|
|
| format | format of the displayed value in the input box | string | see [date formats](#/en-US/component/date-picker#date-formats) | HH:mm:ss |
|
|
| default-value | optional, default date of the calendar | Date for TimePicker, string for TimeSelect | anything accepted by `new Date()` for TimePicker, selectable value for TimeSelect | — |
|
|
| name | same as `name` in native input | string | — | — |
|
|
| prefix-icon | Custom prefix icon class | string | — | el-icon-time |
|
|
| clear-icon | Custom clear icon class | string | — | el-icon-circle-close |
|
|
| disabledHours | To specify the array of hours that cannot be selected | function | — | — |
|
|
| disabledMinutes | To specify the array of minutes that cannot be selected | function(selectedHour) | — | — |
|
|
| disabledSeconds | To specify the array of seconds that cannot be selected | function(selectedHour, selectedMinute) | — | — |
|
|
|
|
### Events
|
|
|
|
| Event Name | Description | Parameters |
|
|
| ---------- | ------------------------------------- | ------------------------- |
|
|
| change | triggers when user confirms the value | component's binding value |
|
|
| blur | triggers when Input blurs | component instance |
|
|
| focus | triggers when Input focuses | component instance |
|
|
|
|
### Methods
|
|
|
|
| Method | Description | Parameters |
|
|
| ------ | ------------------------- | ---------- |
|
|
| focus | focus the Input component | — |
|
|
| blur | blur the Input component | — |
|