index.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. this.setData({
  32. activityList
  33. })
  34. // 下面这个处理限时活动的,第一版先不上
  35. /* res.forEach((item, index) => {
  36. this.activityTimeOut(item.closing, index)
  37. }) */
  38. },
  39. jumpUserInfo({
  40. currentTarget
  41. }) {
  42. if (!currentTarget.dataset.uid) {
  43. return
  44. }
  45. wx.navigateTo({
  46. url: `/pages/personal/index?uid=${currentTarget.dataset.uid}&type=user`,
  47. })
  48. },
  49. activityTimeOut(oTime, index) {
  50. let inputTime = new Date(oTime)
  51. let dsq = setInterval(() => {
  52. var nowTime = new Date();
  53. //把剩余时间毫秒数转化为秒
  54. var times = (inputTime - nowTime) / 1000;
  55. if (times <= 0) {
  56. this.setData({
  57. [`activityList[${index}].hour`]: '00',
  58. [`activityList[${index}].minute`]: '00',
  59. [`activityList[${index}].second`]: '00',
  60. })
  61. return clearInterval(dsq)
  62. }
  63. //计算小时数 转化为整数
  64. var h = parseInt(times / 60 / 60 % 24);
  65. //如果小时数小于 10,要变成 0 + 数字的形式 赋值给盒子
  66. let hour = h < 10 ? "0" + h : h;
  67. //计算分钟数 转化为整数
  68. var m = parseInt(times / 60 % 60);
  69. //如果分钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
  70. let minute = m < 10 ? "0" + m : m;
  71. //计算描述 转化为整数
  72. var s = parseInt(times % 60);
  73. //如果秒钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
  74. let second = s < 10 ? "0" + s : s;
  75. this.setData({
  76. [`activityList[${index}].hour`]: hour,
  77. [`activityList[${index}].minute`]: minute,
  78. [`activityList[${index}].second`]: second,
  79. })
  80. times = --times;
  81. }, 1000);
  82. this.setData({
  83. dsqList: [...this.data.dsqList, dsq]
  84. })
  85. },
  86. activityEvent({
  87. currentTarget
  88. }) {
  89. //1:图片,2:邀新榜,3:热播榜,4:挑战pk榜,5,朗读赛,6,领取勋章
  90. let {
  91. type,
  92. id,
  93. title,
  94. explain
  95. } = currentTarget.dataset.info
  96. if (type == 1) {
  97. wx.navigateTo({
  98. url: `/pages/rankIntro/index?title=${title}&img=${explain}`,
  99. })
  100. }
  101. if (type == 5) {
  102. wx.navigateTo({
  103. url: `/pages/match/index`,
  104. })
  105. }
  106. if ([2, 3, 4].includes(type)) {
  107. wx.navigateTo({
  108. url: `/pages/ranking/index?id=${id}&type=${type}`,
  109. })
  110. }
  111. },
  112. }
  113. })