Date-time-picker 日期时间选择器
DateTimePicker 由 DatePicker 和 TimePicker 派生,Picker Options 或者其他选项可以参照 DatePicker 和 TimePicker。
代码演示
默认
带快捷选项
日期与时间点
快捷选项通过 picker-options 设置。
查看代码 < />
<template>
<section class="date-time-picker-demo">
<div class="container">
<div class="block">
<span class="demonstration">默认</span>
<w-date-picker type="datetime"
v-model="value1"
placeholder="请选择日期">
</w-date-picker>
</div>
<div class="block">
<span class="demonstration">带快捷选项</span>
<w-date-picker type="datetime"
v-model="value2"
align="right"
:picker-options="pickerOptions"
placeholder="请选择日期">
</w-date-picker>
</div>
</div>
</section>
</template>
<script>
export default {
data () {
return {
pickerOptions: {
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)
}
}]
},
value1: '',
value2: ''
}
}
}
</script>
<style scoped lang="scss">
.date-time-picker-demo {
.container {
padding: 0;
display: flex;
.block {
padding: 30px 0;
text-align: center;
border-right: 1px solid #eff2f6;
flex: 1;
&:last-child {
border-right: none;
}
.demonstration {
display: block;
color: #8492a6;
font-size: 14px;
margin-bottom: 20px;
}
}
}
}
</style>
默认
至
带快捷选项
至
日期与时间范围
使用datetimerange进行范围选择时,在日期选择面板中选定起始与结束的日期,默认会使用该日期的00:00:00作为起始与结束的时刻。
查看代码 < />
<template>
<section class="date-time-picker-demo">
<div class="container">
<div class="block">
<span class="demonstration">默认</span>
<w-date-picker type="datetimerange"
v-model="value3"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</w-date-picker>
</div>
<div class="block">
<span class="demonstration">带快捷选项</span>
<w-date-picker type="datetimerange"
v-model="value4"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right">
</w-date-picker>
</div>
</div>
</section>
</template>
<script>
export default {
data () {
return {
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
value3: '',
value4: ''
}
}
}
</script>
<style scoped lang="scss">
.date-time-picker-demo {
.container {
padding: 0;
.block {
padding: 30px 0;
text-align: center;
border-right: 1px solid #eff2f6;
&:last-child {
border-right: none;
}
.demonstration {
display: block;
color: #8492a6;
font-size: 14px;
margin-bottom: 20px;
}
}
}
}
</style>
默认时间为 12:00:00
起始日期时刻为 12:00:00,结束日期时刻为 08:00:00
至
默认时间
通过default-time设置开始和结束日期;接受String或者数组。
查看代码 < />
<template>
<section class="date-time-picker-demo">
<div class="container">
<div class="block">
<span class="demonstration">默认时间为 12:00:00</span>
<w-date-picker type="datetime"
default-time="12:00:00"
v-model="value5"
placeholder="请选择日期">
</w-date-picker>
</div>
<div class="block">
<span class="demonstration">起始日期时刻为 12:00:00,结束日期时刻为 08:00:00</span>
<w-date-picker type="datetimerange"
v-model="value6"
:default-time="['12:00:00', '08:00:00']"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</w-date-picker>
</div>
</div>
</section>
</template>
<script>
export default {
data () {
return {
value5: '',
value6: ''
}
}
}
</script>
<style scoped lang="scss">
.date-time-picker-demo {
.container {
padding: 0;
.block {
padding: 30px 0;
text-align: center;
border-right: 1px solid #eff2f6;
&:last-child {
border-right: none;
}
.demonstration {
display: block;
color: #8492a6;
font-size: 14px;
margin-bottom: 20px;
}
}
}
}
</style>
API
Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
---|---|---|---|---|---|
align | 对齐方式 | String | left, center, right | left | |
clearable | 是否显示清除按钮 | Boolean | — | true | |
clear-icon | 自定义清空图标的类名 | String | — | w-icon-close | |
disabled | 禁用 | Boolean | — | false | |
default-value | 可选,选择器打开时默认显示的时间 | Date | 可被new Date() 解析 | — | |
default-time | 选中日期后的默认具体时刻 | 非范围选择时:string / 范围选择时:string[] | 非范围选择时:形如12:00:00 的字符串;范围选择时:数组,长度为 2,每项值为字符串,形如12:00:00 ,第一项指定开始日期的时刻,第二项指定结束日期的时刻。不指定会使用时刻 00:00:00 | — | |
editable | 文本框可输入 | Boolean | — | true | |
end-placeholder | 范围选择时结束日期的占位内容 | String | — | — | |
format | 显示在输入框中的格式 | String | 见DatePicker组件日期格式 | yyyy-MM-dd HH:mm:ss | |
name | 原生属性 | String | — | — | |
placeholder | 非范围选择时的占位内容 | String | — | — | |
popper-class | DateTimePicker 下拉框的类名 | String | — | — | |
picker-options | 当前时间日期选择器特有的选项参考下表 | Object | — | {} | |
range-separator | 选择范围时的分隔符 | String | - | '-' | |
readonly | 完全只读 | Boolean | — | false | |
size | 输入框尺寸 | String | large, medium, small, mini | medium | |
start-placeholder | 范围选择时开始日期的占位内容 | String | — | — | |
suffix-icon | 自定义尾部图标的类名 | String | — | w-icon-date | |
time-arrow-control | 是否使用箭头进行时间选择 | Boolean | — | false | |
type | 显示类型 | String | year/month/date/week/ datetime/datetimerange/daterange | date | |
unlink-panels | 在范围选择器里取消两个日期面板之间的联动 | Boolean | — | false | |
value / v-model | 绑定值 | Date(DateTimePicker) / Array(DateTimeRangePicker) | — | — | |
value-format | 可选,绑定值的格式。不指定则绑定值为 Date 对象 | String | 见DatePicker组件日期格式 | — |
Picker Options
参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
---|---|---|---|---|---|
firstDayOfWeek | 周起始日 | Number | 1 到 7 | 7 | |
disabledDate | 设置禁用状态,参数为当前日期,要求返回 Boolean | Function | — | — | |
shortcuts | 设置快捷选项,需要传入 { text, onClick } 对象用法参考 demo 或下表 | Object[] | — | — |
Shortcuts
参数 | 说明 | 类型 | 可选值 | 默认值 | Version |
---|---|---|---|---|---|
onClick | 选中后的回调函数,参数是 vm,可通过触发 'pick' 事件设置选择器的值。例如 vm.$emit('pick', new Date()) | Function | — | — | |
text | 标题文本 | String | — | — |
Events
Event Name | Description | Parameters | Version |
---|---|---|---|
blur | 当 input 失去焦点时触发 | 组件实例 | |
change | 用户确认选定的值时触发 | 组件绑定值。格式与绑定值一致,可受 value-format 控制 | |
focus | 当 input 获得焦点时触发 | 组件实例 |
Methods
方法名 | 说明 | 参数 | Version |
---|---|---|---|
focus | 使 input 获取焦点 | — |
Slots
Name | 说明 | Version |
---|---|---|
range-separator | 自定义分隔符 |
贡献者
类型 | 参与者 |
---|---|
设计者 | UED视觉组 |
维护者 | UED前端组 |