更新记录

1.0.0(2021-09-23)

初次提交


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
3.1.0 app-vue app-nvue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 小红书小程序
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× ×

日历组件

简单介绍

  • 通过uni_modules引用组件,在页面template中即可直接使用,无需在页面中import和注册components;
  • 可通过触摸屏幕左右滑动切换月份,会有动画效果;使用其它方式(如点击上月下月按钮)则没有动画效果;
  • 可根据需要选择是否显示农历日期,且会显示节日,如春节、端午、国庆、腊八节等;
  • 本组件农历转换使用的js是 @1900-2100区间内的公历、农历互转
  • 欢迎大家下载使用,项目源码示例:https://gitee.com/lunc9932/calendar
  • 有问题或需求,在评论区提出,我看到后会尽快修改,也可下载后自行修改;

API

属性说明

属性名 类型 默认值 说明
showLunar Boolean false 是否显示农历
firstDayOfWeek String monday 周几为每周的第一天,可选值:monday / sunday
monday:每周从周一开始;sunday:每周从周日开始
showMonthBg Boolean true 是否显示月份背景
weekend Boolean false 周末标红(周六周日日期用红色字体)
shouChangeBtn Boolean false 是否显示上月下月箭头按钮
signList Array [] 标记数组,若同日期有多个标记,则显示最后一个,期待格式[{date: '2021-09-10', title: '生日', info: '八月初四张三生日'}]
@dayChange EventHandle 点击日期触发事件,返回值:dayInfo
@monthChange EventHandle 切换月份触发事件,返回值:monthInfo

注意:

  1. 标记日期会在日期下方显示“title”内容,建议“title”内容不超过4个汉字;
  2. 农历日期、节日、标记日期,只会显示其一,优先级 标记 > 节日 > 农历日期;

@dayChange 返回值 dayInfo 说明

类型 说明
date String 日期,格式“yyyy-MM-dd”
year Number
month Number
day Number
week String 星期几
daySign Object 当前日期的标记,若没有则为空对象
lunar Object 农历信息,包含农历日期、节日、生肖等;
只有属性 showLunar 设置为 true 时才会返回此值;

@monthChange 返回值 monthInfo 说明

类型 说明
year Number
month Number
type String 返回类型:today / pre / next
today:当前月份,pre:上个月,next:下个月

基本用法

template中使用组件

<view>选择的日期:{{selDate}}</view>
<view class="sel-calendar">日期事件:{{dayEvent}}</view>
<lunc-calendar :showLunar="true" :showMonthBg="false" :shouChangeBtn="true" firstDayOfWeek="sunday"
  :weekend="true" :signList="signList" @dayChange="dayChange" @monthChange="monthChange">
</lunc-calendar>

script中使用

export default {
  data() {
    return {
      selDate: "",
      dayEvent: "",
      signList: [{
        date: '2021-09-08',
        title: '生日',
        info: '八月初四张三生日'
      }, {
        date: '2021-09-20',
        title: '朋友聚会'
      }],
    }
  },
  methods: {
    dayChange(dayInfo) {
      console.log(JSON.parse(JSON.stringify(dayInfo)));
      this.selDate = dayInfo.date;
      this.dayEvent = dayInfo.daySign.title;
    },
    monthChange(monthInfo) {
      console.log(JSON.parse(JSON.stringify(monthInfo)));
    },
  }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问