const app = getApp(); import productApi from '../../api/product' import storeApi from '../../api/store' import createTimeApi from '../../utils/date' import orderApi from '../../api/order' import until from '../../utils/util' Page({ /** * 页面的初始数据 */ data: { peopleNum: 1, activeTab: 0, shopInfo: {}, shopId: 0, storeName: '', productId: 0, productImg: '', productName: '', price: 0, tabs: [], orderTime: "", orderTimeHeight: 0, days: [], hasMobile: false, mobile: '', address:'', shopName:'', userName:'' }, /** * 生命周期函数--监听页面加载 */ onLoad: async function (options) { console.log(options) let shopId = options.shopId; let productId = options.productId const isAuth = await app.isAuth() if (!isAuth) { wx.redirectTo({ url: '/pages/prompt/prompt?page=' + this.route+`&shopId=${shopId}&productId=${productId}`, }) return } let storeInfo = await storeApi.getStoreById(shopId); let address = storeInfo.info.address; let shopName = storeInfo.info.shopName; let product = await productApi.getProductById(productId); let productImg = product.info.productImg; let productName = product.info.productName; let price = product.info.currentPrice; this.setData({ shopId, productId, productImg, productName, price, address, shopName }) let userInfo = await app.getWxUserInfo(); console.log(userInfo.name) if (userInfo) { this.setData({ userInfo: userInfo, hasUserInfo: true, hasMobile: userInfo.mobile.length > 1 ? true : false, mobile: userInfo.mobile, userName:userInfo.name }) } await this.createTimeList(); }, checkAuth: async function () { const self = this const isAuth = await app.isAuth() if (!isAuth) { wx.redirectTo({ url: '/pages/appointment/appointment?page=' + this.route, }) return } if (!self.data.orderTime){ wx.showModal({ title: '提示', content: '请选择预约时间', showCancel:false, }) return } if (!self.data.mobile){ wx.showModal({ title: '提示', content: '请输入手机号', showCancel:false, }) return } let data = { productId: self.data.productId, storeId: self.data.shopId, appointmentTime: self.data.orderTime, num: self.data.peopleNum, mobile: self.data.mobile } const rs = await orderApi.createOrder(data) let orderId = rs.orderId; wx.requestPayment({ timeStamp: rs.timeStamp, nonceStr: rs.nonceStr, package: rs.package, signType: rs.signType, paySign: rs.paySign, success (res) { setTimeout(()=>{ wx.navigateTo({ url: '../order/order?id=' + orderId, }) },2000) }, fail (res) { wx.navigateTo({ url: '../order/order?id=' + orderId, }) } }) }, getMobile: async function (params) { console.log(params); let _self = this const data = { encryptedData:params.detail.encryptedData, iv: params.detail.iv } const userInfo = await app.getPhoneNumber(data) console.log(userInfo.mobile) let hasMobile = false if (userInfo.mobile > 1) { hasMobile = true } _self.setData({ hasMobile: hasMobile, mobile: userInfo.mobile, }) }, onSlideChangeEnd: function (e) { var that = this; that.setData({ activeTab: e.detail.index }) }, //生成当前可预约的时间 createTimeList: async function () { var storeId = this.data.shopId; var price = this.data.price; var shopInfo = await storeApi.getStoreById(storeId); var openTime = shopInfo.info.openTime; var closeTime = shopInfo.info.closeTime; var date = await storeApi.getStoreAppointTime(storeId); var days = date.date; console.log(days) console.log(price) const tabs = createTimeApi.createTimeList(openTime, closeTime, days, price); console.log(tabs) this.setData({ storeName: shopInfo.info.storeName, days, tabs }) }, getOrderTime: function (e) { //选中日期的下标 var i = this.data.activeTab; //选中时间的下标 var index = e.currentTarget.dataset.i; //获取选中的日期 let date = this.data.days[i]; let time = e.currentTarget.dataset.time; let year = (new Date()).getFullYear() let oTime = year + '-' + date + ' ' + time; //设置选中的样式 var tabs = this.data.tabs; var list = tabs[i].list; //先清空其他选中的样式 list.forEach(function (item, i, array) { item.checked = false; }) //设置在开通时间内选中的样式 if (list[index].inTime) { list[index].checked = true; this.data.tabs[i].list = list; this.setData({ tabs, orderTime: oTime, }) } }, addPeopleNum: function (e) { var num = e.currentTarget.dataset.num; var maxNum = 9; if (num < maxNum) { num++; } this.setData({ peopleNum: num }) }, reducePeopleNum: function (e) { var num = e.currentTarget.dataset.num; if (num > 1) { num--; } this.setData({ peopleNum: num }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: async function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, })