123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- // pages/snapUpList/snapUpList.js
- const app = getApp()
- var http = require('../../utils/http.js');
- var config = require('../../utils/config.js');
- var util = require('../../utils/util.js');
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- seckillList: [], // 秒杀商品列表
- countDownList: [], // 秒杀倒计时列表
- countDownEndTimeList:[],
- timer: '',
- current: 1,
- },
- /**
- * 获取秒杀商品列表
- */
- getsklist() {
- http.request({
- url: "/seckill/pageProd",
- method: "GET",
- data: {
- current: this.data.current,
- size: 5,
- lat: wx.getStorageSync('LATITUDE'),
- lon: wx.getStorageSync('LONGITUDE'),
- distance: wx.getStorageSync('DISTANCE')||0
- },
- callBack: (res) => {
- let result = []
- result = res.records.filter(item => util.dateToTimestamp(item.endTime) > new Date().getTime())
- this.setData({
- seckillList: res.current == 1 ? result : this.data.seckillList.concat(result),
- pages: res.pages
- })
- let endTimeList = []; // 倒计时数组
- for (let i = 0; i < this.data.seckillList.length; i++) {
- var objs = {}
- objs.eTime = this.data.seckillList[i].endTime
- objs.sTime = this.data.seckillList[i].startTime
- objs.countType = null //1表示秒杀活动正在进行,0表示秒杀活动未开始
- endTimeList.push(objs)
- }
- this.setData({
- countDownEndTimeList: endTimeList
- })
- this.countdown()
- }
- })
- },
- countdown() {
- // 获取当前时间,同时得到活动结束时间数组
- let newTime = new Date().getTime();
- let endTimeList = this.data.countDownEndTimeList;
- let countDownArr = [];
- // 对结束时间进行处理渲染到页面
- endTimeList.forEach(o => {
- if (newTime - util.dateToTimestamp(o.sTime) > 0) {
- let endTime = util.dateToTimestamp(o.eTime);
- let obj = null;
- // 如果活动未结束,对时间进行处理
- if (endTime - newTime > 0) {
- let time = (endTime - newTime) / 1000;
- // 获取天、时、分、秒
- let day = parseInt(time / (60 * 60 * 24));
- let hou = parseInt(time % (60 * 60 * 24) / 3600);
- let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
- let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
- obj = {
- day: this.timeFormat(day),
- hou: `${this.timeFormat(hou)}`,
- min: `${this.timeFormat(min)}`,
- sec: `${this.timeFormat(sec)}`,
- type: 1 // 表示秒杀正在进行
- }
- }
- // 活动已结束
- else {
- obj = {
- day: '00',
- hou: '00',
- min: '00',
- sec: '00'
- }
- }
- countDownArr.push(obj);
- }
- // 活动未开始
- else {
- let startTime = util.dateToTimestamp(o.sTime);
- let time = (startTime - newTime) / 1000;
- let obj = null;
- // 获取天、时、分、秒
- let day = parseInt(time / (60 * 60 * 24));
- let hou = parseInt(time % (60 * 60 * 24) / 3600);
- let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
- let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
- obj = {
- day: this.timeFormat(day),
- hou: `${this.timeFormat(hou)}`,
- min: `${this.timeFormat(min)}`,
- sec: `${this.timeFormat(sec)}`,
- type: 0 // 表示秒杀还没开始
- }
- countDownArr.push(obj);
- }
- })
- // 渲染,然后每隔一秒执行一次倒计时函数
- this.setData({
- countDownList: countDownArr,
- timer: setTimeout(this.countdown, 1000)
- })
- },
- //小于10的格式化函数
- timeFormat(times) {
- return Number(times) < 10 ? '0' + times : times;
- },
- //跳转秒杀商品详情页
- toSeckillDetaile: function(e) {
- var seckillId = e.currentTarget.dataset.seckillid;
- wx.navigateTo({
- url: "../snapUpDetail/snapUpDetail?seckillid=" + seckillId,
- })
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function(options) {
- this.getsklist(); //秒杀商品列表
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function() {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function() {
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function() {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function() {
- clearTimeout(this.data.timer)
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function() {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function() {
- if(this.data.current < this.data.pages) {
- this.setData({
- current: this.data.current + 1
- })
- this.getsklist()
- }
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function() {
- }
- })
|