|
|
|
@@ -1,540 +0,0 @@ |
|
|
|
var config = require("../../config/config.js"); |
|
|
|
var app = getApp(); |
|
|
|
const Http = require("../../utils/HttpBasics"); |
|
|
|
const util = require("../../utils/util"); |
|
|
|
|
|
|
|
Page({ |
|
|
|
data: { |
|
|
|
data: { |
|
|
|
title: null |
|
|
|
}, |
|
|
|
showPage: false, |
|
|
|
questions1: null, |
|
|
|
questions2: null, |
|
|
|
carList: [], |
|
|
|
couponChannelId: null, |
|
|
|
couponId: null, |
|
|
|
orderId: "", |
|
|
|
hour: null, |
|
|
|
minute: "", |
|
|
|
tempFilePaths: null, |
|
|
|
userInfo: {}, |
|
|
|
hasUserInfo: false, |
|
|
|
canIUse: wx.canIUse('button.open-type.getUserInfo'), |
|
|
|
id: null, |
|
|
|
result: [], |
|
|
|
end_time: null, |
|
|
|
checked: false, |
|
|
|
clock: "已经截止", |
|
|
|
questionnaire: {}, |
|
|
|
questionId: null, |
|
|
|
widthScreen: null, |
|
|
|
moveData: null, |
|
|
|
rotateData: null, |
|
|
|
alphaData: null, |
|
|
|
scaleData: null, |
|
|
|
skewData: null, |
|
|
|
matrixData: null, |
|
|
|
opacity: 0, |
|
|
|
queueData: null, |
|
|
|
zIndex: 11, |
|
|
|
display: "none", |
|
|
|
showbutton: false |
|
|
|
}, |
|
|
|
phone: function (e) { |
|
|
|
let that = this; |
|
|
|
wx.makePhoneCall({ |
|
|
|
phoneNumber: e.target.dataset.merchantlinkphone |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 点击提交问题单选 |
|
|
|
*/ |
|
|
|
formSubmit: function (e) { |
|
|
|
console.log(e); |
|
|
|
let that = this; |
|
|
|
/** |
|
|
|
* 多选 |
|
|
|
*/ |
|
|
|
if (e.currentTarget.dataset.flags == 'multi') { |
|
|
|
if (that.data.anwserId.length == 0) { |
|
|
|
var answserIs = null |
|
|
|
} else { |
|
|
|
var answserIs = that.data.anwserId.join(","); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (e.currentTarget.dataset.flags == 'single') { |
|
|
|
var answserIs = e.detail.value; |
|
|
|
} |
|
|
|
console.log(answserIs) |
|
|
|
console.log(e.currentTarget.dataset.questionid) |
|
|
|
Http.post({ |
|
|
|
url: config.api.answerQuestion, |
|
|
|
data: { |
|
|
|
answer: answserIs, |
|
|
|
questionId: e.currentTarget.dataset.questionid |
|
|
|
} |
|
|
|
}) |
|
|
|
.then(res => { |
|
|
|
that.closeQuestion(); |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
wx.showToast({ |
|
|
|
title: err.message, |
|
|
|
icon: 'none', |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
}) |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 多选 |
|
|
|
*/ |
|
|
|
checkboxChange: function (e) { |
|
|
|
console.log(e) |
|
|
|
this.setData({ |
|
|
|
anwserId: e.detail.value |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
closeQuestion: function () { |
|
|
|
let that = this; |
|
|
|
that.setData({ |
|
|
|
display: "none", |
|
|
|
zIndex: 11, |
|
|
|
opacity: 0 |
|
|
|
}) |
|
|
|
setTimeout(function () { |
|
|
|
that.orderFunc(); |
|
|
|
}, 500) |
|
|
|
}, |
|
|
|
/** |
|
|
|
* gotopay |
|
|
|
*/ |
|
|
|
gotopay: function () { |
|
|
|
let that = this; |
|
|
|
that.setData({ |
|
|
|
queueData: null, |
|
|
|
showbutton: true |
|
|
|
}) |
|
|
|
Http.get({ |
|
|
|
url: config.api.getQuestion, |
|
|
|
data: { |
|
|
|
couponType: JSON.stringify(that.data.data.type) |
|
|
|
} |
|
|
|
}) |
|
|
|
.then(res => { |
|
|
|
console.log(res); |
|
|
|
if (res.data == undefined) { |
|
|
|
that.orderFunc(); |
|
|
|
that.setData({ |
|
|
|
flag: false |
|
|
|
}) |
|
|
|
} else if (res.data) { |
|
|
|
var animation = wx.createAnimation({}); |
|
|
|
animation.translate((that.data.widthScreen - that.data.widthScreen), 0).scale(1).opacity(1).step({ |
|
|
|
duration: 500 |
|
|
|
}) |
|
|
|
that.setData({ |
|
|
|
queueData: animation.export(), |
|
|
|
zIndex: 9, |
|
|
|
opacity: 1, |
|
|
|
display: "block", |
|
|
|
questionnaire: JSON.parse(res.data.content), |
|
|
|
questionId: res.data.id |
|
|
|
}); |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
wx.showToast({ |
|
|
|
title: err.message, |
|
|
|
icon: 'none', |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
countdown(end_time) { |
|
|
|
let that = this; |
|
|
|
var EndTime = end_time; |
|
|
|
var NowTime = new Date().getTime(); |
|
|
|
var total_micro_second = EndTime - NowTime || []; |
|
|
|
// 渲染倒计时时钟 |
|
|
|
let obj = that.dateformat(total_micro_second); |
|
|
|
if (total_micro_second > 0) { |
|
|
|
that.setData({ |
|
|
|
clock: obj, |
|
|
|
day: obj.a1, |
|
|
|
hour: obj.b1, |
|
|
|
min: obj.c1, |
|
|
|
sec: obj.d1, |
|
|
|
}) |
|
|
|
} else { |
|
|
|
that.setData({ |
|
|
|
clock: "00", |
|
|
|
day: "00", |
|
|
|
hour: "00", |
|
|
|
min: "00", |
|
|
|
sec: "00", |
|
|
|
}) |
|
|
|
} |
|
|
|
setTimeout(function () { |
|
|
|
total_micro_second -= 1000; |
|
|
|
that.countdown(end_time); |
|
|
|
}, 1000) |
|
|
|
}, |
|
|
|
|
|
|
|
// 时间格式化输出,如11:03 25:19 每1s都会调用一次 |
|
|
|
dateformat(micro_second) { |
|
|
|
// 总秒数 |
|
|
|
var second = Math.floor(micro_second / 1000); |
|
|
|
// 天数 |
|
|
|
var day = Math.floor(second / 3600 / 24) < 10 ? "0" + Math.floor(second / 3600 / 24) : Math.floor(second / 3600 / 24); |
|
|
|
// 小时 |
|
|
|
var hr = Math.floor(second / 3600 % 24) < 10 ? "0" + Math.floor(second / 3600 % 24) : Math.floor(second / 3600 % 24); |
|
|
|
// 分钟 |
|
|
|
var min = Math.floor(second / 60 % 60) < 10 ? "0" + Math.floor(second / 60 % 60) : Math.floor(second / 60 % 60); |
|
|
|
// 秒 |
|
|
|
var sec = Math.floor(second % 60) < 10 ? "0" + Math.floor(second % 60) : Math.floor(second % 60); |
|
|
|
|
|
|
|
// return day + "天" + hr + "小时" + min + "分钟" + sec + "秒"; |
|
|
|
return { |
|
|
|
a1: day, |
|
|
|
b1: hr, |
|
|
|
c1: min, |
|
|
|
d1: sec |
|
|
|
} |
|
|
|
}, |
|
|
|
onLoad(options) { |
|
|
|
let that = this; |
|
|
|
wx.showLoading({ |
|
|
|
title: "加载中..." |
|
|
|
}); |
|
|
|
that.setData({ |
|
|
|
couponChannelId: options.couponChannelId, |
|
|
|
couponId: options.couponId, |
|
|
|
title: that.data.data.title ? that.data.data.title : '', |
|
|
|
}); |
|
|
|
var parmer = { |
|
|
|
url: config.api.couponDetail, |
|
|
|
data: { |
|
|
|
couponChannelId: options.couponChannelId |
|
|
|
} |
|
|
|
}; |
|
|
|
Http.get(parmer) |
|
|
|
.then(res => { |
|
|
|
if (res.code == 200) { |
|
|
|
that.setData({ |
|
|
|
showPage: true |
|
|
|
}) |
|
|
|
} |
|
|
|
if (res.data.endTime) { |
|
|
|
that.countdown(res.data.endTime); |
|
|
|
//当前时间与优惠券下架时间做计算 |
|
|
|
var endTime = util.formatTime(res.data.endTime, "yyyy-MM-dd hh:mm:ss"); |
|
|
|
if (util.timechuo(endTime).indexOf('-') == 0) { |
|
|
|
that.setData({ |
|
|
|
endtime: "活动已结束", |
|
|
|
}); |
|
|
|
} else { |
|
|
|
that.setData({ |
|
|
|
endtime: util.timechuo(endTime) |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
wx.hideLoading(); |
|
|
|
that.setData({ |
|
|
|
data: res.data |
|
|
|
}); |
|
|
|
|
|
|
|
if (res.data.validType == 1) { |
|
|
|
that.setData({ |
|
|
|
validStartDate: util.formatTime(res.data.validStartDate, "yyyy-MM-dd"), |
|
|
|
validEndDate: util.formatTime(res.data.validEndDate, "yyyy-MM-dd"), |
|
|
|
}); |
|
|
|
} else { |
|
|
|
that.setData({ |
|
|
|
validDays: res.data.validDays |
|
|
|
}); |
|
|
|
} |
|
|
|
}).catch(err => { |
|
|
|
wx.showToast({ |
|
|
|
title: err.message, |
|
|
|
icon: 'none', |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
}) |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 支付订单更新 |
|
|
|
*/ |
|
|
|
payOrderUpdate: (orderId, payOrderId, status, reason, type, _this) => { |
|
|
|
let that = this; |
|
|
|
// 支付成功 |
|
|
|
Http.post({ |
|
|
|
url: config.api.payOrderUpdate, |
|
|
|
data: { |
|
|
|
payOrderId: payOrderId, |
|
|
|
orderId: orderId, |
|
|
|
status: status, |
|
|
|
reason: reason |
|
|
|
} |
|
|
|
}) |
|
|
|
.then(res => { |
|
|
|
wx.hideLoading() |
|
|
|
// 有价券 |
|
|
|
if (!type && type != 'free') { |
|
|
|
wx.navigateTo({ |
|
|
|
url: `/pages/order/detail/index?orderId=${ |
|
|
|
orderId |
|
|
|
}` |
|
|
|
}); |
|
|
|
} else if (type == 'free') { |
|
|
|
wx.navigateTo({ |
|
|
|
url: `/pages/order/detail/index?orderId=${ |
|
|
|
orderId |
|
|
|
}` |
|
|
|
}); |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
console.log(err); |
|
|
|
if (!type) { |
|
|
|
setTimeout(function () { |
|
|
|
_this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this); |
|
|
|
}, 2000) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 发起支付 |
|
|
|
*/ |
|
|
|
orderFunc(flag) { |
|
|
|
var that = this; |
|
|
|
// wx.showLoading({ |
|
|
|
// title: "加载中..." |
|
|
|
// }); |
|
|
|
Http.post({ |
|
|
|
url: config.api.checkPhoneStatus, |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
.then(res => { |
|
|
|
var data = { |
|
|
|
couponChannelId: "" + that.data.couponChannelId, |
|
|
|
couponId: "" + that.data.couponId |
|
|
|
}; |
|
|
|
if (that.data.couponChannelId == null) { |
|
|
|
var data = { |
|
|
|
couponId: "" + that.data.couponId |
|
|
|
}; |
|
|
|
} |
|
|
|
/** |
|
|
|
* orderSave 下单 |
|
|
|
*/ |
|
|
|
return Http.post({ |
|
|
|
url: config.api.orderSave, |
|
|
|
data: data |
|
|
|
}); |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
if (err.code == "2011") { |
|
|
|
wx.showToast({ |
|
|
|
title: "商户信息没找到", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "2013") { |
|
|
|
wx.showToast({ |
|
|
|
title: "商户信息禁用", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "3000") { |
|
|
|
wx.showToast({ |
|
|
|
title: "库存不足", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "3001") { |
|
|
|
wx.showToast({ |
|
|
|
title: "领取达到上限", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "3002") { |
|
|
|
wx.showToast({ |
|
|
|
title: "订单失败", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "3003") { |
|
|
|
wx.showToast({ |
|
|
|
title: "订单不存在", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "3004") { |
|
|
|
wx.showToast({ |
|
|
|
title: "订单不存在", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == "4003") { |
|
|
|
wx.showToast({ |
|
|
|
title: "卡券已作废", |
|
|
|
image: "./../../../assets/img/fail.png", |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} else if (err.code == 11005) { |
|
|
|
/** |
|
|
|
* 将值传到用户手机号授权的页面 |
|
|
|
* |
|
|
|
*/ |
|
|
|
wx.redirectTo({ |
|
|
|
url: "/pages/getphoneInfo/index?couponChannelId=" + |
|
|
|
that.data.couponChannelId + |
|
|
|
"&couponId=" + |
|
|
|
that.data.couponId |
|
|
|
}); |
|
|
|
} else if (err.code == 11006) { |
|
|
|
// 用户手机已加密 |
|
|
|
wx.redirectTo({ |
|
|
|
url: "/pages/phoneinput/phoneinput?couponChannelId=" + |
|
|
|
that.data.couponChannelId + |
|
|
|
"&couponId=" + |
|
|
|
that.data.couponId |
|
|
|
}); |
|
|
|
} else { |
|
|
|
wx.showToast({ |
|
|
|
title: err.message, |
|
|
|
icon: 'none', |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
} |
|
|
|
}) |
|
|
|
.then(res => { |
|
|
|
if (typeof (res) != "undefined") { |
|
|
|
let orderId = "" + res.data.id; |
|
|
|
that.setData({ |
|
|
|
orderId: orderId |
|
|
|
}); |
|
|
|
if (res.data.payment > 0) { |
|
|
|
// 支付金额不为0 |
|
|
|
/** |
|
|
|
* 支付订单创建 |
|
|
|
*/ |
|
|
|
Http.post({ |
|
|
|
url: config.api.payOrderCreate, |
|
|
|
data: { |
|
|
|
orderId: orderId |
|
|
|
} |
|
|
|
}).then(res => { |
|
|
|
var payOrderId = "" + res.data.payOrderId; |
|
|
|
wx.hideLoading(); |
|
|
|
wx.requestPayment({ |
|
|
|
timeStamp: res.data.timeStamp, |
|
|
|
nonceStr: res.data.nonceStr, |
|
|
|
package: res.data.package, |
|
|
|
signType: (res.data.signType) ? res.data.signType : "MD5", |
|
|
|
paySign: res.data.paySign, |
|
|
|
success: res => { |
|
|
|
wx.showLoading({ |
|
|
|
title: '订单正在处理中...', |
|
|
|
}) |
|
|
|
setTimeout(function () { |
|
|
|
wx.hideLoading() |
|
|
|
}, 5000) |
|
|
|
that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); |
|
|
|
if (res.errMsg == "requestPayment:ok") { |
|
|
|
setTimeout(function () { |
|
|
|
wx.hideLoading(); |
|
|
|
}, 2000); |
|
|
|
/** |
|
|
|
* 用户支付成功以后跳转到券包列表 |
|
|
|
*/ |
|
|
|
wx.setStorage({ |
|
|
|
key: 'couponNum', |
|
|
|
data: "couponNum", |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
fail: res => { |
|
|
|
/** |
|
|
|
* 支付失败,需要更新订单的状态 |
|
|
|
*/ |
|
|
|
that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); |
|
|
|
that.setData({ |
|
|
|
showbutton: false |
|
|
|
}) |
|
|
|
return; |
|
|
|
}, |
|
|
|
complete: res => { } |
|
|
|
}); |
|
|
|
/// End payment -------- |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
wx.showToast({ |
|
|
|
title: err.message, |
|
|
|
icon: 'none', |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
}) |
|
|
|
} else { |
|
|
|
// 免费券 |
|
|
|
that.payOrderUpdate(orderId, "0", 1, '', 'free'); |
|
|
|
wx.setStorage({ |
|
|
|
key: 'couponNum', |
|
|
|
data: "couponNum" |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(err => { |
|
|
|
wx.showToast({ |
|
|
|
title: err.message, |
|
|
|
icon: 'none', |
|
|
|
duration: 2000, |
|
|
|
mask: false |
|
|
|
}); |
|
|
|
}) |
|
|
|
}, |
|
|
|
onShow() { |
|
|
|
this.setData({ |
|
|
|
showbutton: false |
|
|
|
}) |
|
|
|
}, |
|
|
|
onShareAppMessage: function (options) { |
|
|
|
var that = this; |
|
|
|
var shareObj = { |
|
|
|
title: that.data.data.title, |
|
|
|
path: `/pages/index/index?couponChannelId=${that.data.couponChannelId}&couponId=${that.data.couponId}`, |
|
|
|
success: function (res) { |
|
|
|
if (res.errMsg == 'shareAppMessage:ok') { } |
|
|
|
}, |
|
|
|
fail: function (error) { |
|
|
|
if (res.errMsg == 'shareAppMessage:fail cancel') { } else if (res.errMsg == 'shareAppMessage:fail') { } |
|
|
|
} |
|
|
|
}; |
|
|
|
// 来自页面内的按钮的转发 |
|
|
|
if (options.from == 'button') { |
|
|
|
var eData = options.target.dataset.id; |
|
|
|
var couponId = options.target.dataset.couponid; |
|
|
|
shareObj.path = `/pages/index/index?couponChannelId=${eData}&couponId=${couponId}`; |
|
|
|
} |
|
|
|
// 返回shareObj |
|
|
|
return shareObj; |
|
|
|
}, |
|
|
|
|
|
|
|
}); |