123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- 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);
- }
- })
|