前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信练手小程序源码 - 日历(含各种功能组件)

微信练手小程序源码 - 日历(含各种功能组件)

作者头像
用户5997198
发布2020-08-18 14:28:51
2K0
发布2020-08-18 14:28:51
举报
文章被收录于专栏:蚂蚁开源社区蚂蚁开源社区

小程序日历

引入组件

在json文件中配置组件

代码语言:javascript
复制
{
  "usingComponents": {
    "calendar": "/component/calendar/index"
  }
}

在wxml中引入组件

代码语言:javascript
复制
<calendar calendarConfig="{{calendarConfig}}"></calendar>

自定义配置初始化日历

代码语言:javascript
复制
const conf = {
  data: {
    calendarConfig: {
      // 配置内置主题
      theme: 'elegant'
    }
  },
  doSomeThing() {
    // 调用日历方法
    this.calendar.enableArea(['2018-10-7', '2018-10-28']);
  }
};
Page(conf);

日历模板初始化

代码语言:javascript
复制
import initCalendar from '../../template/calendar/index';
const conf = {
  onShow: function() {
    initCalendar(); // 使用默认配置初始化日历
  }
};
Page(conf);

获取当前选择的日期

代码语言:javascript
复制
const options = {
  lunar: true // 在配置showLunar为false, 但需返回农历信息时使用该选项
}
const selectedDay = this.calendar.getSelectedDay(options);

// => { year: 2019, month: 12, day: 1}

获取日历当前年月

代码语言:javascript
复制
const ym = this.calendar.getCurrentYM();

// => { year: 2019, month: 12}

设置待办事项

代码语言:javascript
复制
// 待办事项中若有 todoText 字段,则会在待办日期下面显示指定文字,如自定义节日等。

this.calendar.setTodoLabels({
  // 待办点标记设置
  pos: 'bottom', // 待办点标记位置 ['top', 'bottom']
  dotColor: 'purple', // 待办点标记颜色
  circle: true, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥
  showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效
  days: [
    {
      year: 2018,
      month: 1,
      day: 1,
      todoText: '待办',
      color: '#f40' // 单独定义代办颜色 (标记点、文字)
    },
    {
      year: 2018,
      month: 5,
      day: 15
    }
  ]
});

删除待办事项

代码语言:javascript
复制
this.calendar.deleteTodoLabels([
  {
    year: 2018,
    month: 5,
    day: 12
  },
  {
    year: 2018,
    month: 5,
    day: 15
  }
]);

设置指定日期样式,该方法只会对日期生效。

组件样式隔离采用了 apply-shared 方案,此模式下页面样式会影响组件样式,使用时需注意页面样式对日历组件样式的覆盖。

代码语言:javascript
复制
// 页面 js 文件
const toSet = [
  {
    year: 2019,
    month: 11,
    day: 19,
    class: 'orange-date other-class' // 页面定义的 class,多个 class 由空格隔开
  }
];
this.calendar.setDateStyle(toSet);
代码语言:javascript
复制
.orange-date {
  background-color: #e8e8e8;
}

.orange-data .default_normal-date {
  color: #333;
}

作者 | 小飞机飞飞飞

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 蚂蚁大喇叭 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档