index.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // pages/match/index.js
  2. const app = getApp();
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. appAssetsUrl2: app.appAssetsUrl2,
  9. matchList: [
  10. {
  11. id: 1,
  12. title: '2025年夏季创业大赛季创业大赛...',
  13. description: '青年创业大赛是为怀揣梦想的年轻人打造的实践舞台,聚焦科技创新、社会服务、文化创意等领域,通过项目路演等形式...',
  14. image: app.appAssetsUrl2 + 'match/match1.jpg'
  15. },
  16. {
  17. id: 2,
  18. title: '2025年夏季创业大赛季创业大赛...',
  19. description: '青年创业大赛是为怀揣梦想的年轻人打造的实践舞台,聚焦科技创新、社会服务、文化创意等领域,通过项目路演等形式...',
  20. image: app.appAssetsUrl2 + 'match/match2.jpg'
  21. },
  22. {
  23. id: 3,
  24. title: '2025年夏季创业大赛季创业大赛...',
  25. description: '青年创业大赛是为怀揣梦想的年轻人打造的实践舞台,聚焦科技创新、社会服务、文化创意等领域,通过项目路演等形式...',
  26. image: app.appAssetsUrl2 + 'match/match3.jpg'
  27. }
  28. ],
  29. statusBarHeightTop: 0,
  30. statusBarHeight: 0,
  31. },
  32. /**
  33. * 赛事项目点击事件
  34. */
  35. onMatchItemTap(e) {
  36. const index = e.currentTarget.dataset.index;
  37. const matchItem = this.data.matchList[index];
  38. console.log('点击赛事项目:', matchItem);
  39. // 跳转到详情页面
  40. wx.navigateTo({
  41. url: `/pages/match/details/index?id=${matchItem.id}`
  42. });
  43. },
  44. /**
  45. * 生命周期函数--监听页面加载
  46. */
  47. onLoad(options) {
  48. this.height();
  49. // 可以在这里加载赛事数据
  50. this.loadMatchData();
  51. },
  52. /**
  53. * 加载赛事数据
  54. */
  55. loadMatchData() {
  56. // TODO: 调用API获取赛事数据
  57. wx.showLoading({
  58. title: '加载中...'
  59. });
  60. // 模拟API调用
  61. setTimeout(() => {
  62. wx.hideLoading();
  63. // 这里可以设置从API获取的数据
  64. // this.setData({
  65. // matchList: apiData
  66. // });
  67. }, 1000);
  68. },
  69. height() {
  70. const {
  71. platform,
  72. statusBarHeight
  73. } = wx.getSystemInfoSync();
  74. let statusBarHeightTop = statusBarHeight;
  75. let height = statusBarHeight + 4; //ios 24px
  76. let mH = statusBarHeight + 4;
  77. if (platform.toLowerCase() == "android") {
  78. height += 4; //android 28px
  79. mH += 4;
  80. }
  81. height = height + 100;
  82. // height = height + 38 + 118;
  83. // 胶囊高度 32px 下边框6px height 状态栏高度
  84. this.setData({
  85. statusBarHeightTop: statusBarHeightTop + "px",
  86. statusBarHeight: height + "px",
  87. statusBarMH: mH + "px",
  88. });
  89. },
  90. /**
  91. * 生命周期函数--监听页面初次渲染完成
  92. */
  93. onReady() {
  94. // 页面渲染完成
  95. },
  96. /**
  97. * 生命周期函数--监听页面显示
  98. */
  99. onShow() {
  100. // 页面显示时刷新数据
  101. },
  102. /**
  103. * 生命周期函数--监听页面隐藏
  104. */
  105. onHide() {
  106. // 页面隐藏
  107. },
  108. /**
  109. * 生命周期函数--监听页面卸载
  110. */
  111. onUnload() {
  112. // 页面卸载
  113. },
  114. /**
  115. * 页面相关事件处理函数--监听用户下拉动作
  116. */
  117. onPullDownRefresh() {
  118. // 下拉刷新
  119. this.loadMatchData();
  120. wx.stopPullDownRefresh();
  121. },
  122. /**
  123. * 页面上拉触底事件的处理函数
  124. */
  125. onReachBottom() {
  126. // 上拉加载更多
  127. console.log('加载更多赛事数据');
  128. },
  129. /**
  130. * 用户点击右上角分享
  131. */
  132. onShareAppMessage() {
  133. }
  134. });