// 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, user_id:0, img_width:100, img_height:100, swiperHeight:0, prom_type:1, add_purchase:false, }, pageLifetimes: { //要处理一下,游客登录后的界面的变化,主要还该是改变会员 show: function () { //会员身份变化 var th = this; var g_id = this.data.object; //只有再会员登陆之后,才重新调用接口 console.log('秒杀组件------------'); if(this.data.user_id!=getApp().globalData.user_id){ this.data.user_id=getApp().globalData.user_id 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) }, hide:function () { // 页面被被销毁的时候,清除定时器 clearInterval(this.data.timer); } }, ready: function () { var g_id = this.data.object; this.init(g_id); this.data.user_id=getApp().globalData.user_id; }, detached() { // 页面被被销毁的时候,清除定时器 clearInterval(this.data.timer); }, methods: { // 这里是一个自定义方法 customMethod: function () { }, init: function (g_id) { var th = this; this.loadImg(g_id) 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 = "", idlist = ""; 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 + ","; idlist += val.flashid + ","; }) goodsidlist = ut.sub_last(goodsidlist); idlist = ut.sub_last(idlist); var user_id=getApp().globalData.user_id; if(!user_id){ user_id=0;} //--调用接口,读取秒杀-- // var gUrl = "/api/ms/flash_sale/getGoodsList?store_id=" + os.stoid + "&goodsidlist=" + goodsidlist+"&user_id="+user_id+"&type=1"; var gUrl = "/api/ms/flash_sale/getGoodsList?store_id=" + os.stoid + "&idlist=" + idlist + "&user_id="+user_id+"&type=1"; app.request.promiseGet(gUrl, {}).then(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}; getApp().request.promiseGet("/api/ms/flash_sale/spikepage?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) { goodslist.forEach(function (vy, indy) { if(!vy.id) vy.id=vy.prom_id; }) // 判断火热,预热 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; } for(let i in all_array){ let item=all_array[i]; if(item.user_price) item.price=item.user_price; if(item.start_time > newTime) { item.status = 0; } else if(item.end_time > newTime) { item.status = 1; }; } var promisies = []; for (const key in all_array) { if (Object.hasOwnProperty.call(all_array, key)) { const val = all_array[key]; promisies[key] = getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/1/" + val.id, {} ).then(res => { if (res.data.code == 0) { if (res.data.data <= 0) all_array[key].status = 2; }; }); } } Promise.all(promisies).then(() => { // 判断活动是否结束 let empty=[] for(let i in all_array){ let item=all_array[i]; if(newTime > item.end_time) { all_array[i].status = 3; }; // let price=all_array[i].price.toFixed(2) let price=all_array[i].price + '' if (price && price.indexOf('.') > -1) { let priceArr = price.split(".") all_array[i].price_n = priceArr[0] all_array[i].price_xs = priceArr[1] }else{ all_array[i].price_n = price } let virtual = all_array[i].virtual ? all_array[i].virtual : 0 if (all_array[i].status) { if (all_array[i].is_virtual_count ) { // all_array[i].goods_num -= all_array[i].virtual all_array[i].buy_num += virtual*1 all_array[i].residue = all_array[i].goods_num*1 - all_array[i].buy_num*1 }else{ all_array[i].buy_num += virtual*1 all_array[i].residue=all_array[i].goods_num*1 + virtual*1 - all_array[i].buy_num*1 } }else{ if (all_array[i].is_virtual_count ) { // all_array[i].goods_num -= all_array[i].virtual all_array[i].buy_num = 0 all_array[i].residue = all_array[i].goods_num*1 - all_array[i].buy_num*1 }else{ all_array[i].buy_num = 0 all_array[i].residue=all_array[i].goods_num*1 + virtual*1 - all_array[i].buy_num*1 } } // all_array[i].residue=all_array[i].goods_num*1 - all_array[i].buy_num*1 if (all_array[i].residue && all_array[i].residue > 0 && all_array[i].status !=2) { empty.push(all_array[i]) } } //控制已售罄是否显示 if (th.data.object.column_action_name && !th.data.object.hide_sold_out_items) { all_array=empty } var arr = new Array(); if (th.data.object.style==7) { //--三个三个一组--- for (var i = 0; i < all_array.length; i += 2) { arr.push(all_array.slice(i, i + 2)); } }else{ //--三个三个一组--- for (var i = 0; i < all_array.length; i += 3) { arr.push(all_array.slice(i, i + 3)); } } /*--熏染到前台--*/ th.setData({ goods_array: arr }); if (th.data.object.style==6) { th.setSwiper_h() } }); th.data.timer = setInterval(function () { th.countDown2(th); }, 1000); }, setSwiper_h(){ var th=this wx.createSelectorQuery().in(this).select('.swiper_h').boundingClientRect(rect => { if (rect && rect.height) { var sumHeigth=(rect.height+13)+'px' th.setData({ swiperHeight: sumHeigth }) } }).exec(); // const query = this.createSelectorQuery() // query.select('.swiper_h').boundingClientRect() // query.exec( (res)=> { // console.log(res) // console.log(res[0].height) // console.log(res[0].height * data.t.length) // let sumHeigth = res[0].height * data.t.length; // console.error('组件高度'); // console.log(sumHeigth); // th.setData({ // swiperHeight: sumHeigth // }) // }) }, //---小于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_skill: function () { wx.navigateTo({ url: "/pages/activity/seckill_list/seckill_list" }); }, //加入购物车 shoppingCart(){ console.log('加入购物车'); }, loadImg(g_id){ if (g_id.style==1) { let w='' switch (g_id.picture_scale) { case 1: w=`width:calc(100%-${g_id.page_margins*2}px);height:calc(100%-${g_id.page_margins*2}px)` break; default: break; } } }, // 加购方法show addPurchase(even){ this.setData({ add_purchase:true }) let gid = even.currentTarget.dataset.gid let prom_id = even.currentTarget.dataset.prom_id let prom_type = even.currentTarget.dataset.prom_type let goods_type= even.currentTarget.dataset.goods_type let add_purchase = this.selectComponent("#add_purchase"); if (add_purchase) { add_purchase.init(gid,prom_type,prom_id,goods_type) } }, // 加购方法 hide hide_add_purchase(){ setTimeout(()=>{ this.setData({ add_purchase:false }) },1000) } }, })