liveStream.js 6.36 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: {
      ing:[],
      toBegin:[],
      over:[]
    },
    liveing: [],
    livetoBegin: [],
    liveOver: []
  },

  // 点击直播列表项
  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('请求失败!!!!!');
      }
    })
  },

  getData: function (liveStatus) {
    var that = this;
    var curPage = this.data.curPage
    getApp().request.promiseGet("/api/weshop/wx/livelist/page", {
      data: {
        storedId: o.stoid,
        page: curPage,
        live_status: liveStatus
      }
    }).then(res => {
      if (res.data.code == 0) {
        if(liveStatus == 101) {
          that.setData({
            liveing: res.data.data.pageData
          });
        } else if(liveStatus == 102) {
          that.setData({
            livetoBegin: res.data.data.pageData
          });
        } else if(liveStatus == 103) {
          that.setData({
            liveOver: res.data.data.pageData
          });
        }
        
      }
    });
  },

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

  },

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

  /**
   * 生命周期函数--监听页面显示
   */
  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'
    }
  },

})