// packageA//pages/checkin/checkin.js const app = getApp(); let self; Page({ /** * 页面的初始数据 */ data: { year: '', month: '', day: '', weekArr: ['日', '一', '二', '三', '四', '五', '六'], dateArr: [], n_dateArr:[], //本月的日期 s_dateArr:[], //上月的日期 firstDay: '', lastDay: '', param: null, clockNum: 3, res: null, isShowRules: false, isCheckIn: false, checkInDays: 0, //连续签到天数 integral: 0, //积分 checkInNums: 0, //补签次数 isCheckInDay: '', flag: true, isLogin: false, }, loadQd(callback) { app.request.get('/api/weshop/qdrecord/getUser/'+ app.globalData.setting.stoid + '/' + app.globalData.user_id, { success: function (res) { if(res.data.code==0){ if(callback) callback(); self.setData({ res: res.data.data }); self.loadCheckedRecord(); }else{ wx.showToast({ title: "网络繁忙,请重试", icon: 'none', duration: 2000 }) } }, }); }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { console.log('执行onload'); self = this; this.getDate(); this.setDate(); var res = wx.getSystemInfoSync(); this.setData({ param: res.windowHeight / 12, }) // 判断会员是否授权登录, // 没有登录则跳转到登录页, // 已登录则设置已登录状态,请求加载签到数据 this.isLogin().then(function() { self.setData({ isLogin: true }); self.loadQd(); }); }, onShow() { if(app.globalData.userInfo instanceof Object) { if(this.data.isLogin) { return; } else { this.setData({ isLogin: true }); this.loadQd(); }; } }, onHide() { console.log('执行onHide'); }, // 是否登录 isLogin() { return new Promise(function(resolve, reject) { let user_info = getApp().globalData.userInfo; if (user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) { wx.navigateTo({ url: '/pages/togoin/togoin', }) return false; } else { resolve(); }; }); }, // 点击"我的积分"和"去购物"进行跳转 goto(e) { let url = e.target.dataset.url; app.goto(url); }, // 点击显示签到规则 showRules() { if(this.data.isShowRules) { this.setData({ isShowRules: false }); } else { this.setData({ isShowRules: true }); } }, // 加载签到记录 loadCheckedRecord() { let newDateArr=[]; let list; let bqlist; //--判断什么日子是签到的,上个月的-- if(this.data.res && this.data.res.qdsdaylist) { list = this.data.res.qdsdaylist.split(','); for(var i in this.data.s_dateArr){ var item=this.data.s_dateArr[i]; if(this.check_is_qd(item,list)){ item.isCheckIn = true; }else{ item.isCheckIn = false; } } } newDateArr=newDateArr.concat(this.data.s_dateArr); //--判断什么日子是签到的,这个月的-- if(this.data.res && this.data.res.qddaylist) { list = this.data.res.qddaylist.split(','); for(var i in this.data.n_dateArr){ var item=this.data.n_dateArr[i]; if(this.check_is_qd(item,list)){ item.isCheckIn = true; }else{ item.isCheckIn = false; } } } newDateArr=newDateArr.concat(this.data.n_dateArr); //--判断什么日子是要补签的-- if(this.data.res && this.data.res.curbqdaynum) { bqlist = this.data.res.curbqdaynum.split(','); for(var i in newDateArr){ var item=newDateArr[i]; if(this.check_is_bq(item,bqlist)){ item.isBq = true; }else{ item.isBq = false; } } } this.setData({ dateArr: newDateArr }); }, //判断是不是同一个日期,签到的 check_is_qd(item,bqlist){ for(var i in bqlist){ var c_item=JSON.parse(JSON.stringify(item)); if(c_item.num<10) c_item.num="0"+c_item.num; if(c_item.num==bqlist[i]){ return true; } } return false; }, //判断是不是同一个日期,补签到的 check_is_bq(item,bqlist){ for(var i in bqlist){ if(item.date==bqlist[i]){ return true; } } return false; }, // 点击签到 checkInToday() { const self = this; // 获取今天的签到状态 //let isCheckInToday = this.data.dateArr[this.data.day-1].isCheckIn; var ck=this.data.day; if(parseInt(ck)<10) ck="0"+ck; var isCheckInToday=this.data.res.qddaylist.indexOf(ck); // 如果还没签到, 可以点击签到 if(isCheckInToday==-1) { app.request.promisePost('/api/weshop/qdrecord/saveQd', { data: { store_id: app.globalData.setting.stoid, user_id: app.globalData.user_id, } }).then(res => { // 改变签到状态,由false置为true // let newDateArr = self.data.dateArr; // newDateArr[self.data.day-1].isCheckIn = true; for(var i in self.data.dateArr) { self.data.dateArr[i].isCheckIn=false; self.data.dateArr[i].isBq=false; } self.setData({ dateArr: self.data.dateArr }); self.loadQd(function() { wx.showToast({ title: self.data.res.qdintro, icon: 'none', duration: 1500, success: function() { } }); }); }) } }, // 补签 reCheckIn() { var self = this; // var i = 0; console.log('补签~'); if(this.data.flag) { this.data.flag = false; app.request.promisePost('/api/weshop/qdrecord/saveBQd', { data: { store_id: app.globalData.setting.stoid, user_id: app.globalData.user_id, daynum: self.data.res.getBQIntegral1, bqnum: self.data.res.getbqnum2, bqintegral: self.data.res.getBQIntegral, } }).then(res => { // 改变签到状态,由false置为true // let newDateArr = self.data.dateArr; // newDateArr[self.data.day-1].isCheckIn = true; //var bqlist = self.data.res.curbqdaynum.split(',').sort(); //var list = []; /*-- for(let item of bqlist) { var date = new Date(item); list.push(date.getDate()); }--*/ for(var i in self.data.dateArr) { self.data.dateArr[i].isCheckIn=false; self.data.dateArr[i].isBq=false; } self.setData({ dateArr: self.data.dateArr }); self.loadQd(function() { self.data.flag = true; wx.showToast({ title: '补签成功', icon: 'success', duration: 1500, success: function() { } }); }); }) } }, getDate: function() { //获取当月日期 var mydate = new Date(); var year = mydate.getFullYear(); var month = mydate.getMonth(); //0~11: 一月至十二月 var months = month + 1; //1~12:一月至十二月 this.data.year = year; this.data.month = months; this.data.day = mydate.getDate(); //获取当月日期: 1~31 var fist = new Date(year, month, 1); this.data.firstDay = fist.getDay(); //获取当月第一天 var last = new Date(year, months, 0); //0表示当月最后一天 this.data.lastDay = last.getDate(); //获取当月最后一天 this.setData({ year: this.data.year, month: this.data.month, day: this.data.day, firstDay: this.data.firstDay, lastDay: this.data.lastDay, fist:fist }) console.log("今天:" + this.data.day); }, setDate: function() { var day; for(var i=0;i