diy_luckyGo.js 6.94 KB
// var e = function(e) {
//       return e && e.__esModule ? e : {
//         default: e
//       };
//     }(require("../../utils/LoadMore3.js")),
//     n = new e.default(),
var t = getApp(),
  a = t.request,
  o = t.globalData.setting,
  os = o,
  i = require("../../utils/util.js"),
  ut = i,
  s = require("../../utils/common.js");
var regeneratorRuntime = require('../../utils/runtime.js');
Component({
  properties: {
    // 这里定义了innerText属性,属性值可以在组件使用时指定
    object: {
      type: Object,
      value: null,
    },
    goods_array: {
      type: Array,
      value: []
    },
    newTime: {
      type: Number,
      value: 0
    },
  },
  data: {
    // 这里是一些组件内部数据
    yc: false,
    someData: null,
    ylp_img: "https://mshopimg.yolipai.net/",
    imghost: os.imghost,
    timer: null,
  },

  pageLifetimes: {
    //要处理一下,游客登录后的界面的变化,主要还该是改变会员
    show: function () {
        //会员身份变化
        var th = this;
        var g_id = this.data.object;
        this.init(g_id);
        setTimeout(function () {
            if (th.data.goods_array && th.data.goods_array.length > 0) {
                th.data.timer = setInterval(function () {
                    th.countDown2(th);
                }, 1000);
            }
        },600)
    }
  },

  ready: function () {
    var g_id = this.data.object;
    this.init(g_id);
  },
  detached() {
    // 页面被被销毁的时候,清除定时器
    clearInterval(this.data.timer);
  },
  methods: {
    // 这里是一个自定义方法
    customMethod: function () { },
    init: function (g_id) {
      var th = this, app = getApp(), goodsidlist = "";
      if (g_id.data_type == 2) {
        if (g_id.data && g_id.data.length > 0) {
          //--先把商品ID串起来--
          g_id.data.forEach(function (val, ind) {
            var item = {};
            goodsidlist += val.goodsid + ",";
          })
          goodsidlist = ut.sub_last(goodsidlist);

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

          //--调用接口,读取秒杀--
          app.request.promiseGet("/api/weshop/prom/luckyActivity/getGoodsList?store_id="
            + os.stoid + "&goodsidlist=" + goodsidlist + "&type=1&timetype=1&is_end=0", {}).then(res => {
              console.log(res);
              //如果秒杀的数组为空的时候    
              var goodslist = res.data.data;
              //就算是添加的活动已经过期,就要用最新的进行中活动
              if (goodslist && goodslist.length > 0) {
                th.set_goods_list(g_id.data, goodslist);
              }
            });
        }
      } else {
        th.no_gid_set();
      }
    },

    //当是默认的情况
    no_gid_set() {
      var user_id=getApp().globalData.user_id;
      if(!user_id){ user_id=0;}
      // var req={ store_id: os.stoid, is_end: 0, is_show: 1, timetype: 2,user_id:user_id}; 原来的
			var req={ store_id: os.stoid, is_end: 0, timetype: 1};
      getApp().request.promiseGet("/api/weshop/prom/luckyActivity/page",
        { isShowLoading: 1, data:req  }
      ).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);
					// console.log('goodsidlist', goodsidlist);
        }
      });
    },

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


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

      for(let i in all_array){
      	let item=all_array[i];
      	if(item.user_price) item.price=item.user_price;
      }

      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 });
			console.log('goods_array', arr);

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



    //---小于10的格式化函数----
    timeFormat: function (param) {
      return param < 10 ? '0' + param : param;
    },
    //----秒杀倒计时函数-----
    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
          });
        }
      }
    },
		
		
    //图片失败,默认图片
    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: function (e) {
      let url = e.currentTarget.dataset.url;
			getApp().goto(url);
    },
		
		alert: function() {
			wx.showToast({
				title: '本活动商品已抢光!',
				icon: 'none',
			})
		},
  },


})