rank.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. // pages/user/rank.js
  2. import api from '../../utils/api'
  3. const app = getApp()
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. tabIndex: 0,
  10. result: [
  11. {
  12. list: []
  13. },
  14. {
  15. list: [],
  16. },
  17. {
  18. list: []
  19. }
  20. ],
  21. params: [
  22. {
  23. page: 1,
  24. offset: 10,
  25. range: 'week'
  26. },
  27. {
  28. page: 1,
  29. offset: 10,
  30. range: 'month'
  31. },
  32. {
  33. page: 1,
  34. offset: 10,
  35. range: 'all'
  36. }
  37. ],
  38. mpType: app.globalData.mpType
  39. },
  40. /**
  41. * 生命周期函数--监听页面加载
  42. */
  43. onLoad: function (options) {
  44. this.getList()
  45. },
  46. /**
  47. * 页面相关事件处理函数--监听用户下拉动作
  48. */
  49. onPullDownRefresh: function () {
  50. let { tabIndex, result, params } = this.data
  51. // 重置数据和参数
  52. result[tabIndex] = {
  53. list: []
  54. }
  55. params[tabIndex].page = 1
  56. this.setData({
  57. result,
  58. params
  59. })
  60. // 请求新数据
  61. this.getList(true)
  62. wx.stopPullDownRefresh()
  63. },
  64. /**
  65. * 页面上拉触底事件的处理函数
  66. */
  67. onReachBottom: function () {
  68. this.getList()
  69. },
  70. tabChange: function (e) {
  71. let index = +e.currentTarget.dataset.index
  72. this.setData({
  73. tabIndex: index
  74. })
  75. if (!this.data.result[index].list.length) {
  76. this.getList()
  77. }
  78. },
  79. getList: function (hdld) {
  80. let { params, result, tabIndex: index } = this.data
  81. if (99 <= (params[index].page - 1) * params[index].offset) {
  82. return false
  83. }
  84. api.getIncomeRankList(hdld ? { ...params[index], HideLoading: true} : params[index]).then(res => {
  85. params[index].page++
  86. res.data.list = [
  87. ...result[index].list,
  88. ...res.data.list
  89. ]
  90. res.data.list = this.getRank(res.data.list)
  91. result[index] = res.data
  92. this.setData({
  93. params,
  94. result
  95. })
  96. })
  97. },
  98. getRank: function (data) {
  99. if (data.length) {
  100. data[0].index = 1
  101. for (let i = 1; i < data.length; i++) {
  102. // if (data[i].share_total === data[i-1].share_total) {
  103. // data[i].index = data[i-1].index
  104. // } else {
  105. // data[i].index = i + 1
  106. // }
  107. if (i >= 199) {
  108. data[i].index = '199+'
  109. } else {
  110. data[i].index = i + 1
  111. }
  112. }
  113. }
  114. return data
  115. }
  116. })