DatetimePicker 日期时间选择器

此组件可以选择日期和时间的选择器。
平台差异说明
| APP | H5 | 微信小程序 | 支付宝小程序 | QQ小程序 | ··· |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | 适配中 |
代码示例
部分功能示例,具体可参考示例程序以及文档API。
基础用法
- 通过
ref获取组件实例,并调用实例方法open弹出日期时间选择器。 - 通过
mode属性设置选择日期格式,默认值为datetime。:可选值:date:日期选择器time:时间选择器year: 年份选择器year-month:年月选择器datetime:日期时间选择器
html
<template>
<fu-datetime-picker ref="datetimePickerRef" v-model="value"></fu-datetime-picker>
<fu-button @click="handleOpen">打开选择器</fu-button>
</template>
<script setup>
import { ref } from 'vue';
// data数据
const datetimePickerRef = ref();
let value = ref(Number(new Date()));
// methods方法
const handleOpen = () => {
datetimePickerRef.value.open();
};
</script>年 月 日
此模式通过 mode 属性设置为 date。
html
<template>
<fu-datetime-picker
ref="datetimePickerRef"
v-model="value"
mode="date">
</fu-datetime-picker>
<fu-button @click="handleOpen">打开选择器</fu-button>
</template>
<script setup>
import { ref } from 'vue';
// data数据
const datetimePickerRef = ref();
let value = ref(Number(new Date()));
// methods方法
const handleOpen = () => {
datetimePickerRef.value.open();
};
</script>格式化
通过 formatter 属性编写自定义格式化规则。
html
<template>
<fu-datetime-picker
ref="datetimePickerRef"
v-model="value"
mode="date"
:formatter="handleFormatter">
</fu-datetime-picker>
<fu-button @click="handleOpen">打开选择器</fu-button>
</template>
<script setup>
import { ref } from 'vue';
// data数据
const datetimePickerRef = ref();
let value = ref(Number(new Date()));
// methods方法
const handleOpen = () => {
datetimePickerRef.value.open();
};
const handleFormatter = (type, value) => {
if (type === 'year') {
return `${value}年`
}
if (type === 'month') {
return `${value}月`
}
if (type === 'day') {
return `${value}日`
}
return value
};
</script>设置限制最大最小值
通过 maxDate 和 minDate 属性设置最大最小值(传入时间戳)。
html
<template>
<fu-datetime-picker
ref="datetimePickerRef"
v-model="value"
mode="time"
:minDate="1587524900000"
:maxDate="1893470500000">
</fu-datetime-picker>
<fu-button @click="handleOpen">打开选择器</fu-button>
</template>
<script setup>
import { ref } from 'vue';
// data数据
const datetimePickerRef = ref();
let value = ref(Number(new Date()));
// methods方法
const handleOpen = () => {
datetimePickerRef.value.open();
};
</script>API
DatetimePicker Props
| 属性名 | 说明 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
| v-model | 双向绑定值 | String|Number | - | - |
| title | 顶部标题 | String | - | - |
| titleSize | 顶部标题大小 | String|Number | 15 | - |
| titleColor | 顶部标题颜色 | String | #333333 | - |
| mode | 选择器模式,详见上方基础用法 | String | datetime | - |
| maxDate | 可选的最大时间(时间戳毫秒) | Number | 最大默认值为后10年 | - |
| minDate | 可选的最小时间(时间戳毫秒) | Number | 最小默认值为前10年 | - |
| maxHour | 可选的最大小时,仅mode=time有效 | Number | 23 | - |
| minHour | 可选的最小小时,仅mode=time有效 | Number | 0 | - |
| maxMinute | 可选的最大分钟,仅mode=time有效 | Number | 59 | - |
| minMinute | 可选的最小分钟,仅mode=time有效 | Number | 0 | - |
| filter | 选项过滤函数 | Function | null | - |
| formatter | 选项格式化函数 | Function | null | - |
| loading | 显示加载中状态 | Boolean | false | true |
| itemHeight | 各列中,单个选项的高度 | Number | 44 | - |
| cancelText | 取消按钮文字 | String | 取消 | - |
| cancelSize | 取消按钮大小 | String|Number | 13 | - |
| cancelColor | 取消按钮颜色 | String | #888888 | - |
| confirmText | 确认按钮文字 | String | 确认 | - |
| confirmSize | 确认按钮大小 | String|Number | 13 | - |
| confirmColor | 确认按钮颜色 | String | #333333 | - |
| visibleItemCount | 每列中可见选项的数量 | String|Number | 5 | - |
| closeOnClickOverlay | 是否允许点击遮罩关闭选择器 | Boolean | true | false |
| defaultIndex | 各列的默认索引 | Array | - | - |
| maskClosable | 是否允许点击蒙层关闭选择器 | Boolean | true | false |
DatetimePicker Methods
| 方法名 | 说明 |
|---|---|
| setFormatter | 为兼容微信小程序而暴露的内部方法,见上方说明 |
DatetimePicker Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| confirm | 点击确定按钮时触发,返回当前选择的值 | () => void |
| cancel | 点击取消按钮时触发 | () => void |
| close | 关闭选择器时触发 | () => void |
| change | 当选择值变化时触发 | () => void |