// packageC/orders/Lottery/Lottery.js var app = getApp(); Page({ /** * 页面的初始数据 */ data: { goods:[], radio: '', zIndex:999, show:false, swiperName: { // 获奖名单 loop: true, // 当获奖人数大于等于5的时候滚动,否则不滚动 direction: "vertical", slidesPerView: 5, freeMode: true, freeModeMomentum: true, freeModeMomentumVelocityRatio: 1, autoplay: 1000, }, // mobile: '15114785236', prizeIndex: 999, arrNum: [0, 1, 2, 3, 7, 11, 15, 14, 13, 12, 8, 4], // 定义转动的顺序 clickFlage: true, // 点击事件,防止重复点击 prizeInfoShow: false, // 显示中奖信息的遮罩层 noPrizeShow: false, // 没中奖 havePrizeShow: false, // 中奖了 haveLottery: false, // 已经抽过奖了 timer1: "", timer2: "", s1: "", s2: -1, lotteryId: "", // 抽奖活动的id activityModel: {}, // 活动说明 hasRecord: false, // 是否显示获奖情况 remainingTimes: 0, // 剩余抽奖次数 prizeList: [], // 奖项列表 prizeLevel: "", // 中奖等级 prizeName: "", // 奖品名称 prizeUrl: "", // 奖品图片 prizers: [], // 获奖名单 timeFlag: 0, // 时间标记,抽奖请求时间过长,则返回错误 startStatus: 1, // 活动开始的状态 prizerListBol: false, lotteryInfo: {}, prizeInfo: {}, love:0, amount_word: "", love_word: "", point_word: "", toolbar: false, empty_prize_prompt: "", //未中奖提示 share_id:'' }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { if (options.mid) { app._setMid(options.mid); } if(options.share_id){ this.setData({ share_id:options.share_id }); } console.log(this.data.share_id); if (options.lotteryId) { this.setData({ lotteryId: options.lotteryId }); } this.getData(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function() { }, /** * 生命周期函数--监听页面显示 */ onShow: function() { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function() { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { }, /** * 用户点击右上角分享 */ onShareTimeline: function () { let value = wx.getStorageSync('yz_uid'); let mid = ''; if (value) { mid = value; } return { query: 'lotteryId=' + this.data.lotteryId + '&mid=' + mid }; }, /** * 用户点击右上角分享 */ onShareAppMessage: function(res) { var value = wx.getStorageSync('yz_uid'); var mid = ''; if (value) { mid = value; } // if (res && res.from === 'menu') { // // 来自右上角转发按钮 // this.getShare(); // console.log("target menu"); // } return { path: '/packageC/orders/Lottery/Lottery?lotteryId=' + this.data.lotteryId + '&mid=' + mid + '&share_id=' + mid, }; }, confirmGoods() { this.setData({ show:false }); if(this.data.radio){ wx.navigateTo({ url: '/packageA/detail_v2/detail_v2?id=' + this.data.radio }); } }, // getShare(){ // let that = this; // let urlStr = app.getNetAddresss("plugin.lucky-draw.frontend.draw.getShare"); // app._getNetWork({ // url: urlStr, // data: { // lotteryId: this.data.lotteryId // }, // success: function (resdata) { // var res = resdata.data; // if (res.result == 1) { // that.getData(); // } // }, // fail: function (res) { // console.log(res); // } // }); // }, getData() { let that = this; let urlStr = app.getNetAddresss("plugin.lucky-draw.frontend.draw.index"); if(this.data.share_id){ // 如果有share_id传给后端抽奖次数加1 urlStr += '&share_id='+this.data.share_id; } app._getNetWork({ url: urlStr, data: { lotteryId: this.data.lotteryId }, success: function(resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ shop_logo: res.data.shop_logo, amount_word: res.data.amount_word, love_word: res.data.love_word, point_word: res.data.point_word, credit1: res.data.point.credit1, success_mini_url: res.data.activityModel.success_mini_url, goods: res.data.goods, activityModel: res.data.activityModel, remainingTimes: res.data.surplus_time }); if(res.data.love){ that.setData({ love:res.data.love[0], }); } if(res.data.goods && res.data.goods.length>0){ that.setData({ radio: res.data.goods[0].id }); } res.data.result_arr.forEach(item => { item.bgSrc = "https://mini-app-img-1251768088.cos.ap-guangzhou.myqcloud.com/lottery/item_bg.png"; }); res.data.result_arr.splice(5, 0, " "); res.data.result_arr.splice(6, 0, " "); res.data.result_arr.splice(9, 0, " "); res.data.result_arr.splice(10, 0, " "); that.setData({ prizeList: res.data.result_arr, prizers: res.data.list }); let temp = that.data.prizeList[4]; that.setData({ 'prizeList[4]': that.data.prizeList[7], 'prizeList[7]': temp }); temp = that.data.prizeList[12]; that.setData({ 'prizeList[12]': that.data.prizeList[13], 'prizeList[13]': temp }); temp = that.data.prizeList[14]; that.setData({ 'prizeList[14]': that.data.prizeList[15], 'prizeList[15]': temp }); that.statusFun( Date.parse(new Date()) / 1000, that.data.activityModel.countdown_time[0], that.data.activityModel.countdown_time[1] ); // 获取状态,开始,未开始,结束 if (that.data.prizers && that.data.prizers.length > 5) { that.setData({ prizerListBol: true }); } } }, fail: function(res) { console.log(res); } }); }, statusFun(c, s, e) { if (c < s) { // 当前时间小于开始时间,未开始 this.setData({ startStatus: 0 }); } else if (c > s && c < e) { // 当前时间大于开始时间,并且小于结束时间,已经开始未结束 this.setData({ startStatus: 1 }); } else if (c > e) { // 当前时间大于结束时间,已经结束 this.setData({ startStatus: 2 }); } }, prizeZhuan() { let that = this; this.setData({ prizeIndex: 0 }); if (this.data.remainingTimes > 0) { // 判断剩余抽奖次数 if (this.data.clickFlage) { if (this.data.startStatus === 1) { // 活动开始 this.setData({ clickFlage: false, // 不能点击 timer1: setInterval(()=>{this.move();}, 100) }); let urlStr = app.getNetAddresss("plugin.lucky-draw.frontend.draw.doDraw"); app._getNetWork({ url: urlStr, data: { lotteryId: this.data.lotteryId }, success: function(resdata) { var res = resdata.data; if (res.result == 1) { that.setData({ remainingTimes: that.data.remainingTimes - 1 }); if (res.data.result) { that.setData({ hasRecord: true, prozeLevel: res.data.result.item, prizeName: res.data.result.prize, prizeUrl: res.data.result.thumb_url }); // 更新页面数据 任务:#71863 that.getData(); } else { // 更新页面数据 任务:#71863 that.getData(); that.setData({ hasRecord: false, prozeLevel: res.data.item, prizeName: res.data.prize, prizeUrl: res.data.thumb_url, empty_prize_prompt: res.data.empty_prize_prompt }); } setTimeout(() => { clearInterval(that.data.timer1); that.lowSpeed(); }, 1200); } else { wx.showModal({ title: "提示", content: res.msg, showCancel: false, success(res_1) { if (res_1.confirm) { if(that.data.goods && that.data.goods.length>0){ that.setData({ show:true }); } } }, }); that.setData({ clickFlage: false // 不能点击 }); clearInterval(that.data.timer1); clearInterval(that.data.timer2); } }, fail: function(res) { console.log(res); } }); // 请求,返回后给s定值 } else if (this.data.startStatus === 0) { // 没开始 wx.showToast({ icon: 'none', title: '活动尚未开始', duration: 1500 }); } else if (this.data.startStatus === 2) { // 已经结束 wx.showToast({ icon: 'none', title: '活动已经结束', duration: 1500 }); } } } else { // 没有抽奖机会了 this.setData({ prizeInfoShow: true, haveLottery: true }); } }, // 降速 lowSpeed() { clearInterval(this.data.timer1); this.setData({ clickFlage: false, // 不能点击 timer2: setInterval(()=>{this.move();}, 300) }); setTimeout(() => { // 顺序打乱 this.setData({ s2: this.data.prozeLevel }); }, 900); }, move() { if (this.data.prizeIndex === 0) { this.setData({ prizeIndex: this.data.prizeIndex + 1 }); } else if (this.data.prizeIndex === 12) { this.setData({ prizeIndex: 0 }); } else { this.setData({ prizeIndex: this.data.prizeIndex + 1 }); } if ( this.data.s2 !== -1 && (this.data.prizeList[this.data.arrNum[this.data.prizeIndex]] && this.data.prizeList[this.data.arrNum[this.data.prizeIndex]].item == this.data.s2) ) { clearInterval(this.data.timer1); clearInterval(this.data.timer2); this.stop(); } this.setData({ timeFlag: this.data.timeFlag + 100 }); if (this.data.timeFlag >= 10000 && !this.data.prizeName) { clearInterval(this.data.timer1); clearInterval(this.data.timer2); wx.showToast({ icon: 'none', title: '当前抽奖人数过多,稍后再来', duration: 1500 }); this.setData({ clickFlage: true }); } }, // 停止 stop() { this.setData({ s2: -1, clickFlage: false }); this.prizeInfo(); // 弹出是否中奖 }, prizeInfo() { setTimeout(() => { this.setData({ clickFlage: true }); if (this.data.hasRecord) { this.setData({ prizeInfoShow: true, havePrizeShow: true }); } else { this.setData({ prizeInfoShow: true, noPrizeShow: true }); } }, 800); }, lotteryRecord() { wx.navigateTo({ url: '/packageC/orders/LotteryRecord/LotteryRecord?lotteryId=' + this.data.lotteryId }); }, onChange(event) { this.setData({ radio: event.detail, }); }, closePop(){ this.setData({ show:false }); }, close(e) { let that=this; let name=e.currentTarget.dataset.name; //关闭没中奖 this.setData({ prizeInfoShow: false, noPrizeShow: false, haveLottery: false, havePrizeShow: false }); if(name=='success'){ if (that.data.success_mini_url){ //要延时执行的代码 wx.navigateTo({ url: that.data.success_mini_url, }); } } }, goIndex() { //preferIndex this.setData({ prizeInfoShow: false, // 显示中奖信息的遮罩层 noPrizeShow: false }); wx.reLaunch({ url: '/packageG/index/index' }); }, showToolbar() { this.setData({ toolbar: !this.data.toolbar }); }, // 跳转主页 gotoHome() { wx.reLaunch({ url: '/packageG/index/index' }); }, // 跳转个人中心 gotoMember() { wx.reLaunch({ url: '/packageG/member_v2/member_v2' }); }, });