Files
venue_wx/pages/confirmOrder/index.js

351 lines
7.2 KiB
JavaScript

// pages/confirmOrder/index.js
const app = getApp();
import {
getCurrentPageUrl
} from './../../utils/util.js'
let id = '';
let venueId = '';
let venueType = '';
Page({
/**
* 页面的初始数据
*/
data: {
count: 1,
lessonOrder: {},
memberCard: {},
memberCardNum: 0,
showUnclickMask: false,
memberCardList: [],
showCardPopup: false,
isWxLogin: false,
payType: 2
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
id = options.id;
venueId = options.venueId;
venueType = options.venueType;
this.getData();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
this.setData({
showUnclickMask: false
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
return {
title: '智慧云馆'
}
},
// 选择会员卡
selectMembershipCard() {
if (this.data.memberCardNum == 0) {
return;
}
this.setData({
showCardPopup: true
})
},
// 增加数量
add() {
if (this.data.count >= (this.data.lessonOrder.num - this.data.lessonOrder.saleNum)) {
wx.showToast({
title: '库存不足',
icon: 'none',
duration: 2000,
})
return;
}
if (this.data.memberCard.cardType) {
wx.showToast({
title: '使用会员卡仅能预约一人',
icon: 'none',
duration: 2000,
})
return;
}
if (this.data.count >= 4) {
wx.showToast({
title: '每单最多预约四人',
icon: 'none',
duration: 2000,
})
return;
}
if (this.data.count >= 1 && this.data.lessonOrder.price == 0) {
wx.showToast({
title: '免费课程仅能预约一人',
icon: 'none',
duration: 2000,
})
return;
}
this.setData({
count: ++this.data.count
})
},
// 减少人数
sub() {
if (this.data.count == 1) {
return;
}
this.setData({
count: --this.data.count
})
},
// 确认订单
confirmOrder() {
let that = this;
let info = wx.getStorageSync('information') || {};
if (!info.mobile) {
wx.showModal({
title: '提示',
content: '根据场馆实名预约要求,需先绑定手机号才能完成预约或支付。',
confirmText: '去绑定',
success(modRes) {
if (modRes.confirm) {
wx.navigateTo({ url: '/pages/userInfo/index' })
}
}
});
return;
}
this.setData({
showUnclickMask: true
})
wx.showLoading({
title: '加载中...',
})
if (this.data.memberCard.cardType) {
app.$api.memberLessonTicketOrderMemberCard({
lessonId: id,
memberCardId: this.data.memberCard.id,
num: this.data.count
}).then(res => {
wx.showToast({
title: '预约成功',
icon: 'success',
duration: 2000
})
setTimeout(function() {
that.setData({
showUnclickMask: false
})
wx.redirectTo({
url: '/pages/myBookings/index?orderSn=' + res.orderSn,
})
}, 2000)
}, err => {
that.setData({
showUnclickMask: false
})
})
} else {
app.$api.memberLessonTicketOrderWX({
lessonId: id,
num: this.data.count,
type:this.data.payType
}).then(res => {
if (!res.pay.time_stamp) {
wx.showToast({
title: '预约成功',
icon: 'success',
duration: 2000
})
setTimeout(function() {
that.setData({
showUnclickMask: false
})
wx.redirectTo({
url: '/pages/myBookings/index?orderSn=' + res.pay.orderSn,
})
}, 2000)
return;
}
app.$pay.wxPay(res.pay).then(data => {
setTimeout(function() {
that.setData({
showUnclickMask: false
})
wx.redirectTo({
url: '/pages/myBookings/index?orderSn=' + res.pay.orderSn,
})
}, 2000)
}, err => {
console.log("SSSSS")
wx.showToast({
title: '取消支付,预约失败',
icon: 'none'
})
this.setData({
showUnclickMask: false
})
});
}, err => {
this.setData({
showUnclickMask: false,
})
if (err.data.err_code == 30022) {
this.setData({
isWxLogin: true,
isShowBuyVip: false
})
}
})
}
},
getData() {
wx.showLoading({
title: '加载中...',
})
app.$api.venueLessonOrder({
lessonId: id,
venueId: venueId,
venueType: venueType
}).then(res => {
for (let i = 0; i < res.memberCard.length; i++) {
if (res.memberCard[i].status == 1 && res.memberCard[i].cardFlg == 0) {
this.data.memberCard = res.memberCard[i];
}
if (res.memberCard[i].cardFlg == 0) {
this.data.memberCardNum++;
}
res.memberCard[i].startTime = res.memberCard[i].startTime.split(' ')[0];
res.memberCard[i].endTime = res.memberCard[i].endTime.split(' ')[0];
}
this.setData({
lessonOrder: res.lessonOrder,
memberCardList: res.memberCard,
memberCard: this.data.memberCard,
memberCardNum: this.data.memberCardNum
})
}, err => {
})
},
// 隐藏会员卡弹框
cencalCardBox() {
this.setData({
showCardPopup: false
})
},
unTap() {
return;
},
unUserCard() {
this.setData({
memberCard: {},
showCardPopup: false
})
},
// 选择会员卡
changeCard(e) {
let id = e.currentTarget.dataset.id;
let obj = {};
for (let i = 0; i < this.data.memberCardList.length; i++) {
if (id == this.data.memberCardList[i].id) {
obj = this.data.memberCardList[i]
}
}
this.setData({
memberCard: obj,
showCardPopup: false,
count: 1
})
},
// 取消授权登录
cancelDeleteDialog() {
this.setData({
isWxLogin: false
})
},
// 授权微信
getUserInfo(e) {
wx.getUserProfile({
desc: '用于完善会员资料',
success: (res) => {
app.$pay.payWxLoing(res).then(res => {
wx.showToast({
title: '绑定成功',
duration: 2000,
})
this.setData({
isWxLogin: false
})
}, err => {
this.setData({
isWxLogin: false
})
})
}
});
},
// 选中支付方式
changePayType(e) {
this.setData({
payType: e.currentTarget.dataset.type
})
}
})