secondsKill.js 3.8 KB
const app = getApp()
var time = require('../../utils/util.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    orderlist: [],
    TimeInterval: [],
    clock: '',
    hour: '',
    minute: '',
    second: '',
    countdown: '',
    endTime: ''
  },  

  //获取秒杀时间段
  getTimeInterval() {
    let url = 'goods/getTimeIntervalState'
    let params = {}
    app.post(url, params).then((res) => {
      console.log(res)
      if (res.data.code == 200) {
        var TimeInterval = res.data.data
        for (var i = 0; i < TimeInterval.length; i++) {
          TimeInterval[i]["start_time"] = time.timestampToTime(TimeInterval[i]["start_time"],0)
          TimeInterval[i]["end_time"] = time.timestampToTime(TimeInterval[i]["end_time"],1)
          if (TimeInterval[i].state == 1) {
            this.setData({
              endTime: TimeInterval[i]["end_time"]
            })
            this.countTime()
          }
        }
        this.setData({
          TimeInterval: TimeInterval
        })
      }
      console.log(res.data.data)
    })
  },

  //秒杀倒计时
  countTime() {
    var that = this;
    var date = new Date();
    var now = date.getTime();
    var endDate = new Date(that.data.endTime); //设置截止时间
    var end = endDate.getTime();
    var leftTime = end - now; //时间差                              
    var d, h, m, s, ms;
    if (leftTime >= 0) {
      d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
      h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
      m = Math.floor(leftTime / 1000 / 60 % 60);
      s = Math.floor(leftTime / 1000 % 60);
      ms = Math.floor(leftTime % 1000);
      ms = ms < 100 ? "0" + ms : ms
      s = s < 10 ? "0" + s : s
      m = m < 10 ? "0" + m : m
      h = h < 10 ? "0" + h : h
      that.setData({
        countdown: d + ":" + h + ":" + m + ":" + s + ":" + ms,
        hour: h,
        minute: m,
        second: s,
      })
      //递归每秒调用countTime方法,显示动态时间效果
      setTimeout(that.countTime, 100);
    } else {
      console.log('已截止')
      that.setData({
        countdown: '00:00:00',
        hour: '00',
        minute: '00',
        second: '00',
      })
    }
  },


  //秒杀专场商品列表
  secondsKill() {
    let url = 'goods/snapUpList'
    let params = {
      day: '2018-08-30',
      time: '1'
    }
    app.post(url, params).then((res) => {
      if (res.data.code == 200) {
        this.setData({
          orderlist: res.data.data
        })
      }
    })
  },

  // 跳转商品详情
  productDetail(e) {
    var goods_id = e.currentTarget.dataset.goods_id
    wx.navigateTo({
      url: '../index/productDetail/productDetail?goods_id=' + goods_id,
    })
    wx.showToast({
      title: '该场未开始~',
      icon: 'none'
    }, 2000)
    wx.showToast({
      title: '该场已结束~',
      icon: 'none'
    }, 2000)
    wx.showToast({
      title: '请等待开场~',
      icon: 'none'
    }, 2000)
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.secondsKill()
    this.getTimeInterval()
    // countdown(this);
    var that = this;
    this.countTime()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})