Commit a5ffbf748d4b0e9f8a0825e08accfa037ec49399
1 parent
581a42d0
直播修改
Showing
5 changed files
with
267 additions
and
118 deletions
packageA/pages/liveStream/liveStream.js
... | ... | @@ -10,17 +10,25 @@ var t = require("../../../utils/util"), |
10 | 10 | o = s.globalData.setting, |
11 | 11 | os = o; |
12 | 12 | var regeneratorRuntime = require('../../../utils/runtime.js'); |
13 | -1 | |
13 | + | |
14 | +const app = getApp(); | |
15 | +let self = null; | |
16 | + | |
17 | + | |
14 | 18 | Page({ |
15 | 19 | /** |
16 | 20 | * 页面的初始数据 |
17 | 21 | */ |
18 | 22 | data: { |
19 | 23 | curPage: 1, |
20 | - pageNum: 1, | |
21 | - liveing: [], | |
22 | - livetoBegin: [], | |
23 | - liveOver: [] | |
24 | + living: {}, | |
25 | + livetoBegin: {}, | |
26 | + liveOver: {}, | |
27 | + list: null, | |
28 | + isLoading: false, // 检测是否已经发送请求,防止重复发送请求 | |
29 | + noMore: false, // 检测是否有更多数据,true为没有更多数据,false为还有数据 | |
30 | + pageNum: 1, // 当前页数 | |
31 | + | |
24 | 32 | }, |
25 | 33 | // list: [], |
26 | 34 | // live: { |
... | ... | @@ -60,8 +68,10 @@ Page({ |
60 | 68 | storeId: o.stoid |
61 | 69 | }, |
62 | 70 | success: function (res) { |
63 | - console.log('我发起了PUT请求,请求结果:', res.data); | |
64 | - resolve(); | |
71 | + // console.log('我发起了PUT请求,请求结果:', res.data); | |
72 | + if(res.data.code == 0) { | |
73 | + resolve(); | |
74 | + }; | |
65 | 75 | } |
66 | 76 | }); |
67 | 77 | }); |
... | ... | @@ -136,99 +146,144 @@ Page({ |
136 | 146 | }) |
137 | 147 | }, |
138 | 148 | |
139 | - pageTotal: function (rowCount, pageSize) { | |
140 | - if (rowCount == null || rowCount == "") { | |
141 | - return 0; | |
142 | - } else { | |
143 | - if (pageSize != 0 && rowCount % pageSize == 0) { | |
144 | - return parseInt(rowCount / pageSize) | |
145 | - }; | |
146 | - if (pageSize != 0 && rowCount % pageSize != 0) { | |
147 | - return parseInt(rowCount / pageSize) + 1; | |
148 | - }; | |
149 | - } | |
150 | - }, | |
151 | - | |
152 | - getData: function (liveStatus) { | |
153 | - var that = this; | |
154 | - var curPage = this.data.curPage | |
155 | - getApp().request.promiseGet("/api/weshop/wx/livelist/page", { | |
156 | - data: { | |
157 | - storedId: o.stoid, | |
158 | - page: curPage, | |
159 | - live_status: liveStatus | |
160 | - } | |
161 | - }).then(res => { | |
162 | - if (res.data.code == 0) { | |
163 | - if (liveStatus == 101) { | |
164 | - that.setData({ | |
165 | - liveing: res.data.data.pageData | |
166 | - }); | |
167 | - } else if (liveStatus == 102) { | |
168 | - that.setData({ | |
169 | - livetoBegin: res.data.data.pageData | |
170 | - }); | |
171 | - } else if (liveStatus == 103) { | |
172 | - that.setData({ | |
173 | - liveOver: res.data.data.pageData | |
174 | - }); | |
175 | - | |
176 | - var total = res.data.data.total; | |
177 | - console.log("total", total); | |
178 | - var pageSize = res.data.data.pageSize; | |
179 | - console.log("pageSize", pageSize); | |
180 | - var pageNum = that.pageTotal(total, pageSize); | |
181 | - console.log("pageNum", pageNum); | |
182 | - that.setData({ | |
183 | - pageNum | |
184 | - }); | |
185 | - | |
186 | - } | |
187 | - } | |
188 | - | |
189 | - curPage++; | |
190 | - that.setData({ | |
191 | - curPage | |
192 | - }); | |
149 | + // pageTotal: function (rowCount, pageSize) { | |
150 | + // if (rowCount == null || rowCount == "") { | |
151 | + // return 0; | |
152 | + // } else { | |
153 | + // if (pageSize != 0 && rowCount % pageSize == 0) { | |
154 | + // return parseInt(rowCount / pageSize) | |
155 | + // }; | |
156 | + // if (pageSize != 0 && rowCount % pageSize != 0) { | |
157 | + // return parseInt(rowCount / pageSize) + 1; | |
158 | + // }; | |
159 | + // } | |
160 | + // }, | |
193 | 161 | |
194 | - }); | |
195 | - }, | |
162 | + // getData: function (liveStatus) { | |
163 | + // var that = this; | |
164 | + // var curPage = this.data.curPage | |
165 | + // getApp().request.promiseGet("/api/weshop/wx/livelist/page", { | |
166 | + // data: { | |
167 | + // storedId: o.stoid, | |
168 | + // page: curPage, | |
169 | + // live_status: liveStatus | |
170 | + // } | |
171 | + // }).then(res => { | |
172 | + // if (res.data.code == 0) { | |
173 | + // if (liveStatus == 101) { | |
174 | + // that.setData({ | |
175 | + // liveing: res.data.data.pageData | |
176 | + // }); | |
177 | + // } else if (liveStatus == 102) { | |
178 | + // that.setData({ | |
179 | + // livetoBegin: res.data.data.pageData | |
180 | + // }); | |
181 | + // } else if (liveStatus == 103) { | |
182 | + // that.setData({ | |
183 | + // liveOver: res.data.data.pageData | |
184 | + // }); | |
185 | + | |
186 | + // var total = res.data.data.total; | |
187 | + // console.log("total", total); | |
188 | + // var pageSize = res.data.data.pageSize; | |
189 | + // console.log("pageSize", pageSize); | |
190 | + // var pageNum = that.pageTotal(total, pageSize); | |
191 | + // console.log("pageNum", pageNum); | |
192 | + // that.setData({ | |
193 | + // pageNum | |
194 | + // }); | |
195 | + | |
196 | + // } | |
197 | + // } | |
198 | + | |
199 | + // curPage++; | |
200 | + // that.setData({ | |
201 | + // curPage | |
202 | + // }); | |
203 | + | |
204 | + // }); | |
205 | + // }, | |
196 | 206 | |
197 | 207 | /** |
198 | 208 | * 生命周期函数--监听页面加载 |
199 | 209 | */ |
200 | 210 | onLoad: function (options) { |
201 | - console.log('ppppp',this.pageTotal(4, 10)); | |
202 | - // var self = this; | |
203 | - // this.updateLiveList().then(() => { | |
204 | - // self.getData(101); | |
205 | - // self.getData(102); | |
206 | - // self.getData(103); | |
207 | - // }); | |
211 | + self = this; | |
212 | + // console.log('ppppp',this.pageTotal(4, 10)); | |
213 | + | |
214 | + app.isLogin().then(function(data) {//进入页面前已经授权登录成功 | |
215 | + self.setData({ | |
216 | + userInfo: data, | |
217 | + }); | |
218 | + }); | |
208 | 219 | }, |
209 | 220 | |
210 | 221 | /** |
211 | 222 | * 生命周期函数--监听页面初次渲染完成 |
212 | 223 | */ |
213 | 224 | onReady: function () { |
214 | - // var self = this; | |
215 | - // this.updateLiveList().then(() => { | |
216 | - // self.loadLiveList(1); | |
217 | - // }); | |
218 | - | |
219 | - var self = this; | |
220 | - this.updateLiveList().then(() => { | |
221 | - self.getData(101); | |
222 | - self.getData(102); | |
223 | - self.getData(103); | |
224 | - }); | |
225 | + | |
225 | 226 | }, |
226 | 227 | |
227 | 228 | /** |
228 | 229 | * 生命周期函数--监听页面显示 |
229 | 230 | */ |
230 | 231 | onShow: function () { |
231 | - | |
232 | + if(app.globalData.userInfo) { | |
233 | + if(!this.data.isLogin) { | |
234 | + this.setData({ | |
235 | + userInfo: app.globalData.userInfo, | |
236 | + imghost: app.globalData.setting.imghost, | |
237 | + isLogin: true, | |
238 | + }); | |
239 | + | |
240 | + this.updateLiveList().then(() => { | |
241 | + | |
242 | + self.getData(true, '/api/weshop/wx/livelist/page', { //请求直播中列表 | |
243 | + storedId: o.stoid, | |
244 | + live_status: 101, | |
245 | + pageSize: 100, | |
246 | + }).then((res) => { | |
247 | + self.setData({ | |
248 | + living: self.data.list, | |
249 | + }); | |
250 | + | |
251 | + //直播中列表请求完后,请求即将开始列表 | |
252 | + self.getData(true, '/api/weshop/wx/livelist/page', { | |
253 | + storedId: o.stoid, | |
254 | + live_status: 102, | |
255 | + pageSize: 100, | |
256 | + }).then((res) => { | |
257 | + self.setData({ | |
258 | + livetoBegin: self.data.list, | |
259 | + }); | |
260 | + | |
261 | + //即将开始列表请求完后,请求结束列表 | |
262 | + self.getData(true, '/api/weshop/wx/livelist/page', { | |
263 | + storedId: o.stoid, | |
264 | + live_status: 103, | |
265 | + }).then((res) => { | |
266 | + self.setData({ | |
267 | + liveOver: self.data.list, | |
268 | + }); | |
269 | + }); | |
270 | + | |
271 | + | |
272 | + }); | |
273 | + | |
274 | + | |
275 | + }); | |
276 | + | |
277 | + | |
278 | + | |
279 | + | |
280 | + | |
281 | + }); | |
282 | + | |
283 | + | |
284 | + | |
285 | + }; | |
286 | + }; | |
232 | 287 | }, |
233 | 288 | |
234 | 289 | /** |
... | ... | @@ -262,26 +317,32 @@ Page({ |
262 | 317 | * 页面上拉触底事件的处理函数 |
263 | 318 | */ |
264 | 319 | onReachBottom: function () { |
265 | - var self = this; | |
266 | - var curPage = this.data.curPage; | |
267 | - console.log('now curPage',curPage); | |
268 | - var pageNum = this.data.pageNum; | |
269 | - console.log('now pageNum',pageNum); | |
270 | - | |
271 | - if (curPage <= pageNum) { | |
272 | - wx.showLoading({ | |
273 | - title: '加载中...', | |
274 | - }) | |
275 | - setTimeout(function () { | |
276 | - self.loadLiveList(curPage); | |
277 | - wx.hideLoading(); | |
278 | - }, 500); | |
279 | - } else { | |
280 | - wx.showToast({ | |
281 | - title: '已经到底啦~', | |
282 | - duration: 1000 | |
283 | - }) | |
284 | - } | |
320 | + // var self = this; | |
321 | + // var curPage = this.data.curPage; | |
322 | + // console.log('now curPage',curPage); | |
323 | + // var pageNum = this.data.pageNum; | |
324 | + // console.log('now pageNum',pageNum); | |
325 | + | |
326 | + // if (curPage <= pageNum) { | |
327 | + // wx.showLoading({ | |
328 | + // title: '加载中...', | |
329 | + // }) | |
330 | + // setTimeout(function () { | |
331 | + // self.loadLiveList(curPage); | |
332 | + // wx.hideLoading(); | |
333 | + // }, 500); | |
334 | + // } else { | |
335 | + // wx.showToast({ | |
336 | + // title: '已经到底啦~', | |
337 | + // duration: 1000 | |
338 | + // }) | |
339 | + // } | |
340 | + | |
341 | + console.log('触底啦'); | |
342 | + this.scrollToLower('/api/weshop/wx/livelist/page', { | |
343 | + storedId: o.stoid, | |
344 | + live_status: 103 | |
345 | + }); | |
285 | 346 | }, |
286 | 347 | |
287 | 348 | /** |
... | ... | @@ -308,5 +369,80 @@ Page({ |
308 | 369 | // path: '/page/user?id=123' |
309 | 370 | } |
310 | 371 | }, |
372 | + | |
373 | + | |
374 | + | |
375 | + | |
376 | + | |
377 | + | |
378 | + /** | |
379 | + * 请求数据 | |
380 | + */ | |
381 | + getData: function(isInit, url, data) { | |
382 | + let p = app.request.promiseGet(url, { | |
383 | + data: data, | |
384 | + isShowLoading: true, | |
385 | + }) | |
386 | + .then(function(res) { | |
387 | + if(res.data.code == 0) { | |
388 | + | |
389 | + self.setData({ | |
390 | + isLoading: false | |
391 | + }); | |
392 | + | |
393 | + if(isInit) {// 第一次加载 | |
394 | + self.setData({ | |
395 | + list: res.data.data | |
396 | + }); | |
397 | + } else { | |
398 | + self.setData({ | |
399 | + 'list.pageData': self.data.list.pageData.concat(res.data.data.pageData) | |
400 | + }); | |
401 | + }; | |
402 | + | |
403 | + if((res.data.data.pageData.length == 0) || (res.data.data.pageSize * res.data.data.page >= res.data.data.total)) { | |
404 | + self.setData({ | |
405 | + noMore: true | |
406 | + }); | |
407 | + }; | |
408 | + | |
409 | + } else { | |
410 | + self.setData({ | |
411 | + 'list.pageData': [] | |
412 | + }); | |
413 | + }; | |
414 | + | |
415 | + }); | |
416 | + | |
417 | + return p; | |
418 | + }, | |
419 | + | |
420 | + | |
421 | + /** | |
422 | + * 上拉加载 | |
423 | + */ | |
424 | + scrollToLower(url, requestData) { | |
425 | + // 数据总量 | |
426 | + let total = this.data.list.total; | |
427 | + // 单页最大数据量 | |
428 | + let pageSize = this.data.list.pageSize; | |
429 | + // 如果数据总量不为0且小于或等于单页最大数据量,说明数据已全部加载,显示‘没有更多了’ | |
430 | + if((total != 0)&&(total <= pageSize)) { | |
431 | + this.setData({ | |
432 | + noMore: true | |
433 | + }); | |
434 | + }; | |
435 | + | |
436 | + if(!this.data.isLoading && !this.data.noMore) { | |
437 | + this.setData({ | |
438 | + isLoading: true, | |
439 | + pageNum: this.data.pageNum + 1 | |
440 | + }); | |
441 | + requestData.page = this.data.pageNum; | |
442 | + this.getData(false, url, requestData); | |
443 | + }; | |
444 | + }, | |
445 | + | |
446 | + | |
311 | 447 | |
312 | 448 | }) |
313 | 449 | \ No newline at end of file | ... | ... |
packageA/pages/liveStream/liveStream.json
1 | 1 | { |
2 | 2 | "usingComponents": { |
3 | - "subscribe": "plugin-private://wx2b03c6e691cd7370/components/subscribe/subscribe" | |
3 | + "nodata": "/components/nodata/nodata", | |
4 | + "subscribe": "plugin-private://wx2b03c6e691cd7370/components/subscribe/subscribe" | |
4 | 5 | }, |
5 | 6 | "navigationBarTitleText": "直播", |
6 | - "onReachBottomDistance": 300 | |
7 | + "enablePullDownRefresh": false | |
7 | 8 | } |
8 | 9 | |
9 | 10 | |
10 | 11 | \ No newline at end of file | ... | ... |
packageA/pages/liveStream/liveStream.wxml
1 | 1 | <!--pages/liveStream/liveStream.wxml--> |
2 | 2 | <wxs src="../../../utils/filter.wxs" module="filter"></wxs> |
3 | 3 | <view> |
4 | - <block wx:if="{{live === '{}'}}">当前暂无直播</block> | |
5 | 4 | <!-- 即将开始 --> |
6 | - <block wx:if="{{livetoBegin.length > 0}}"> | |
5 | + <block wx:if="{{livetoBegin.pageData.length > 0}}"> | |
7 | 6 | <view class="title">即将开始</view> |
8 | 7 | <view class="list"> |
9 | - <block wx:for="{{livetoBegin}}" wx:key="item"> | |
8 | + <block wx:for="{{livetoBegin.pageData}}" wx:key="item"> | |
10 | 9 | <view class="list-item" data-id="{{item.id}}" data-live="toBegin" catchtap="clickItem"> |
11 | 10 | <view class="list-item-left"> |
12 | - <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> | |
11 | + <image src="{{item.share_img}}" class="item-pic" mode="aspectFit"></image> | |
13 | 12 | </view> |
14 | 13 | <view class="list-item-right"> |
15 | 14 | <view> |
... | ... | @@ -27,13 +26,13 @@ |
27 | 26 | |
28 | 27 | |
29 | 28 | <!-- 直播中 --> |
30 | - <block wx:if="{{liveing.length > 0}}"> | |
29 | + <block wx:if="{{living.pageData.length > 0}}"> | |
31 | 30 | <view class="title">直播中</view> |
32 | 31 | <view class="list"> |
33 | - <block wx:for="{{liveing}}" wx:key="item"> | |
32 | + <block wx:for="{{liveing.pageData}}" wx:key="item"> | |
34 | 33 | <view class="list-item" catchtap="clickItem" data-id="{{item.id}}" data-live="ing"> |
35 | 34 | <view class="list-item-left"> |
36 | - <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> | |
35 | + <image src="{{item.share_img}}" class="item-pic" mode="aspectFit"></image> | |
37 | 36 | </view> |
38 | 37 | <view class="list-item-right"> |
39 | 38 | <view> |
... | ... | @@ -50,13 +49,13 @@ |
50 | 49 | |
51 | 50 | |
52 | 51 | <!-- 精彩回放 --> |
53 | - <block wx:if="{{liveOver.length > 0}}"> | |
52 | + <block wx:if="{{liveOver.pageData.length > 0}}"> | |
54 | 53 | <view class="title">精彩回放</view> |
55 | 54 | <view class="list"> |
56 | - <block wx:for="{{liveOver}}" wx:key="item"> | |
55 | + <block wx:for="{{liveOver.pageData}}" wx:key="item"> | |
57 | 56 | <view class="list-item" bindtap="clickItem" data-id="{{item.id}}" data-live="over"> |
58 | 57 | <view class="list-item-left"> |
59 | - <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> | |
58 | + <image src="{{item.share_img}}" class="item-pic" mode="aspectFit"></image> | |
60 | 59 | </view> |
61 | 60 | <view class="list-item-right"> |
62 | 61 | <view> |
... | ... | @@ -70,4 +69,10 @@ |
70 | 69 | </block> |
71 | 70 | </view> |
72 | 71 | </block> |
72 | + | |
73 | + | |
74 | + <nodata nodataContainer="t-c" wx:if="{{livetoBegin.pageData.length == 0 && liveing.pageData.length == 0 && liveOver.pageData.length == 0}}"></nodata> | |
75 | + <view class="no-more" hidden="{{!noMore}}" wx:if="{{living.pageData.length != 0 && livetoBegin.pageData.length == 0 && liveO.pageData.length == 0}}">- 没有更多了 -</view> | |
76 | + <view class="no-more" hidden="{{!noMore}}" wx:if="{{living.pageData.length == 0 && livetoBegin.pageData.length != 0 && liveO.pageData.length == 0}}">- 没有更多了 -</view> | |
77 | + <view class="no-more" hidden="{{!noMore}}" wx:if="{{living.pageData.length == 0 && livetoBegin.pageData.length == 0 && liveO.pageData.length != 0}}">- 没有更多了 -</view> | |
73 | 78 | </view> |
74 | 79 | \ No newline at end of file | ... | ... |
packageA/pages/liveStream/liveStream.wxss
... | ... | @@ -60,12 +60,12 @@ |
60 | 60 | } |
61 | 61 | .item-time { |
62 | 62 | color: #999; |
63 | - font-size: 22rpx; | |
63 | + font-size: 24rpx; | |
64 | 64 | padding-top: 10rpx; |
65 | 65 | } |
66 | 66 | .item-anchor { |
67 | 67 | color: #999; |
68 | - font-size: 22rpx; | |
68 | + font-size: 24rpx; | |
69 | 69 | } |
70 | 70 | |
71 | 71 | .item-btn { |
... | ... | @@ -74,7 +74,7 @@ |
74 | 74 | line-height: 56rpx; |
75 | 75 | background-color: #f23030; |
76 | 76 | color: #fff; |
77 | - font-size: 28rpx; | |
77 | + font-size: 24rpx; | |
78 | 78 | text-align: center; |
79 | 79 | } |
80 | 80 | subscribe { |
... | ... | @@ -101,4 +101,11 @@ subscribe { |
101 | 101 | } |
102 | 102 | .subscribe--live-player-hasSubscribe { |
103 | 103 | background-color: #666 !important; |
104 | +} | |
105 | + | |
106 | +.no-more { | |
107 | + font-size: 24rpx; | |
108 | + line-height: 3; | |
109 | + color: #909090; | |
110 | + text-align: center; | |
104 | 111 | } |
105 | 112 | \ No newline at end of file | ... | ... |
packageA/pages/liveStreamDetails/liveStreamDetails.wxss