From d79dd8a8280470e03627e011d690b121921c09b2 Mon Sep 17 00:00:00 2001 From: yvan.ni Date: Tue, 30 Apr 2024 20:06:04 +0800 Subject: [PATCH] 拼团的优化 --- pages/activity/pind_list/pind_list.js | 61 +++++++++++++++++++++++++++++++++++++++++++------------------ pages/activity/pind_list/pind_list.wxml | 2 +- pages/goods/goodsInfo/goodsInfo.js | 6 +++--- 3 files changed, 47 insertions(+), 22 deletions(-) diff --git a/pages/activity/pind_list/pind_list.js b/pages/activity/pind_list/pind_list.js index 55ee6dd..e08081e 100644 --- a/pages/activity/pind_list/pind_list.js +++ b/pages/activity/pind_list/pind_list.js @@ -120,25 +120,50 @@ Page({ var o = endTimeList[i]; var endTime = o.end_time; if(th.data.type==0) 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),hide:1 + + // 创建查询对象 + let query = wx.createSelectorQuery(); + // 获取目标元素,并获取目标元素的信息 + query.select("#kill-item"+i).boundingClientRect(); + // 获取视口,并获取视口信息 + query.selectViewport().boundingClientRect(); + //-- 执行查询,元素要在显示中的才显示定时器 -- + query.exec(([target, view]) => { + + if (!th.data.is_timer) return; + if (!target) return; + if (!target.id) return; + let idx= target.id.replace('kill-item',''); + // 条件1:当目标顶部距离视口顶部距离小于视口的高度时 + // 条件2:当目标底部距离视口顶部距离大于0时 + // 当以上两个条件同时成立时,目标元素在视口中 + if (target.top < view.height && target.bottom > 0) { + + 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), + hide: 1 + } + } else { + //活动已结束,全部设置为'00' + obj = {day: '00', hou: '00', min: '00', sec: '00'} } - }else{ - //活动已结束,全部设置为'00' - obj = { day: '00', hou: '00', min: '00', sec: '00' } - } - var txt ="goodlist["+i+"].djs"; - th.setData({ [txt]: obj}); - } + var txt = "goodlist[" + idx + "].djs"; + th.setData({[txt]: obj}); + } + }); + } }, //读取数据 diff --git a/pages/activity/pind_list/pind_list.wxml b/pages/activity/pind_list/pind_list.wxml index ecf2ad0..685bd2e 100644 --- a/pages/activity/pind_list/pind_list.wxml +++ b/pages/activity/pind_list/pind_list.wxml @@ -28,7 +28,7 @@ - + diff --git a/pages/goods/goodsInfo/goodsInfo.js b/pages/goods/goodsInfo/goodsInfo.js index 11201db..edabded 100644 --- a/pages/goods/goodsInfo/goodsInfo.js +++ b/pages/goods/goodsInfo/goodsInfo.js @@ -403,8 +403,8 @@ Page({ //判断活动 if (prom_type) { - this.data.prom_type = prom_type; - this.data.prom_id = prom_id; + this.data.prom_type = parseInt(prom_type); + this.data.prom_id = parseInt(prom_id); //-- 基础的活动类型 -- this.data.base_nor_prom_type = prom_type; @@ -5770,7 +5770,7 @@ Page({ }); // s.my_warnning('超出商品限购', 0, th); - var num = 0;//th.data.prom_buy_limit - th.data.prom_buy_num; + var num = th.data.sele_g.viplimited - th.data.g_buy_num.get(th.data.sele_g.goods_id); if (num <= 0) num = 1; th.setData({ goodsInputNum: num -- libgit2 0.21.4