Commit a5ffbf748d4b0e9f8a0825e08accfa037ec49399

Authored by taiyuan
1 parent 581a42d0

直播修改

packageA/pages/liveStream/liveStream.js
@@ -10,17 +10,25 @@ var t = require("../../../utils/util"), @@ -10,17 +10,25 @@ var t = require("../../../utils/util"),
10 o = s.globalData.setting, 10 o = s.globalData.setting,
11 os = o; 11 os = o;
12 var regeneratorRuntime = require('../../../utils/runtime.js'); 12 var regeneratorRuntime = require('../../../utils/runtime.js');
13 -1 13 +
  14 +const app = getApp();
  15 +let self = null;
  16 +
  17 +
14 Page({ 18 Page({
15 /** 19 /**
16 * 页面的初始数据 20 * 页面的初始数据
17 */ 21 */
18 data: { 22 data: {
19 curPage: 1, 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 // list: [], 33 // list: [],
26 // live: { 34 // live: {
@@ -60,8 +68,10 @@ Page({ @@ -60,8 +68,10 @@ Page({
60 storeId: o.stoid 68 storeId: o.stoid
61 }, 69 },
62 success: function (res) { 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,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 onLoad: function (options) { 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 onReady: function () { 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 onShow: function () { 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,26 +317,32 @@ Page({
262 * 页面上拉触底事件的处理函数 317 * 页面上拉触底事件的处理函数
263 */ 318 */
264 onReachBottom: function () { 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,5 +369,80 @@ Page({
308 // path: '/page/user?id=123' 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 \ No newline at end of file 449 \ No newline at end of file
packageA/pages/liveStream/liveStream.json
1 { 1 {
2 "usingComponents": { 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 "navigationBarTitleText": "直播", 6 "navigationBarTitleText": "直播",
6 - "onReachBottomDistance": 300 7 + "enablePullDownRefresh": false
7 } 8 }
8 9
9 10
10 \ No newline at end of file 11 \ No newline at end of file
packageA/pages/liveStream/liveStream.wxml
1 <!--pages/liveStream/liveStream.wxml--> 1 <!--pages/liveStream/liveStream.wxml-->
2 <wxs src="../../../utils/filter.wxs" module="filter"></wxs> 2 <wxs src="../../../utils/filter.wxs" module="filter"></wxs>
3 <view> 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 <view class="title">即将开始</view> 6 <view class="title">即将开始</view>
8 <view class="list"> 7 <view class="list">
9 - <block wx:for="{{livetoBegin}}" wx:key="item"> 8 + <block wx:for="{{livetoBegin.pageData}}" wx:key="item">
10 <view class="list-item" data-id="{{item.id}}" data-live="toBegin" catchtap="clickItem"> 9 <view class="list-item" data-id="{{item.id}}" data-live="toBegin" catchtap="clickItem">
11 <view class="list-item-left"> 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 </view> 12 </view>
14 <view class="list-item-right"> 13 <view class="list-item-right">
15 <view> 14 <view>
@@ -27,13 +26,13 @@ @@ -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 <view class="title">直播中</view> 30 <view class="title">直播中</view>
32 <view class="list"> 31 <view class="list">
33 - <block wx:for="{{liveing}}" wx:key="item"> 32 + <block wx:for="{{liveing.pageData}}" wx:key="item">
34 <view class="list-item" catchtap="clickItem" data-id="{{item.id}}" data-live="ing"> 33 <view class="list-item" catchtap="clickItem" data-id="{{item.id}}" data-live="ing">
35 <view class="list-item-left"> 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 </view> 36 </view>
38 <view class="list-item-right"> 37 <view class="list-item-right">
39 <view> 38 <view>
@@ -50,13 +49,13 @@ @@ -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 <view class="title">精彩回放</view> 53 <view class="title">精彩回放</view>
55 <view class="list"> 54 <view class="list">
56 - <block wx:for="{{liveOver}}" wx:key="item"> 55 + <block wx:for="{{liveOver.pageData}}" wx:key="item">
57 <view class="list-item" bindtap="clickItem" data-id="{{item.id}}" data-live="over"> 56 <view class="list-item" bindtap="clickItem" data-id="{{item.id}}" data-live="over">
58 <view class="list-item-left"> 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 </view> 59 </view>
61 <view class="list-item-right"> 60 <view class="list-item-right">
62 <view> 61 <view>
@@ -70,4 +69,10 @@ @@ -70,4 +69,10 @@
70 </block> 69 </block>
71 </view> 70 </view>
72 </block> 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 </view> 78 </view>
74 \ No newline at end of file 79 \ No newline at end of file
packageA/pages/liveStream/liveStream.wxss
@@ -60,12 +60,12 @@ @@ -60,12 +60,12 @@
60 } 60 }
61 .item-time { 61 .item-time {
62 color: #999; 62 color: #999;
63 - font-size: 22rpx; 63 + font-size: 24rpx;
64 padding-top: 10rpx; 64 padding-top: 10rpx;
65 } 65 }
66 .item-anchor { 66 .item-anchor {
67 color: #999; 67 color: #999;
68 - font-size: 22rpx; 68 + font-size: 24rpx;
69 } 69 }
70 70
71 .item-btn { 71 .item-btn {
@@ -74,7 +74,7 @@ @@ -74,7 +74,7 @@
74 line-height: 56rpx; 74 line-height: 56rpx;
75 background-color: #f23030; 75 background-color: #f23030;
76 color: #fff; 76 color: #fff;
77 - font-size: 28rpx; 77 + font-size: 24rpx;
78 text-align: center; 78 text-align: center;
79 } 79 }
80 subscribe { 80 subscribe {
@@ -101,4 +101,11 @@ subscribe { @@ -101,4 +101,11 @@ subscribe {
101 } 101 }
102 .subscribe--live-player-hasSubscribe { 102 .subscribe--live-player-hasSubscribe {
103 background-color: #666 !important; 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 \ No newline at end of file 112 \ No newline at end of file
packageA/pages/liveStreamDetails/liveStreamDetails.wxss
@@ -128,7 +128,7 @@ @@ -128,7 +128,7 @@
128 .btn { 128 .btn {
129 color: #fff; 129 color: #fff;
130 background-color: #f23030; 130 background-color: #f23030;
131 - font-size: 36rpx; 131 + font-size: 30rpx;
132 line-height: 92rpx; 132 line-height: 92rpx;
133 text-align: center; 133 text-align: center;
134 /* width: 618rpx; 134 /* width: 618rpx;