diy_pregoods.js 6.15 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, app = getApp(), goodsidlist="";	  
	  if(g_id && g_id.length>0){
			  //--先把商品ID串起来--
			  g_id.forEach(function(val, ind) {
				var item = {};
				goodsidlist+=val.goodsid+",";
			  })
			  goodsidlist=ut.sub_last(goodsidlist);

              var user_id=getApp().globalData.user_id;
              var pre_data={store_id:os.stoid,is_end:0,timetype:1,isuse:1};
              if(user_id){
                  pre_data.user_id=user_id;
			  }

			  //--调用接口,读取秒杀--
			  app.request.promiseGet("/api/weshop/marketing/marketingPresellList/page?goodsidlist="+goodsidlist, {
			  	 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:1,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){
			/*--商品队列按照添加的顺序排列--*/
			g_id.forEach(function(val, ind) {
			  goodslist.forEach(function (vy,indy) {
				if(val.goodsid==vy.goods_id){  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;
      },

  },




})