diy_groupbuy.js 6.57 KB
var regeneratorRuntime = require('../../utils/runtime.js');
var ut = require("../../utils/util.js");
var os= getApp().globalData.setting;
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;
			 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 = "";
		     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/goods/groupBuy/getGoodsList?store_id="
		         + os.stoid + "&aidlist=" + goodsidlist+"&user_id="+user_id, {}).then(res => {
		           console.log(res,100);
		           //如果秒杀的数组为空的时候    
		           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};
		   
		   getApp().request.promiseGet("/api/weshop/goods/groupBuy/page?page=1&pageSize=9",
		     { 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);
		     }
		   });
		 },
		 
		 //就算是添加的活动已经过期,就要用最新的活动
		 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 });
		 
		   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_to_group: function () {
		
		    var  url="/packageC/pages/group_list/group_list";
			getApp().goto(url);
		   
		 }
		 
		 
		 
	  }
})