Commit cabe13681a5fa8467620ad32595bb9344b845c17
1 parent
7aaba81c
签到的优化,
Showing
3 changed files
with
147 additions
and
61 deletions
packageA/pages/checkin/checkin.js
| ... | ... | @@ -12,6 +12,9 @@ Page({ |
| 12 | 12 | day: '', |
| 13 | 13 | weekArr: ['日', '一', '二', '三', '四', '五', '六'], |
| 14 | 14 | dateArr: [], |
| 15 | + n_dateArr:[], //本月的日期 | |
| 16 | + s_dateArr:[], //上月的日期 | |
| 17 | + | |
| 15 | 18 | firstDay: '', |
| 16 | 19 | lastDay: '', |
| 17 | 20 | param: null, |
| ... | ... | @@ -52,10 +55,8 @@ Page({ |
| 52 | 55 | this.setDate(); |
| 53 | 56 | var res = wx.getSystemInfoSync(); |
| 54 | 57 | this.setData({ |
| 55 | - param: res.windowHeight / 12, | |
| 56 | - | |
| 58 | + param: res.windowHeight / 12, | |
| 57 | 59 | }) |
| 58 | - | |
| 59 | 60 | |
| 60 | 61 | // 判断会员是否授权登录, |
| 61 | 62 | // 没有登录则跳转到登录页, |
| ... | ... | @@ -103,14 +104,12 @@ Page({ |
| 103 | 104 | }); |
| 104 | 105 | }, |
| 105 | 106 | |
| 106 | - | |
| 107 | 107 | // 点击"我的积分"和"去购物"进行跳转 |
| 108 | 108 | goto(e) { |
| 109 | 109 | let url = e.target.dataset.url; |
| 110 | 110 | app.goto(url); |
| 111 | 111 | }, |
| 112 | 112 | |
| 113 | - | |
| 114 | 113 | // 点击显示签到规则 |
| 115 | 114 | showRules() { |
| 116 | 115 | if(this.data.isShowRules) { |
| ... | ... | @@ -127,34 +126,87 @@ Page({ |
| 127 | 126 | |
| 128 | 127 | // 加载签到记录 |
| 129 | 128 | loadCheckedRecord() { |
| 130 | - let newDateArr = this.data.dateArr; | |
| 129 | + let newDateArr=[]; | |
| 131 | 130 | let list; |
| 132 | 131 | let bqlist; |
| 132 | + //--判断什么日子是签到的,上个月的-- | |
| 133 | + if(this.data.res.qdsdaylist) { | |
| 134 | + list = this.data.res.qdsdaylist.split(','); | |
| 135 | + for(var i in this.data.s_dateArr){ | |
| 136 | + var item=this.data.s_dateArr[i]; | |
| 137 | + if(this.check_is_qd(item,list)){ | |
| 138 | + item.isCheckIn = true; | |
| 139 | + }else{ | |
| 140 | + item.isCheckIn = false; | |
| 141 | + } | |
| 142 | + } | |
| 143 | + } | |
| 144 | + newDateArr=newDateArr.concat(this.data.s_dateArr); | |
| 145 | + //--判断什么日子是签到的,这个月的-- | |
| 133 | 146 | if(this.data.res.qddaylist) { |
| 134 | 147 | list = this.data.res.qddaylist.split(','); |
| 135 | - for(let item of list) { | |
| 136 | - newDateArr[item-1].isCheckIn = true; | |
| 137 | - }; | |
| 148 | + for(var i in this.data.n_dateArr){ | |
| 149 | + var item=this.data.n_dateArr[i]; | |
| 150 | + if(this.check_is_qd(item,list)){ | |
| 151 | + item.isCheckIn = true; | |
| 152 | + }else{ | |
| 153 | + item.isCheckIn = false; | |
| 154 | + } | |
| 155 | + } | |
| 138 | 156 | } |
| 157 | + newDateArr=newDateArr.concat(this.data.n_dateArr); | |
| 158 | + | |
| 159 | + //--判断什么日子是要补签的-- | |
| 139 | 160 | if(this.data.res.curbqdaynum) { |
| 140 | 161 | bqlist = this.data.res.curbqdaynum.split(','); |
| 141 | - for(let item of bqlist) { | |
| 142 | - var date = new Date(item); | |
| 143 | - newDateArr[date.getDate()-1].isBq = true; | |
| 144 | - } | |
| 162 | + for(var i in newDateArr){ | |
| 163 | + var item=newDateArr[i]; | |
| 164 | + if(this.check_is_bq(item,bqlist)){ | |
| 165 | + item.isBq = true; | |
| 166 | + }else{ | |
| 167 | + item.isBq = false; | |
| 168 | + } | |
| 169 | + } | |
| 145 | 170 | } |
| 146 | 171 | this.setData({ |
| 147 | 172 | dateArr: newDateArr |
| 148 | 173 | }); |
| 149 | 174 | }, |
| 150 | 175 | |
| 176 | + | |
| 177 | + //判断是不是同一个日期,签到的 | |
| 178 | + check_is_qd(item,bqlist){ | |
| 179 | + for(var i in bqlist){ | |
| 180 | + var c_item=JSON.parse(JSON.stringify(item)); | |
| 181 | + if(c_item.num<10) c_item.num="0"+c_item.num; | |
| 182 | + if(c_item.num==bqlist[i]){ | |
| 183 | + return true; | |
| 184 | + } | |
| 185 | + } | |
| 186 | + return false; | |
| 187 | + }, | |
| 188 | + | |
| 189 | + //判断是不是同一个日期,补签到的 | |
| 190 | + check_is_bq(item,bqlist){ | |
| 191 | + for(var i in bqlist){ | |
| 192 | + if(item.date==bqlist[i]){ | |
| 193 | + return true; | |
| 194 | + } | |
| 195 | + } | |
| 196 | + return false; | |
| 197 | + }, | |
| 198 | + | |
| 151 | 199 | // 点击签到 |
| 152 | 200 | checkInToday() { |
| 153 | 201 | const self = this; |
| 154 | 202 | // 获取今天的签到状态 |
| 155 | - let isCheckInToday = this.data.dateArr[this.data.day-1].isCheckIn; | |
| 203 | + //let isCheckInToday = this.data.dateArr[this.data.day-1].isCheckIn; | |
| 204 | + var ck=this.data.day; | |
| 205 | + if(parseInt(ck)<10) ck="0"+ck; | |
| 206 | + var isCheckInToday=this.data.res.qddaylist.indexOf(ck); | |
| 207 | + | |
| 156 | 208 | // 如果还没签到, 可以点击签到 |
| 157 | - if(!isCheckInToday) { | |
| 209 | + if(isCheckInToday==-1) { | |
| 158 | 210 | app.request.promisePost('/api/weshop/qdrecord/saveQd', { |
| 159 | 211 | data: { |
| 160 | 212 | store_id: app.globalData.setting.stoid, |
| ... | ... | @@ -163,8 +215,16 @@ Page({ |
| 163 | 215 | }).then(res => { |
| 164 | 216 | // 改变签到状态,由false置为true |
| 165 | 217 | // let newDateArr = self.data.dateArr; |
| 166 | - // newDateArr[self.data.day-1].isCheckIn = true; | |
| 167 | - | |
| 218 | + // newDateArr[self.data.day-1].isCheckIn = true; | |
| 219 | + | |
| 220 | + for(var i in self.data.dateArr) { | |
| 221 | + self.data.dateArr[i].isCheckIn=false; | |
| 222 | + self.data.dateArr[i].isBq=false; | |
| 223 | + } | |
| 224 | + self.setData({ | |
| 225 | + dateArr: self.data.dateArr | |
| 226 | + }); | |
| 227 | + | |
| 168 | 228 | self.loadQd(function() { |
| 169 | 229 | wx.showToast({ |
| 170 | 230 | title: self.data.res.qdintro, |
| ... | ... | @@ -198,20 +258,23 @@ Page({ |
| 198 | 258 | } |
| 199 | 259 | }).then(res => { |
| 200 | 260 | // 改变签到状态,由false置为true |
| 201 | - // let newDateArr = self.data.dateArr; | |
| 202 | - // newDateArr[self.data.day-1].isCheckIn = true; | |
| 203 | - var bqlist = self.data.res.curbqdaynum.split(',').sort(); | |
| 204 | - var list = []; | |
| 261 | + // let newDateArr = self.data.dateArr; | |
| 262 | + // newDateArr[self.data.day-1].isCheckIn = true; | |
| 263 | + //var bqlist = self.data.res.curbqdaynum.split(',').sort(); | |
| 264 | + //var list = []; | |
| 265 | + /*-- | |
| 205 | 266 | for(let item of bqlist) { |
| 206 | 267 | var date = new Date(item); |
| 207 | 268 | list.push(date.getDate()); |
| 208 | - } | |
| 209 | - | |
| 210 | - self.data.dateArr[list[0]-1].isBq = false; | |
| 269 | + }--*/ | |
| 270 | + | |
| 271 | + for(var i in self.data.dateArr) { | |
| 272 | + self.data.dateArr[i].isCheckIn=false; | |
| 273 | + self.data.dateArr[i].isBq=false; | |
| 274 | + } | |
| 211 | 275 | self.setData({ |
| 212 | 276 | dateArr: self.data.dateArr |
| 213 | - }); | |
| 214 | - | |
| 277 | + }); | |
| 215 | 278 | self.loadQd(function() { |
| 216 | 279 | self.data.flag = true; |
| 217 | 280 | wx.showToast({ |
| ... | ... | @@ -227,10 +290,6 @@ Page({ |
| 227 | 290 | } |
| 228 | 291 | }, |
| 229 | 292 | |
| 230 | - | |
| 231 | - | |
| 232 | - | |
| 233 | - | |
| 234 | 293 | getDate: function() { //获取当月日期 |
| 235 | 294 | var mydate = new Date(); |
| 236 | 295 | var year = mydate.getFullYear(); |
| ... | ... | @@ -240,7 +299,7 @@ Page({ |
| 240 | 299 | this.data.month = months; |
| 241 | 300 | this.data.day = mydate.getDate(); //获取当月日期: 1~31 |
| 242 | 301 | var fist = new Date(year, month, 1); |
| 243 | - this.data.firstDay = fist.getDay(); //获取当月第一天 | |
| 302 | + this.data.firstDay = fist.getDay(); //获取当月第一天 | |
| 244 | 303 | var last = new Date(year, months, 0); //0表示当月最后一天 |
| 245 | 304 | this.data.lastDay = last.getDate(); //获取当月最后一天 |
| 246 | 305 | |
| ... | ... | @@ -249,22 +308,43 @@ Page({ |
| 249 | 308 | month: this.data.month, |
| 250 | 309 | day: this.data.day, |
| 251 | 310 | firstDay: this.data.firstDay, |
| 252 | - lastDay: this.data.lastDay | |
| 311 | + lastDay: this.data.lastDay, | |
| 312 | + fist:fist | |
| 253 | 313 | }) |
| 254 | 314 | console.log("今天:" + this.data.day); |
| 255 | 315 | }, |
| 256 | 316 | |
| 257 | 317 | setDate: function() { |
| 258 | 318 | var day; |
| 259 | - for (var i = 1; i < this.data.lastDay + 1; i++) { | |
| 260 | - day = { | |
| 261 | - num: i, | |
| 262 | - }; | |
| 263 | - this.data.dateArr.push(day); | |
| 319 | + for(var i=0;i<this.data.firstDay;i++){ | |
| 320 | + //获取前几天的时间数组 | |
| 321 | + var arr_d=this.getNextDate(this.data.fist,i-this.data.firstDay) | |
| 322 | + day = {num: arr_d[1],date:arr_d[0]}; | |
| 323 | + this.data.s_dateArr.push(day); | |
| 324 | + } | |
| 325 | + | |
| 326 | + for (var i = 1; i < this.data.lastDay + 1; i++) { | |
| 327 | + var date=this.data.month+""; | |
| 328 | + if(this.data.month<10) date="0"+date; | |
| 329 | + if(i<10) { | |
| 330 | + date=date+"-0"+i; | |
| 331 | + }else{ | |
| 332 | + date=date+"-"+i; | |
| 333 | + } | |
| 334 | + day = {num: i,date:date}; | |
| 335 | + this.data.n_dateArr.push(day); | |
| 264 | 336 | } |
| 265 | - this.setData({ | |
| 266 | - dateArr: this.data.dateArr, | |
| 267 | - }); | |
| 268 | 337 | }, |
| 269 | 338 | |
| 339 | + //获取相隔是多少天的日期 | |
| 340 | + getNextDate(date,day) { | |
| 341 | + var dd = date; | |
| 342 | + dd.setDate(dd.getDate() + day); | |
| 343 | + //var y = dd.getFullYear(); | |
| 344 | + var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1; | |
| 345 | + var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); | |
| 346 | + //return y + "-" + m + "-" + d; | |
| 347 | + return [m + "-" + d,dd.getDate()]; | |
| 348 | + } | |
| 349 | + | |
| 270 | 350 | }) | ... | ... |
packageA/pages/checkin/checkin.wxml
| ... | ... | @@ -8,31 +8,31 @@ |
| 8 | 8 | </view> |
| 9 | 9 | |
| 10 | 10 | <view class="list flex"> |
| 11 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 0)-1].isCheckIn ? 'active':''}}"> | |
| 11 | + <view class="list-item active}}"> | |
| 12 | 12 | <view class="circle">+{{res.cday1}}</view> |
| 13 | - <view class="fs26">{{myUtil.setDate(year, res.sday2, 0)}}日</view> | |
| 13 | + <view class="fs26">{{res.sday2}}</view> | |
| 14 | 14 | </view> |
| 15 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday3, 0)-1].isCheckIn ? 'active':''}}"> | |
| 15 | + <view class="list-item {{myUtil.setDate_is_act(year, res.sday3, 0,res.qddaylist)? 'active':''}}"> | |
| 16 | 16 | <view class="circle">+{{res.daynum}}</view> |
| 17 | 17 | <view class="fs26">今日</view> |
| 18 | 18 | </view> |
| 19 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday3, 1)-1].isCheckIn ? 'active':''}}"> | |
| 19 | + <view class="list-item {{myUtil.setDate_is_act(year, res.sday3, 1,res.qddaylist)? 'active':''}}"> | |
| 20 | 20 | <view class="circle">+{{res.tdayc1}}</view> |
| 21 | 21 | <view class="fs26">明日</view> |
| 22 | 22 | </view> |
| 23 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday3, 2)-1].isCheckIn ? 'active':''}}"> | |
| 23 | + <view class="list-item {{myUtil.setDate_is_act(year, res.sday3, 2,res.qddaylist)? 'active':''}}"> | |
| 24 | 24 | <view class="circle">+{{res.tdayc2}}</view> |
| 25 | 25 | <view class="fs26">{{myUtil.setDate(year, res.sday3, 2)}}日</view> |
| 26 | 26 | </view> |
| 27 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday3, 3)-1].isCheckIn ? 'active':''}}"> | |
| 27 | + <view class="list-item {{myUtil.setDate_is_act(year, res.sday3, 3,res.qddaylist)? 'active':''}}"> | |
| 28 | 28 | <view class="circle">+{{res.tdayc3}}</view> |
| 29 | 29 | <view class="fs26">{{myUtil.setDate(year, res.sday3, 3)}}日</view> |
| 30 | 30 | </view> |
| 31 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday3, 4)-1].isCheckIn ? 'active':''}}"> | |
| 31 | + <view class="list-item {{myUtil.setDate_is_act(year, res.sday3, 4,res.qddaylist)? 'active':''}}"> | |
| 32 | 32 | <view class="circle">+{{res.tdayc4}}</view> |
| 33 | 33 | <view class="fs26">{{myUtil.setDate(year, res.sday3, 4)}}日</view> |
| 34 | 34 | </view> |
| 35 | - <view class="list-item {{dateArr[myUtil.setDate(year, res.sday3, 5)-1].isCheckIn ? 'active':''}}"> | |
| 35 | + <view class="list-item {{myUtil.setDate_is_act(year, res.sday3, 5,res.qddaylist)? 'active':''}}"> | |
| 36 | 36 | <view class="circle">+{{res.tdayc5}}</view> |
| 37 | 37 | <view class="fs26">{{myUtil.setDate(year, res.sday3, 5)}}日</view> |
| 38 | 38 | </view> |
| ... | ... | @@ -40,12 +40,12 @@ |
| 40 | 40 | |
| 41 | 41 | <view class="btn-container"> |
| 42 | 42 | <view class="btn" bindtap="checkInToday" wx:if="{{isLogin}}"> |
| 43 | - <text class="iconfont icon-rili"></text>{{!dateArr[day-1].isCheckIn ? '立即签到':'今日已签到'}} | |
| 43 | + <text class="iconfont icon-rili"></text>{{!myUtil.setDate_is_act(year, res.sday3, 0,res.qddaylist) ? '立即签到':'今日已签到'}} | |
| 44 | 44 | </view> |
| 45 | 45 | <view class="btn" bindtap="isLogin" wx:else> |
| 46 | 46 | <text class="iconfont icon-rili"></text>签到请登录 |
| 47 | 47 | </view> |
| 48 | - <view class="btn" wx:if="{{res.curbqdaynum}}" bindtap="reCheckIn"><text class="iconfont icon-buqian"></text>补签(-10分)</view> | |
| 48 | + <view class="btn" wx:if="{{res.curbqdaynum}}" bindtap="reCheckIn"><text class="iconfont icon-buqian"></text>补签(-{{res.getBQIntegral}}分)</view> | |
| 49 | 49 | </view> |
| 50 | 50 | |
| 51 | 51 | |
| ... | ... | @@ -60,7 +60,8 @@ |
| 60 | 60 | <view class="calendar-wrapper"> |
| 61 | 61 | <view class="calendar-title"> |
| 62 | 62 | <view>{{year}}年{{month}}月</view> |
| 63 | - <view class="fs24" style="color:#999;font-weight:bold">补签卡:{{res.getkbqnum}}</view> | |
| 63 | + <!-- 有补签,才要补签卡 --> | |
| 64 | + <view wx:if="{{res.curbqdaynum}}" class="fs24" style="color:#999;font-weight:bold">补签卡:{{res.getkbqnum}}</view> | |
| 64 | 65 | </view> |
| 65 | 66 | <view class="calendar"> |
| 66 | 67 | <!-- <view class="selectDate"> --> |
| ... | ... | @@ -77,7 +78,7 @@ |
| 77 | 78 | <view class="date"> |
| 78 | 79 | <block wx:for="{{dateArr}}" wx:for-index="index" wx:for-item="item" wx:key="key"> |
| 79 | 80 | <!-- <view style="{{index ==0?'margin-left:calc(100%/7 * ' + firstDay + ');':''}}width:calc(100%/7);line-height:80rpx;" class="{{index+1==day?'today':''}} {{index+1==day&&isClock?'clockOn':''}}" ><view class="day">{{item}}</view></view> --> |
| 80 | - <view style="{{index ==0?'margin-left:calc(100%/7 * ' + firstDay + ');':''}}width:calc(100%/7);line-height:80rpx;" class="{{item.isCheckIn ? 'active':''}} {{res.curbqdaynum&&item.isBq ? 'bq':''}}" bindtap="clickDay" data-day="{{item.num}}"> | |
| 81 | + <view style="{{index ==0?'margin-left:calc(100%/7 * 0);':''}}width:calc(100%/7);line-height:80rpx;" class="{{item.isCheckIn ? 'active':''}} {{res.curbqdaynum&&item.isBq ? 'bq':''}}" bindtap="clickDay" data-day="{{item.num}}"> | |
| 81 | 82 | <view class="day">{{item.num}}</view> |
| 82 | 83 | </view> |
| 83 | 84 | </block> | ... | ... |
packageA/pages/checkin/checkin.wxs
| 1 | 1 | var myUtil = { |
| 2 | - setDate: function(year, startDate, num) { | |
| 2 | + setDate_is_act: function(year, startDate, num,qdlist) { | |
| 3 | 3 | var date = getDate(year + '-' + startDate); |
| 4 | 4 | date.setDate(date.getDate() + num); |
| 5 | 5 | date = getDate(date).getDate(); |
| 6 | - return date; | |
| 6 | + if(date<10) date="0"+date; | |
| 7 | + if(!qdlist) return false; | |
| 8 | + if(qdlist.indexOf(date)!=-1){ | |
| 9 | + return true | |
| 10 | + } | |
| 11 | + return false; | |
| 7 | 12 | }, |
| 8 | 13 | |
| 9 | - // dateDiff: function(firstDate,secondDate) { | |
| 10 | - // var firstDate = new Date(firstDate); | |
| 11 | - // var secondDate = new Date(secondDate); | |
| 12 | - // var diff = Math.abs(firstDate.getTime() - secondDate.getTime()); | |
| 13 | - // var result = parseInt(diff / (1000 * 60 * 60 * 24)); | |
| 14 | - // return result; | |
| 15 | - // }, | |
| 14 | + setDate:function(year, startDate, num){ | |
| 15 | + var date = getDate(year + '-' + startDate); | |
| 16 | + date.setDate(date.getDate() + num); | |
| 17 | + date = getDate(date).getDate(); | |
| 18 | + return date; | |
| 19 | + } | |
| 16 | 20 | }; |
| 17 | 21 | |
| 18 | 22 | module.exports = { |
| 19 | 23 | setDate: myUtil.setDate, |
| 24 | + setDate_is_act: myUtil.setDate_is_act, | |
| 20 | 25 | }; |
| 21 | 26 | \ No newline at end of file | ... | ... |