【经验分享】如何实现小程序日历范围选择功能

简介: 【经验分享】如何实现小程序日历范围选择功能

前言

小程序里有需要使用到日历选择功能,由于官方没有对应的日历组件,所以我们最开始使用Picker实现了日期范围选择、限制的功能,但是由于UI达不到设计同学的要求,所以没办法,只能手动实现了。

效果图

接入方式

参考下市面上移动端的日历 UI样式及交互习惯,然后我们实现了这样的日历组件,功能单一,没有复杂交互,符合操作习惯。

首先页面JSON引入组件:

{
  "defaultTitle": "日历范围选择器",
  "usingComponents": {
    "calendar": "/components/calendar/index"
  }
}

然后页面axml使用组件:

<button size="default" type="primary" onTap="handleClick">打开日历选择</button>
<calendar visible="{{calendarVisible}}" value="{{calendarValue}}" isTabbar onClose="handleClick" onConfirm="handleCalendarConfirm" />
  <view style="width: 100%; margin-top: 100px; padding: 0 12px" a:if="{{calendarValue}}">
    您选择的日期是:{{calendarValue}}
  </view>

页面JS操作:

Page({
  data: {
    calendarValue: '', // 日历默认日期
    calendarVisible: false // 日历弹窗组件显示
  },
  handleClick() {
    this.setData({
      calendarVisible: !this.data.calendarVisible
    })
  },
  handleCalendarConfirm(e) {
    this.setData({
      calendarValue: e.value
    })
  }
});

开放属性内容

开放属性

属性类型

默认值

描述

type

String

range

single表示单选,range表示选择日期区间, 暂时只支持范围选择,单选的内部逻辑已保留,可基于源码进行二次开发

monthTranslate

Object

{}

日历上特殊日期加红蓝小圆点

visible

Boolean

false

日历弹窗显隐藏

isTabbar

Boolean

false

tabbar页面不需要底部安全区域的高度

bgColor

String

#FFFFFF

日历弹窗区域背景颜色,默认白色

limitTime

Number

90

限制用户只能选择从当天开始往后90天

value

String

‘2023-01-01,2023-01-08’

默认选中值|回填日历选中的值

onChangeTime

Function

{showYear: 2024, showMonth: 1}

获取显示时的年月

onGetCalendarTime

Function

{startTime: '2024-01-02', endTime: '2024-01-11'}

点击选择日期时,获取到的日期


组件只是给大家提供个思路,未做更多功能,目前符合我们的业务需求,不适合你们的业务的话就需要你们进行二次开发了。

日历组件demo | git地址:

https://github.com/minchangyong/ali-calendar

目录
相关文章
|
24天前
|
小程序
微信小程序如何实现进入小程序自动连WiFi功能
微信小程序如何实现进入小程序自动连WiFi功能
|
2月前
|
小程序 API
点餐小程序实战教程09-订单功能开发
点餐小程序实战教程09-订单功能开发
|
2月前
|
小程序 开发工具 数据库
零基础开发小程序第三课-列表功能开发
零基础开发小程序第三课-列表功能开发
|
3月前
|
小程序 JavaScript
微信小程序图片预览功能?
微信小程序图片预览功能?
|
3月前
|
小程序 JavaScript 前端开发
【经验分享】如何获取任意小程序appId及页面路径
【经验分享】如何获取任意小程序appId及页面路径
96 1
|
2月前
|
存储 小程序 开发工具
零基础开发小程序第四课-查看功能开发
零基础开发小程序第四课-查看功能开发
|
2月前
|
小程序 算法 数据可视化
点餐小程序实战教程07-点餐功能开发
点餐小程序实战教程07-点餐功能开发
|
2月前
|
小程序
TDesign电商小程序模板解析02-首页功能
TDesign电商小程序模板解析02-首页功能
|
3月前
|
小程序 JavaScript 前端开发
【经验分享】如何实现在支付宝小程序内的图片裁剪功能
【经验分享】如何实现在支付宝小程序内的图片裁剪功能
47 1
|
3月前
|
小程序
【经验分享】如何生成支付宝小程序scheme链接
【经验分享】如何生成支付宝小程序scheme链接
210 1