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