更新记录
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 |
注意:
- 标记日期会在日期下方显示“title”内容,建议“title”内容不超过4个汉字;
- 农历日期、节日、标记日期,只会显示其一,优先级 标记 > 节日 > 农历日期;
@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)));
},
}
}