diy_pregoods.js 6.41 KB
var t = getApp(), os = t.globalData.setting, ut = require("../../utils/util.js");
var regeneratorRuntime = require('../../utils/runtime.js');
Component({
  properties: {
    // 这里定义了innerText属性,属性值可以在组件使用时指定
    object: {
      type: Object, value: null,
    },
    goods_array: {
      type: Array, value: []
    },
  },
  data: {
    // 这里是一些组件内部数据
    someData: null,
    imghost: os.imghost,
  },

  ready: function () {
    var g_id = this.data.object.data;
    this.data.g_id = g_id;
    this.init(g_id);
  },

  pageLifetimes: {
    //游客登录后,只要更新卡的情况
    show: function () {
      //--初始化卡类--
      this.init(this.data.g_id);
    },
  },

  methods: {
    // 这里是一个自定义方法
    init: function (g_id) {
      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 });
        }
      })


      var app = getApp(), goodsidlist = "",new_idlist="";
      if (g_id && g_id.length > 0) {
        //--先把商品ID串起来--
        g_id.forEach(function (val, ind) {
          var item = {};
          goodsidlist += val.goodsid + ",";
          if (val.idlist) {           
            new_idlist += val.idlist + ",";
          }
        })
        goodsidlist = ut.sub_last(goodsidlist);
        
        if (new_idlist) {         
          new_idlist = ut.sub_last(new_idlist);
        }

        var user_id = getApp().globalData.user_id;
        var pre_data = { store_id: os.stoid, is_end: 0, timetype: 3, isuse: 1 };
        if (user_id) {
          pre_data.user_id = user_id;
        }
        let url=''
        if (new_idlist) {
           url="/api/weshop/marketing/marketingPresellList/page?isnew=1&idlist="+new_idlist
        }else{
           url="/api/weshop/marketing/marketingPresellList/page?goodsidlist=" + goodsidlist
         }
        //--调用接口,读取秒杀--
        app.request.promiseGet(url, {
          data: pre_data
        }).then(res => {

          if (res.data.code == 0 && res.data.data.pageData && res.data.data.pageData.length > 0) {
            //如果数组为空的时候
            var goodslist = res.data.data.pageData;
            //就算是添加的活动已经过期,就要用最新的进行中活动
            if (goodslist && goodslist.length > 0) {
              th.set_goods_list(g_id, goodslist);
            }

            th.data.timer = setInterval(function () {
              th.countDown2(th);
            }, 1000);
          }


        });
      } else {
        th.no_gid_set();
      }
    },

    //当是默认的情况
    no_gid_set() {
      var th = this;
      var user_id = getApp().globalData.user_id;
      var pre_data = { store_id: os.stoid, is_end: 0, timetype: 3, isuse: 1, page: 1, pageSize: 9 };
      if (user_id) {
        pre_data.user_id = user_id;
      }
      getApp().request.promiseGet("/api/weshop/marketing/marketingPresellList/page", { data: pre_data }
      ).then(res => {
        if (res.data.code == 0 && res.data.data.pageData && res.data.data.pageData.length > 0) {
          var goodsidlist = res.data.data.pageData;
          this.set_goods_list(null, goodsidlist);

          th.data.timer = setInterval(function () {
            th.countDown2(th);
          }, 1000);
        }
      });
    },

    //就算是添加的活动已经过期,就要用最新的活动
    set_goods_list(g_id, goodslist) {
      // 判断火热,预热
      var newTime = ut.gettimestamp(), all_array = [], th = this;
      th.setData({ newTime: newTime });
      if (g_id) {
        /*--商品队列按照添加的顺序排列--*/
        goodslist.forEach(function (vy, indy) {
          all_array.push(vy);
        })

      } else {
        all_array = goodslist;
      }

      if (all_array.length == 0) { all_array = goodslist; }

      var arr = new Array();
      //--三个三个一组---
      for (var i = 0; i < all_array.length; i += 3) {
        arr.push(all_array.slice(i, i + 3));
      }
      /*--熏染到前台--*/
      th.setData({ goods_array: arr });
    },

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

    go_to_skill: function () {
      wx.navigateTo({
        url: "/packageC/pages/presell/list/list"
      });
    },

    //----秒杀倒计时函数-----
    countDown2: function (ob) {
      if (ob == undefined) return false;
      var ee = ob;
      // 获取当前时间,同时得到活动结束时间数组
      var newTime = ut.gettimestamp();
      this.setData({ newTime: newTime });

      var List = ee.data.goods_array;
      if (List.length == 0) return false;
      for (var j = 0; j < List.length; j++) {
        // 对结束时间进行处理渲染到页面
        var endTimeList = List[j];
        for (var i = 0; i < endTimeList.length; i++) {
          var o = endTimeList[i];
          var endTime = o.end_time;
          if (newTime < o.start_time) 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)
            }
          } else {
            //活动已结束,全部设置为'00'
            obj = {
              day: '00',
              hou: '00',
              min: '00',
              sec: '00'
            }
          }
          var txt = "goods_array[" + j + "][" + i + "].djs";
          ee.setData({
            [txt]: obj
          });
        }
      }
    },
    //---小于10的格式化函数----
    timeFormat: function (param) {
      return param < 10 ? '0' + param : param;
    },

  },




})