collection.js 2.55 KB
import MessageService from './collectionService.js'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    collectionInfo: {
      isLoading: false,
      hasMore: true,
      currentPage: 1,
      collectionList: [],
    },
    _triggerObserer: true,
  },

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

  },

  fetchCollectionList: function (reload) {
    let that = this;
    let collectionInfo = that.data.collectionInfo;
    if ((collectionInfo.isLoading || !collectionInfo.hasMore) && !reload) {
      return;
    }
    collectionInfo.isLoading = true;
    that.setData({
      collectionInfo
    })

    wx.showLoading({
      title: '',
    })

    let params = {
      page: collectionInfo.currentPage,
      limit: 20
    }

    let api = new MessageService();
    api.fetchCollectionList(params, () => {
      wx.hideLoading();
    })
      .then(data => {
        if (data) {
          let list = data.product_list;
          if (reload) {
            collectionInfo.collectionList = list;
          } else {
            collectionInfo.collectionList = collectionInfo.collectionList.concat(list);
          }
          collectionInfo.isLoading = false;
          collectionInfo.currentPage = data.page;

          let hasMore = collectionInfo.currentPage < data.page_total;
          collectionInfo.hasMore = hasMore;
          if (hasMore) {
            collectionInfo.currentPage = collectionInfo.currentPage + 1;
          }

          that.setData({
            collectionInfo,
          })
          wx.hideLoading();

          let _triggerObserer = that.data._triggerObserer;
          that.setData({
            _triggerObserer: !_triggerObserer,
          })
        }
      })
      .catch(error => {
        wx.hideLoading();
        collectionInfo.isLoading = false;
        console.error(error);
      })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.fetchCollectionList(true);
  },

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

  },

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

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.fetchCollectionList(false);
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})