el-date-picker 是 Element Plus 框架中的日期选择器组件,用于让用户选择日期或日期范围。它可以用于表单、日程安排等多种场景。
el-date-picker 属性详解
-
type:
- 类型:
String - 用途: 日期选择器的类型,可选值为
date、datetime、year、month、dates、daterange、monthrange、datetimerange。 - 默认值:
date
- 类型:
-
placeholder:
- 类型:
String - 用途: 输入框占位符。
- 默认值:
请选择日期
- 类型:
-
start-placeholder:
- 类型:
String - 用途: 开始日期的占位符(仅在
type为daterange或datetimerange时有效)。 - 默认值:
请选择开始日期
- 类型:
-
end-placeholder:
- 类型:
String - 用途: 结束日期的占位符(仅在
type为daterange或datetimerange时有效)。 - 默认值:
请选择结束日期
- 类型:
-
format:
- 类型:
String - 用途: 输入框的显示格式。
- 默认值:
—
- 类型:
-
value-format:
- 类型:
String - 用途: 绑定值的格式。
- 默认值:
—
- 类型:
-
readonly:
- 类型:
Boolean - 用途: 是否只读。
- 默认值:
false
- 类型:
-
disabled:
- 类型:
Boolean - 用途: 是否禁用。
- 默认值:
false
- 类型:
-
editable:
- 类型:
Boolean - 用途: 是否可以编辑输入框。
- 默认值:
true
- 类型:
-
clearable:
- 类型:
Boolean - 用途: 是否显示清除按钮。
- 默认值:
true
- 类型:
-
size:
- 类型:
String - 用途: 输入框尺寸,可选值为
large、default、small。 - 默认值:
default
- 类型:
-
picker-options:
- 类型:
Object - 用途: 配置选项,用于设置快捷选项、范围限制等。
- 默认值:
—
- 类型:
-
default-value:
- 类型:
Date | String - 用途: 默认值。
- 默认值:
—
- 类型:
-
range-separator:
- 类型:
String - 用途: 日期范围分隔符(仅在
type为daterange或datetimerange时有效)。 - 默认值:
—
- 类型:
-
unlink-panels:
- 类型:
Boolean - 用途: 是否解耦两个日期面板(仅在
type为daterange或datetimerange时有效)。 - 默认值:
false
- 类型:
-
prefix-icon:
- 类型:
String - 用途: 输入框前缀图标。
- 默认值:
el-icon-date
- 类型:
-
clear-icon:
- 类型:
String - 用途: 清除按钮图标。
- 默认值:
el-icon-circle-close
- 类型:
-
validate-event:
- 类型:
Boolean - 用途: 是否在值改变时触发校验。
- 默认值:
true
- 类型:
el-date-picker 事件详解
-
change:
- 类型:
Function - 用途: 日期值变化时触发。
- 参数:
value(当前选中的日期)
- 类型:
-
focus:
- 类型:
Function - 用途: 输入框获得焦点时触发。
- 参数:
event(事件对象)
- 类型:
-
blur:
- 类型:
Function - 用途: 输入框失去焦点时触发。
- 参数:
event(事件对象)
- 类型:
-
visible-change:
- 类型:
Function - 用途: 弹出框显示或隐藏时触发。
- 参数:
visible(布尔值,表示是否显示)
- 类型:
el-date-picker 插槽详解
-
default:
- 插槽名称:
default - 用途: 自定义输入框的内容。
- 插槽名称:
完整示例代码
<template>
<div>
<h2>Date Picker 示例</h2>
<!-- 基本用法 -->
<el-date-picker v-model="date1" type="date" placeholder="选择日期"></el-date-picker>
<!-- 日期范围选择 -->
<el-date-picker v-model="dateRange1" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<!-- 时间选择 -->
<el-date-picker v-model="dateTime1" type="datetime" placeholder="选择日期时间"></el-date-picker>
<!-- 年份选择 -->
<el-date-picker v-model="year1" type="year" placeholder="选择年份"></el-date-picker>
<!-- 月份选择 -->
<el-date-picker v-model="month1" type="month" placeholder="选择月份"></el-date-picker>
<!-- 快捷选项 -->
<el-date-picker v-model="date2" type="date" placeholder="选择日期" :picker-options="pickerOptions"></el-date-picker>
<!-- 禁用日期选择 -->
<el-date-picker v-model="date3" type="date" placeholder="选择日期" :disabled-date="disabledDate"></el-date-picker>
<!-- 自定义输入框内容 -->
<el-date-picker v-model="date4" type="date" placeholder="选择日期">
<template #default>
<span>{{ date4 ? formatDate(date4) : '请选择日期' }}</span>
</template>
</el-date-picker>
</div>
</template>
<script setup>
import { ref } from 'vue'
import { formatDate } from 'element-plus'
const date1 = ref('')
const dateRange1 = ref('')
const dateTime1 = ref('')
const year1 = ref('')
const month1 = ref('')
const date2 = ref('')
const date3 = ref('')
const date4 = ref('')
const pickerOptions = ref({
shortcuts: [
{
text: '今天',
onClick(picker) {
picker.$emit('pick', new Date())
}
},
{
text: '昨天',
onClick(picker) {
const date = new Date()
date.setTime(date.getTime() - 3600 * 1000 * 24)
picker.$emit('pick', date)
}
},
{
text: '一周前',
onClick(picker) {
const date = new Date()
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', date)
}
}
]
})
const disabledDate = (time) => {
return time.getTime() > Date.now()
}
const formatDate = (date) => {
const y = date.getFullYear()
const m = date.getMonth() + 1
const d = date.getDate()
return `${y}-${m}-${d}`
}
</script>
代码解释
-
基本用法:
- 使用
el-date-picker组件并设置v-model绑定日期值。 -
<el-date-picker v-model="date1" type="date" placeholder="选择日期"></el-date-picker>
- 使用
-
日期范围选择:
- 使用
type属性设置为daterange,并设置start-placeholder和end-placeholder。 -
<el-date-picker v-model="dateRange1" type="daterange" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
- 使用
-
时间选择:
- 使用
type属性设置为datetime。 -
<el-date-picker v-model="dateTime1" type="datetime" placeholder="选择日期时间"></el-date-picker>
- 使用
-
年份选择:
- 使用
type属性设置为year。 -
<el-date-picker v-model="year1" type="year" placeholder="选择年份"></el-date-picker>
- 使用
-
月份选择:
- 使用
type属性设置为month。 -
<el-date-picker v-model="month1" type="month" placeholder="选择月份"></el-date-picker>
- 使用
-
快捷选项:
- 使用
picker-options属性设置快捷选项。 -
<el-date-picker v-model="date2" type="date" placeholder="选择日期" :picker-options="pickerOptions"></el-date-picker>
- 使用
-
禁用日期选择:
- 使用
disabled-date属性禁用某些日期。 -
<el-date-picker v-model="date3" type="date" placeholder="选择日期" :disabled-date="disabledDate"></el-date-picker>
- 使用
-
自定义输入框内容:
- 使用默认插槽自定义输入框的内容。
-
<el-date-picker v-model="date4" type="date" placeholder="选择日期"> <template #default> <span>{{ date4 ? formatDate(date4) : '请选择日期' }}</span> </template> </el-date-picker>