diff --git a/packages/time-picker/__tests__/time-picker.spec.ts b/packages/time-picker/__tests__/time-picker.spec.ts index 8c5b6c9136..98d9992b56 100644 --- a/packages/time-picker/__tests__/time-picker.spec.ts +++ b/packages/time-picker/__tests__/time-picker.spec.ts @@ -307,6 +307,22 @@ describe('TimePicker', () => { const attr = popperEl.getAttribute('aria-hidden') expect(attr).toEqual('false') }) + + it('ref blur', async () => { + _mount(``, () => ({ value: new Date(2016, 9, 10, 18, 40) }), { + mounted() { + this.$refs.input.focus() + this.$refs.input.blur() + }, + }) + await nextTick() + const popperEl = document.querySelector('.el-picker__popper') + const attr = popperEl.getAttribute('aria-hidden') + expect(attr).toEqual('true') + }) }) describe('TimePicker(range)', () => { diff --git a/packages/time-picker/src/common/picker.vue b/packages/time-picker/src/common/picker.vue index 815231ad97..6857d58a64 100644 --- a/packages/time-picker/src/common/picker.vue +++ b/packages/time-picker/src/common/picker.vue @@ -147,7 +147,7 @@ interface PickerOptions { handleKeydown: any parseUserInput: any formatToString: any - getRangeAvaliableTime: any + getRangeAvailableTime: any getDefaultValue: any panelReady: boolean handleClear: any @@ -273,11 +273,16 @@ export default defineComponent({ emitInput(result) } const handleFocus = e => { - if (props.readonly || pickerDisabled.value) return + if (props.readonly || pickerDisabled.value || pickerVisible.value) return pickerVisible.value = true ctx.emit('focus', e) } + const handleBlur = () => { + pickerVisible.value = false + blurInput() + } + const pickerDisabled = computed(() => { return props.disabled || elForm.disabled }) @@ -296,8 +301,8 @@ export default defineComponent({ } } - if (pickerOptions.value.getRangeAvaliableTime) { - result = pickerOptions.value.getRangeAvaliableTime(result) + if (pickerOptions.value.getRangeAvailableTime) { + result = pickerOptions.value.getRangeAvailableTime(result) } if (Array.isArray(result) && result.some(_ => !_)) { result = [] @@ -540,6 +545,7 @@ export default defineComponent({ triggerClass, onPick, handleFocus, + handleBlur, pickerVisible, pickerActualVisible, displayValue, diff --git a/packages/time-picker/src/time-picker-com/panel-time-pick.vue b/packages/time-picker/src/time-picker-com/panel-time-pick.vue index eb4e795bb2..9aac4e803f 100644 --- a/packages/time-picker/src/time-picker-com/panel-time-pick.vue +++ b/packages/time-picker/src/time-picker-com/panel-time-pick.vue @@ -49,7 +49,7 @@ import { EVENT_CODE } from '@element-plus/utils/aria' import { t } from '@element-plus/locale' import TimeSpinner from './basic-time-spinner.vue' import dayjs, { Dayjs } from 'dayjs' -import { getAvaliableArrs, useOldValue } from './useTimePicker' +import { getAvailableArrs, useOldValue } from './useTimePicker' export default defineComponent({ components: { @@ -95,7 +95,7 @@ export default defineComponent({ // method const isValidValue = _date => { const parsedDate = dayjs(_date) - const result = getRangeAvaliableTime(parsedDate) + const result = getRangeAvailableTime(parsedDate) return parsedDate.isSame(result) } const handleCancel = () => { @@ -108,7 +108,7 @@ export default defineComponent({ const handleChange = (_date: Dayjs) => { // visible avoids edge cases, when use scrolls during panel closing animation if (!props.visible) { return } - const result = getRangeAvaliableTime(_date).millisecond(0) + const result = getRangeAvailableTime(_date).millisecond(0) ctx.emit('pick', result, true) } @@ -122,7 +122,7 @@ export default defineComponent({ const mapping = ['hours', 'minutes'].concat(showSeconds.value ? ['seconds'] : []) const index = list.indexOf(selectionRange.value[0]) const next = (index + step + list.length) % list.length - timePickeOptions['start_emitSelectRange'](mapping[next]) + timePickerOptions['start_emitSelectRange'](mapping[next]) } const handleKeydown = event => { @@ -137,32 +137,32 @@ export default defineComponent({ if (code === EVENT_CODE.up || code === EVENT_CODE.down) { const step = (code === EVENT_CODE.up) ? -1 : 1 - timePickeOptions['start_scrollDown'](step) + timePickerOptions['start_scrollDown'](step) event.preventDefault() return } } - const getRangeAvaliableTime = (date: Dayjs) => { - const avaliableMap = { - hour: getAvaliableHours, - minute: getAvaliableMinutes, - second: getAvaliableSeconds, + const getRangeAvailableTime = (date: Dayjs) => { + const availableMap = { + hour: getAvailableHours, + minute: getAvailableMinutes, + second: getAvailableSeconds, } let result = date; ['hour', 'minute', 'second'].forEach(_ => { - if (avaliableMap[_]) { - let avaliableArr - const method = avaliableMap[_] + if (availableMap[_]) { + let availableArr + const method = availableMap[_] if (_ === 'minute') { - avaliableArr = method(result.hour(), props.datetimeRole) + availableArr = method(result.hour(), props.datetimeRole) } else if (_ === 'second') { - avaliableArr = method(result.hour(), result.minute(), props.datetimeRole) + availableArr = method(result.hour(), result.minute(), props.datetimeRole) } else { - avaliableArr = method(props.datetimeRole) + availableArr = method(props.datetimeRole) } - if (avaliableArr && avaliableArr.length && !avaliableArr.includes(result[_]())) { - result = result[_](avaliableArr[0]) + if (availableArr && availableArr.length && !availableArr.includes(result[_]())) { + result = result[_](availableArr[0]) } } }) @@ -187,19 +187,19 @@ export default defineComponent({ ctx.emit('set-picker-option', ['formatToString', formatToString]) ctx.emit('set-picker-option', ['parseUserInput', parseUserInput]) ctx.emit('set-picker-option',['handleKeydown', handleKeydown]) - ctx.emit('set-picker-option',['getRangeAvaliableTime', getRangeAvaliableTime]) + ctx.emit('set-picker-option',['getRangeAvailableTime', getRangeAvailableTime]) ctx.emit('set-picker-option',['getDefaultValue', getDefaultValue]) - const timePickeOptions = {} as any + const timePickerOptions = {} as any const onSetOption = e => { - timePickeOptions[e[0]] = e[1] + timePickerOptions[e[0]] = e[1] } const pickerBase = inject('EP_PICKER_BASE') as any const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props const { - getAvaliableHours, - getAvaliableMinutes, - getAvaliableSeconds, - } = getAvaliableArrs(disabledHours, disabledMinutes, disabledSeconds) + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds, + } = getAvailableArrs(disabledHours, disabledMinutes, disabledSeconds) return { transitionName, diff --git a/packages/time-picker/src/time-picker-com/panel-time-range.vue b/packages/time-picker/src/time-picker-com/panel-time-range.vue index fb2bac7016..969e435574 100644 --- a/packages/time-picker/src/time-picker-com/panel-time-range.vue +++ b/packages/time-picker/src/time-picker-com/panel-time-range.vue @@ -79,7 +79,7 @@ import union from 'lodash/union' import { t } from '@element-plus/locale' import { EVENT_CODE } from '@element-plus/utils/aria' import TimeSpinner from './basic-time-spinner.vue' -import { getAvaliableArrs, useOldValue } from './useTimePicker' +import { getAvailableArrs, useOldValue } from './useTimePicker' const makeSelectRange = (start, end) => { const result = [] @@ -138,12 +138,12 @@ export default defineComponent({ const isValidValue = _date => { const parsedDate = _date.map(_=> dayjs(_)) - const result = getRangeAvaliableTime(parsedDate) + const result = getRangeAvailableTime(parsedDate) return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1]) } const handleChange = (_minDate, _maxDate) => { - // todo getRangeAvaliableTime(_date).millisecond(0) + // todo getRangeAvailableTime(_date).millisecond(0) ctx.emit('pick', [_minDate, _maxDate], true) } const btnConfirmDisabled = computed(() => { @@ -169,9 +169,9 @@ export default defineComponent({ const next = (index + step + list.length) % list.length const half = list.length / 2 if (next < half) { - timePickeOptions['start_emitSelectRange'](mapping[next]) + timePickerOptions['start_emitSelectRange'](mapping[next]) } else { - timePickeOptions['end_emitSelectRange'](mapping[next - half]) + timePickerOptions['end_emitSelectRange'](mapping[next - half]) } } @@ -188,7 +188,7 @@ export default defineComponent({ if (code === EVENT_CODE.up || code === EVENT_CODE.down) { const step = (code === EVENT_CODE.up) ? -1 : 1 const role = selectionRange.value[0] < offset.value ? 'start' : 'end' - timePickeOptions[`${role}_scrollDown`](step) + timePickerOptions[`${role}_scrollDown`](step) event.preventDefault() return } @@ -228,39 +228,39 @@ export default defineComponent({ return union(defaultDisable, nextDisable) } - const getRangeAvaliableTime = (dates: Array) => { - return dates.map((_, index) => getRangeAvaliableTimeEach(dates[0], dates[1], index === 0 ? 'start' : 'end')) + const getRangeAvailableTime = (dates: Array) => { + return dates.map((_, index) => getRangeAvailableTimeEach(dates[0], dates[1], index === 0 ? 'start' : 'end')) } const { - getAvaliableHours, - getAvaliableMinutes, - getAvaliableSeconds, - } = getAvaliableArrs(disabledHours_, disabledMinutes_, disabledSeconds_) + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds, + } = getAvailableArrs(disabledHours_, disabledMinutes_, disabledSeconds_) - const getRangeAvaliableTimeEach = (startDate: Dayjs, endDate: Dayjs, role) => { - const avaliableMap = { - hour: getAvaliableHours, - minute: getAvaliableMinutes, - second: getAvaliableSeconds, + const getRangeAvailableTimeEach = (startDate: Dayjs, endDate: Dayjs, role) => { + const availableMap = { + hour: getAvailableHours, + minute: getAvailableMinutes, + second: getAvailableSeconds, } const isStart = role === 'start' let result = isStart ? startDate : endDate const compareDate = isStart ? endDate : startDate; ['hour', 'minute', 'second'].forEach(_ => { - if (avaliableMap[_]) { - let avaliableArr - const method = avaliableMap[_] + if (availableMap[_]) { + let availableArr + const method = availableMap[_] if (_ === 'minute') { - avaliableArr = method(result.hour(), role, compareDate) + availableArr = method(result.hour(), role, compareDate) } else if (_ === 'second') { - avaliableArr = method(result.hour(), result.minute(), role, compareDate) + availableArr = method(result.hour(), result.minute(), role, compareDate) } else { - avaliableArr = method(role, compareDate) + availableArr = method(role, compareDate) } - if (avaliableArr && avaliableArr.length && !avaliableArr.includes(result[_]())) { - const pos = isStart ? 0 : avaliableArr.length - 1 - result = result[_](avaliableArr[pos]) + if (availableArr && availableArr.length && !availableArr.includes(result[_]())) { + const pos = isStart ? 0 : availableArr.length - 1 + result = result[_](availableArr[pos]) } } }) @@ -298,11 +298,11 @@ export default defineComponent({ ctx.emit('set-picker-option',['isValidValue', isValidValue]) ctx.emit('set-picker-option',['handleKeydown', handleKeydown]) ctx.emit('set-picker-option',['getDefaultValue', getDefaultValue]) - ctx.emit('set-picker-option',['getRangeAvaliableTime', getRangeAvaliableTime]) + ctx.emit('set-picker-option',['getRangeAvailableTime', getRangeAvailableTime]) - const timePickeOptions = {} as any + const timePickerOptions = {} as any const onSetOption = e => { - timePickeOptions[e[0]] = e[1] + timePickerOptions[e[0]] = e[1] } const pickerBase = inject('EP_PICKER_BASE') as any diff --git a/packages/time-picker/src/time-picker-com/useTimePicker.ts b/packages/time-picker/src/time-picker-com/useTimePicker.ts index 4cd495b605..a142a80dab 100644 --- a/packages/time-picker/src/time-picker-com/useTimePicker.ts +++ b/packages/time-picker/src/time-picker-com/useTimePicker.ts @@ -10,7 +10,7 @@ const makeList = (total, method, methodFunc) => { return arr } -const makeAvaliableArr = list => { +const makeAvailableArr = list => { return list.map((_, index) => !_ ? index : _).filter(_ => _ !== true) } @@ -35,7 +35,7 @@ export const getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => } -export const getAvaliableArrs = (disabledHours, disabledMinutes, disabledSeconds) => { +export const getAvailableArrs = (disabledHours, disabledMinutes, disabledSeconds) => { const { getHoursList, getMinutesList, @@ -46,22 +46,22 @@ export const getAvaliableArrs = (disabledHours, disabledMinutes, disabledSeconds disabledSeconds, ) - const getAvaliableHours = (role, compare?) => { - return makeAvaliableArr(getHoursList(role, compare)) + const getAvailableHours = (role, compare?) => { + return makeAvailableArr(getHoursList(role, compare)) } - const getAvaliableMinutes = (hour, role, compare?) => { - return makeAvaliableArr(getMinutesList(hour, role, compare)) + const getAvailableMinutes = (hour, role, compare?) => { + return makeAvailableArr(getMinutesList(hour, role, compare)) } - const getAvaliableSeconds = (hour, minute, role, compare?) => { - return makeAvaliableArr(getSecondsList(hour, minute, role, compare)) + const getAvailableSeconds = (hour, minute, role, compare?) => { + return makeAvailableArr(getSecondsList(hour, minute, role, compare)) } return { - getAvaliableHours, - getAvaliableMinutes, - getAvaliableSeconds, + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds, } } diff --git a/packages/time-picker/src/time-picker.ts b/packages/time-picker/src/time-picker.ts index e56d0e7abf..c7bef7cde6 100644 --- a/packages/time-picker/src/time-picker.ts +++ b/packages/time-picker/src/time-picker.ts @@ -28,6 +28,9 @@ export default defineComponent({ focus: () => { commonPicker.value?.handleFocus() }, + blur: () => { + commonPicker.value?.handleBlur() + }, } provide('ElPopperOptions', props.popperOptions) diff --git a/website/docs/en-US/time-picker.md b/website/docs/en-US/time-picker.md index 0cfbdc4260..18c0b2e45c 100644 --- a/website/docs/en-US/time-picker.md +++ b/website/docs/en-US/time-picker.md @@ -106,7 +106,7 @@ Can pick an arbitrary time range. ### Attributes | Attribute | Description | Type | Accepted Values | Default | |---------- |-------------- |---------- |-------------------------------- |-------- | -| model-value / v-model | binding value | Date | - | - | +| 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 | @@ -119,15 +119,15 @@ Can pick an arbitrary time range. | 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 | - | '-' | +| 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) | — | - | +| 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 | @@ -139,4 +139,5 @@ Can pick an arbitrary time range. ### Methods | Method | Description | Parameters | | ---- | ---- | ---- | -| focus | focus the Input component | - | +| focus | focus the Input component | — | +| blur | blur the Input component | — | diff --git a/website/docs/es/time-picker.md b/website/docs/es/time-picker.md index a5f3225a24..4894a79686 100644 --- a/website/docs/es/time-picker.md +++ b/website/docs/es/time-picker.md @@ -106,7 +106,7 @@ Es posible escoger un rango de tiempo arbitrario. ### Atributos | Atributo | Descripción | Tipo | Valores aceptados | Por defecto | | ----------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | -------------------- | -| model-value / v-model | valor enlazado | Date | - | - | +| model-value / v-model | valor enlazado | Date | — | — | | readonly | si el Time Picker está en modo de sólo lectura | boolean | — | false | | disabled | si el Time Picker se encuentra deshabilitado | boolean | — | false | | editable | si el input puede ser editado | boolean | — | true | @@ -119,15 +119,15 @@ Es posible escoger un rango de tiempo arbitrario. | arrow-control | si es posible escoger el tiempo usando los botones de flecha | boolean | — | false | | align | alineación | left / center / right | left | | | popper-class | nombre de clase personalizada para el dropdown del Time Picker | string | — | — | -| range-separator | separador de rango | string | - | '-' | +| range-separator | separador de rango | 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 | opcional, fecha por defecto del calendario | Fecha para Selector de Tiempo, string para el Seleccionador de Tiempo | cualquier cosa aceptada por `new Date()` para el Selector de Tiempo, Selector de Tiempo, valor seleccionable para el Seleccionador de Tiempo | — | | name | como `name` en input nativo | string | — | — | | prefix-icon | Clase personalizada para el icono de prefijado | string | — | el-icon-time | | clear-icon | Clase personalizada para el icono `clear` | 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) | — | - | +| disabled-hours | To specify the array of hours that cannot be selected | function | — | — | +| disabled-minutes | To specify the array of minutes that cannot be selected | function(selectedHour) | — | — | +| disabled-seconds | To specify the array of seconds that cannot be selected | function(selectedHour, selectedMinute) | — | — | ### Eventos @@ -141,3 +141,4 @@ Es posible escoger un rango de tiempo arbitrario. | Metodo | Descripción | Parameteros | | ------ | -------------------------- | ----------- | | focus | coloca el foco en el input | — | +| blur | blur the Input component | — | diff --git a/website/docs/fr-FR/time-picker.md b/website/docs/fr-FR/time-picker.md index c71edf229f..efaafd86de 100644 --- a/website/docs/fr-FR/time-picker.md +++ b/website/docs/fr-FR/time-picker.md @@ -107,7 +107,7 @@ Vous pouvez également définir un intervalle libre. | Attribut | Description | Type | Valeurs acceptées | Défaut | |---------- |-------------- |---------- |-------------------------------- |-------- | -| model-value / v-model | La valeur liée. | Date | - | - | +| model-value / v-model | La valeur liée. | Date | — | — | | readonly | Si TimePicker est en lecture seule. | boolean | — | false | | disabled | Si TimePicker est désactivé. | boolean | — | false | | editable | Si le champ d'input est éditable. | boolean | — | true | @@ -120,15 +120,15 @@ Vous pouvez également définir un intervalle libre. | arrow-control | Si les flèches directionnelles peuvent être utilisées | boolean | — | false | | align | Alignement. | left / center / right | left | | popper-class | Classe du menu du TimePicker. | string | — | — | -| range-separator | Séparateur d'intervalle. | string | - | '-' | +| range-separator | Séparateur d'intervalle. | 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 | Optionnel, date d'aujourd'hui par défaut. | `Date` pour le TimePicker, `string` pour le TimeSelect | Toute valeur acceptée par `new Date()` pour le TimePicker, une valeur sélectionnable pour TimeSelect. | — | | name | Attribut `name` natif de l'input. | string | — | — | | prefix-icon | Classe de l'icône de préfixe. | string | — | el-icon-time | | clear-icon | Classe de l'icône d'effacement. | 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) | — | - | +| disabled-hours | To specify the array of hours that cannot be selected | function | — | — | +| disabled-minutes | To specify the array of minutes that cannot be selected | function(selectedHour) | — | — | +| disabled-seconds | To specify the array of seconds that cannot be selected | function(selectedHour, selectedMinute) | — | — | ### Évènements @@ -142,4 +142,5 @@ Vous pouvez également définir un intervalle libre. | Méthode | Description | Paramètres | | ---- | ---- | ---- | -| focus | Met le focus sur le composant. | - | +| focus | Met le focus sur le composant. | — | +| blur | blur the Input component | — | diff --git a/website/docs/jp/time-picker.md b/website/docs/jp/time-picker.md index 2a916d0f6d..a65173468f 100644 --- a/website/docs/jp/time-picker.md +++ b/website/docs/jp/time-picker.md @@ -106,7 +106,7 @@ ### 属性 | Attribute | Description | Type | Accepted Values | Default | |---------- |-------------- |---------- |-------------------------------- |-------- | -| model-value / v-model | バインディング値 | date | - | - | +| model-value / v-model | バインディング値 | date | — | — | | readonly | タイムピッカーが読み取り専用かどうか | boolean | — | false | | disabled | タイムピッカーが無効になっているかどうか | boolean | — | false | | editable | 入力が編集可能かどうか | boolean | — | true | @@ -119,15 +119,15 @@ | arrow-control | 矢印ボタンを使って時間を選択するかどうか| boolean | — | false | | align | 整列 | left / center / right | left | | popper-class | タイムピッカーのドロップダウンのカスタムクラス名 | string | — | — | -| range-separator | 範囲セパレータ | string | - | '-' | +| 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 | オプション、カレンダーのデフォルトの日付 | Date for TimePicker, string for TimeSelect | anything accepted by `new Date()` for TimePicker, selectable value for TimeSelect | — | | name | ネイティブ入力の `name` と同じ | string | — | — | | prefix-icon | カスタムプレフィックスアイコンクラス | string | — | el-icon-time | | clear-icon | カスタムクリアアイコンクラス | 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) | — | - | +| disabled-hours | To specify the array of hours that cannot be selected | function | — | — | +| disabled-minutes | To specify the array of minutes that cannot be selected | function(selectedHour) | — | — | +| disabled-seconds | To specify the array of seconds that cannot be selected | function(selectedHour, selectedMinute) | — | — | ### イベント @@ -140,4 +140,5 @@ ### 方法 | Method | Description | Parameters | | ---- | ---- | ---- | -| focus | インプットコンポーネントにフォーカス | - | +| focus | インプットコンポーネントにフォーカス | — | +| blur | blur the Input component | — | diff --git a/website/docs/zh-CN/time-picker.md b/website/docs/zh-CN/time-picker.md index e3ec1bb2e2..ace726b5f5 100644 --- a/website/docs/zh-CN/time-picker.md +++ b/website/docs/zh-CN/time-picker.md @@ -120,15 +120,15 @@ | arrow-control | 是否使用箭头进行时间选择 | boolean | — | false | | align | 对齐方式 | string | left / center / right | left | | popper-class | TimePicker 下拉框的类名 | string | — | — | -| range-separator | 选择范围时的分隔符 | string | - | '-' | +| range-separator | 选择范围时的分隔符 | string | — | '-' | | format | 显示在输入框中的格式 | string | 见[日期格式](#/zh-CN/component/date-picker#ri-qi-ge-shi) | HH:mm:ss | | default-value | 可选,选择器打开时默认显示的时间 | Date(TimePicker) / string(TimeSelect) | 可被`new Date()`解析(TimePicker) / 可选值(TimeSelect) | — | | name | 原生属性 | string | — | — | | prefix-icon | 自定义头部图标的类名 | string | — | el-icon-time | | clear-icon | 自定义清空图标的类名 | string | — | el-icon-circle-close | -| disabledHours | 禁止选择部分小时选项 | function | — | - | -| disabledMinutes | 禁止选择部分分钟选项 | function(selectedHour) | — | - | -| disabledSeconds | 禁止选择部分秒选项 | function(selectedHour, selectedMinute) | — | - | +| disabled-hours | 禁止选择部分小时选项 | function | — | — | +| disabled-minutes | 禁止选择部分分钟选项 | function(selectedHour) | — | — | +| disabled-seconds | 禁止选择部分秒选项 | function(selectedHour, selectedMinute) | — | — | ### Events | 事件名 | 说明 | 参数 | @@ -140,4 +140,5 @@ ### Methods | 方法名 | 说明 | 参数 | | ---- | ---- | ---- | -| focus | 使 input 获取焦点 | - | +| focus | 使 input 获取焦点 | — | +| blur | 使 input 失去焦点 | — |