Компонент Time Picker в Element Plus предназначен для выбора времени пользователем. Он может работать как в стандартном режиме выбора часов и минут, так и с поддержкой секунд, интервалов и различных форматов времени. Основная идея заключается в предоставлении удобного интерфейса для ввода времени без необходимости ручного набора текста.
<template>
<el-time-picker
v-model="time"
placeholder="Выберите время">
</el-time-picker>
</template>
<script>
export default {
data() {
return {
time: ''
};
}
};
</script>
Здесь v-model связывает выбранное время с переменной
time. Атрибут placeholder задает подсказку для
пользователя.
Time Picker поддерживает форматирование через
атрибут format. По умолчанию используется
'HH:mm:ss'. Можно использовать более простые форматы,
например 'HH:mm' для отображения только часов и минут.
<el-time-picker
v-model="time"
placeholder="Выберите время"
format="HH:mm">
</el-time-picker>
Для внутреннего значения, передаваемого через v-model,
можно задать отдельный формат через value-format:
<el-time-picker
v-model="time"
placeholder="Выберите время"
format="HH:mm"
value-format="HH:mm:ss">
</el-time-picker>
По умолчанию выбор секунд отключен. Для их включения используется
атрибут is-seconds:
<el-time-picker
v-model="time"
placeholder="Выберите время"
:is-seconds="true">
</el-time-picker>
Это добавляет дополнительную колонку для секунд, что полезно при точной настройке времени, например для логирования событий.
Time Picker поддерживает выбор диапазона времени с
помощью компонента el-time-picker в режиме
range:
<el-time-picker
v-model="timeRange"
is-range
range-separator="до"
start-placeholder="Начало"
end-placeholder="Конец">
</el-time-picker>
<script>
export default {
data() {
return {
timeRange: []
};
}
};
</script>
is-range – включает режим диапазона.range-separator – текст между началом и концом
диапазона.start-placeholder и end-placeholder –
подсказки для начала и конца.Для ограничения выбора по шагу используется атрибут
picker-options:
<el-time-picker
v-model="time"
:picker-options="{
selectableRange: '09:00:00 - 18:00:00',
step: '00:15:00'
}"
placeholder="Выберите время">
</el-time-picker>
selectableRange задает допустимый диапазон
времени.step определяет шаг между вариантами времени, например
15 минут (00:15:00).Это позволяет ограничить выбор только рабочими часами и задать удобные интервалы для пользователя.
Для отображения времени в 12-часовом формате используется атрибут
format с индикатором AM/PM:
<el-time-picker
v-model="time"
placeholder="Выберите время"
format="hh:mm a"
value-format="HH:mm:ss">
</el-time-picker>
hh – часы в 12-часовом формате.a – добавляет AM/PM.Это особенно полезно для приложений, ориентированных на международную аудиторию.
Компонент интегрируется с Element Plus Form для валидации времени:
<el-form :model="form" :rules="rules" ref="formRef">
<el-form-item label="Время начала" prop="startTime">
<el-time-picker v-model="form.startTime" placeholder="Выберите время"></el-time-picker>
</el-form-item>
</el-form>
<script>
export default {
data() {
return {
form: {
startTime: ''
},
rules: {
startTime: [
{ required: true, message: 'Время обязательно', trigger: 'change' }
]
}
};
}
};
</script>
Компонент автоматически сигнализирует о некорректном или пустом значении, что делает формы более безопасными и удобными для пользователей.
Компонент Time Picker поддерживает кастомизацию через слоты и CSS-переменные. Например, можно изменить иконку или добавить кнопки быстрого выбора времени:
<el-time-picker v-model="time" placeholder="Выберите время">
<template #suffix>
<i class="el-icon-time"></i>
</template>
</el-time-picker>
CSS-переменные позволяют изменить цвета, размер шрифта и отступы, что упрощает интеграцию в любую тему оформления.
В Element Plus можно динамически менять диапазоны и шаги выбора времени:
<el-time-picker
v-model="time"
:picker-options="pickerOptions"
placeholder="Выберите время">
</el-time-picker>
<script>
export default {
data() {
return {
time: '',
pickerOptions: {
selectableRange: '08:00:00 - 20:00:00',
step: '00:30:00'
}
};
},
mounted() {
setTimeout(() => {
this.pickerOptions.step = '00:15:00';
}, 5000);
}
};
</script>
Это позволяет подстраивать доступные варианты времени в зависимости от контекста приложения, например рабочего графика или текущей даты.
Компонент поддерживает события change, blur
и focus, что позволяет выполнять дополнительные действия
при изменении значения:
<el-time-picker
v-model="time"
@change="handleChange"
placeholder="Выберите время">
</el-time-picker>
<script>
export default {
data() {
return {
time: ''
};
},
methods: {
handleChange(value) {
console.log('Выбрано время:', value);
}
}
};
</script>
Комбинируя события и динамические параметры, можно полностью контролировать поведение компонента в приложении.
Эти возможности делают Time Picker гибким инструментом для создания интерфейсов выбора времени в приложениях на Vue 3 с использованием Element Plus.