| const app = getApp() | 
| var util = require('../../utils/util.js'); | 
| var api = require('../../utils/service-api.js'); | 
|   | 
| Page({ | 
|   | 
|   /** | 
|    * 页面的初始数据 | 
|    */ | 
|   data: { | 
|     opentc: false, | 
|     shopInfo: {}, | 
|     //day 0表示占位符,1可以预约,2已过期,3已选择  | 
|     months: [], | 
|     weeks: [], | 
|     hours: [], | 
|     currentHoursIndex: 0, | 
|     //选中的日期 | 
|     sellectDay: "", | 
|     preDay: "", | 
|     preTimeIndex: null, | 
|     isLogin: false, | 
|     hasChooseService: false, | 
|     service: {}, | 
|     masseuse: {}, | 
|     hasChooseMasseuse: false, | 
|     //不选美疗师 | 
|     unneededMasseuse: true, | 
|     userInfo: {}, | 
|   | 
|   }, | 
|   | 
|   /** | 
|    * 生命周期函数--监听页面加载 | 
|    */ | 
|   onLoad: function(options) { | 
|     // | 
|     var _this = this; | 
|   | 
|     this.setData({ | 
|         shopInfo: app.shopInfo, | 
|       }); | 
|   | 
|     util.request({ | 
|       api: api.yuyue.getTimeList, | 
|       callback: function(data) { | 
|         _this.setData({ | 
|           months: data.rows, | 
|           userInfo: getApp().userInfo, | 
|         }); | 
|       }, | 
|   | 
|     }); | 
|   | 
|     let timeStr = new Date().Format("yyyy-MM-dd"); | 
|     this.setData({ | 
|       sellectDay: timeStr | 
|     }); | 
|     this.loadWeeks(timeStr);  | 
|   }, | 
|   onShow: function() { | 
|     console.log("onShow"); | 
|     this.setData({ | 
|       isLogin: getApp().isLogin | 
|     }); | 
|     var _this = this; | 
|   | 
|     var service = util.getOutStorage('chooseService') | 
|     if (util.isNotBlank(service)) { | 
|       _this.setData({ | 
|         service: service, | 
|         hasChooseService: true, | 
|       }); | 
|     } | 
|   | 
|     this.setData({ | 
|       shopInfo: app.shopInfo, | 
|     }); | 
|   | 
|     var masseuse = util.getOutStorage('masseuse'); | 
|     if (util.isNotBlank(masseuse)) { | 
|       if (masseuse == -1) { | 
|         _this.setData({ | 
|           unneededMasseuse: true, | 
|           hasChooseMasseuse: true, | 
|           masseuse: {}, | 
|         }); | 
|       } else { | 
|         _this.setData({ | 
|           masseuse: masseuse, | 
|           hasChooseMasseuse: true, | 
|           unneededMasseuse: false, | 
|         }); | 
|       } | 
|     } | 
|   | 
|   }, | 
|   | 
|   loadWeeks: function(timeStr) { | 
|     var _this = this; | 
|     util.request({ | 
|       api: api.yuyue.getYYDayAndWeek + "?time=" + timeStr, | 
|       callback: function(data) { | 
|         _this.setData({ | 
|           weeks: data.rows, | 
|           hours: data.rows[0].hours, | 
|         }); | 
|       }, | 
|   | 
|     }); | 
|   }, | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   //UI控制函数 | 
|   chooseService: function() { | 
|     console.log(getApp().userInfo.phoneNumber); | 
|   | 
|   | 
|     if (util.isBlank(getApp().userInfo.nickName)) { | 
|       wx.navigateTo({ | 
|         url: '/pages/welcome/welcome?url=/pages/yuyue/khyuyue', | 
|       }) | 
|     } else if (getApp().userInfo.phoneNumber == null || | 
|       getApp().userInfo.phoneNumber == "") { | 
|       wx.navigateTo({ | 
|         url: '/pages/phone/phone?url=/pages/yuyue/khyuyue', | 
|       }) | 
|     } else { | 
|       wx.navigateTo({ | 
|         url: '/pages/yuyue/choseService', | 
|       }) | 
|     } | 
|   | 
|   | 
|   | 
|   }, | 
|   | 
|   closeTc: function() { | 
|     console.log("closeTc"); | 
|     this.setData({ | 
|       opentc: false, | 
|     }); | 
|   }, | 
|   openTc: function() { | 
|     console.log("openTc"); | 
|     this.setData({ | 
|       opentc: true, | 
|     }); | 
|   }, | 
|   //点击周选择 | 
|   changeWeeks: function(e) { | 
|   | 
|   | 
|     //清空上次选中的时间 | 
|     var hours = this.data.hours; | 
|     if (this.data.preTimeIndex != null) { | 
|       hours[this.data.preTimeIndex].status = 1; | 
|       hours[this.data.preTimeIndex].atlable = ""; | 
|       hours[this.data.preTimeIndex + 1].status = 1; | 
|     } | 
|     this.setData({ | 
|       hours: hours, | 
|       preTimeIndex: null, | 
|     }); | 
|   | 
|   | 
|     //切换时间 | 
|     var _this = this; | 
|     var index = e.currentTarget.dataset.index; | 
|     var weeks = this.data.weeks[index]; | 
|   | 
|     _this.setData({ | 
|       currentHoursIndex: index, | 
|       hours: weeks.hours, | 
|       sellectDay: weeks.fullDay, | 
|     }); | 
|   | 
|   | 
|     this.cleanSelectMasseuse(); | 
|   | 
|   }, | 
|   | 
|   | 
|   //清空已经选中的美疗师 | 
|   cleanSelectMasseuse: function() { | 
|     this.setData({ | 
|       unneededMasseuse: false, | 
|       hasChooseMasseuse: false, | 
|       masseuse: {}, | 
|   | 
|     }); | 
|   }, | 
|   | 
|   | 
|   //点选技师 | 
|   chooseMasseuse: function(e) { | 
|     var preTimeIndex = this.data.preTimeIndex; | 
|   | 
|     if (util.isNotBlank(preTimeIndex)) { | 
|       var sellectDay = this.data.sellectDay; | 
|       var hours = this.data.hours; | 
|       var beginTime = sellectDay + " " + hours[preTimeIndex].hour; | 
|       var endTime = sellectDay + " " + hours[preTimeIndex + 1].hour; | 
|       var shopId = this.data.shopInfo.id; | 
|       wx.navigateTo({ | 
|         url: '/pages/yuyue/choseMasseuse?shopId=' + | 
|           shopId + '&beginTime=' + beginTime + '&endTime=' + endTime | 
|       }); | 
|     } else { | 
|       wx.showToast({ | 
|         title: '请先选择预约时间', | 
|         icon: 'none', | 
|       }) | 
|       return; | 
|     } | 
|   }, | 
|   //点选时间 | 
|   chooseTime: function(e) { | 
|   | 
|   | 
|     var index = e.currentTarget.dataset.index; | 
|   | 
|   | 
|   | 
|     var hours = this.data.hours; | 
|   | 
|     if (index == hours.length - 1) { | 
|       wx.showToast({ | 
|         title: '该时间段不可选', | 
|         icon: 'none', | 
|       }) | 
|       return; | 
|     } | 
|   | 
|     if (this.data.preTimeIndex != null) { | 
|       hours[this.data.preTimeIndex].status = 1; | 
|       hours[this.data.preTimeIndex].atlable = ""; | 
|       hours[this.data.preTimeIndex + 1].status = 1; | 
|     } | 
|   | 
|     hours[index].status = 3; | 
|     hours[index].atlable = '到店'; | 
|     hours[index + 1].status = 3; | 
|   | 
|     this.setData({ | 
|       hours: hours, | 
|       preTimeIndex: index | 
|     }); | 
|   | 
|     this.cleanSelectMasseuse(); | 
|   | 
|   | 
|   }, | 
|   | 
|   //点击选中天数 | 
|   chooseDay: function(e) { | 
|     var _this = this; | 
|     var day = e.currentTarget.dataset.day; | 
|     var monIndex = e.currentTarget.dataset.monindex; | 
|     var dayIndex = e.currentTarget.dataset.dayindex; | 
|     var dayNode = 'months[' + monIndex + '].dates[' + dayIndex + '].status' | 
|     var preDay = this.data.preDay; | 
|     console.log(dayNode); | 
|     if (preDay.length > 0) { | 
|       this.setData({ | 
|         [dayNode]: 3, | 
|         preDay: dayNode, | 
|         [preDay]: 1, | 
|         currentHoursIndex: 0, | 
|         sellectDay: day, | 
|       }) | 
|     } else { | 
|   | 
|       //清空初始赋值 | 
|       var month = this.data.months[0]; | 
|       for (var i = 0; i < month.dates.length; i++) { | 
|         if (month.dates[i].status == 3) { | 
|           month.dates[i].status == 3 | 
|           var initdayNode = 'months[0].dates[' + i + '].status' | 
|           this.setData({ | 
|             [initdayNode]: 1, | 
|           }) | 
|         } | 
|       } | 
|       //选中点击 | 
|       this.setData({ | 
|         [dayNode]: 3, | 
|         preDay: dayNode, | 
|         currentHoursIndex: 0, | 
|         sellectDay: day, | 
|         preTimeIndex: null, | 
|       }) | 
|     } | 
|     this.loadWeeks(day); | 
|     this.closeTc(); | 
|     this.cleanSelectMasseuse(); | 
|   }, | 
|   | 
|   /** | 
|    * 选择技师 | 
|    */ | 
|   | 
|   | 
|   /** | 
|    * 下一步 | 
|    */ | 
|   continueYuyue: function() { | 
|     console.log("下一步"); | 
|   | 
|   | 
|   | 
|     if (!this.data.hasChooseService) { | 
|       wx.showToast({ | 
|         title: '请选择服务', | 
|         icon: 'none', | 
|       }) | 
|       return; | 
|     } | 
|   | 
|     var preTimeIndex = this.data.preTimeIndex; | 
|     if (!util.isNotBlank(preTimeIndex)) { | 
|       wx.showToast({ | 
|         title: '请先选择预约时间', | 
|         icon: 'none', | 
|       }) | 
|       return; | 
|     } | 
|   | 
|   | 
|     var sellectDay = this.data.sellectDay; | 
|     var hours = this.data.hours; | 
|     var beginTime = sellectDay + " " + hours[preTimeIndex].hour; | 
|   | 
|     var serviceOrder = { | 
|       shopInfo: this.data.shopInfo, | 
|       time: beginTime, | 
|       shopProduct: this.data.service, | 
|     }; | 
|   | 
|     if (!this.data.unneededMasseuse) { | 
|       serviceOrder['staffInfo'] = this.data.masseuse; | 
|     } | 
|     debugger | 
|     wx.setStorageSync("serviceOrder", serviceOrder); | 
|   | 
|     wx.navigateTo({ | 
|       url: '/pages/yuyue/yyInfo?model=0', | 
|     }); | 
|     this.cleanSelectMasseuse(); | 
|   | 
|   | 
|   }, | 
|   | 
|   /** | 
|    * 生命周期函数--监听页面初次渲染完成 | 
|    */ | 
|   onReady: function() { | 
|   | 
|   }, | 
|   | 
|   | 
|   | 
|   /** | 
|    * 生命周期函数--监听页面隐藏 | 
|    */ | 
|   onHide: function() { | 
|   | 
|   }, | 
|   | 
|   /** | 
|    * 生命周期函数--监听页面卸载 | 
|    */ | 
|   onUnload: function() { | 
|   | 
|   }, | 
|   | 
|   /** | 
|    * 页面相关事件处理函数--监听用户下拉动作 | 
|    */ | 
|   onPullDownRefresh: function() { | 
|   | 
|   }, | 
|   | 
|   /** | 
|    * 页面上拉触底事件的处理函数 | 
|    */ | 
|   onReachBottom: function() { | 
|   | 
|   }, | 
|   | 
|   /** | 
|    * 用户点击右上角分享 | 
|    */ | 
|   onShareAppMessage: function() { | 
|   | 
|   } | 
| }) |