index.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import {
  2. getActivities
  3. } from '~/api/global'
  4. Component({
  5. properties: {},
  6. /**
  7. * 组件的初始数据
  8. */
  9. data: {
  10. //,2:邀新榜,3:热播榜,4:挑战pk榜,5,朗读赛
  11. type: '4',
  12. activityList: [],
  13. dsqList: []
  14. },
  15. lifetimes: {
  16. attached() {
  17. this.getActivities()
  18. },
  19. detached() {
  20. this.data.dsqList.forEach(item => {
  21. clearInterval(item)
  22. })
  23. }
  24. },
  25. /**
  26. * 组件的方法列表
  27. */
  28. methods: {
  29. async getActivities() {
  30. let activityList = await getActivities()
  31. console.log(activityList);
  32. this.setData({
  33. activityList
  34. })
  35. // 下面这个处理限时活动的,第一版先不上
  36. /* res.forEach((item, index) => {
  37. this.activityTimeOut(item.closing, index)
  38. }) */
  39. },
  40. activityTimeOut(oTime, index) {
  41. let inputTime = new Date(oTime)
  42. let dsq = setInterval(() => {
  43. var nowTime = new Date();
  44. //把剩余时间毫秒数转化为秒
  45. var times = (inputTime - nowTime) / 1000;
  46. if (times <= 0) {
  47. this.setData({
  48. [`activityList[${index}].hour`]: '00',
  49. [`activityList[${index}].minute`]: '00',
  50. [`activityList[${index}].second`]: '00',
  51. })
  52. return clearInterval(dsq)
  53. }
  54. //计算小时数 转化为整数
  55. var h = parseInt(times / 60 / 60 % 24);
  56. //如果小时数小于 10,要变成 0 + 数字的形式 赋值给盒子
  57. let hour = h < 10 ? "0" + h : h;
  58. //计算分钟数 转化为整数
  59. var m = parseInt(times / 60 % 60);
  60. //如果分钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
  61. let minute = m < 10 ? "0" + m : m;
  62. //计算描述 转化为整数
  63. var s = parseInt(times % 60);
  64. //如果秒钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
  65. let second = s < 10 ? "0" + s : s;
  66. this.setData({
  67. [`activityList[${index}].hour`]: hour,
  68. [`activityList[${index}].minute`]: minute,
  69. [`activityList[${index}].second`]: second,
  70. })
  71. times = --times;
  72. }, 1000);
  73. this.setData({
  74. dsqList: [...this.data.dsqList, dsq]
  75. })
  76. },
  77. activityEvent({
  78. currentTarget
  79. }) {
  80. //1:图片,2:邀新榜,3:热播榜,4:挑战pk榜,5,朗读赛,6,领取勋章
  81. switch (currentTarget.dataset.type) {
  82. case 1:
  83. break;
  84. case 2:
  85. wx.navigateTo({
  86. url: '/pages/ranking/index?type=2&title=邀新榜',
  87. })
  88. break;
  89. case 3:
  90. wx.navigateTo({
  91. url: '/pages/ranking/index?type=3&title=热播榜',
  92. })
  93. break;
  94. case 4:
  95. wx.navigateTo({
  96. url: '/pages/ranking/index?type=4&title=挑战榜',
  97. })
  98. break;
  99. default:
  100. }
  101. },
  102. }
  103. })