Commit 661b75fc64029c8fb5011abede41b11e3400f192
1 parent
1ce60018
预售自定义模板
Showing
7 changed files
with
147 additions
and
58 deletions
components/diy_pregoods/diy_pregoods.js
... | ... | @@ -18,9 +18,18 @@ Component({ |
18 | 18 | |
19 | 19 | ready: function() { |
20 | 20 | var g_id = this.data.object.data; |
21 | + this.data.g_id=g_id; | |
21 | 22 | this.init(g_id); |
22 | 23 | }, |
23 | - | |
24 | + | |
25 | + pageLifetimes: { | |
26 | + //游客登录后,只要更新卡的情况 | |
27 | + show: function () { | |
28 | + //--初始化卡类-- | |
29 | + this.init(this.data.g_id); | |
30 | + }, | |
31 | + }, | |
32 | + | |
24 | 33 | methods: { |
25 | 34 | // 这里是一个自定义方法 |
26 | 35 | init: function(g_id) { |
... | ... | @@ -32,17 +41,32 @@ Component({ |
32 | 41 | goodsidlist+=val.goodsid+","; |
33 | 42 | }) |
34 | 43 | goodsidlist=ut.sub_last(goodsidlist); |
44 | + | |
45 | + var user_id=getApp().globalData.user_id; | |
46 | + var pre_data={store_id:os.stoid,is_end:0,timetype:1,isuse:1}; | |
47 | + if(user_id){ | |
48 | + pre_data.user_id=user_id; | |
49 | + } | |
50 | + | |
35 | 51 | //--调用接口,读取秒杀-- |
36 | - app.request.promiseGet("/api/weshop/marketing/marketingPresellList/page?store_id=" | |
37 | - +os.stoid+"&goodsidlist="+goodsidlist, { | |
38 | - data:{is_end:0,timetype:1,isuse:1} | |
52 | + app.request.promiseGet("/api/weshop/marketing/marketingPresellList/page?goodsidlist="+goodsidlist, { | |
53 | + data:pre_data | |
39 | 54 | }).then(res => { |
40 | - //如果数组为空的时候 | |
41 | - var goodslist=res.data.data; | |
42 | - //就算是添加的活动已经过期,就要用最新的进行中活动 | |
43 | - if(goodslist && goodslist.length>0) { | |
44 | - th.set_goods_list(g_id,goodslist); | |
45 | - } | |
55 | + | |
56 | + if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0) { | |
57 | + //如果数组为空的时候 | |
58 | + var goodslist = res.data.data.pageData; | |
59 | + //就算是添加的活动已经过期,就要用最新的进行中活动 | |
60 | + if (goodslist && goodslist.length > 0) { | |
61 | + th.set_goods_list(g_id, goodslist); | |
62 | + } | |
63 | + | |
64 | + th.data.timer = setInterval(function () { | |
65 | + th.countDown2(th); | |
66 | + }, 1000); | |
67 | + } | |
68 | + | |
69 | + | |
46 | 70 | }); |
47 | 71 | }else{ |
48 | 72 | th.no_gid_set(); |
... | ... | @@ -51,12 +75,21 @@ Component({ |
51 | 75 | |
52 | 76 | //当是默认的情况 |
53 | 77 | no_gid_set(){ |
54 | - getApp().request.promiseGet("/api/weshop/marketing/marketingPresellList/page", | |
55 | - {isShowLoading:1,data:{store_id:os.stoid,is_end:0,timetype:1,page:1,pageSize:9,isuse:1}} | |
78 | + var th=this; | |
79 | + var user_id=getApp().globalData.user_id; | |
80 | + var pre_data={store_id:os.stoid,is_end:0,timetype:1,isuse:1,page:1,pageSize:9}; | |
81 | + if(user_id){ | |
82 | + pre_data.user_id=user_id; | |
83 | + } | |
84 | + getApp().request.promiseGet("/api/weshop/marketing/marketingPresellList/page",{data:pre_data} | |
56 | 85 | ).then(res=>{ |
57 | 86 | if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0) { |
58 | 87 | var goodsidlist=res.data.data.pageData; |
59 | 88 | this.set_goods_list(null,goodsidlist); |
89 | + | |
90 | + th.data.timer = setInterval(function () { | |
91 | + th.countDown2(th); | |
92 | + }, 1000); | |
60 | 93 | } |
61 | 94 | }); |
62 | 95 | }, |
... | ... | @@ -100,8 +133,64 @@ Component({ |
100 | 133 | wx.navigateTo({ |
101 | 134 | url:"/packageC/pages/presell/list/list" |
102 | 135 | }); |
103 | - } | |
136 | + }, | |
137 | + | |
138 | + //----秒杀倒计时函数----- | |
139 | + countDown2: function (ob) { | |
140 | + if (ob == undefined) return false; | |
141 | + var ee = ob; | |
142 | + // 获取当前时间,同时得到活动结束时间数组 | |
143 | + var newTime = ut.gettimestamp(); | |
144 | + this.setData({ newTime: newTime }); | |
145 | + | |
146 | + var List = ee.data.goods_array; | |
147 | + if (List.length == 0) return false; | |
148 | + for (var j = 0; j < List.length; j++) { | |
149 | + // 对结束时间进行处理渲染到页面 | |
150 | + var endTimeList = List[j]; | |
151 | + for (var i = 0; i < endTimeList.length; i++) { | |
152 | + var o = endTimeList[i]; | |
153 | + var endTime = o.end_time; | |
154 | + if (newTime < o.start_time) endTime = o.start_time; | |
155 | + let obj = null; | |
156 | + // 如果活动未结束,对时间进行处理 | |
157 | + if (endTime - newTime > 0) { | |
158 | + let time = (endTime - newTime); | |
159 | + // 获取天、时、分、秒 | |
160 | + let day = parseInt(time / (60 * 60 * 24)); | |
161 | + let hou = parseInt(time % (60 * 60 * 24) / 3600); | |
162 | + let min = parseInt(time % (60 * 60 * 24) % 3600 / 60); | |
163 | + let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); | |
164 | + obj = { | |
165 | + day: this.timeFormat(day), | |
166 | + hou: this.timeFormat(hou), | |
167 | + min: this.timeFormat(min), | |
168 | + sec: this.timeFormat(sec) | |
169 | + } | |
170 | + } else { | |
171 | + //活动已结束,全部设置为'00' | |
172 | + obj = { | |
173 | + day: '00', | |
174 | + hou: '00', | |
175 | + min: '00', | |
176 | + sec: '00' | |
177 | + } | |
178 | + } | |
179 | + var txt = "goods_array[" + j + "][" + i + "].djs"; | |
180 | + ee.setData({ | |
181 | + [txt]: obj | |
182 | + }); | |
183 | + } | |
184 | + } | |
185 | + }, | |
186 | + //---小于10的格式化函数---- | |
187 | + timeFormat: function (param) { | |
188 | + return param < 10 ? '0' + param : param; | |
189 | + }, | |
190 | + | |
104 | 191 | }, |
105 | 192 | |
106 | 193 | |
194 | + | |
195 | + | |
107 | 196 | }) |
108 | 197 | \ No newline at end of file | ... | ... |
components/diy_pregoods/diy_pregoods.wxml
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | <view class='top' bindtap="go_to_skill"> |
4 | 4 | <view class="flex"> |
5 | 5 | <view class='t_left'></view> |
6 | - <view class='t_ms'>秒杀</view> | |
6 | + <view class='t_ms'>预售</view> | |
7 | 7 | </view> |
8 | 8 | <view class='right_k'> |
9 | 9 | <image src="{{imghost}}/miniapp/images/icon-arrowdown.png" lazy-load="true"></image> |
... | ... | @@ -12,58 +12,51 @@ |
12 | 12 | |
13 | 13 | <!--商品展示--> |
14 | 14 | <swiper class="s_prom" indicator-active-color='red' indicator-dots="false" wx:if="{{object.style==1}}"> |
15 | - <view class='sp' wx:if="{{object.style==1}}"> | |
15 | + <view class='sp'> | |
16 | 16 | <swiper-item class="s_it" wx:for="{{goods_array}}"> |
17 | 17 | <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind"> |
18 | 18 | <navigator url="/packageC/pages/presell/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}&pre_id={{aitem.id}}" class="s1_gk_a1"> |
19 | 19 | <view class='one'> |
20 | 20 | <view class='sp_top'> |
21 | 21 | <view class='po'></view> |
22 | - <block wx:if="{{aitem.start_time>newTime}}"> | |
23 | - <view class="rob"> | |
24 | - <span class='s_top_kill' style="background-color: #ffe718;color: #3c3b31;font-weight: bold">即将开始</span> | |
25 | - </view> | |
26 | - </block> | |
27 | - | |
28 | 22 | <block wx:if="{{aitem.end_time<=newTime}}"> |
29 | 23 | <view class="rob"> |
30 | 24 | <span class='s_top_kill gray'>活动已结束</span> |
31 | 25 | </view> |
32 | 26 | </block> |
33 | 27 | <block wx:else> |
34 | - <block wx:if="{{aitem.start_time<newTime && aitem.goods_num>aitem.buy_num}}"> | |
28 | + <block wx:if="{{aitem.start_time<newTime && aitem.buy_goodnum<aitem.presell_sumqty}}"> | |
35 | 29 | <view class="rob"> |
36 | 30 | <span class='s_top_kill'>火热进行</span> |
37 | 31 | </view> |
38 | 32 | </block> |
39 | - <block wx:if="{{aitem.goods_num<=aitem.buy_num}}"> | |
33 | + <block wx:if="{{aitem.buy_goodnum>=aitem.presell_sumqty}}"> | |
40 | 34 | <view class="rob"> |
41 | 35 | <span class='s_top_kill gray'>已抢光</span> |
42 | 36 | </view> |
43 | 37 | </block> |
44 | 38 | </block> |
45 | - | |
46 | - | |
47 | 39 | |
48 | 40 | <view class='clear'></view> |
49 | 41 | |
50 | - <view class='s_img'> | |
42 | + <view class='s_img' style="position: relative"> | |
51 | 43 | <image src="{{imghost+aitem.original_img}}" data-errorimg="goods_array[{{index}}][{{aind}}].original_img" binderror="bind_bnerr3"></image> |
52 | - </view> | |
53 | 44 | |
54 | - <view class='s_foot_kill'> | |
55 | - <text>{{aitem.djs.day}}天</text> | |
56 | - <text>{{aitem.djs.hou}}时</text> | |
57 | - <text>{{aitem.djs.min}}分</text> | |
58 | - <text>{{aitem.djs.sec}}秒</text> | |
45 | + | |
46 | + <view class='s_foot_kill' style="position: absolute"> | |
47 | + <text>{{aitem.djs.day}}天</text> | |
48 | + <text>{{aitem.djs.hou}}时</text> | |
49 | + <text>{{aitem.djs.min}}分</text> | |
50 | + <text>{{aitem.djs.sec}}秒</text> | |
51 | + </view> | |
52 | + | |
59 | 53 | </view> |
60 | 54 | <view class='clear'></view> |
61 | - | |
62 | 55 | </view> |
63 | 56 | |
64 | 57 | <view class='sp_wz'> |
65 | - <view class='sp_wzi'>{{aitem.title}}</view> | |
66 | - <view class='sp_jg'>¥{{aitem.price}}</view> | |
58 | + <view class='sp_wzi'>{{aitem.act_name}}</view> | |
59 | + <view class='sp_jg'>¥{{aitem.presell_price}}</view> | |
67 | 60 | <view class='sp_jgx'>¥{{aitem.market_price}}</view> |
68 | 61 | </view> |
69 | 62 | |
... | ... | @@ -85,7 +78,7 @@ |
85 | 78 | </view> |
86 | 79 | |
87 | 80 | <view class="o1_right"> |
88 | - <view class="sp_wzi">{{aitem.title}}</view> | |
81 | + <view class="sp_wzi">{{aitem.act_name}}</view> | |
89 | 82 | <view class="o1_sj_kill"> |
90 | 83 | <text>{{aitem.djs.day}}</text> 天 |
91 | 84 | <text>{{aitem.djs.hou}}</text> : |
... | ... | @@ -94,28 +87,23 @@ |
94 | 87 | |
95 | 88 | </view> |
96 | 89 | <view class="money"> |
97 | - <view class='sp_jg'>¥{{aitem.price}}</view> | |
90 | + <view class='sp_jg'>¥{{aitem.presell_price}}</view> | |
98 | 91 | <view class='sp_jgx'>¥{{aitem.market_price}}</view> |
99 | 92 | </view> |
100 | - <block wx:if="{{aitem.start_time>newTime}}"> | |
101 | - <view class="rob"> | |
102 | - <view class="wo" style="background-color: #adadad">正在预热</view> | |
103 | - </view> | |
104 | - </block> | |
105 | - | |
93 | + | |
106 | 94 | <block wx:if="{{aitem.end_time<newTime}}"> |
107 | 95 | <view class="rob"> |
108 | 96 | <view class="wo" style="background-color: #adadad">已结束</view> |
109 | 97 | </view> |
110 | 98 | </block> |
111 | 99 | <block wx:else> |
112 | - <block wx:if="{{aitem.start_time<newTime && aitem.goods_num>aitem.buy_num}}"> | |
100 | + <block wx:if="{{aitem.start_time<newTime && aitem.buy_goodnum<aitem.presell_sumqty}}"> | |
113 | 101 | <view class="rob"> |
114 | 102 | <view class="wo">我要抢</view> |
115 | 103 | </view> |
116 | 104 | </block> |
117 | 105 | |
118 | - <block wx:if="{{aitem.goods_num<=aitem.buy_num}}"> | |
106 | + <block wx:if="{{aitem.buy_goodnum>=aitem.presell_sumqty}}"> | |
119 | 107 | <view class="rob"> |
120 | 108 | <view class="wo" style="background-color: #adadad">已抢光</view> |
121 | 109 | </view> | ... | ... |
components/diy_pregoods/diy_pregoods.wxss
... | ... | @@ -68,7 +68,6 @@ swiper { |
68 | 68 | width: 210rpx; |
69 | 69 | height: 100%; |
70 | 70 | position: relative; |
71 | - top: -74rpx; | |
72 | 71 | left: 0rpx; |
73 | 72 | } |
74 | 73 | |
... | ... | @@ -81,9 +80,9 @@ swiper { |
81 | 80 | padding: 4rpx 10rpx; |
82 | 81 | border-radius: 10rpx; |
83 | 82 | z-index: 999; |
84 | - position: relative; | |
85 | - top: -6rpx; | |
86 | - width: 210rpx; | |
83 | + position: absolute; | |
84 | + top: 0rpx; | |
85 | + width: 130rpx; | |
87 | 86 | color: #fff; |
88 | 87 | text-align: center; |
89 | 88 | } |
... | ... | @@ -95,7 +94,7 @@ swiper { |
95 | 94 | .sp .sp_top .s_foot_kill { |
96 | 95 | font-size: 20rpx; |
97 | 96 | position: relative; |
98 | - top: -90rpx; | |
97 | + bottom: 0rpx; | |
99 | 98 | width: 210rpx; |
100 | 99 | height: 38rpx; |
101 | 100 | line-height: 38rpx; |
... | ... | @@ -280,7 +279,6 @@ swiper { |
280 | 279 | } |
281 | 280 | .rob{ |
282 | 281 | display: flex; |
283 | - justify-content: flex-end; | |
284 | 282 | font-size: 30rpx; |
285 | 283 | } |
286 | 284 | .money{ | ... | ... |
pages/index/index/index.json
... | ... | @@ -18,7 +18,8 @@ |
18 | 18 | "mvideo": "/components/diy_video/diy_video", |
19 | 19 | "service": "/components/diy_service/diy_service", |
20 | 20 | "scan": "/components/diy_scan/diy_scan", |
21 | - "store_select": "/components/diy_store_select/diy_store_select" | |
21 | + "store_select": "/components/diy_store_select/diy_store_select", | |
22 | + "presell": "/components/diy_pregoods/diy_pregoods" | |
22 | 23 | }, |
23 | 24 | "enablePullDownRefresh": false |
24 | 25 | } |
25 | 26 | \ No newline at end of file | ... | ... |
pages/index/index/index.wxml
... | ... | @@ -435,10 +435,16 @@ |
435 | 435 | <block wx:if="{{item.ename=='scan'}}"> |
436 | 436 | <scan object="{{item.content}}"></scan> |
437 | 437 | </block> |
438 | - <!--扫一扫--> | |
438 | + <!-- 门店选择 --> | |
439 | 439 | <block wx:if="{{item.ename=='store_select' && item.content.is_top!=1}}"> |
440 | 440 | <store_select object="{{item.content}}"></store_select> |
441 | - </block> | |
441 | + </block> | |
442 | + | |
443 | + <!-- 预售 --> | |
444 | + <block wx:if="{{item.ename=='presale'}}"> | |
445 | + <presell object="{{item.content}}"></presell> | |
446 | + </block> | |
447 | + | |
442 | 448 | </view> |
443 | 449 | |
444 | 450 | |
... | ... | @@ -461,9 +467,7 @@ |
461 | 467 | <view class="img-box" style="position: relative;"> |
462 | 468 | <image mode="widthFix" class="receive" src="{{url}}{{new_image==''?'/miniapp/images/newpeople/newreceive.png':new_image}}"></image> |
463 | 469 | </view> |
464 | - <!-- <view> --> | |
465 | - | |
466 | - <!-- </view> --> | |
470 | + | |
467 | 471 | </navigator> |
468 | 472 | <image class="close" src="{{url}}/miniapp/images/plus/Close.png" catchtap="close_disgraceful" mode=""/> |
469 | 473 | <!-- <view class="flex-level"></view> --> | ... | ... |
pages/template/index.json
... | ... | @@ -19,7 +19,8 @@ |
19 | 19 | "picMax": "/components/diy_picMax/diy_picMax", |
20 | 20 | "mvideo": "/components/diy_video/diy_video", |
21 | 21 | "service": "/components/diy_service/diy_service", |
22 | - "scan": "/components/diy_scan/diy_scan" | |
22 | + "scan": "/components/diy_scan/diy_scan", | |
23 | + "presell": "/components/diy_pregoods/diy_pregoods" | |
23 | 24 | }, |
24 | 25 | "enablePullDownRefresh": false |
25 | 26 | } |
26 | 27 | \ No newline at end of file | ... | ... |
pages/template/index.wxml
... | ... | @@ -61,6 +61,14 @@ |
61 | 61 | <block wx:if="{{item.ename=='scan'}}"> |
62 | 62 | <scan object="{{item.content}}"></scan> |
63 | 63 | </block> |
64 | + | |
65 | + <!-- 预售 --> | |
66 | + <block wx:if="{{item.ename=='presale'}}"> | |
67 | + <presell object="{{item.content}}"></presell> | |
68 | + </block> | |
69 | + | |
70 | + | |
71 | + | |
64 | 72 | </view> |
65 | 73 | </block> |
66 | 74 | </view> | ... | ... |