333 lines
6.7 KiB
JavaScript
333 lines
6.7 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;
|
|
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) {
|
|
console.log(e.detail);
|
|
app.$pay.payWxLoing(e.detail).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
|
|
})
|
|
}
|
|
}) |