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() { } })