liveStream.js 5.26 KB
// pages/liveStream/liveStream.js
var t = require("../../../utils/util"),
  ut = t,
  e = require("../../../utils/common.js"),
  a = require("../../../utils/wxParse/wxParse.js"),
  s = getApp(),
  i = s.request,
  rq = i,
  oo = s.globalData,
  o = s.globalData.setting,
  os = o;
var regeneratorRuntime = require('../../../utils/runtime.js');

Page({
  /**
   * 页面的初始数据
   */
  data: {
    curPage: 1,
    pageNum: 0,
    list: [],
    live: {}
  },

  // 点击直播列表项
  clickItem: function (e) {
    // id:列表项id
    // live:直播类别 即将开始/直播中/精彩回放
    wx.navigateTo({
      url: '/packageA/pages/liveStreamDetails/liveStreamDetails?id=' + e.currentTarget.dataset.id + '&live=' + e.currentTarget.dataset.live
    })
    console.log('options-->');
  },

  // 点击 订阅/观看直播/观看回放 按钮,跳转直播组件
  clickLive: function (e) {
    console.log('当前房间号roomid:', e.currentTarget.dataset.roomid);
    let roomId = e.currentTarget.dataset.roomid;
    let customParams = encodeURIComponent(JSON.stringify({
      path: 'pages/index/index',
      pid: 1
    }));
    wx.navigateTo({
      url: `plugin-private://wx2b03c6e691cd7370/pages/live-player-plugin?room_id=${roomId}&custom_params=${customParams}`
    })
  },

  updateLiveList: function () {
    return new Promise((resolve, reject) => {
      let self = this;
      getApp().request.put("/api/weshop/wx/livelist/updatelivelist", {
        data: {
          storeId: 1
        },
        success: function (res) {
          console.log('我发起了PUT请求,请求结果:', res.data);
          resolve();
        }
      });
    });
  },

  loadLiveList: function (curPage) {    
    // console.log('---->curPage', curPage);
    var live = {};
    live.toBegin = []; // 即将开始
    live.ing = []; // 直播中
    live.over = []; // 已结束
    var that = this;
    var storeId = o.stoid;

    // 请求数据
    getApp().request.promiseGet("/api/weshop/wx/livelist/page", {
      data: {
        storedId: storeId,
        page: curPage
      }
    }).then(res => {
      if (res.data.code == 0) {
        // 计算总页数
        var total = res.data.data.total;
        var pageSize = res.data.data.pageSize;
        var pageNum = total % pageSize;
        that.setData({
          pageNum: pageNum
        });

        // 如果当前请求的是第一页数据,则执行赋值,否则执行合并再赋值
        if(curPage == 1) {
          that.setData({
            list: res.data.data.pageData
            // 测试
            // list: that.data.list.concat(res.data.data.pageData)
          });
        } else {
          that.setData({
            list: that.data.list.concat(res.data.data.pageData)
          });
        };
    
        var list = that.data.list;
        for(var i in list) {
          var liveStatus = list[i].live_status;
          if (liveStatus == '101') {
            live.ing.push(list[i]);
          } else if (liveStatus == '102') {
            live.toBegin.push(list[i]);
          } else if (liveStatus == '103') {
            live.over.push(list[i]);
          }
        }

        that.setData({
          live
        });

        curPage ++;
        that.setData({
          curPage
        });

      } else {
        console.error('请求失败!!!!!');
      }
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    var self = this;
    this.updateLiveList().then(() => {
      self.loadLiveList(1);
    });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    var self = this;
    wx.showNavigationBarLoading(); //在标题栏中显示加载
    setTimeout(function() {
      self.loadLiveList(1);
      wx.hideNavigationBarLoading(); //完成停止加载
      wx.stopPullDownRefresh(); //停止下拉刷新 
    }, 500);  
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    var self = this;
    var curPage = this.data.curPage;
    var pageNum = this.data.pageNum;

    if(curPage <= pageNum) {
      wx.showLoading({
        title: '加载中...',
      })
      setTimeout(function() {
        self.loadLiveList(curPage);
        wx.hideLoading();
      }, 500);
      
    } else {
      wx.showToast({
        title: '已经到底啦~',
        duration: 1000
      })
    }
    console.log('当前curpage',curPage);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    }
    return {
      title: '直播列表'
      // path: '/page/user?id=123'
    }
  },

  onShareTimeline: function (res) {
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    }
    return {
      title: '直播列表'
      // path: '/page/user?id=123'
    }
  },

})