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 | \ No newline at end of file | 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 | \ No newline at end of file | 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 | \ No newline at end of file | 292 | \ No newline at end of file |