index.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. id: 1,
  14. name: '新学期限时充值活动',
  15. closing: '2023-1-29 16:38:00',
  16. }, {
  17. id: 2,
  18. name: '入学限时充值活动',
  19. closing: '2023-1-30 16:38:00',
  20. }],
  21. dsqList: []
  22. },
  23. lifetimes: {
  24. attached() {
  25. this.getActivities()
  26. },
  27. detached() {
  28. this.data.dsqList.forEach(item => {
  29. clearInterval(item)
  30. })
  31. }
  32. },
  33. /**
  34. * 组件的方法列表
  35. */
  36. methods: {
  37. async getActivities() {
  38. let res = await getActivities()
  39. this.data.activityList.forEach((item, index) => {
  40. this.activityTimeOut(item.closing, index)
  41. })
  42. },
  43. activityTimeOut(oTime,index) {
  44. let inputTime = new Date(oTime)
  45. let dsq = setInterval(() => {
  46. console.log('执行呢');
  47. var nowTime = new Date();
  48. //把剩余时间毫秒数转化为秒
  49. var times = (inputTime - nowTime) / 1000;
  50. if (times <= 0) {
  51. this.setData({
  52. [`activityList[${index}].hour`]: '00',
  53. [`activityList[${index}].minute`]: '00',
  54. [`activityList[${index}].second`]: '00',
  55. })
  56. return clearInterval(dsq)
  57. }
  58. console.log(times);
  59. //计算小时数 转化为整数
  60. var h = parseInt(times / 60 / 60 % 24);
  61. //如果小时数小于 10,要变成 0 + 数字的形式 赋值给盒子
  62. let hour = h < 10 ? "0" + h : h;
  63. //计算分钟数 转化为整数
  64. var m = parseInt(times / 60 % 60);
  65. //如果分钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
  66. let minute = m < 10 ? "0" + m : m;
  67. //计算描述 转化为整数
  68. var s = parseInt(times % 60);
  69. //如果秒钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
  70. let second = s < 10 ? "0" + s : s;
  71. this.setData({
  72. [`activityList[${index}].hour`]: hour,
  73. [`activityList[${index}].minute`]: minute,
  74. [`activityList[${index}].second`]: second,
  75. })
  76. times = --times;
  77. }, 1000);
  78. this.setData({
  79. dsqList: [...this.data.dsqList, dsq]
  80. })
  81. }
  82. }
  83. })