1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| // pages/calendar/calendar.js Page({
/** * 页面的初始数据 */ data: { arr: [], nowDate: null, nowDay: 1, clickDay: null, maskId: null, autoplay: false, current: 0, },
/** * 生命周期函数--监听页面加载 */ onLoad: function(options) { var date = new Date(); this.setData({ arr: this.GetCalendarData(date), nowDate: this.GetNowTime(date), nowDay: date.getDate() }) },
//初始化日历数据 GetCalendarData(now) { var data = []; var timestamp = Date.parse(now.getFullYear() + "/" + (now.getMonth() + 1) + "/" + '1'); var date = new Date(timestamp); var item = { date: '', day: '', itmeClass: '' }; for (var i = 1; i <= 42; i++) { if (i <= this.GetWeekDay(now)) { data.push(item); } else if (now.getMonth() == date.getMonth()) { data.push({ date: this.GetNowTime(date), day: date.getDate(), itmeClass: '' }); date.setDate(date.getDate() + 1); } else { data.push(item); } } //添加标记 var index = now.getDate() + this.GetWeekDay(now) - 1; data[index] = { day: data[index].day, date: data[index].date, itmeClass: 'styles-icon2' };
data[26] = { day: data[26].day, date: data[index].date, itmeClass: 'styles-icon3' };
data[11] = { day: data[11].day, date: data[index].date, itmeClass: 'styles-icon4' }; return data; }, //或某个月得一号周几 GetWeekDay: function(now) { var date = Date.parse(now.getFullYear() + "/" + (now.getMonth() + 1) + "/" + '1'); var weekday = new Date(date); return weekday.getDay(); },
//获取当前日期 GetNowTime: function(now) { var year = now.getFullYear(); var month = now.getMonth() + 1; var day = now.getDate(); month < 10 ? month = '0' + month : month; day < 10 ? day = '0' + day : day; var formatDate = year + '/' + month + '/' + day; return formatDate; }, //点击日期事件 ClickDay: function(event) { var day = event.target.dataset.day; var date = event.target.dataset.date; if (day != '') { this.setData({ clickDay: date, maskId: day, nowDate: date }) } }, //选择日期 bindDateChange: function(e) { var date = new Date(e.detail.value); this.setData({ arr: this.GetCalendarData(date), clickDay: null, maskId: null, nowDate: this.GetNowTime(date), }) },
bindanimationfinish: function(e) { var that = this; var date = new Date(that.data.nowDate); var index = that.data.current - e.detail.current; index = index == 2 ? -1 : index; index = index == -2 ? 1 : index; if (index != 0) { date.setMonth(date.getMonth() - index); that.setData({ current: e.detail.current, arr: that.GetCalendarData(date), clickDay: null, maskId: null, nowDate: that.GetNowTime(date), }) } }, })
|