// pages/spellGroup/mySpellGroup/index.js var config = require("../../../config/config.js"); const Http = require("../../../utils/HttpBasics"); const imgurl = require("../../../utils/imgurl"); const utils = require("../../../utils/util.js") Page({ /** * 页面的初始数据 */ data: { teljpgUrl: imgurl.teljpg.url, wmhome: imgurl.wmhome.url, couponChannelId:'', couponId:'', data:null, spellData:null, canSpell:true, canBuyIf:true, clock: "00", day: "00", hour: "00", min: "00", sec: "00", showTime:true }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ couponChannelId: options.couponChannelId, couponId: options.couponId }) if (options&&options.couponChannelId){ this.getDetail(options.couponChannelId); } if (options&&options.couponId){ this.getOneSpell(options.couponId) } this.getUserInfo(); }, getUserInfo: function () { let that = this; // 获取用户信息 Http.get({ url: config.api.getScore, data: {} }) .then(res => { console.log(res) that.setData({ nickName: res.data.nickName, avatarUrl: res.data.avatarUrl }) }) }, gotoIndex: function () { wx.switchTab({ url: '/pages/main/index', }) }, /** * 拨打电话 */ phone: function (e) { let that = this; wx.makePhoneCall({ phoneNumber: e.target.dataset.merchantlinkphone }); }, /** * 直接购买 */ gotoBuy(e){ console.log(22222) this.setData({ canBuyIf: false, formId:e.detail.formId }) this.orderFunc() }, // 时间格式化输出,如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 } }, countdown(time) { let that = this; var EndTime = time; if (that.data.spellData!=null){ EndTime = that.data.spellData.expiredDate; } var NowTime = new Date().getTime(); var total_micro_second = EndTime - NowTime || []; // 渲染倒计时时钟 let obj = that.dateformat(total_micro_second); console.log(obj) if (total_micro_second > 0) { that.setData({ clock: obj, day: obj.a1, hour: obj.b1, min: obj.c1, sec: obj.d1, }) } else { that.setData({ // spellData:null, clock: "00", day: "00", hour: "00", min: "00", sec: "00", }) // that.getOneSpell(that.data.couponId) } if(that.data.showTime){ setTimeout(function () { total_micro_second -= 1000; that.countdown(); }, 1000) } }, /** * 发起拼团 */ gotoSpell(){ console.log(111111111) this.setData({ canSpell:false }) this.orderFunc(0) }, //参与别人的拼团 gotoPartner(){ wx.navigateTo({ url: `/pages/joinFrDpell/index?orderId=${this.data.spellData.orderId}&couponId=${this.data.spellData.couponId}&orderGroupId=${this.data.spellData.orderGroupId}&couponChannelId=${this.data.couponChannelId}&avatarUrl=${this.data.spellData.avatarUrl}&nickName=${this.data.spellData.nickName}` }); }, /** * 获取一个拼团信息 */ getOneSpell(couponId){ let that = this; Http.get({ url: config.api.queryRemainOne, data: { couponId: couponId } }).then(res => { wx.stopPullDownRefresh(); if(res.data){ that.countdown(res.data.expiredDate); that.setData({ spellData: res.data }); } }); }, /** * 获取券详情信息 */ getDetail(couponChannelId){ let that = this; Http.get({ url: config.api.couponDetail, data: { couponChannelId: couponChannelId } }).then(res => { wx.stopPullDownRefresh(); let data = res.data; data.price = (data.price / 100).toFixed(2) data.salePrice = (data.salePrice / 100).toFixed(2); data.validStartDate = utils.formatTime(data.validStartDate,'yyyy-MM-dd') data.validEndDate = utils.formatTime(data.validEndDate, 'yyyy-MM-dd') that.setData({ data }); }); }, /** * 去拼团 */ goToOrderGroup(orderId, orderGroupId, _this){ console.log(22222222) let that = this; // 支付成功 Http.post({ url: config.api.toOrderGroup, data: { id: orderGroupId, orderId, couponId: _this.data.data.couponId } }) .then(res => { wx.navigateTo({ url: `/pages/spellDetail/index?orderId=${orderId}&couponId=${_this.data.data.couponId}&orderGroupId=${res.data.orderGroupId}&couponChannelId=${_this.data.couponChannelId}` }); }) .catch(err => { console.log(err); }) // return; }, /** * 支付订单更新 */ payOrderUpdate: (orderId, payOrderId, status, reason, _this, orderGroupId) => { console.log(orderGroupId,7777) let that = this; // 支付成功 Http.post({ url: config.api.payOrderUpdate, data: { payOrderId: payOrderId, orderId: orderId, status: status, reason: reason } }) .then(res => { wx.hideLoading() if (orderGroupId==undefined){ wx.navigateTo({ url: '/pages/order/detail/index?orderId='+res.data.id, }) }else{ _this.goToOrderGroup(orderId, res.data.orderGroupId, _this) } }) .catch(err => { console.log(err); if (err.code!=12002){ setTimeout(function () { _this.payOrderUpdate(orderId, payOrderId, status, reason, _this, orderGroupId); }, 2000) } }) }, /** * 发起支付 */ orderFunc(orderGroupId) { let data = { couponChannelId: this.data.data.id, couponId: this.data.data.couponId, formId:this.data.formId } /** * 拼团订单 */ if (orderGroupId==0){ data.orderGroupId = orderGroupId } var that = this; Http.get({ url: config.api.checkPhoneStatus, data: {} }) .then(res => { /** * orderSave 下单 */ return Http.post({ url: config.api.orderSave, data: data }); }) .catch(err => { console.log(err); that.setData({ showbutton: false, showbutton1: false, canSpell: true, canBuyIf: true }) if (err.code == 2011) { wx.showToast({ title: "商户信息没找到", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 2013) { wx.showToast({ title: "商户信息禁用", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3000) { wx.showToast({ title: "库存不足", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3001) { wx.showToast({ title: "超过限购条件", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3002) { wx.showToast({ title: "订单失败", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3003) { wx.showToast({ title: "订单不存在", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 3004) { wx.showToast({ title: "订单不存在", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 4003) { wx.showToast({ title: "卡券已作废", image: './../../../assets/images/fail.png', duration: 2000, mask: false }); } else if (err.code == 11005) { /** * 将值传到用户手机号授权的页面 * */ wx.redirectTo({ url: "/pages/getphoneInfo/index?path=spell&couponChannelId=" + that.data.couponChannelId + '&couponId=' + that.data.couponId }); } else if (err.code == 11006) { // 用户手机已加密 wx.redirectTo({ url: "/pages/phoneinput/phoneinput?path=spell&couponChannelId=" + that.data.couponChannelId + '&couponId=' + that.data.couponId }); } else { wx.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); } }) .then(res => { console.log(res) if (typeof (res) != "undefined") { let orderId = "" + res.data.id; that.setData({ orderId: orderId, canSpell: false, canBuyIf: true }); // 支付金额不为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 => { that.setData({ canSpell: false }) wx.showLoading({ title: '订单正在处理中...', }) setTimeout(function () { wx.hideLoading() }, 5000) that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', that, orderGroupId); if (res.errMsg == "requestPayment:ok") { setTimeout(function () { wx.hideLoading(); }, 2000); } }, fail: res => { /** * 支付失败,需要更新订单的状态 */ that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', that, orderGroupId); that.setData({ showbutton: false, canSpell: true, canBuyIf: true }) return; }, complete: res => { } }); /// End payment -------- }) .catch(err => { that.setData({ canSpell: true, canBuyIf: true }) wx.showToast({ title: err.message, icon: 'none', duration: 2000, mask: false }); }) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { this.setData({ canSpell:true, canBuyIf:true, showTime: true }) if(this.data.spellData!=null){ this.countdown() } }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { this.setData({ showTime: false }) }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { this.setData({ showTime: false }) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function (e) { let that=this; that.getDetail(that.data.couponChannelId); that.getOneSpell(that.data.couponId) }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { } })