Commit af9b551e8a9f0107c72a0b55715327a034299daf
1 parent
9b43128b
预售商品
Showing
4 changed files
with
537 additions
and
0 deletions
components/diy_pregoods/diy_pregoods.js
0 → 100644
| 1 | +var t = getApp(), os = t.globalData.setting,ut = require("../../utils/util.js"); | |
| 2 | +var regeneratorRuntime = require('../../utils/runtime.js'); | |
| 3 | +Component({ | |
| 4 | + properties: { | |
| 5 | + // 这里定义了innerText属性,属性值可以在组件使用时指定 | |
| 6 | + object: { | |
| 7 | + type: Object, value: null, | |
| 8 | + }, | |
| 9 | + goods_array: { | |
| 10 | + type: Array, value: [] | |
| 11 | + }, | |
| 12 | + }, | |
| 13 | + data: { | |
| 14 | + // 这里是一些组件内部数据 | |
| 15 | + someData: null, | |
| 16 | + imghost: os.imghost, | |
| 17 | + }, | |
| 18 | + | |
| 19 | + ready: function() { | |
| 20 | + var g_id = this.data.object.data; | |
| 21 | + this.init(g_id); | |
| 22 | + }, | |
| 23 | + | |
| 24 | + methods: { | |
| 25 | + // 这里是一个自定义方法 | |
| 26 | + init: function(g_id) { | |
| 27 | + var th = this, app = getApp(), goodsidlist=""; | |
| 28 | + if(g_id && g_id.length>0){ | |
| 29 | + //--先把商品ID串起来-- | |
| 30 | + g_id.forEach(function(val, ind) { | |
| 31 | + var item = {}; | |
| 32 | + goodsidlist+=val.goodsid+","; | |
| 33 | + }) | |
| 34 | + goodsidlist=ut.sub_last(goodsidlist); | |
| 35 | + //--调用接口,读取秒杀-- | |
| 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} | |
| 39 | + }).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 | + } | |
| 46 | + }); | |
| 47 | + }else{ | |
| 48 | + th.no_gid_set(); | |
| 49 | + } | |
| 50 | + }, | |
| 51 | + | |
| 52 | + //当是默认的情况 | |
| 53 | + 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 }} | |
| 56 | + ).then(res=>{ | |
| 57 | + if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0) { | |
| 58 | + var goodsidlist=res.data.data.pageData; | |
| 59 | + this.set_goods_list(null,goodsidlist); | |
| 60 | + } | |
| 61 | + }); | |
| 62 | + }, | |
| 63 | + | |
| 64 | + //就算是添加的活动已经过期,就要用最新的活动 | |
| 65 | + set_goods_list(g_id,goodslist){ | |
| 66 | + // 判断火热,预热 | |
| 67 | + var newTime = ut.gettimestamp(),all_array = [],th=this; | |
| 68 | + th.setData({newTime:newTime}); | |
| 69 | + if(g_id){ | |
| 70 | + /*--商品队列按照添加的顺序排列--*/ | |
| 71 | + g_id.forEach(function(val, ind) { | |
| 72 | + goodslist.forEach(function (vy,indy) { | |
| 73 | + if(val.goodsid==vy.goods_id){ all_array.push(vy); } | |
| 74 | + }) | |
| 75 | + }) | |
| 76 | + }else{ | |
| 77 | + all_array=goodslist; | |
| 78 | + } | |
| 79 | + | |
| 80 | + if(all_array.length==0){ all_array=goodslist;} | |
| 81 | + | |
| 82 | + var arr = new Array(); | |
| 83 | + //--三个三个一组--- | |
| 84 | + for(var i=0;i< all_array.length;i+=3){ | |
| 85 | + arr.push(all_array.slice(i,i+3)); | |
| 86 | + } | |
| 87 | + /*--熏染到前台--*/ | |
| 88 | + th.setData({goods_array:arr}); | |
| 89 | + }, | |
| 90 | + | |
| 91 | + //图片失败,默认图片 | |
| 92 | + bind_bnerr3: function (e) { | |
| 93 | + var _errImg = e.target.dataset.errorimg; | |
| 94 | + var _errObj = {}; | |
| 95 | + _errObj[_errImg] = "/public/images/default_goods_image_240.gif"; | |
| 96 | + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; | |
| 97 | + }, | |
| 98 | + | |
| 99 | + go_to_skill:function () { | |
| 100 | + wx.navigateTo({ | |
| 101 | + url:"/packageC/pages/presell/list/list" | |
| 102 | + }); | |
| 103 | + } | |
| 104 | + }, | |
| 105 | + | |
| 106 | + | |
| 107 | +}) | |
| 0 | 108 | \ No newline at end of file | ... | ... |
components/diy_pregoods/diy_pregoods.json
0 → 100644
components/diy_pregoods/diy_pregoods.wxml
0 → 100644
| 1 | +<block wx:if="{{goods_array.length>0}}"> | |
| 2 | + <!--秒杀--> | |
| 3 | + <view class='top' bindtap="go_to_skill"> | |
| 4 | + <view class="flex"> | |
| 5 | + <view class='t_left'></view> | |
| 6 | + <view class='t_ms'>秒杀</view> | |
| 7 | + </view> | |
| 8 | + <view class='right_k'> | |
| 9 | + <image src="{{imghost}}/miniapp/images/icon-arrowdown.png" lazy-load="true"></image> | |
| 10 | + </view> | |
| 11 | + </view> | |
| 12 | + | |
| 13 | + <!--商品展示--> | |
| 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}}"> | |
| 16 | + <swiper-item class="s_it" wx:for="{{goods_array}}"> | |
| 17 | + <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind"> | |
| 18 | + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}" class="s1_gk_a1"> | |
| 19 | + <view class='one'> | |
| 20 | + <view class='sp_top'> | |
| 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 | + <block wx:if="{{aitem.end_time<=newTime}}"> | |
| 29 | + <view class="rob"> | |
| 30 | + <span class='s_top_kill gray'>活动已结束</span> | |
| 31 | + </view> | |
| 32 | + </block> | |
| 33 | + <block wx:else> | |
| 34 | + <block wx:if="{{aitem.start_time<newTime && aitem.goods_num>aitem.buy_num}}"> | |
| 35 | + <view class="rob"> | |
| 36 | + <span class='s_top_kill'>火热进行</span> | |
| 37 | + </view> | |
| 38 | + </block> | |
| 39 | + <block wx:if="{{aitem.goods_num<=aitem.buy_num}}"> | |
| 40 | + <view class="rob"> | |
| 41 | + <span class='s_top_kill gray'>已抢光</span> | |
| 42 | + </view> | |
| 43 | + </block> | |
| 44 | + </block> | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + <view class='clear'></view> | |
| 49 | + | |
| 50 | + <view class='s_img'> | |
| 51 | + <image src="{{imghost+aitem.original_img}}" data-errorimg="goods_array[{{index}}][{{aind}}].original_img" binderror="bind_bnerr3"></image> | |
| 52 | + </view> | |
| 53 | + | |
| 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> | |
| 59 | + </view> | |
| 60 | + <view class='clear'></view> | |
| 61 | + | |
| 62 | + </view> | |
| 63 | + | |
| 64 | + <view class='sp_wz'> | |
| 65 | + <view class='sp_wzi'>{{aitem.title}}</view> | |
| 66 | + <view class='sp_jg'>¥{{aitem.price}}</view> | |
| 67 | + <view class='sp_jgx'>¥{{aitem.market_price}}</view> | |
| 68 | + </view> | |
| 69 | + | |
| 70 | + </view> | |
| 71 | + </navigator> | |
| 72 | + </block> | |
| 73 | + </swiper-item> | |
| 74 | + </view> | |
| 75 | + </swiper> | |
| 76 | + | |
| 77 | + <view class="sp2" wx:if="{{object.style==2}}"> | |
| 78 | + <block wx:for="{{goods_array}}"> | |
| 79 | + <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind"> | |
| 80 | + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}" class="s1_gk_a1"> | |
| 81 | + <view class='one1'> | |
| 82 | + | |
| 83 | + <view class="o1_img"> | |
| 84 | + <image src="{{imghost+aitem.original_img}}" data-errorimg="goods_array[{{index}}][{{aind}}].original_img" binderror="bind_bnerr3"></image> | |
| 85 | + </view> | |
| 86 | + | |
| 87 | + <view class="o1_right"> | |
| 88 | + <view class="sp_wzi">{{aitem.title}}</view> | |
| 89 | + <view class="o1_sj_kill"> | |
| 90 | + <text>{{aitem.djs.day}}</text> 天 | |
| 91 | + <text>{{aitem.djs.hou}}</text> : | |
| 92 | + <text>{{aitem.djs.min}}</text> : | |
| 93 | + <text>{{aitem.djs.sec}}</text> | |
| 94 | + | |
| 95 | + </view> | |
| 96 | + <view class="money"> | |
| 97 | + <view class='sp_jg'>¥{{aitem.price}}</view> | |
| 98 | + <view class='sp_jgx'>¥{{aitem.market_price}}</view> | |
| 99 | + </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 | + | |
| 106 | + <block wx:if="{{aitem.end_time<newTime}}"> | |
| 107 | + <view class="rob"> | |
| 108 | + <view class="wo" style="background-color: #adadad">已结束</view> | |
| 109 | + </view> | |
| 110 | + </block> | |
| 111 | + <block wx:else> | |
| 112 | + <block wx:if="{{aitem.start_time<newTime && aitem.goods_num>aitem.buy_num}}"> | |
| 113 | + <view class="rob"> | |
| 114 | + <view class="wo">我要抢</view> | |
| 115 | + </view> | |
| 116 | + </block> | |
| 117 | + | |
| 118 | + <block wx:if="{{aitem.goods_num<=aitem.buy_num}}"> | |
| 119 | + <view class="rob"> | |
| 120 | + <view class="wo" style="background-color: #adadad">已抢光</view> | |
| 121 | + </view> | |
| 122 | + </block> | |
| 123 | + </block> | |
| 124 | + | |
| 125 | + | |
| 126 | + </view> | |
| 127 | + </view> | |
| 128 | + </navigator> | |
| 129 | + </block> | |
| 130 | + </block> | |
| 131 | + | |
| 132 | + </view> | |
| 133 | + <view class='clear'></view> | |
| 134 | + | |
| 135 | +</block> | |
| 0 | 136 | \ No newline at end of file | ... | ... |
components/diy_pregoods/diy_pregoods.wxss
0 → 100644
| 1 | +.flex{ | |
| 2 | + display: flex; | |
| 3 | + align-items: center; | |
| 4 | +} | |
| 5 | +.top { | |
| 6 | + background-color: white; | |
| 7 | + height: 70rpx; | |
| 8 | + line-height: 70rpx; | |
| 9 | + color: #000; | |
| 10 | + border-bottom: 2rpx solid #eee; | |
| 11 | + padding:0rpx 20rpx; | |
| 12 | + display: flex; | |
| 13 | + justify-content: space-between; | |
| 14 | + font-size: 32rpx; | |
| 15 | +} | |
| 16 | + | |
| 17 | +.s_it { | |
| 18 | + width: 100%; | |
| 19 | + display: flex; | |
| 20 | + background-color: white; | |
| 21 | +} | |
| 22 | + | |
| 23 | +.s_prom { | |
| 24 | + width: 100%; | |
| 25 | + background-color: white; | |
| 26 | + min-height: 200rpx; | |
| 27 | +} | |
| 28 | + | |
| 29 | +swiper { | |
| 30 | + display: block; | |
| 31 | + height: 400rpx; | |
| 32 | +} | |
| 33 | + | |
| 34 | +.right_k { | |
| 35 | + width: 30rpx; | |
| 36 | +} | |
| 37 | +.right_k image{ | |
| 38 | + width: 30rpx; | |
| 39 | + height: 30rpx; | |
| 40 | +} | |
| 41 | + .t_left { | |
| 42 | + width: 10rpx; | |
| 43 | + height: 38rpx; | |
| 44 | + background: #c4182e; | |
| 45 | + margin-right: 10rpx; | |
| 46 | +} | |
| 47 | + | |
| 48 | + | |
| 49 | +.sp { | |
| 50 | + min-height: 300rpx; | |
| 51 | + width: 100%; | |
| 52 | + background-color: white; | |
| 53 | + padding: 18rpx; | |
| 54 | + display: flex; | |
| 55 | +} | |
| 56 | + | |
| 57 | +.sp .sp_top { | |
| 58 | + height: 220rpx; | |
| 59 | + min-width: 30%; | |
| 60 | +} | |
| 61 | + | |
| 62 | +.sp .sp_top .s_img { | |
| 63 | + width: 210rpx; | |
| 64 | + height: 100%; | |
| 65 | +} | |
| 66 | + | |
| 67 | +.sp .sp_top .s_img image { | |
| 68 | + width: 210rpx; | |
| 69 | + height: 100%; | |
| 70 | + position: relative; | |
| 71 | + top: -74rpx; | |
| 72 | + left: 0rpx; | |
| 73 | +} | |
| 74 | + | |
| 75 | +.sp .sp_top .s_top_kill { | |
| 76 | + background-color: #c4182e; | |
| 77 | + font-size: 24rpx; | |
| 78 | + height: 38rpx; | |
| 79 | + line-height: 38rpx; | |
| 80 | + left: 6rpx; | |
| 81 | + padding: 4rpx 10rpx; | |
| 82 | + border-radius: 10rpx; | |
| 83 | + z-index: 999; | |
| 84 | + position: relative; | |
| 85 | + top: -6rpx; | |
| 86 | + width: 210rpx; | |
| 87 | + color: #fff; | |
| 88 | + text-align: center; | |
| 89 | +} | |
| 90 | + | |
| 91 | +.po { | |
| 92 | + position: absolute; | |
| 93 | +} | |
| 94 | + | |
| 95 | +.sp .sp_top .s_foot_kill { | |
| 96 | + font-size: 20rpx; | |
| 97 | + position: relative; | |
| 98 | + top: -90rpx; | |
| 99 | + width: 210rpx; | |
| 100 | + height: 38rpx; | |
| 101 | + line-height: 38rpx; | |
| 102 | + color: #fff; | |
| 103 | + text-align: center; | |
| 104 | + background-color: rgba(0, 0, 0, 0.5); | |
| 105 | +} | |
| 106 | + | |
| 107 | +.sp_wz { | |
| 108 | + width: 210rpx; | |
| 109 | + min-height: 100rpx; | |
| 110 | +} | |
| 111 | + | |
| 112 | +.sp_wz .sp_wzi { | |
| 113 | + font-size: 30rpx; | |
| 114 | + border-bottom: 2rpx solid #dcdcdc; | |
| 115 | + width: 100%; | |
| 116 | + text-align: left; | |
| 117 | + padding: 4rpx 0; | |
| 118 | + overflow: hidden; | |
| 119 | + height: 48rpx; | |
| 120 | + text-overflow: ellipsis; | |
| 121 | + white-space: nowrap; | |
| 122 | + line-height: 48rpx; | |
| 123 | +} | |
| 124 | + | |
| 125 | +.sp_wz .sp_jg { | |
| 126 | + color: #c4182e; | |
| 127 | + font-size: 30rpx; | |
| 128 | + overflow: hidden; | |
| 129 | + display: inline-block; | |
| 130 | + text-overflow: ellipsis; | |
| 131 | + white-space: nowrap; | |
| 132 | + margin-right: 10rpx; | |
| 133 | +} | |
| 134 | + | |
| 135 | +.sp_wz .sp_jgx { | |
| 136 | + color: #adadad; | |
| 137 | + text-decoration: line-through; | |
| 138 | + font-size: 24rpx; | |
| 139 | + overflow: hidden; | |
| 140 | + display: inline-block; | |
| 141 | + text-overflow: ellipsis; | |
| 142 | + white-space: nowrap; | |
| 143 | +} | |
| 144 | + | |
| 145 | +.one { | |
| 146 | + margin-left: 14rpx; | |
| 147 | +} | |
| 148 | + | |
| 149 | +.sp .sp_top .s_top1_kill { | |
| 150 | + position: absolute; | |
| 151 | + background-color: #c4182e; | |
| 152 | + font-size: 24rpx; | |
| 153 | + height: 38rpx; | |
| 154 | + line-height: 38rpx; | |
| 155 | + left: 265rpx; | |
| 156 | + top: 100rpx; | |
| 157 | + padding: 0 10rpx; | |
| 158 | + color: white; | |
| 159 | + border-radius: 10rpx; | |
| 160 | +} | |
| 161 | + | |
| 162 | +.sp .sp_top .s_top2_kill { | |
| 163 | + position: absolute; | |
| 164 | + background-color: #c4182e; | |
| 165 | + font-size: 24rpx; | |
| 166 | + height: 38rpx; | |
| 167 | + line-height: 38rpx; | |
| 168 | + right: 146rpx; | |
| 169 | + top: 100rpx; | |
| 170 | + padding: 0 10rpx; | |
| 171 | + color: white; | |
| 172 | + border-radius: 10rpx; | |
| 173 | +} | |
| 174 | + | |
| 175 | +.sp .sp_top .s_foot1_kill { | |
| 176 | + font-size: 20rpx; | |
| 177 | + position: absolute; | |
| 178 | + top: 270rpx; | |
| 179 | + width: 210rpx; | |
| 180 | + height: 38rpx; | |
| 181 | + line-height: 38rpx; | |
| 182 | + color: #fff; | |
| 183 | + text-align: center; | |
| 184 | + background-color: rgba(0, 0, 0, 0.5); | |
| 185 | +} | |
| 186 | + | |
| 187 | +.po1 { | |
| 188 | + position: absolute; | |
| 189 | +} | |
| 190 | + | |
| 191 | +.sp .sp_top .s_foot2_kill { | |
| 192 | + font-size: 20rpx; | |
| 193 | + position: absolute; | |
| 194 | + top: 270rpx; | |
| 195 | + width: 210rpx; | |
| 196 | + height: 38rpx; | |
| 197 | + line-height: 38rpx; | |
| 198 | + color: #fff; | |
| 199 | + text-align: center; | |
| 200 | + background-color: rgba(0, 0, 0, 0.5); | |
| 201 | +} | |
| 202 | + | |
| 203 | +.sp2 { | |
| 204 | + width: 100%; | |
| 205 | + min-height: 240rpx; | |
| 206 | +} | |
| 207 | + | |
| 208 | +.sp2 .one1 { | |
| 209 | + background-color: white; | |
| 210 | + height: 285rpx; | |
| 211 | + display: flex; | |
| 212 | + padding:0rpx 20rpx; | |
| 213 | + border-bottom: 6rpx#eee solid; | |
| 214 | + align-items: center; | |
| 215 | +} | |
| 216 | + | |
| 217 | +.sp2 .one1 .o1_img { | |
| 218 | + width: 220rpx; | |
| 219 | + height: 220rpx; | |
| 220 | + margin-right: 25rpx; | |
| 221 | +} | |
| 222 | + | |
| 223 | +.o1_right .sp_wzi { | |
| 224 | + font-size: 30rpx; | |
| 225 | + margin-bottom: 6rpx; | |
| 226 | + text-align: left; | |
| 227 | + padding: 4rpx 0; | |
| 228 | + height: 48rpx; | |
| 229 | + overflow: hidden; | |
| 230 | + white-space: nowrap; | |
| 231 | + text-overflow: ellipsis; | |
| 232 | +} | |
| 233 | + | |
| 234 | +.o1_right .o1_sj_kill { | |
| 235 | + height: 60rpx; | |
| 236 | + margin-bottom: 10rpx; | |
| 237 | + font-size: 28rpx; | |
| 238 | +} | |
| 239 | + | |
| 240 | +.o1_right .o1_sj_kill text { | |
| 241 | + background-color: #fdcb08; | |
| 242 | + text-align: center; | |
| 243 | + border-radius: 10rpx; | |
| 244 | + padding: 4rpx; | |
| 245 | + margin-left: 6rpx; | |
| 246 | +} | |
| 247 | + | |
| 248 | +.o1_right .sp_jg { | |
| 249 | + color: #c4182e; | |
| 250 | + font-size: 30rpx; | |
| 251 | + overflow: hidden; | |
| 252 | + display: inline-block; | |
| 253 | + margin-right: 10rpx; | |
| 254 | +} | |
| 255 | + | |
| 256 | +.o1_right .sp_jgx { | |
| 257 | + color: #dcdcdc; | |
| 258 | + text-decoration: line-through; | |
| 259 | + font-size: 26rpx; | |
| 260 | + overflow: hidden; | |
| 261 | + display: inline-block; | |
| 262 | +} | |
| 263 | + | |
| 264 | +.o1_img image { | |
| 265 | + width: 220rpx; | |
| 266 | + height: 220rpx; | |
| 267 | +} | |
| 268 | +.o1_right{ | |
| 269 | + width: 465rpx; | |
| 270 | +} | |
| 271 | +.o1_right .wo { | |
| 272 | + background-color: #c4182e; | |
| 273 | + width: 150rpx; | |
| 274 | + height: 50rpx; | |
| 275 | + line-height: 50rpx; | |
| 276 | + color: white; | |
| 277 | + text-align: center; | |
| 278 | + font-size: 30rpx; | |
| 279 | + border-radius: 14rpx; | |
| 280 | +} | |
| 281 | +.rob{ | |
| 282 | + display: flex; | |
| 283 | + justify-content: flex-end; | |
| 284 | + font-size: 30rpx; | |
| 285 | +} | |
| 286 | +.money{ | |
| 287 | + display: flex; | |
| 288 | + align-items: center; | |
| 289 | +} | |
| 290 | + | |
| 291 | +.sp .sp_top .s_top_kill.gray{background-color:#bdbdc1;color: #fff;font-weight: normal} | |
| 0 | 292 | \ No newline at end of file | ... | ... |