123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- 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:''
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: async function (options) {
- console.log(options)
- let shopId = options.shopId;
- let productId = options.productId
- let address = options.address;
- let shopName = options.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()
- if (userInfo) {
- this.setData({
- userInfo: userInfo,
- hasUserInfo: true,
- hasMobile: userInfo.mobile.length > 1 ? true : false,
- mobile: userInfo.mobile
- })
- }
- await this.createTimeList();
- },
- checkAuth: async function () {
- const self = this
- const isAuth = await app.isAuth()
- if (!isAuth) {
- wx.redirectTo({
- url: '/pages/prompt/prompt?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) {
- wx.navigateTo({
- url: '../order/order?id=' + orderId,
- })
- },
- 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)
- 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 () {
- },
- })
|