默认提交
Showing
30 changed files
with
807 additions
and
95 deletions
... | @@ -77,7 +77,6 @@ var lazyspriteConfig = { | ... | @@ -77,7 +77,6 @@ var lazyspriteConfig = { |
77 | 77 | ||
78 | // Log for output msg. | 78 | // Log for output msg. |
79 | function log() { | 79 | function log() { |
80 | return; | ||
81 | var data = Array.prototype.slice.call(arguments); | 80 | var data = Array.prototype.slice.call(arguments); |
82 | gutil.log.apply(false, data); | 81 | gutil.log.apply(false, data); |
83 | } | 82 | } |
... | @@ -251,15 +250,15 @@ function watch(cb) { | ... | @@ -251,15 +250,15 @@ function watch(cb) { |
251 | }); | 250 | }); |
252 | watcher | 251 | watcher |
253 | .on('change', function (file) { | 252 | .on('change', function (file) { |
254 | // log(gutil.colors.yellow(file) + ' is changed'); | 253 | log(gutil.colors.yellow(file) + ' is changed'); |
255 | watchHandler('changed', file); | 254 | watchHandler('changed', file); |
256 | }) | 255 | }) |
257 | .on('add', function (file) { | 256 | .on('add', function (file) { |
258 | // log(gutil.colors.yellow(file) + ' is added'); | 257 | log(gutil.colors.yellow(file) + ' is added'); |
259 | watchHandler('add', file); | 258 | watchHandler('add', file); |
260 | }) | 259 | }) |
261 | .on('unlink', function (file) { | 260 | .on('unlink', function (file) { |
262 | // log(gutil.colors.yellow(file) + ' is deleted'); | 261 | log(gutil.colors.yellow(file) + ' is deleted'); |
263 | watchHandler('removed', file); | 262 | watchHandler('removed', file); |
264 | }); | 263 | }); |
265 | 264 | ... | ... |
1 | { | 1 | { |
2 | "pages": [ | 2 | "pages": [ |
3 | |||
4 | "pages/index/index", | ||
5 | |||
3 | "pages/auction-list/auction-list", | 6 | "pages/auction-list/auction-list", |
4 | "pages/auction-mine/auction-mine", | 7 | "pages/auction-mine/auction-mine", |
5 | "pages/auction-detail/auction-detail", | 8 | "pages/auction-detail/auction-detail", |
6 | "pages/auction-bid-detail/auction-bid-detail", | 9 | "pages/auction-bid-detail/auction-bid-detail", |
10 | |||
11 | "pages/seckill-list/seckill-list", | ||
12 | "pages/seckill-mine/seckill-mine", | ||
13 | "pages/seckill-detail/seckill-detail", | ||
14 | |||
15 | |||
7 | "pages/user-center/user-center", | 16 | "pages/user-center/user-center", |
8 | "pages/index/index", | ||
9 | "pages/scan-result/scan-result", | 17 | "pages/scan-result/scan-result", |
10 | "pages/gift-shop/gift-shop", | 18 | "pages/gift-shop/gift-shop", |
11 | "pages/gift-detail/gift-detail", | 19 | "pages/gift-detail/gift-detail", | ... | ... |
1 | /** | ||
2 | * ------------------------------------------------------------------ | ||
3 | * Sass Minxins | ||
4 | * | ||
5 | * 参考收集: | ||
6 | * https://github.com/twbs/bootstrap-sass/tree/master/assets/stylesheets/bootstrap/mixins | ||
7 | * ------------------------------------------------------------------ | ||
8 | * | ||
9 | */ | ||
10 | |||
11 | // 居中按钮样式 | 1 | // 居中按钮样式 |
12 | @mixin btn-center($width, $height) { | 2 | @mixin btn-center($width, $height) { |
13 | width: $width; | 3 | width: $width; |
... | @@ -122,7 +112,19 @@ | ... | @@ -122,7 +112,19 @@ |
122 | font-size: $fontSize; | 112 | font-size: $fontSize; |
123 | border-radius: 8px; | 113 | border-radius: 8px; |
124 | background-color: #3680EB; | 114 | background-color: #3680EB; |
115 | } | ||
125 | 116 | ||
117 | // 通用按钮 | ||
118 | @mixin cb2($width:320px, $height:84px, $fontSize:32px) { | ||
119 | position: relative; | ||
120 | width: $width; | ||
121 | height: $height; | ||
122 | line-height: $height; | ||
123 | text-align: center; | ||
124 | font-size: $fontSize; | ||
125 | border-radius: 8px; | ||
126 | color: #3680EB; | ||
127 | border: solid 1PX #3680EB; | ||
126 | } | 128 | } |
127 | 129 | ||
128 | 130 | ... | ... |
1 | /** | 1 | @import "support"; |
2 | * ------------------------------------------------------------------ | ||
3 | * 原子类 | ||
4 | * | ||
5 | * ------------------------------------------------------------------ | ||
6 | * | ||
7 | */ | ||
8 | @import "support"; | ||
9 | 2 | ||
10 | // // Margin | 3 | // // Margin |
11 | // .u-mt-smaller { | 4 | // .u-mt-smaller { |
... | @@ -204,48 +197,52 @@ | ... | @@ -204,48 +197,52 @@ |
204 | 197 | ||
205 | 198 | ||
206 | 199 | ||
207 | .bis { | 200 | .bis { |
208 | background-repeat: no-repeat; | 201 | background-repeat: no-repeat; |
209 | background-size: 100% 100%; | 202 | background-size: 100% 100%; |
210 | } | 203 | } |
211 | 204 | ||
212 | 205 | ||
213 | //flex 布局和 子元素 对其方式 | 206 | //flex 布局和 子元素 对其方式 |
214 | .fl { | 207 | .fl { |
215 | display: flex; | 208 | display: flex; |
216 | } | 209 | } |
217 | 210 | ||
218 | .fj { | 211 | .fj { |
219 | display: flex; | 212 | display: flex; |
220 | justify-content: space-between; | 213 | justify-content: space-between; |
221 | } | 214 | } |
222 | 215 | ||
223 | 216 | ||
224 | 217 | ||
225 | .fje { | 218 | .fje { |
226 | display: flex; | 219 | display: flex; |
227 | justify-content: flex-end; | 220 | justify-content: flex-end; |
228 | } | 221 | } |
229 | 222 | ||
230 | //水平和垂直居中 | 223 | //水平和垂直居中 |
231 | .fcc { | 224 | .fcc { |
232 | display: flex; | 225 | display: flex; |
233 | justify-content: center; | 226 | justify-content: center; |
234 | align-items: center; | 227 | align-items: center; |
235 | } | 228 | } |
236 | 229 | ||
237 | // 为元素设定的宽度和高度决定了元素的边框盒。 | 230 | // 为元素设定的宽度和高度决定了元素的边框盒。 |
238 | .bb { | 231 | .bb { |
239 | box-sizing: border-box; | 232 | box-sizing: border-box; |
240 | } | 233 | } |
241 | 234 | ||
242 | // 满屏 | 235 | // 满屏 |
243 | .fullp { | 236 | .fullp { |
244 | width: 100%; | 237 | width: 100%; |
245 | height: 100%; | 238 | height: 100%; |
246 | } | 239 | } |
247 | 240 | ||
248 | .shadow { | 241 | .shadow { |
249 | box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.10); | 242 | box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.10); |
250 | border-radius: 8px; | 243 | border-radius: 8px; |
251 | } | 244 | } |
245 | |||
246 | .linear { | ||
247 | background-image: linear-gradient(to right, #1bade8, #3680EB); | ||
248 | } | ... | ... |
... | @@ -35,9 +35,26 @@ module.exports = { | ... | @@ -35,9 +35,26 @@ module.exports = { |
35 | signInfo: '/sign/info', // post 签到信息 用户注册接口 | 35 | signInfo: '/sign/info', // post 签到信息 用户注册接口 |
36 | sign: '/sign', // post 签到动作 用户注册接口 | 36 | sign: '/sign', // post 签到动作 用户注册接口 |
37 | signRecord: '/sign/record', // post 签到记录 用户注册接口 | 37 | signRecord: '/sign/record', // post 签到记录 用户注册接口 |
38 | saveOpenid:'/member/save/subscription/openid', //保存 openid | 38 | saveOpenid: '/member/save/subscription/openid', //保存 openid |
39 | |||
40 | // 拍卖 | ||
41 | auctionList: '/auction/list', // post 拍卖列表 | ||
42 | auctionDetail: '/auction/detail', // post 获得秒杀产品详细信息 | ||
43 | auctionSubmit: '/auction/submit', // post 拍卖出价提交 | ||
44 | auctionRecordList: '/auction/record/list', // post 拍卖出价列表 | ||
45 | auctionRecordLast: '/auction/record/last', // post 获得最高价 和列表 | ||
46 | auctionMine: '/auction/member', // post 我的拍卖产品 | ||
47 | |||
48 | // 秒杀 | ||
49 | seckillList: '/seckill/list', // post 秒杀列表 | ||
50 | seckillDetail: '/seckill/detail', // post 秒杀详情 | ||
51 | member: '/member', // post 秒杀收件人信息获取 | ||
52 | seckillSubmit: '/seckill/submit', // post 提交秒杀订单 | ||
53 | seckillMine: '/seckill/member', // post 我的秒杀产品 | ||
39 | 54 | ||
40 | areaQuery: 'https://api.k.wxpai.cn/bizproxy/kdapi/area', // post 区域查询 | 55 | areaQuery: 'https://api.k.wxpai.cn/bizproxy/kdapi/area', // post 区域查询 |
41 | 56 | ||
42 | uploadFile: '/kdapi/file/upload' //上传图片通用接口 | 57 | uploadFile: '/kdapi/file/upload' //上传图片通用接口 |
58 | |||
59 | // websocket 链接 | ||
43 | } | 60 | } | ... | ... |
... | @@ -4,14 +4,52 @@ import { | ... | @@ -4,14 +4,52 @@ import { |
4 | 4 | ||
5 | let app = getApp(); | 5 | let app = getApp(); |
6 | Page({ | 6 | Page({ |
7 | data: {}, | 7 | data: { |
8 | authorizeVisible: false, | ||
9 | productInfo: {}, | ||
10 | navBackTimeout: 0, | ||
11 | }, | ||
8 | onShareAppMessage() {}, | 12 | onShareAppMessage() {}, |
9 | showAuth() { | 13 | showAuth() { |
10 | this.setData({ | 14 | this.setData({ |
11 | authorizeVisible: true | 15 | authorizeVisible: true |
12 | }) | 16 | }) |
13 | }, | 17 | }, |
14 | onLoad(options) {}, | 18 | onLoad(options) { |
19 | this.queryAuctionDetail(options.code); | ||
20 | }, | ||
21 | onShow() {}, | ||
22 | |||
23 | /** | ||
24 | * 秒杀详情 | ||
25 | */ | ||
26 | queryAuctionDetail(code) { | ||
27 | let _this = this; | ||
28 | return new Promise((resolve, reject) => { | ||
29 | app.post({ | ||
30 | url: app.api.auctionDetail, | ||
31 | data: { | ||
32 | auctionCode: code | ||
33 | } | ||
34 | }).then((result) => { | ||
35 | this.setData({ | ||
36 | productInfo: result | ||
37 | }) | ||
38 | // wx.setNavigationBarTitle({ | ||
39 | // title: result.auctionName || "拍卖活动" | ||
40 | // }) | ||
41 | resolve(); | ||
42 | }).catch((err) => { | ||
43 | clearTimeout(_this.data.navBackTimeout); | ||
44 | _this.data.navBackTimeout = setTimeout(() => { | ||
45 | wx.navigateBack({ | ||
46 | delta: 1 | ||
47 | }); | ||
48 | }, 1000); | ||
49 | }); | ||
50 | }) | ||
51 | }, | ||
52 | |||
15 | // 隐藏蒙层 | 53 | // 隐藏蒙层 |
16 | hideMask() { | 54 | hideMask() { |
17 | this.setData({ | 55 | this.setData({ | ... | ... |
1 | @import '../../assets/scss/mixins'; | 1 | @import '../../assets/scss/mixins'; |
2 | @import '../../assets/scss/utils'; | 2 | @import '../../assets/scss/utils'; |
3 | 3 | ||
4 | $contentWidth:690px; | ||
5 | |||
4 | .page { | 6 | .page { |
5 | .bgc {} | 7 | padding-bottom: $pageBottom; |
8 | |||
9 | .bgc {} | ||
10 | |||
11 | .bg {} | ||
12 | |||
13 | .main { | ||
14 | .top-space { | ||
15 | height: 0px; | ||
16 | } | ||
17 | |||
18 | .content { | ||
19 | position: relative; | ||
20 | min-height: 1000px; | ||
21 | |||
22 | // 产品图片 | ||
23 | .img-wrap { | ||
24 | $imgWidth: 750px; | ||
25 | $imgHeight: 480px; | ||
26 | width: $imgWidth; | ||
27 | height: $imgHeight; | ||
28 | border: 1PX solid #F0F0F0; | ||
29 | border-radius: 4px; | ||
30 | @extend .bb; | ||
31 | |||
32 | .swiper { | ||
33 | width: $imgWidth; | ||
34 | height: $imgHeight; | ||
35 | |||
36 | .swiper-image { | ||
37 | width: $imgWidth; | ||
38 | height: $imgHeight; | ||
39 | } | ||
40 | } | ||
41 | } | ||
42 | |||
43 | // 价格栏 | ||
44 | .func { | ||
45 | position: relative; | ||
46 | $funcHei: 120px; | ||
47 | height: $funcHei; | ||
48 | display: flex; | ||
49 | justify-content: space-between; | ||
50 | background-color: #f2f2f2; | ||
51 | |||
52 | .arrow { | ||
53 | top: 0; | ||
54 | left: 450px; | ||
55 | position: absolute; | ||
56 | width: 0; | ||
57 | height: 0; | ||
58 | border: $funcHei/2 solid transparent; | ||
59 | border-left-color: #f2f2f2; | ||
60 | |||
61 | } | ||
62 | |||
63 | &-ele { | ||
64 | display: flex; | ||
65 | font-size: 22px; | ||
66 | @extend .bb; | ||
67 | |||
68 | .prize { | ||
69 | color: #cb3939; | ||
70 | font-size: 52px; | ||
71 | font-weight: bold; | ||
72 | } | ||
73 | |||
74 | |||
75 | } | ||
76 | |||
77 | &-left { | ||
78 | align-items: center; | ||
79 | color: #333333; | ||
80 | |||
81 | padding-left: 24px; | ||
82 | font-size: 20px; | ||
83 | |||
84 | .t1 { | ||
85 | margin-left: 20px; | ||
86 | margin-top: 36px; | ||
87 | align-self: flex-start; | ||
88 | |||
89 | } | ||
90 | |||
91 | .t2 {} | ||
92 | |||
93 | .line-th { | ||
94 | text-decoration: line-through; | ||
95 | } | ||
96 | } | ||
97 | |||
98 | &-right { | ||
99 | text-align: right; | ||
100 | @extend .linear; | ||
101 | width: 300px; | ||
102 | height: $funcHei; | ||
6 | 103 | ||
7 | .bg {} | 104 | @include border-right-radius(4px); |
105 | color: #ffffff; | ||
106 | padding-right: 24px; | ||
107 | align-content: center; | ||
108 | flex-wrap: wrap; | ||
8 | 109 | ||
9 | .main { | 110 | .t1 { |
10 | .top-space { | 111 | width: 100%; |
11 | height: 0px; | 112 | font-size: 20px; |
113 | padding: 4px 0; | ||
114 | } | ||
115 | |||
116 | .date { | ||
117 | // width: 100%; | ||
118 | font-size: 22px; | ||
119 | } | ||
120 | } | ||
121 | } | ||
122 | |||
123 | // 描述 | ||
124 | .desc { | ||
125 | position: relative; | ||
126 | font-size: 26px; | ||
127 | color: #666666; | ||
128 | width: $contentWidth; | ||
129 | margin: 0 auto; | ||
130 | |||
131 | .refresh-btn { | ||
132 | @include cb2(160px, 48px, 24px); | ||
133 | position: absolute; | ||
134 | right: 0; | ||
135 | top: 0; | ||
136 | } | ||
137 | |||
138 | &-tit { | ||
139 | font-size: 36px; | ||
140 | font-weight: bold; | ||
141 | color: #333333; | ||
142 | margin: 24px 0 10px; | ||
143 | width: 520px; | ||
144 | @include ellipsis(1); | ||
145 | } | ||
146 | |||
147 | &-t1 { | ||
148 | margin-top: 12px; | ||
12 | } | 149 | } |
150 | } | ||
151 | |||
152 | // 线 | ||
153 | .line { | ||
154 | width: $contentWidth; | ||
155 | margin: 24px auto; | ||
156 | height: 1PX; | ||
157 | background-color: #666666; | ||
158 | opacity: 0.5; | ||
159 | } | ||
160 | |||
161 | // 拍卖详情 | ||
162 | .auction { | ||
163 | width: $contentWidth; | ||
164 | margin: 24px auto 0; | ||
165 | font-size: 24px; | ||
166 | |||
167 | &-desc { | ||
168 | color: #666666; | ||
169 | display: flex; | ||
170 | flex-wrap: wrap; | ||
13 | 171 | ||
14 | .content { | 172 | .t1 { |
15 | position: relative; | 173 | width: 50%; |
174 | padding: 6px 0; | ||
175 | // @extend .bb; | ||
176 | } | ||
16 | } | 177 | } |
178 | |||
179 | &-table { | ||
180 | @extend .bb; | ||
181 | padding: 24px 0 24px 40px; | ||
182 | background-color: #f8f8f8; | ||
183 | border-radius: 8px; | ||
184 | margin-top: 24px; | ||
185 | font-size: 22px; | ||
186 | |||
187 | .tab { | ||
188 | &-item { | ||
189 | display: flex; | ||
190 | justify-content: space-between; | ||
191 | |||
192 | .item { | ||
193 | text-align: center; | ||
194 | height: 32px; | ||
195 | line-height: 32px; | ||
196 | margin: 6px 0; | ||
197 | @extend .bb; | ||
198 | padding: 0 6px; | ||
199 | } | ||
200 | |||
201 | .item1 { | ||
202 | width: 72px; | ||
203 | @extend .fcc; | ||
204 | |||
205 | .block { | ||
206 | width: 72px; | ||
207 | height: 32px; | ||
208 | line-height: 32px; | ||
209 | @extend .linear; | ||
210 | color: #ffffff; | ||
211 | border-radius: 4px; | ||
212 | } | ||
213 | } | ||
214 | |||
215 | .item2 { | ||
216 | width: 200px; | ||
217 | } | ||
218 | |||
219 | .item3 { | ||
220 | width: 120px; | ||
221 | } | ||
222 | |||
223 | .item4 { | ||
224 | flex: 1; | ||
225 | } | ||
226 | } | ||
227 | |||
228 | &-item2 { | ||
229 | color: #c9c9c9; | ||
230 | |||
231 | .item1 { | ||
232 | .block { | ||
233 | background: #c9c9c9; | ||
234 | } | ||
235 | } | ||
236 | } | ||
237 | } | ||
238 | |||
239 | .tips { | ||
240 | color: #3680EB; | ||
241 | margin-top: 32px; | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | |||
246 | |||
247 | } | ||
248 | |||
249 | // 提交按钮 | ||
250 | .submit-btn { | ||
251 | @include cb(560px, 84px); | ||
252 | @extend .linear; | ||
253 | margin: 72px auto 0; | ||
17 | } | 254 | } |
255 | } | ||
18 | } | 256 | } | ... | ... |
... | @@ -4,7 +4,85 @@ | ... | @@ -4,7 +4,85 @@ |
4 | <!-- <view class="app__top-shadow"></view> --> | 4 | <!-- <view class="app__top-shadow"></view> --> |
5 | <view class="app__content main"> | 5 | <view class="app__content main"> |
6 | <view class="top-space"></view> | 6 | <view class="top-space"></view> |
7 | <view class="content">auction-list</view> | 7 | <view class="content"> |
8 | <!-- 产品图 --> | ||
9 | <view class="img-wrap"> | ||
10 | <swiper class="swiper" indicator-color="rgba(0,0,0,.3)" indicator-active-color="rgba(255,255,255,1)" indicator-dots="{{true}}" autoplay="{{true}}" interval="{{5000}}" duration="{{500}}"> | ||
11 | <block wx:for="{{productInfo.auctionImage}}" wx:key="{{index}}"> | ||
12 | <swiper-item> | ||
13 | <image class="swiper-image" src="{{item}}" mode="aspectFill" /> | ||
14 | </swiper-item> | ||
15 | </block> | ||
16 | </swiper> | ||
17 | </view> | ||
18 | <!-- 价格栏 --> | ||
19 | <view class="func"> | ||
20 | <view class="arrow"></view> | ||
21 | <view class="func-ele func-left"> | ||
22 | <text class="prize">¥5</text> | ||
23 | <text class="t1">当前价格</text> | ||
24 | </view> | ||
25 | <view class="func-ele func-right"> | ||
26 | <text class="t1">拍卖进行中</text> | ||
27 | <text class="t1 date">时间时间</text> | ||
28 | </view> | ||
29 | </view> | ||
30 | <!-- 描述 --> | ||
31 | <view class="desc"> | ||
32 | <view class="refresh-btn">刷新价格</view> | ||
33 | <view class="desc-tit">标题</view> | ||
34 | <view class="desc-t1">描述</view> | ||
35 | <view class="desc-t1">活动区域</view> | ||
36 | </view> | ||
37 | <!-- 线 --> | ||
38 | <view class="line"></view> | ||
39 | <!-- 拍卖详情 --> | ||
40 | <view class="auction"> | ||
41 | <view class="auction-desc"> | ||
42 | <view class="t1">产品原价:280元</view> | ||
43 | <view class="t1">起拍价:280元</view> | ||
44 | <view class="t1">最小价格幅度:280元</view> | ||
45 | <view class="t1">延时周期:5分钟</view> | ||
46 | </view> | ||
47 | <view class="auction-table"> | ||
48 | <view class="tab"> | ||
49 | <view class="tab-item"> | ||
50 | <view class="item item1">状态</view> | ||
51 | <view class="item item2">竞拍者</view> | ||
52 | <view class="item item3">出价</view> | ||
53 | <view class="item item4">时间</view> | ||
54 | </view> | ||
55 | <view class="tab-item"> | ||
56 | <view class="item item1"> | ||
57 | <view class="block">领先</view> | ||
58 | </view> | ||
59 | <view class="item item2">xxx123</view> | ||
60 | <view class="item item3">¥150</view> | ||
61 | <view class="item item4">2019.10.02 10:36:12</view> | ||
62 | </view> | ||
63 | <view class="tab-item tab-item2"> | ||
64 | <view class="item item1"> | ||
65 | <view class="block">领先</view> | ||
66 | </view> | ||
67 | <view class="item item2">xxx123</view> | ||
68 | <view class="item item3">¥150</view> | ||
69 | <view class="item item4">2019.10.02 10:36:12</view> | ||
70 | </view> | ||
71 | <view class="tab-item tab-item2"> | ||
72 | <view class="item item1"> | ||
73 | <view class="block">领先</view> | ||
74 | </view> | ||
75 | <view class="item item2">xxx123</view> | ||
76 | <view class="item item3">¥150</view> | ||
77 | <view class="item item4">2019.10.02 10:36:12</view> | ||
78 | </view> | ||
79 | </view> | ||
80 | <view class="tips">查看所有n次出价></view> | ||
81 | </view> | ||
82 | </view> | ||
83 | </view> | ||
84 | <!-- 按钮 --> | ||
85 | <view class="submit-btn">我要出价</view> | ||
8 | </view> | 86 | </view> |
9 | </view> | 87 | </view> |
10 | <van-popup show="{{ authorizeVisible }}"> | 88 | <van-popup show="{{ authorizeVisible }}"> | ... | ... |
1 | import { | 1 | import { |
2 | getBindtapData | 2 | getBindtapData |
3 | } from '../../utils/util'; | 3 | } from '../../utils/util'; |
4 | let Date = require('../../utils/date.js'); | ||
4 | 5 | ||
5 | let app = getApp(); | 6 | let app = getApp(); |
6 | Page({ | 7 | Page({ |
7 | data: {}, | 8 | data: { |
9 | authorizeVisible: false, | ||
10 | total: 0, | ||
11 | page: 1, | ||
12 | size: 10, | ||
13 | dataList: [], | ||
14 | }, | ||
8 | onShareAppMessage() {}, | 15 | onShareAppMessage() {}, |
9 | showAuth() { | 16 | showAuth() { |
10 | this.setData({ | 17 | this.setData({ |
11 | authorizeVisible: true | 18 | authorizeVisible: true |
12 | }) | 19 | }) |
13 | }, | 20 | }, |
14 | onLoad(options) {}, | 21 | onShow() { |
22 | |||
23 | }, | ||
24 | onLoad(options) { | ||
25 | this.resetPage(); | ||
26 | this.initData(); | ||
27 | }, | ||
28 | initData() { | ||
29 | this.queryAuctionList(); | ||
30 | }, | ||
31 | |||
32 | // 到达底部 | ||
33 | onReachBottom() { | ||
34 | if (this.data.dataList.length < this.data.total) { | ||
35 | this.setData({ | ||
36 | page: this.data.page + 1 | ||
37 | }); | ||
38 | this.queryAuctionList(); | ||
39 | } | ||
40 | }, | ||
41 | |||
42 | // 重置页面列表 点击搜索条件时需要 | ||
43 | resetPage() { | ||
44 | this.setData({ | ||
45 | page: 1, | ||
46 | dataList: [] | ||
47 | }) | ||
48 | }, | ||
49 | |||
50 | /** | ||
51 | * 详情页面 | ||
52 | */ | ||
53 | onDetailHandler(evt) { | ||
54 | let curData = getBindtapData(evt); | ||
55 | console.log("curData:", curData); | ||
56 | if (curData.status == 0 || curData.status == 1) { | ||
57 | app.router.push({ | ||
58 | path: "auctionDetail", | ||
59 | query: { | ||
60 | code: curData.auctionCode, | ||
61 | title: curData.auctionName | ||
62 | } | ||
63 | }) | ||
64 | } | ||
65 | }, | ||
66 | |||
67 | // 拍卖列表 | ||
68 | queryAuctionList() { | ||
69 | return new Promise((resolve, reject) => { | ||
70 | app.post({ | ||
71 | url: app.api.auctionList, | ||
72 | data: { | ||
73 | page: this.data.page, | ||
74 | size: this.data.size, | ||
75 | } | ||
76 | }).then((result) => { | ||
77 | let dataList = result.list; | ||
78 | dataList.forEach(element => { | ||
79 | element.dateStr = new Date(element.startTime).toString("yyyy.MM.dd hh:mm") + " - " + new Date(element.endTime).toString("yyyy.MM.dd hh:mm"); | ||
80 | }); | ||
81 | dataList = this.data.dataList.concat(dataList); | ||
82 | this.setData({ | ||
83 | dataList: dataList, | ||
84 | total: result.total | ||
85 | }) | ||
86 | resolve(); | ||
87 | }) | ||
88 | }) | ||
89 | }, | ||
90 | |||
15 | // 隐藏蒙层 | 91 | // 隐藏蒙层 |
16 | hideMask() { | 92 | hideMask() { |
17 | this.setData({ | 93 | this.setData({ | ... | ... |
1 | @import '../../assets/scss/mixins'; | 1 | @import '../../assets/scss/mixins'; |
2 | @import '../../assets/scss/utils'; | 2 | @import '../../assets/scss/utils'; |
3 | 3 | ||
4 | $contentWidth:690px; | ||
5 | |||
4 | .page { | 6 | .page { |
5 | .bgc {} | 7 | .bgc { |
8 | background-color: #f8f8f8; | ||
9 | } | ||
10 | |||
11 | .bg {} | ||
12 | |||
13 | .main { | ||
14 | .top-space { | ||
15 | height: 0px; | ||
16 | } | ||
17 | |||
18 | .content { | ||
19 | position: relative; | ||
6 | 20 | ||
7 | .bg {} | 21 | // 我的按钮 |
22 | .my-btn { | ||
23 | display: flex; | ||
24 | justify-content: flex-end; | ||
8 | 25 | ||
9 | .main { | 26 | .btn { |
10 | .top-space { | 27 | @include cb2(180px, 48px, 28px); |
11 | height: 0px; | 28 | margin: 24px 24px 0 0; |
12 | } | 29 | } |
30 | } | ||
31 | |||
32 | // list | ||
33 | .list { | ||
34 | width: $contentWidth; | ||
35 | margin: 24px auto 0; | ||
36 | |||
37 | &-item { | ||
38 | @extend .bb; | ||
39 | padding: 30px 0; | ||
40 | display: flex; | ||
41 | justify-content: space-between; | ||
42 | align-items: center; | ||
43 | |||
44 | .prize { | ||
45 | margin: 0 24px; | ||
46 | |||
47 | .image { | ||
48 | width: 120px; | ||
49 | height: 120px; | ||
50 | } | ||
51 | } | ||
13 | 52 | ||
14 | .content { | 53 | .cont { |
15 | position: relative; | 54 | position: relative; |
55 | height: 100%; | ||
56 | flex: 1; | ||
57 | padding-right: 8px; | ||
58 | @extend .bb; | ||
59 | |||
60 | .t1 { | ||
61 | align-self: center; | ||
62 | padding: 4px 0; | ||
63 | width: 100%; | ||
64 | } | ||
65 | |||
66 | .t2 { | ||
67 | margin-top: 8px; | ||
68 | // font-size: 24px; | ||
69 | // color: #999999; | ||
70 | } | ||
71 | |||
72 | .t3 { | ||
73 | font-size: 20px; | ||
74 | color: #999999; | ||
75 | // color: #3680EB; | ||
76 | } | ||
77 | } | ||
78 | |||
79 | .btn { | ||
80 | @include cb(120px, 48px, 24px); | ||
81 | margin: 0 16px 0 0; | ||
82 | align-self: flex-start; | ||
83 | } | ||
84 | |||
85 | .btn0 { | ||
86 | background-color: #fe9b28; | ||
87 | } | ||
88 | |||
89 | .btn1 { | ||
90 | background-color: #079815; | ||
91 | } | ||
92 | |||
93 | .btn2 { | ||
94 | background-color: #999999; | ||
95 | } | ||
16 | } | 96 | } |
97 | } | ||
98 | |||
17 | } | 99 | } |
100 | } | ||
18 | } | 101 | } | ... | ... |
... | @@ -4,7 +4,33 @@ | ... | @@ -4,7 +4,33 @@ |
4 | <!-- <view class="app__top-shadow"></view> --> | 4 | <!-- <view class="app__top-shadow"></view> --> |
5 | <view class="app__content main"> | 5 | <view class="app__content main"> |
6 | <view class="top-space"></view> | 6 | <view class="top-space"></view> |
7 | <view class="content">auction-list</view> | 7 | <view class="content"> |
8 | <!-- 我的拍卖按钮 --> | ||
9 | <view class="my-btn"> | ||
10 | <view class="btn">我的拍卖</view> | ||
11 | </view> | ||
12 | <view class="list"> | ||
13 | <view wx:for="{{dataList}}" wx:key="{{index}}" class="border list-item"> | ||
14 | <view class="prize"> | ||
15 | <image class="image" mode="aspectFill" src="{{item.auctionImage && item.auctionImage[0] || ''}}" /> | ||
16 | </view> | ||
17 | <view class="cont"> | ||
18 | <view class="t1">{{item.auctionName}}</view> | ||
19 | <view class="t1 t2 t3">活动区域:{{item.district}}</view> | ||
20 | <view class="t1 t3">{{item.dateStr}}</view> | ||
21 | </view> | ||
22 | <view bindtap="onDetailHandler" wx:if="{{item.status == 0}}" data-data="{{item}}" data-index="{{index}}" class="btn btn0"> | ||
23 | 未开始 | ||
24 | </view> | ||
25 | <view bindtap="onDetailHandler" wx:if="{{item.status == 1}}" data-data="{{item}}" data-index="{{index}}" class="btn btn1"> | ||
26 | 进行中 | ||
27 | </view> | ||
28 | <view bindtap="onDetailHandler" wx:if="{{item.status == 2}}" data-data="{{item}}" data-index="{{index}}" class="btn btn2"> | ||
29 | 已结束 | ||
30 | </view> | ||
31 | </view> | ||
32 | </view> | ||
33 | </view> | ||
8 | </view> | 34 | </view> |
9 | </view> | 35 | </view> |
10 | <van-popup show="{{ authorizeVisible }}"> | 36 | <van-popup show="{{ authorizeVisible }}"> | ... | ... |
... | @@ -12,8 +12,8 @@ | ... | @@ -12,8 +12,8 @@ |
12 | </view> | 12 | </view> |
13 | <view class="cont"> | 13 | <view class="cont"> |
14 | <view class="t1">{{item.prizeName}}</view> | 14 | <view class="t1">{{item.prizeName}}</view> |
15 | <view class="t1 t2">190701-190714</view> | 15 | <view class="t1 t2">{{item.activityName}}</view> |
16 | <view class="t1 t3">{{item.activityName}}</view> | 16 | <view class="t1 t3">推广积分第一名</view> |
17 | </view> | 17 | </view> |
18 | <view bindtap="onReceiveHandler" wx:if="{{item.acceptType == 0}}" data-data="{{item}}" data-index="{{index}}" class="btn">领取</view> | 18 | <view bindtap="onReceiveHandler" wx:if="{{item.acceptType == 0}}" data-data="{{item}}" data-index="{{index}}" class="btn">领取</view> |
19 | <view wx:if="{{item.acceptType == 1}}" class="btn">已领取</view> | 19 | <view wx:if="{{item.acceptType == 1}}" class="btn">已领取</view> | ... | ... |
src/pages/seckill-detail/seckill-detail.js
0 → 100755
1 | import { | ||
2 | getBindtapData | ||
3 | } from '../../utils/util'; | ||
4 | |||
5 | let app = getApp(); | ||
6 | Page({ | ||
7 | data: {}, | ||
8 | onShareAppMessage() {}, | ||
9 | showAuth() { | ||
10 | this.setData({ | ||
11 | authorizeVisible: true | ||
12 | }) | ||
13 | }, | ||
14 | onLoad(options) {}, | ||
15 | // 隐藏蒙层 | ||
16 | hideMask() { | ||
17 | this.setData({ | ||
18 | authorizeVisible: false, | ||
19 | }) | ||
20 | }, | ||
21 | // 子组件事件 | ||
22 | evtcomp(evt) { | ||
23 | let { | ||
24 | name, | ||
25 | data | ||
26 | } = evt.detail; | ||
27 | switch (name) { | ||
28 | |||
29 | // 隐藏弹窗 | ||
30 | case "_evt_hide_mask": | ||
31 | this.hideMask(); | ||
32 | break; | ||
33 | |||
34 | default: | ||
35 | break; | ||
36 | } | ||
37 | }, | ||
38 | }) |
src/pages/seckill-detail/seckill-detail.json
0 → 100755
src/pages/seckill-detail/seckill-detail.scss
0 → 100755
File mode changed
src/pages/seckill-detail/seckill-detail.wxml
0 → 100755
1 | <view class="page"> | ||
2 | <view class="app__bgc bgc"></view> | ||
3 | <view class="app__bg bg"></view> | ||
4 | <!-- <view class="app__top-shadow"></view> --> | ||
5 | <view class="app__content main"> | ||
6 | <view class="top-space"></view> | ||
7 | <view class="content"></view> | ||
8 | </view> | ||
9 | </view> | ||
10 | <van-popup show="{{ authorizeVisible }}"> | ||
11 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | ||
12 | </van-popup> |
src/pages/seckill-list/seckill-list.js
0 → 100755
1 | import { | ||
2 | getBindtapData | ||
3 | } from '../../utils/util'; | ||
4 | |||
5 | let app = getApp(); | ||
6 | Page({ | ||
7 | data: {}, | ||
8 | onShareAppMessage() {}, | ||
9 | showAuth() { | ||
10 | this.setData({ | ||
11 | authorizeVisible: true | ||
12 | }) | ||
13 | }, | ||
14 | onLoad(options) {}, | ||
15 | // 隐藏蒙层 | ||
16 | hideMask() { | ||
17 | this.setData({ | ||
18 | authorizeVisible: false, | ||
19 | }) | ||
20 | }, | ||
21 | // 子组件事件 | ||
22 | evtcomp(evt) { | ||
23 | let { | ||
24 | name, | ||
25 | data | ||
26 | } = evt.detail; | ||
27 | switch (name) { | ||
28 | |||
29 | // 隐藏弹窗 | ||
30 | case "_evt_hide_mask": | ||
31 | this.hideMask(); | ||
32 | break; | ||
33 | |||
34 | default: | ||
35 | break; | ||
36 | } | ||
37 | }, | ||
38 | }) |
src/pages/seckill-list/seckill-list.json
0 → 100755
src/pages/seckill-list/seckill-list.scss
0 → 100755
File mode changed
src/pages/seckill-list/seckill-list.wxml
0 → 100755
1 | <view class="page"> | ||
2 | <view class="app__bgc bgc"></view> | ||
3 | <view class="app__bg bg"></view> | ||
4 | <!-- <view class="app__top-shadow"></view> --> | ||
5 | <view class="app__content main"> | ||
6 | <view class="top-space"></view> | ||
7 | <view class="content"></view> | ||
8 | </view> | ||
9 | </view> | ||
10 | <van-popup show="{{ authorizeVisible }}"> | ||
11 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | ||
12 | </van-popup> |
src/pages/seckill-mine/seckill-mine.js
0 → 100755
1 | import { | ||
2 | getBindtapData | ||
3 | } from '../../utils/util'; | ||
4 | |||
5 | let app = getApp(); | ||
6 | Page({ | ||
7 | data: {}, | ||
8 | onShareAppMessage() {}, | ||
9 | showAuth() { | ||
10 | this.setData({ | ||
11 | authorizeVisible: true | ||
12 | }) | ||
13 | }, | ||
14 | onLoad(options) {}, | ||
15 | // 隐藏蒙层 | ||
16 | hideMask() { | ||
17 | this.setData({ | ||
18 | authorizeVisible: false, | ||
19 | }) | ||
20 | }, | ||
21 | // 子组件事件 | ||
22 | evtcomp(evt) { | ||
23 | let { | ||
24 | name, | ||
25 | data | ||
26 | } = evt.detail; | ||
27 | switch (name) { | ||
28 | |||
29 | // 隐藏弹窗 | ||
30 | case "_evt_hide_mask": | ||
31 | this.hideMask(); | ||
32 | break; | ||
33 | |||
34 | default: | ||
35 | break; | ||
36 | } | ||
37 | }, | ||
38 | }) |
src/pages/seckill-mine/seckill-mine.json
0 → 100755
src/pages/seckill-mine/seckill-mine.scss
0 → 100755
File mode changed
src/pages/seckill-mine/seckill-mine.wxml
0 → 100755
1 | <view class="page"> | ||
2 | <view class="app__bgc bgc"></view> | ||
3 | <view class="app__bg bg"></view> | ||
4 | <!-- <view class="app__top-shadow"></view> --> | ||
5 | <view class="app__content main"> | ||
6 | <view class="top-space"></view> | ||
7 | <view class="content"></view> | ||
8 | </view> | ||
9 | </view> | ||
10 | <van-popup show="{{ authorizeVisible }}"> | ||
11 | <authorize-comp bind:evtcomp="evtcomp"></authorize-comp> | ||
12 | </van-popup> |
... | @@ -26,6 +26,11 @@ const routerPath = { | ... | @@ -26,6 +26,11 @@ const routerPath = { |
26 | auctionDetail: '/pages/auction-detail/auction-detail', // 拍卖活动详情 | 26 | auctionDetail: '/pages/auction-detail/auction-detail', // 拍卖活动详情 |
27 | auctionBidDetail: '/pages/auction-bid-detail/auction-bid-detail', // 拍卖出价详情 | 27 | auctionBidDetail: '/pages/auction-bid-detail/auction-bid-detail', // 拍卖出价详情 |
28 | 28 | ||
29 | // 秒杀 | ||
30 | seckillList: '/pages/seckill-list/seckill-list', // 秒杀活动列表 | ||
31 | seckillMine: '/pages/seckill-mine/seckill-mine', // 我的秒杀订单 | ||
32 | seckillDetail: '/pages/seckill-detail/seckill-detail', // 秒杀活动详情 | ||
33 | |||
29 | webview: '/pages/webview/webview', | 34 | webview: '/pages/webview/webview', |
30 | example: '/pages/example/example', | 35 | example: '/pages/example/example', |
31 | more: '/pages/more/more', | 36 | more: '/pages/more/more', | ... | ... |
-
Please register or sign in to post a comment