var app = getApp() Page({ /** * 页面的初始数据 */ data: { showCal: false, list: {}, week: ['日', '一', '二', '三', '四', '五', '六'], days: [], today: '2019-11-30', //当天,展示星星标记 currentShow: '2019-11-30', //展示日期 currentDate: '2019-11-30', //点击选中日期 changeTap: false, startRange: '', timeRange: [], timeStart: '', timeEnd: '', areaId: '' }, //获取今天 getDay() { var today = new Date(); var y = today.getFullYear(); var m = today.getMonth(); var d = today.getDate(); //当月月份 var todayMonth = today.getMonth() + 1; if (todayMonth < 10) { todayMonth = "0" + todayMonth; } var sendDay = y + "-" + todayMonth + '-' + d; return sendDay; }, calendar(e) { var now = e.toString(); now = now.split('-'); console.log(now); let today = new Date(now[0], (now[1] - 1), now[2]); // console.log(today, 'today') let y = today.getFullYear(); let m = today.getMonth(); let d = today.getDate(); console.log(y, m, d, 'ymd') //当月月份 let todayMonth = today.getMonth() + 1; let day = d; console.log(d) if (todayMonth < 10) { todayMonth = "0" + todayMonth; } if (day < 10) { d = "0" + day; } //当月第一天是星期几 let week = new Date(y, m, 1).getDay(); console.log(week) //当月最后一天 let lastDay = new Date(y, m + 1, 0).getDate(); console.log(lastDay) //渲染日历 let days = []; for (let i = 0; i < week; i++) { let obj = { id: i, day: '', today: '', sign: false }; days.push(obj); } let timeRange = this.data.timeRange; let timeLen = timeRange.length; for (let j = 0; j < lastDay; j++) { let k = j + 1; if (k < 10) { k = '0' + k } let idx = j + week; //渲染每天日期状态 let theDay = y + "-" + todayMonth + '-' + k; let show = false; let starts = false; let ends = false; for (let m = 0; m < timeLen; m++) { if (timeRange[m] == theDay) { show = true; //渲染 起 和 止 标记 if (m == 0) { starts = true; } if (m == (timeLen - 1)) { ends = true; } } } //渲染每天日期 let cell = { id: idx, day: k, today: theDay, sign: show, start: starts, end: ends }; days.push(cell); } let currentShow = y + "年" + todayMonth + "月"; this.setData({ days: days, currentDate: e, currentShow: currentShow }); }, //上个月 past() { let last = this.data.currentDate; last = last.split('-'); let today = new Date(last[0], (last[1] - 1), last[2]); let y = today.getFullYear(); //取出月份不加 1 ,就等于上个月实际月份 let m = today.getMonth(); let d = 1; //如果当前 m 等于 0 当月为一月份,变成上一年的12月 if (m < 1) { y = y - 1; m = 12; } if (m < 10) { m = '0' + m; } let day = y + '-' + m + '-' + d; console.log(day, 'day') this.calendar(day); }, //下个月 future() { let next = this.data.currentDate; next = next.split('-'); // let today = new Date(this.data.currentDate); let today = new Date(next[0], (next[1] - 1), next[2]); let y = today.getFullYear(); //取出当前月 let m = today.getMonth(); let d = 1; //十二月份变成下一年的 1 月 if (m > 10) { y = y + 1; m = 1; } else { m = m + 2; } if (m < 10) { m = '0' + m; } let day = y + '-' + m + '-' + d; this.calendar(day); }, //选择日期范围,1选择日期 getDates(datestr) { var temp = datestr.split("-"); var m = parseInt(temp[1]) - 1; var date = new Date(temp[0], m, temp[2]); return date; }, //选择日期范围,2生成日期范围内所有的日期列表 datesList(s, e) { let that = this; let arys = []; let start = s; let end = e; let startTime = that.getDates(start); let endTime = that.getDates(end); while ((endTime.getTime() - startTime.getTime()) >= 0) { let year = startTime.getFullYear(); let monthA = startTime.getMonth() + 1; let month = monthA.toString().length == 1 ? "0" + monthA.toString() : monthA; let d = startTime.getDate(); let ds = year + "-" + month + "-" + d; arys.push(ds) startTime.setDate(startTime.getDate() + 1); } return arys; }, //选择日期范围 select(e) { let that = this; let day = e.currentTarget.dataset.today; let taps = this.data.changeTap; let startRange = this.data.startRange; //初始化 startRange,进入页面第一次点击触发 if (startRange == '') { startRange = day; } let list = []; let paramR = day; let paramS = day; let paramE = day; let timeShowS = ''; let timeShowE = ''; if (taps && day) { //截止时间动作,先比较两个时间 let dateS = new Date(startRange); let dateE = new Date(day); if (dateS.getTime() == dateE.getTime()) { list = [day]; } else if (dateS.getTime() > dateE.getTime()) { list = that.datesList(day, startRange); paramE = startRange; } else if (dateS.getTime() < dateE.getTime()) { list = that.datesList(startRange, day); paramS = startRange; } this.setData({ showCal: false }) timeShowS = paramS; timeShowE = paramE; let data = { " pay_time_between[0]": timeShowS, " pay_time_between[1]": timeShowE, } wx.showLoading({ title: '加载中...', }) let url = ""; if (that.data.areaId == '') { url = "order/profitDetail" } else { url = "order/profitDetail?area_id=" + that.data.areaId } app.request(url, data, 'GET').then(res => { wx.hideLoading(); console.log(res); if (res.statusCode == 200) { console.log(res) that.setData({ list: res.data }) } }) } else if (!taps && day) { //开始时间动作 list = [day]; } that.setData({ changeTap: !taps, startRange: paramR, timeRange: list, timeStart: paramS, timeEnd: paramE, timeShowS: timeShowS, timeShowE: timeShowE }); that.calendar(day); //console.log(list) }, // 调出日历 choice() { this.setData({ showCal: true }) }, //关闭日历 closeCal() { this.setData({ showCal: false }) }, getState() { wx.showLoading({ title: '加载中...', }) let that = this; let day = new Date(); day.setTime(day.getTime()); let today = day.getFullYear() + "-" + (day.getMonth() + 1) + "-" + day.getDate(); var day1 = new Date(); day1.setTime(day1.getTime() + 24 * 60 * 60 * 1000); var tommorw = day1.getFullYear() + "-" + (day1.getMonth() + 1) + "-" + day1.getDate(); this.setData({ timeShowS: today, timeShowE: tommorw }) let data = { " pay_time_between[0]": this.data.timeShowS, " pay_time_between[1]": this.data.timeShowE, } let url = ''; if (that.data.areaId == '') { url = "order/profitDetail" } else { url = "order/profitDetail?area_id=" + that.data.areaId } app.request(url, data, 'GET').then(res => { wx.hideLoading(); if (res.statusCode == 200) { this.setData({ list: res.data }) } }) }, onLoad: function (options) { let that = this; that.setData({ areaId: options.areaId }) this.getState(); let day = this.getDay(); this.setData({ today: day, currentDate: day }); this.calendar(day); } })