自动选择最优优惠券;是否可开发票判断

develop
mice2333 4 years ago
parent b72eaf5f25
commit 7dc2339671

@ -1,238 +1,298 @@
// pages/user/make_order/make_order.js
import Dialog from "@vant/weapp/dialog/dialog"
import {
httpUtil,
http
httpUtil,
http
} from '../../../utils/util'
Page({
/**
* 页面的初始数据
*/
data: {
rolled:true,
max_viewer_num:6
},
roll_spread() {
this.setData({
rolled: !this.data.rolled
})
},
viewer_nav(){
wx.navigateTo({
url: '/pages/user/viewer_list/viewer_list?_add=1',
})
},
de(){
this.setData({fee_detail:!this.data.fee_detail})
},
check(event){
this.setData({
checked: event.detail,
});
},
agreement(){
this.setData({show:true})
},
viewer_sel(event) {
this.setData({
viewer_sel: event.detail
});
},
toggle(event) {
const {
index
} = event.currentTarget.dataset;
const checkbox = this.selectComponent(`.checkboxes-${index}`);
checkbox.toggle();
},
noop() {},
onSubmit() {
if(this.data._info.show_info.is_real_name==1){
var tid = this.data.tid
var viewer_id = this.data.viewer_sel
if (viewer_id && tid.split(',').length == viewer_id.length) {
if(this.data.checked){
this.setData({show1:true})
}else{
wx.showToast({
title: '请勾选服务条款',
icon: 'none',
duration: 2000
})
}
} else {
wx.showToast({
title: '观演人数和座位数不符',
icon: 'none',
duration: 2000
})
}}else if(this.data._info.show_info.is_real_name==2){
var tid = this.data.tid
var viewer_id = this.data.viewer_sel
if (viewer_id && viewer_id.length==1) {
if(this.data.checked){
this.setData({show1:true})
}else{
wx.showToast({
title: '请勾选服务条款',
icon: 'none',
duration: 2000
})
}
} else {
wx.showToast({
title: '观演人数和座位数不符',
icon: 'none',
duration: 2000
})
}}
else{
if(this.data.checked){
this.setData({show1:true})
}else{
wx.showToast({
title: '请勾选服务条款',
icon: 'none',
duration: 2000
})
}
}
},
pay() {
var tid = this.data.tid
var viewer_id = this.data.viewer_sel
var arr = ""
for (var i in viewer_id) {
arr += "," + viewer_id[i]
}
viewer_id = arr.substring(1)
var order_data
let coupon =this.data.coupon
if (coupon && coupon.coupon_id && "underfined" !== coupon.coupon_id) {
order_data = {
order_type:8,
tid,
viewer_id,
coupon_id: coupon.coupon_id
/**
* 页面的初始数据
*/
data: {
rolled: true,
max_viewer_num: 6
},
roll_spread() {
this.setData({
rolled: !this.data.rolled
})
},
viewer_nav() {
wx.navigateTo({
url: '/pages/user/viewer_list/viewer_list?_add=1',
})
},
de() {
this.setData({
fee_detail: !this.data.fee_detail
})
},
check(event) {
this.setData({
checked: event.detail,
});
},
agreement() {
this.setData({
show: true
})
},
viewer_sel(event) {
this.setData({
viewer_sel: event.detail
});
},
toggle(event) {
const {
index
} = event.currentTarget.dataset;
const checkbox = this.selectComponent(`.checkboxes-${index}`);
checkbox.toggle();
},
noop() {},
onSubmit() {
if (this.data._info.show_info.is_real_name == 1) {
var tid = this.data.tid
var viewer_id = this.data.viewer_sel
if (viewer_id && tid.split(',').length == viewer_id.length) {
if (this.data.checked) {
this.setData({
show1: true
})
} else {
wx.showToast({
title: '请勾选服务条款',
icon: 'none',
duration: 2000
})
}
} else {
wx.showToast({
title: '观演人数和座位数不符',
icon: 'none',
duration: 2000
})
}
} else if (this.data._info.show_info.is_real_name == 2) {
var tid = this.data.tid
var viewer_id = this.data.viewer_sel
if (viewer_id && viewer_id.length == 1) {
if (this.data.checked) {
this.setData({
show1: true
})
} else {
wx.showToast({
title: '请勾选服务条款',
icon: 'none',
duration: 2000
})
}
} else {
wx.showToast({
title: '观演人数和座位数不符',
icon: 'none',
duration: 2000
})
}
} else {
if (this.data.checked) {
this.setData({
show1: true
})
} else {
wx.showToast({
title: '请勾选服务条款',
icon: 'none',
duration: 2000
})
}
}
} else {
order_data = {
order_type:8,
tid,
viewer_id
},
pay() {
var tid = this.data.tid
var viewer_id = this.data.viewer_sel
var arr = ""
for (var i in viewer_id) {
arr += "," + viewer_id[i]
}
}
http("/api/v1/order-submit", "post", order_data).then(res => {
wx.requestPayment({
timeStamp: res.timestamp,
nonceStr: res.nonceStr,
package: res.package,
signType: res.signType,
paySign: res.paySign,
success(res) {
console.log(res)
wx.showToast({
title: '支付成功!',
icon: 'success',
duration: 1000
})
setTimeout(function(){
wx.reLaunch({
url: '/pages/user/my_order/my_order'
})
}, 500);
},
fail(res) {
wx.showToast({
title: '支付未成功',
icon:'error',
duration: 2000
viewer_id = arr.substring(1)
var order_data
let coupon = this.data.coupon
if (coupon && coupon.coupon_id && "underfined" !== coupon.coupon_id) {
order_data = {
order_type: 8,
tid,
viewer_id,
coupon_id: coupon.coupon_id
}
} else {
order_data = {
order_type: 8,
tid,
viewer_id
}
}
http("/api/v1/order-submit", "post", order_data).then(res => {
wx.requestPayment({
timeStamp: res.timestamp,
nonceStr: res.nonceStr,
package: res.package,
signType: res.signType,
paySign: res.paySign,
success(res) {
console.log(res)
wx.showToast({
title: '支付成功!',
icon: 'success',
duration: 1000
})
setTimeout(function () {
wx.reLaunch({
url: '/pages/user/my_order/my_order'
})
}, 500);
},
fail(res) {
wx.showToast({
title: '支付未成功',
icon: 'error',
duration: 2000
})
setTimeout(function () {
wx.reLaunch({
url: '/pages/user/my_order/my_order'
})
}, 500);
}
})
setTimeout(function(){
wx.reLaunch({
url: '/pages/user/my_order/my_order'
})
}, 500);
}
})
})
},
},
// 使用最大减免优惠券
getRecommendCoupons(drama_id,tid){
http('/api/v1/coupon-list', "post", {drama_id,tid,mode:1}).then(Response => {
if (Response.coupon_list.length > 0) {
let coupon_list = Response.coupon_list
// 去除日期格式
let a = []
coupon_list.forEach((item) => {
item.end_date = item.end_date.replace(/[\u4e00-\u9fa5]/g, '')
a.push(item)
})
coupon_list = a
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
http("/api/v1/order-confirm", "post", {
tid:options.tid
}).then(res => {
let _info=res
/* ??????自己算总价???????? */
let tprice = 0
for(let i in _info.ticket_info){
tprice+=_info.ticket_info[i].price*_info.ticket_info[i].tkt_num
}
this.setData({
_info,tprice,
tid: options.tid,
drama_id: options.drama_id,
})
})
// 优惠券筛选策略
function couponSort(list, params) {
let descList
if (arguments[2] == 'asc') {
descList = list.sort((a, b) => {
return a[params] - b[params]
})
} else {
descList = list.sort((a, b) => {
return b[params] - a[params]
})
}
let l = []
l.push(descList[0])
descList.forEach((item, index) => {
if (index != 0 && item[params] == l[0][params]) {
l.push(item)
}
})
return l;
}
let recommendCoupons = couponSort(couponSort(couponSort(coupon_list, "subtract"), 'full'), 'end_date', 'asc')
if (recommendCoupons && recommendCoupons.length > 0) {
this.setData({
coupon: recommendCoupons[0]
})
}
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
http("/api/v1/order-confirm", "post", {
tid: options.tid
}).then(res => {
let _info = res
/* ??????自己算总价???????? */
let tprice = 0
for (let i in _info.ticket_info) {
tprice += _info.ticket_info[i].price * _info.ticket_info[i].tkt_num
}
},
this.getRecommendCoupons(options.drama_id,options.tid)
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
this.setData({
_info,
tprice,
tid: options.tid,
drama_id: options.drama_id,
})
})
},
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
}
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -13,7 +13,12 @@
</view>
<view class="line">
<van-icon name="passed" color="green" /> 不支持退票
<block wx:if="{{_info.show_info.is_invoice==0}}">
<van-icon name="close" color="red" /> 不可开发票
</block>
<block wx:elif="{{_info.show_info.is_invoice==1}}">
<van-icon name="passed" color="green" /> 可开发票
</block>
</view>
</view>
</view>

@ -21,7 +21,7 @@
<van-icon name="/images/ui/ellipsis.png" style="vertical-align:middle;" />
</navigator>
</view>
<scroll-view class="scroll-view_H" scroll-x="true">
<scroll-view class="scroll-view_H" scroll-x="true" >
<image class="scroll-item" wx:for="{{_li.list}}" data-abb_id="{{item.abb_id}}" src="{{item.pic}}"
bindtap="detail" />
</scroll-view>

@ -23,7 +23,12 @@
</view>
<view class="line" style="font-weight:normal;">
<van-icon name="passed" color="green" /> 不支持退票
<block wx:if="{{show_info.is_invoice==0}}">
<van-icon name="close" color="red" /> 不可开发票
</block>
<block wx:elif="{{show_info.is_invoice==1}}">
<van-icon name="passed" color="green" /> 可开发票
</block>
</view>
</view>
</view>

Loading…
Cancel
Save