seckill_list.js 7.97 KB
var e = getApp(),
  i = e.request,
  a = e.globalData.setting,
  os = a,
  ut = require("../../../utils/util.js");
var regeneratorRuntime = require('../../../utils/runtime.js');

Page({
  data: {
    url: a.imghost,
    killtime: null,
    currentPage: 1,
    goodlist: null,
    type: 1,
    timer: null,
    ismore: 1, //是否可以加载更多
    isshow: 0,
    ad_data: null,
    max_sw_height: 200,
    is_retail_price:0
  },

  //------初始化加载----------
  onLoad: function (t) {
    wx.setNavigationBarTitle({
      title: "商品秒杀",
    })
    var first_leader = t.first_leader;
    var type = t.type;
    if (type != undefined) {
      this.setData({
        type: type
      });
    }

    var th = this;
    console.log("------------");
    console.log(first_leader);
    getApp().getConfig();

    var th=this;
    getApp().getConfig2(function (e) {
      var swithc_list = e.switch_list;
      var sw_arr = JSON.parse(swithc_list);
      if(sw_arr.is_retail_price){
        th.setData({is_retail_price:1});
      }
    },1);


    if (first_leader) {
      getApp().globalData.first_leader = first_leader;
      //调用接口判断是不是会员
      getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => {
        if (res.data.code == 0) {
          getApp().globalData.guide_id = res.data.data.id;
        }
      })
    }

    getApp().request.promiseGet("/api/weshop/ad/page?pid=701&store_id=" + os.stoid, {
      data: {
        enabled: 1
      }
    }).then(res => {
      if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0) {
        var a = res.data.data.pageData;
        var narr = [];
        for (var i in a) {
          var tt = {
            'ad_code': os.imghost + a[i].ad_code,
            'media_link': '',
            'ad_weapplink': a[i].ad_weapplink
          };
          narr.push(tt);
        }
        th.setData({
          ad_data: narr
        });
      }
    })
    this.requestSalelist();
  },


  onShow: function (t) {
    getApp().check_can_share();
    this.data.is_timer = 1;
    //this.data.currentPage = 1;不能清空未1
    var th = this;
    //设置全局定时器
    th.data.timer = setInterval(function () {
      th.countDown();
    }, 1000);
  },
  onHide: function () {
    //--清理定时器--
    clearInterval(this.data.timer);
    this.setData({
      isshow: 0
    });
  },
  //---小于10的格式化函数----
  timeFormat(param) {
    return param < 10 ? '0' + param : param;
  },

  //----倒计时函数-----
  countDown() {
    if (!this.data.is_timer) return false;
    var th = this;
    // 获取当前时间,同时得到活动结束时间数组
    let newTime = ut.gettimestamp();
    var endTimeList = this.data.goodlist;
    if (endTimeList == null) return null
    // 对结束时间进行处理渲染到页面
    for (var i = 0; i < endTimeList.length; i++) {
      var o = endTimeList[i];
      if(!o) continue;
      var endTime = o.end_time;
      if (th.data.type == 0) endTime = o.start_time;
      let obj = null;
      // 如果活动未结束,对时间进行处理
      if (endTime - newTime > 0) {
        let time = (endTime - newTime);
        // 获取天、时、分、秒
        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),
          hide: 1
        }
      } else {
        //活动已结束,全部设置为'00'
        obj = {
          day: '00',
          hou: '00',
          min: '00',
          sec: '00'
        }
      }
      var txt = "goodlist[" + i + "].djs";
      th.setData({
        [txt]: obj
      });
    }
  },

  async requestSalelist() {
    //--没有更多就不调用--
    if (!this.data.ismore) return false;
    var e = this,
      th = e,
      i = "/api/ms/flash_sale/spikepage?page=" + e.data.currentPage;
    var plist = [],
      alllist = th.data.goodlist;
    if (!alllist) alllist = [];
    var user_id = getApp().globalData.user_id;
    if (!user_id) user_id = user_id;
    var req = {
      store_id: os.stoid,
      timetype: th.data.type,
      is_end: 0,
      is_show: 1,
      user_id: user_id
    };

    await getApp().request.promiseGet(i, {
      isShowLoading: 1,
      data: req
    }).then(res => {
      if (ut.ajax_ok(res)) plist = res.data.data.pageData;

    });

    if (!plist || plist.length <= 0) {

      getApp().showWarning("没有更多数据");
      th.data.ismore = 0;
      if (e.data.currentPage == 1 && this.data.type == 1) {
        setTimeout(function () {
          th.data.ismore = 1;
          th.setData({
            type: 0
          });
          th.requestSalelist();
        }, 1000);
      }
      return false;
    }

    //--循环读取接口---
    for (var i = 0; i < plist.length; i++) {

      if (plist[i].user_price) plist[i].price = plist[i].user_price;
      var prom_id = plist[i].id;
      await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
        os.stoid + "/1/" + prom_id, {}
      ).then(res => {
        if (res.data.code == 0) {
          plist[i].status = 1;
          if (res.data.data <= 0) plist[i].status = 3;
        }
      })
      alllist.push(plist[i]);
    }
    e.data.currentPage++;
    console.log("秒杀商品列表", alllist);
    th.setData({
      goodlist: alllist,
      isshow: 1
    });



  },
  onPullDownRefresh: function () {
    this.reloadGoodList();
  },
  reloadGoodList: function () {
    this.data.goodlist = [], this.data.currentPage = 1, this.requestSalelist();
  },

  onReachBottom: function () {
    this.requestSalelist();
  },

  //点击tab事件
  tip: function (e) {
    var a = e.currentTarget.dataset.ty,
      th = this;
    th.data.ismore = 1;
    this.setData({
      type: a,
      goodlist: null
    });
    this.reloadGoodList();
  },


  //---------分享配置--------
  onShareAppMessage: function (e) {
      getApp().globalData.no_clear=1;
    var curPage = this;
    var pagePath = curPage.route; //当前页面url
    if (pagePath.indexOf('/') != 0) {
      pagePath = '/' + pagePath;
    }
    if (getApp().globalData.user_id) {

      if (pagePath.indexOf("?") > 0) {
        pagePath += "&first_leader=" + getApp().globalData.user_id;
      } else {
        pagePath += "?first_leader=" + getApp().globalData.user_id;
      }
    }

    console.log("11" + pagePath);
    return {
      title: "限时秒杀",
      path: pagePath,
    }
  },

  //图片失败,默认图片
  bind_bnerr2: function (e) {
    var _errImg = e.target.dataset.errorimg;
    var val = e.target.dataset.val;
    if (val != undefined && val != null && val != 'null') {
      var _errObj = {};
      _errObj[_errImg] = "/public/images/default_goods_image_240.gif";
      this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
    }
  },

    onShareTimeline() {
        getApp().globalData.no_clear=1;
        var store_name = getApp().globalData.config ? getApp().globalData.config.store_name : '';
        if (!store_name)
            store_name = getApp().globalData.setting.appName;

        var user_id=getApp().globalData.user_id;
        if(!user_id) user_id=0;

        return {
            title: '秒杀活动-' + store_name,
            query: 'first_leader='+user_id
        }
    },

  imageLoad: function (e) {
    var imgwidth = e.detail.width;
    var imgheight = e.detail.height;
    //宽高比
    var ratio = imgwidth / imgheight;
    //计算的高度值
    var viewHeight = 750 / ratio;
    var hei = this.data.max_sw_height;

    if (hei < viewHeight) {
      this.setData({
        max_sw_height: viewHeight
      });
    }
  },
  go_url(e) {
    let url = e.currentTarget.dataset.url;
    if (url) {
      getApp().goto(url);
    }
  },
});