// pages/user/rank.js import api from '../../utils/api' const app = getApp() Page({ /** * 页面的初始数据 */ data: { tabIndex: 0, result: [ { list: [] }, { list: [], }, { list: [] } ], params: [ { page: 1, offset: 10, range: 'week' }, { page: 1, offset: 10, range: 'month' }, { page: 1, offset: 10, range: 'all' } ], mpType: app.globalData.mpType }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.getList() }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { let { tabIndex, result, params } = this.data // 重置数据和参数 result[tabIndex] = { list: [] } params[tabIndex].page = 1 this.setData({ result, params }) // 请求新数据 this.getList(true) wx.stopPullDownRefresh() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.getList() }, tabChange: function (e) { let index = +e.currentTarget.dataset.index this.setData({ tabIndex: index }) if (!this.data.result[index].list.length) { this.getList() } }, getList: function (hdld) { let { params, result, tabIndex: index } = this.data if (99 <= (params[index].page - 1) * params[index].offset) { return false } api.getIncomeRankList(hdld ? { ...params[index], HideLoading: true} : params[index]).then(res => { params[index].page++ res.data.list = [ ...result[index].list, ...res.data.list ] res.data.list = this.getRank(res.data.list) result[index] = res.data this.setData({ params, result }) }) }, getRank: function (data) { if (data.length) { data[0].index = 1 for (let i = 1; i < data.length; i++) { // if (data[i].share_total === data[i-1].share_total) { // data[i].index = data[i-1].index // } else { // data[i].index = i + 1 // } if (i >= 199) { data[i].index = '199+' } else { data[i].index = i + 1 } } } return data } })