el-time-picker 是 Element Plus 框架中的时间选择器组件,用于让用户选择具体的时间。它可以用于表单、日程安排等多种场景。
el-time-picker 属性详解
-
model-value / v-model:
- 类型:
String | Date - 用途: 绑定的值,表示当前选中的时间。
- 默认值:
—
- 类型:
-
is-range:
- 类型:
Boolean - 用途: 是否为时间范围选择器。
- 默认值:
false
- 类型:
-
placeholder:
- 类型:
String - 用途: 输入框占位符。
- 默认值:
请选择时间
- 类型:
-
start-placeholder:
- 类型:
String - 用途: 开始时间的占位符(仅在
is-range为true时有效)。 - 默认值:
请选择开始时间
- 类型:
-
end-placeholder:
- 类型:
String - 用途: 结束时间的占位符(仅在
is-range为true时有效)。 - 默认值:
请选择结束时间
- 类型:
-
readonly:
- 类型:
Boolean - 用途: 是否只读。
- 默认值:
false
- 类型:
-
disabled:
- 类型:
Boolean - 用途: 是否禁用。
- 默认值:
false
- 类型:
-
editable:
- 类型:
Boolean - 用途: 是否可以编辑输入框。
- 默认值:
true
- 类型:
-
clearable:
- 类型:
Boolean - 用途: 是否显示清除按钮。
- 默认值:
true
- 类型:
-
size:
- 类型:
String - 用途: 输入框尺寸,可选值为
large、default、small。 - 默认值:
default
- 类型:
-
arrow-control:
- 类型:
Boolean - 用途: 是否使用箭头控制时间选择。
- 默认值:
false
- 类型:
-
value-format:
- 类型:
String - 用途: 绑定值的格式。
- 默认值:
—
- 类型:
-
format:
- 类型:
String - 用途: 输入框的显示格式。
- 默认值:
HH:mm:ss
- 类型:
-
align:
- 类型:
String - 用途: 输入框对齐方式,可选值为
left、center、right。 - 默认值:
left
- 类型:
-
prefix-icon:
- 类型:
String - 用途: 输入框前缀图标。
- 默认值:
el-icon-time
- 类型:
-
clear-icon:
- 类型:
String - 用途: 清除按钮图标。
- 默认值:
el-icon-circle-close
- 类型:
-
range-separator:
- 类型:
String - 用途: 时间范围分隔符(仅在
is-range为true时有效)。 - 默认值:
-
- 类型:
-
popper-class:
- 类型:
String - 用途: 弹出框的类名。
- 默认值:
—
- 类型:
-
validate-event:
- 类型:
Boolean - 用途: 是否在值改变时触发校验。
- 默认值:
true
- 类型:
el-time-picker 事件详解
-
change:
- 类型:
Function - 用途: 时间值变化时触发。
- 参数:
value(当前选中的时间)
- 类型:
-
focus:
- 类型:
Function - 用途: 输入框获得焦点时触发。
- 参数:
event(事件对象)
- 类型:
-
blur:
- 类型:
Function - 用途: 输入框失去焦点时触发。
- 参数:
event(事件对象)
- 类型:
-
visible-change:
- 类型:
Function - 用途: 弹出框显示或隐藏时触发。
- 参数:
visible(布尔值,表示是否显示)
- 类型:
el-time-picker 插槽详解
-
default:
- 插槽名称:
default - 用途: 自定义输入框的内容。
- 插槽名称:
完整示例代码
<template>
<div>
<h2>Time Picker 示例</h2>
<!-- 基本用法 -->
<el-time-picker v-model="time1" placeholder="选择时间"></el-time-picker>
<!-- 时间范围选择 -->
<el-time-picker v-model="timeRange1" is-range placeholder="选择时间范围" start-placeholder="开始时间" end-placeholder="结束时间"></el-time-picker>
<!-- 禁用 -->
<el-time-picker v-model="time2" placeholder="选择时间" disabled></el-time-picker>
<!-- 不可编辑 -->
<el-time-picker v-model="time3" placeholder="选择时间" editable="false"></el-time-picker>
<!-- 不显示清除按钮 -->
<el-time-picker v-model="time4" placeholder="选择时间" clearable="false"></el-time-picker>
<!-- 自定义格式 -->
<el-time-picker v-model="time5" placeholder="选择时间" format="HH:mm"></el-time-picker>
<!-- 使用箭头控制时间选择 -->
<el-time-picker v-model="time6" placeholder="选择时间" arrow-control></el-time-picker>
<!-- 自定义输入框内容 -->
<el-time-picker v-model="time7" placeholder="选择时间">
<template #default>
<span>{{ time7 ? formatTime(time7) : '请选择时间' }}</span>
</template>
</el-time-picker>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { formatDate } from 'element-plus'
const time1 = ref('')
const time2 = ref('')
const time3 = ref('')
const time4 = ref('')
const time5 = ref('')
const time6 = ref('')
const time7 = ref('')
const timeRange1 = ref('')
const formatTime = (time) => {
return formatDate(time, 'HH:mm:ss')
}
</script>
代码解释
-
基本用法:
- 使用
el-time-picker组件并设置v-model绑定时间值。 -
<el-time-picker v-model="time1" placeholder="选择时间"></el-time-picker>
- 使用
-
时间范围选择:
- 使用
is-range属性启用时间范围选择,并设置start-placeholder和end-placeholder。 -
<el-time-picker v-model="timeRange1" is-range placeholder="选择时间范围" start-placeholder="开始时间" end-placeholder="结束时间"></el-time-picker>
- 使用
-
禁用:
- 使用
disabled属性禁用时间选择器。 -
<el-time-picker v-model="time2" placeholder="选择时间" disabled></el-time-picker>
- 使用
-
不可编辑:
- 使用
editable属性设置输入框不可编辑。 -
<el-time-picker v-model="time3" placeholder="选择时间" editable="false"></el-time-picker>
- 使用
-
不显示清除按钮:
- 使用
clearable属性设置不显示清除按钮。 -
<el-time-picker v-model="time4" placeholder="选择时间" clearable="false"></el-time-picker>
- 使用
-
自定义格式:
- 使用
format属性设置输入框的显示格式。 -
<el-time-picker v-model="time5" placeholder="选择时间" format="HH:mm"></el-time-picker>
- 使用
-
使用箭头控制时间选择:
- 使用
arrow-control属性启用箭头控制时间选择。 -
<el-time-picker v-model="time6" placeholder="选择时间" arrow-control></el-time-picker>
- 使用
-
自定义输入框内容:
- 使用默认插槽自定义输入框的内容。
-
<el-time-picker v-model="time7" placeholder="选择时间"> <template #default> <span>{{ time7 ? formatTime(time7) : '请选择时间' }}</span> </template> </el-time-picker>