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

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

前言

小程序里有需要使用到日历选择功能,由于官方没有对应的日历组件,所以我们最开始使用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

目录
相关文章
|
11天前
|
移动开发 小程序 前端开发
几千怎么部署搭建校园服务平台,校园圈子论坛系统小程序搭建,校园系统源码,多种功能一体的综合性校园平台
校园圈子论坛是一款集交友、二手市场、聊天等多功能于一体的校园社交平台,支持App、小程序和H5三端交付。学生可处理闲置物品、结识新朋友,通过算法匹配兴趣相投的用户。平台提供分享邀请机制,支持自动绑定推荐关系,并设有奖励机制。开发过程中需注重数据安全与系统稳定性,确保功能兼容及性能优化。
53 5
|
11天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
79 3
|
14天前
|
小程序 安全 搜索推荐
陪玩小程序的搭建解析与功能需求
陪玩小程序是为玩家提供专业陪玩服务的应用,嵌入社交或游戏平台,具备智能匹配、实时聊天、预约服务等功能,支持便捷高效的游戏体验。源码交付时需提供详细文档、技术支持及定制开发服务,确保客户能顺利维护和升级。选择陪玩小程序时应关注功能需求、用户体验、安全性和成本效益,以确保最佳使用效果。
37 0
|
11天前
|
小程序 安全 网络安全
清晰易懂!陪玩系统源码搭建的核心功能,陪玩小程序、陪玩app的搭建步骤!
陪玩系统源码包含多种约单方式、实时语音互动、直播间与聊天室、大神申请与抢单、动态互动与社交及在线支付与评价等核心功能。搭建步骤包括环境准备、源码上传与解压、数据库配置、域名与SSL证书绑定、伪静态配置及后台管理。注意事项涵盖源码安全性、二次开发、合规性和技术支持。确保平台安全、合规并提供良好用户体验是关键。
|
2月前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
3月前
|
存储 自然语言处理 小程序
微信小程序多语言切换神器:简繁体切换功能完全指南
随着全球化的发展,支持多种语言的应用程序愈发重要。本文介绍了如何在微信小程序中实现简体与繁体字体之间的切换功能,以满足不同地区用户的需求。通过创建utils文件夹并编写相应的转换函数,开发者可以方便地实现语言切换,从而提升用户体验。文章中还附带了示例代码和效果图,帮助读者更好地理解和应用这一功能。
123 0
微信小程序多语言切换神器:简繁体切换功能完全指南
|
3月前
|
小程序 Linux Python
查找首字母与Python相关的的英文词汇小程序的续篇---进一步功能完善
查找首字母与Python相关的的英文词汇小程序的续篇---进一步功能完善
31 1
|
5月前
|
Web App开发 缓存 小程序
【Azure API 管理】从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
【Azure API 管理】从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能
|
5月前
|
小程序 前端开发 开发者
|
5月前
|
小程序 前端开发 API
Ant Design Mini 问题之在微信小程序中,由于不支持slot特性,Ant Design Mini的什么组件功能受到了限制,如何解决
Ant Design Mini 问题之在微信小程序中,由于不支持slot特性,Ant Design Mini的什么组件功能受到了限制,如何解决
132 1