更新记录
1.0.0(2026-03-16)
下载此版本
日期范围选择器
平台兼容性
uni-app(3.7.3)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| × |
√ |
- |
- |
√ |
- |
- |
- |
- |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
at-date-range
日期范围选择器使用文档
简介
一个支持底部弹出动画、时间范围限制的日期范围选择器组件,适用于移动端H5/小程序。
效果预览
- 底部弹出动画
- 支持最小/最大日期限制
- 直观的日期范围选择交互
- 今日高亮显示
安装导入
import AtDateRange from '@/components/at-date-range.vue'
基础用法
1. 最简用法
<template>
<view>
<button @click="showPicker = true">选择日期</button>
<at-date-range v-model="showPicker" @confirm="handleConfirm" />
</view>
</template>
<script setup>
import { ref } from 'vue'
const showPicker = ref(false)
const handleConfirm = (range) => {
console.log('选择范围:', range) // { start: '2024-01-01', end: '2024-01-07' }
}
</script>
2. 双向绑定用法
<template>
<view>
<view>已选择:{{ startDate }} 至 {{ endDate }}</view>
<button @click="showPicker = true">修改日期</button>
<at-date-range
v-model="showPicker"
v-model:startDate="startDate"
v-model:endDate="endDate"
@confirm="handleConfirm"
/>
</view>
</template>
<script setup>
import { ref } from 'vue'
const showPicker = ref(false)
const startDate = ref('2024-01-01')
const endDate = ref('2024-01-07')
</script>
3. 带时间范围限制
<template>
<view>
<button @click="showPicker = true">选择日期</button>
<at-date-range
v-model="showPicker"
:minDate="minDate"
:maxDate="maxDate"
@confirm="handleConfirm"
/>
</view>
</template>
<script setup>
import { ref } from 'vue'
const showPicker = ref(false)
// 限制可选范围:今天 ~ 30天后
const minDate = new Date()
const maxDate = new Date()
maxDate.setDate(maxDate.getDate() + 30)
// 限制可选范围:固定日期
// const minDate = '2024-01-01'
// const maxDate = '2024-12-31'
</script>
参数说明
| 参数 |
说明 |
类型 |
默认值 |
可选值 |
| v-model |
控制选择器显示隐藏 |
Boolean |
false |
true/false |
| startDate |
开始日期 |
String/Number/Date |
null |
- |
| endDate |
结束日期 |
String/Number/Date |
null |
- |
| title |
标题 |
String |
'选择日期范围' |
- |
| minDate |
最小可选日期 |
String/Number/Date |
null |
- |
| maxDate |
最大可选日期 |
String/Number/Date |
null |
- |
| format |
日期格式 |
String |
'YYYY-MM-DD' |
- |
| bottomOffset |
底部偏移量 |
String |
'0' |
如 '100rpx' |
| animationDuration |
动画持续时间(ms) |
Number |
300 |
- |
事件回调
| 事件名 |
说明 |
返回值 |
| @confirm |
点击确定时触发 |
{ start: '2024-01-01', end: '2024-01-07' } |
| @cancel |
点击取消或遮罩时触发 |
- |
| @update:modelValue |
显示状态变化时触发 |
true/false |
| @update:startDate |
开始日期变化时触发 |
'2024-01-01' |
| @update:endDate |
结束日期变化时触发 |
'2024-01-07' |