Commit 661b75fc64029c8fb5011abede41b11e3400f192

Authored by yvan.ni
1 parent 1ce60018

预售自定义模板

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>
... ...