Commit 5a2a5d3e9c97a855e8dc13bf0da5239eb0e92891
1 parent
7e0c9671
下拉刷新,上拉加载更多完成
Showing
3 changed files
with
126 additions
and
47 deletions
packageA/pages/liveStream/liveStream.js
| 1 | // pages/liveStream/liveStream.js | 1 | // pages/liveStream/liveStream.js |
| 2 | - | ||
| 3 | var t = require("../../../utils/util"), | 2 | var t = require("../../../utils/util"), |
| 4 | ut = t, | 3 | ut = t, |
| 5 | e = require("../../../utils/common.js"), | 4 | e = require("../../../utils/common.js"), |
| @@ -10,20 +9,19 @@ var t = require("../../../utils/util"), | @@ -10,20 +9,19 @@ var t = require("../../../utils/util"), | ||
| 10 | oo = s.globalData, | 9 | oo = s.globalData, |
| 11 | o = s.globalData.setting, | 10 | o = s.globalData.setting, |
| 12 | os = o; | 11 | os = o; |
| 13 | -var utils = require('../../../utils/util.js'),ut=utils; | ||
| 14 | var regeneratorRuntime = require('../../../utils/runtime.js'); | 12 | var regeneratorRuntime = require('../../../utils/runtime.js'); |
| 15 | 13 | ||
| 16 | Page({ | 14 | Page({ |
| 17 | - | ||
| 18 | /** | 15 | /** |
| 19 | * 页面的初始数据 | 16 | * 页面的初始数据 |
| 20 | */ | 17 | */ |
| 21 | data: { | 18 | data: { |
| 22 | - goodsList: [], | ||
| 23 | - imghost: '', | ||
| 24 | - liveList: {} | 19 | + curPage: 1, |
| 20 | + pageNum: 0, | ||
| 21 | + list: [], | ||
| 22 | + live: {} | ||
| 25 | }, | 23 | }, |
| 26 | - | 24 | + |
| 27 | // 点击直播列表项 | 25 | // 点击直播列表项 |
| 28 | clickItem: function (e) { | 26 | clickItem: function (e) { |
| 29 | // id:列表项id | 27 | // id:列表项id |
| @@ -32,66 +30,117 @@ Page({ | @@ -32,66 +30,117 @@ Page({ | ||
| 32 | url: '/packageA/pages/liveStreamDetails/liveStreamDetails?id=' + e.currentTarget.dataset.id + '&live=' + e.currentTarget.dataset.live | 30 | url: '/packageA/pages/liveStreamDetails/liveStreamDetails?id=' + e.currentTarget.dataset.id + '&live=' + e.currentTarget.dataset.live |
| 33 | }) | 31 | }) |
| 34 | console.log('options-->'); | 32 | console.log('options-->'); |
| 35 | - }, | 33 | + }, |
| 36 | 34 | ||
| 37 | // 点击 订阅/观看直播/观看回放 按钮,跳转直播组件 | 35 | // 点击 订阅/观看直播/观看回放 按钮,跳转直播组件 |
| 38 | clickLive: function (e) { | 36 | clickLive: function (e) { |
| 39 | - console.log('当前房间号roomid:',e.currentTarget.dataset.roomid); | 37 | + console.log('当前房间号roomid:', e.currentTarget.dataset.roomid); |
| 40 | let roomId = e.currentTarget.dataset.roomid; | 38 | let roomId = e.currentTarget.dataset.roomid; |
| 41 | - let customParams = encodeURIComponent(JSON.stringify({ path: 'pages/index/index', pid: 1 })); | 39 | + let customParams = encodeURIComponent(JSON.stringify({ |
| 40 | + path: 'pages/index/index', | ||
| 41 | + pid: 1 | ||
| 42 | + })); | ||
| 42 | wx.navigateTo({ | 43 | wx.navigateTo({ |
| 43 | url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}` | 44 | url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}` |
| 44 | }) | 45 | }) |
| 45 | }, | 46 | }, |
| 46 | 47 | ||
| 47 | - /** | ||
| 48 | - * 生命周期函数--监听页面加载 | ||
| 49 | - */ | ||
| 50 | - onLoad: function (options) { | 48 | + updateLiveList: function () { |
| 49 | + return new Promise((resolve, reject) => { | ||
| 50 | + let self = this; | ||
| 51 | + getApp().request.put("/api/weshop/wx/livelist/updatelivelist", { | ||
| 52 | + data: { | ||
| 53 | + storeId: 1 | ||
| 54 | + }, | ||
| 55 | + success: function (res) { | ||
| 56 | + console.log('我发起了PUT请求,请求结果:', res.data); | ||
| 57 | + resolve(); | ||
| 58 | + } | ||
| 59 | + }); | ||
| 60 | + }); | ||
| 61 | + }, | ||
| 62 | + | ||
| 63 | + loadLiveList: function (curPage) { | ||
| 64 | + // console.log('---->curPage', curPage); | ||
| 51 | var live = {}; | 65 | var live = {}; |
| 52 | live.toBegin = []; // 即将开始 | 66 | live.toBegin = []; // 即将开始 |
| 53 | - live.ing = []; // 直播中 | ||
| 54 | - live.over = []; // 已结束 | 67 | + live.ing = []; // 直播中 |
| 68 | + live.over = []; // 已结束 | ||
| 69 | + var that = this; | ||
| 70 | + var storeId = o.stoid; | ||
| 55 | 71 | ||
| 56 | // 请求数据 | 72 | // 请求数据 |
| 57 | - var that = this; | ||
| 58 | - getApp().request.promiseGet("/api/weshop/wx/livelist/page", {}).then(res=>{ | ||
| 59 | - console.log('ressss--->',res); | ||
| 60 | - if(res.data.code==0){ | ||
| 61 | - that.setData({ | ||
| 62 | - goodsList: res.data.data.pageData | ||
| 63 | - }) | ||
| 64 | - } | ||
| 65 | - // console.log(goodsList); | ||
| 66 | - | ||
| 67 | - var result = res.data.data.pageData; | ||
| 68 | - var liveStatus; | ||
| 69 | - if(res.data.code == 0) { | ||
| 70 | - for(var i in result) { | ||
| 71 | - console.log(i + '当前直播状态:', result[i].live_status); | ||
| 72 | - liveStatus = result[i].live_status; | ||
| 73 | - // 这里只显示101/102/103状态 | 73 | + getApp().request.promiseGet("/api/weshop/wx/livelist/page", { |
| 74 | + data: { | ||
| 75 | + storedId: storeId, | ||
| 76 | + page: curPage | ||
| 77 | + } | ||
| 78 | + }).then(res => { | ||
| 79 | + if (res.data.code == 0) { | ||
| 80 | + // 计算总页数 | ||
| 81 | + var total = res.data.data.total; | ||
| 82 | + var pageSize = res.data.data.pageSize; | ||
| 83 | + var pageNum = total % pageSize; | ||
| 84 | + that.setData({ | ||
| 85 | + pageNum: pageNum | ||
| 86 | + }); | ||
| 87 | + | ||
| 88 | + // 如果当前请求的是第一页数据,则执行赋值,否则执行合并再赋值 | ||
| 89 | + if(curPage == 1) { | ||
| 90 | + that.setData({ | ||
| 91 | + list: res.data.data.pageData | ||
| 92 | + // 测试 | ||
| 93 | + // list: that.data.list.concat(res.data.data.pageData) | ||
| 94 | + }); | ||
| 95 | + } else { | ||
| 96 | + that.setData({ | ||
| 97 | + list: that.data.list.concat(res.data.data.pageData) | ||
| 98 | + }); | ||
| 99 | + }; | ||
| 100 | + | ||
| 101 | + var list = that.data.list; | ||
| 102 | + for(var i in list) { | ||
| 103 | + var liveStatus = list[i].live_status; | ||
| 74 | if (liveStatus == '101') { | 104 | if (liveStatus == '101') { |
| 75 | - live.ing.push(result[i]); | 105 | + live.ing.push(list[i]); |
| 76 | } else if (liveStatus == '102') { | 106 | } else if (liveStatus == '102') { |
| 77 | - live.toBegin.push(result[i]); | 107 | + live.toBegin.push(list[i]); |
| 78 | } else if (liveStatus == '103') { | 108 | } else if (liveStatus == '103') { |
| 79 | - live.over.push(result[i]); | 109 | + live.over.push(list[i]); |
| 80 | } | 110 | } |
| 81 | } | 111 | } |
| 82 | - // console.log('live--->', live); | 112 | + |
| 83 | that.setData({ | 113 | that.setData({ |
| 84 | live | 114 | live |
| 85 | }); | 115 | }); |
| 116 | + | ||
| 117 | + curPage ++; | ||
| 118 | + that.setData({ | ||
| 119 | + curPage | ||
| 120 | + }); | ||
| 121 | + | ||
| 122 | + } else { | ||
| 123 | + console.error('请求失败!!!!!'); | ||
| 86 | } | 124 | } |
| 87 | }) | 125 | }) |
| 88 | }, | 126 | }, |
| 89 | 127 | ||
| 128 | + | ||
| 129 | + /** | ||
| 130 | + * 生命周期函数--监听页面加载 | ||
| 131 | + */ | ||
| 132 | + onLoad: function (options) { | ||
| 133 | + | ||
| 134 | + }, | ||
| 135 | + | ||
| 90 | /** | 136 | /** |
| 91 | * 生命周期函数--监听页面初次渲染完成 | 137 | * 生命周期函数--监听页面初次渲染完成 |
| 92 | */ | 138 | */ |
| 93 | onReady: function () { | 139 | onReady: function () { |
| 94 | - | 140 | + var self = this; |
| 141 | + this.updateLiveList().then(() => { | ||
| 142 | + self.loadLiveList(1); | ||
| 143 | + }); | ||
| 95 | }, | 144 | }, |
| 96 | 145 | ||
| 97 | /** | 146 | /** |
| @@ -119,14 +168,38 @@ Page({ | @@ -119,14 +168,38 @@ Page({ | ||
| 119 | * 页面相关事件处理函数--监听用户下拉动作 | 168 | * 页面相关事件处理函数--监听用户下拉动作 |
| 120 | */ | 169 | */ |
| 121 | onPullDownRefresh: function () { | 170 | onPullDownRefresh: function () { |
| 122 | - | 171 | + var self = this; |
| 172 | + wx.showNavigationBarLoading(); //在标题栏中显示加载 | ||
| 173 | + setTimeout(function() { | ||
| 174 | + self.loadLiveList(1); | ||
| 175 | + wx.hideNavigationBarLoading(); //完成停止加载 | ||
| 176 | + wx.stopPullDownRefresh(); //停止下拉刷新 | ||
| 177 | + }, 500); | ||
| 123 | }, | 178 | }, |
| 124 | - | ||
| 125 | /** | 179 | /** |
| 126 | * 页面上拉触底事件的处理函数 | 180 | * 页面上拉触底事件的处理函数 |
| 127 | */ | 181 | */ |
| 128 | onReachBottom: function () { | 182 | onReachBottom: function () { |
| 129 | - | 183 | + var self = this; |
| 184 | + var curPage = this.data.curPage; | ||
| 185 | + var pageNum = this.data.pageNum; | ||
| 186 | + | ||
| 187 | + if(curPage <= pageNum) { | ||
| 188 | + wx.showLoading({ | ||
| 189 | + title: '加载中...', | ||
| 190 | + }) | ||
| 191 | + setTimeout(function() { | ||
| 192 | + self.loadLiveList(curPage); | ||
| 193 | + wx.hideLoading(); | ||
| 194 | + }, 500); | ||
| 195 | + | ||
| 196 | + } else { | ||
| 197 | + wx.showToast({ | ||
| 198 | + title: '已经到底啦~', | ||
| 199 | + duration: 1000 | ||
| 200 | + }) | ||
| 201 | + } | ||
| 202 | + console.log('当前curpage',curPage); | ||
| 130 | }, | 203 | }, |
| 131 | 204 | ||
| 132 | /** | 205 | /** |
| @@ -152,5 +225,6 @@ Page({ | @@ -152,5 +225,6 @@ Page({ | ||
| 152 | title: '直播列表' | 225 | title: '直播列表' |
| 153 | // path: '/page/user?id=123' | 226 | // path: '/page/user?id=123' |
| 154 | } | 227 | } |
| 155 | - } | 228 | + }, |
| 229 | + | ||
| 156 | }) | 230 | }) |
| 157 | \ No newline at end of file | 231 | \ No newline at end of file |
packageA/pages/liveStream/liveStream.json
| @@ -2,5 +2,10 @@ | @@ -2,5 +2,10 @@ | ||
| 2 | "usingComponents": { | 2 | "usingComponents": { |
| 3 | "subscribe": "plugin-private://wx2b03c6e691cd7370/components/subscribe/subscribe" | 3 | "subscribe": "plugin-private://wx2b03c6e691cd7370/components/subscribe/subscribe" |
| 4 | }, | 4 | }, |
| 5 | - "navigationBarTitleText": "直播" | ||
| 6 | -} | ||
| 7 | \ No newline at end of file | 5 | \ No newline at end of file |
| 6 | + "navigationBarTitleText": "直播", | ||
| 7 | + "enablePullDownRefresh": true, | ||
| 8 | + "backgroundColor": "#eee", | ||
| 9 | + "backgroundTextStyle": "dark", | ||
| 10 | + "onReachBottomDistance": 300 | ||
| 11 | +} | ||
| 12 | + | ||
| 8 | \ No newline at end of file | 13 | \ No newline at end of file |
packageA/pages/liveStream/liveStream.wxml
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | <block wx:if="{{live.toBegin.length > 0}}"> | 6 | <block wx:if="{{live.toBegin.length > 0}}"> |
| 7 | <view class="title">即将开始</view> | 7 | <view class="title">即将开始</view> |
| 8 | <view class="list"> | 8 | <view class="list"> |
| 9 | - <block wx:for="{{live.toBegin}}"> | 9 | + <block wx:for="{{live.toBegin}}" wx:key="item"> |
| 10 | <view class="list-item" data-id="{{item.id}}" data-live="toBegin" catchtap="clickItem"> | 10 | <view class="list-item" data-id="{{item.id}}" data-live="toBegin" catchtap="clickItem"> |
| 11 | <view class="list-item-left"> | 11 | <view class="list-item-left"> |
| 12 | <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> | 12 | <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> |
| @@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
| 30 | <block wx:if="{{live.ing.length > 0}}"> | 30 | <block wx:if="{{live.ing.length > 0}}"> |
| 31 | <view class="title">直播中</view> | 31 | <view class="title">直播中</view> |
| 32 | <view class="list"> | 32 | <view class="list"> |
| 33 | - <block wx:for="{{live.ing}}"> | 33 | + <block wx:for="{{live.ing}}" wx:key="item"> |
| 34 | <view class="list-item" catchtap="clickItem" data-id="{{item.id}}" data-live="ing"> | 34 | <view class="list-item" catchtap="clickItem" data-id="{{item.id}}" data-live="ing"> |
| 35 | <view class="list-item-left"> | 35 | <view class="list-item-left"> |
| 36 | <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> | 36 | <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> |
| @@ -53,7 +53,7 @@ | @@ -53,7 +53,7 @@ | ||
| 53 | <block wx:if="{{live.over.length > 0}}"> | 53 | <block wx:if="{{live.over.length > 0}}"> |
| 54 | <view class="title">精彩回放</view> | 54 | <view class="title">精彩回放</view> |
| 55 | <view class="list"> | 55 | <view class="list"> |
| 56 | - <block wx:for="{{live.over}}"> | 56 | + <block wx:for="{{live.over}}" wx:key="item"> |
| 57 | <view class="list-item" bindtap="clickItem" data-id="{{item.id}}" data-live="over"> | 57 | <view class="list-item" bindtap="clickItem" data-id="{{item.id}}" data-live="over"> |
| 58 | <view class="list-item-left"> | 58 | <view class="list-item-left"> |
| 59 | <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> | 59 | <image src="{{item.share_img}}" class="item-pic" mode="aspectFill"></image> |