peng
2025-11-06 c4938f6f4e839890b032c75c7a57333a6a9157a9
wx/pages/index/index.js
@@ -8,6 +8,8 @@
    banners: [],
    // 赛事列表
    activities: [],
    // 最新新闻列表
    latestNews: [],
    // 加载状态
    loading: true,
    // 是否还有更多数据
@@ -45,6 +47,7 @@
    }
    // 加载数据
    this.loadBanners()
    this.loadLatestNews()
    this.loadActivities()
  },
@@ -70,6 +73,7 @@
    
    Promise.all([
      this.loadBanners(),
      this.loadLatestNews(),
      this.loadActivities()
    ]).finally(() => {
      wx.stopPullDownRefresh()
@@ -162,6 +166,47 @@
      }
    }).catch(err => {
      console.error('加载轮播图失败:', err)
    })
  },
  // 加载最新新闻(只加载前3条)
  loadLatestNews() {
    return app.graphqlRequest(`
      query getPublishedNewsList($page: Int!, $size: Int!) {
        publishedNewsList(page: $page, size: $size) {
          content {
            id
            title
            summary
            coverImage
            author
            viewCount
            createTime
          }
          totalElements
          page
          size
        }
      }
    `, {
      page: 1,
      size: 3
    }).then(data => {
      if (data.publishedNewsList) {
        // 格式化时间显示
        const latestNews = data.publishedNewsList.content.map(news => {
          if (news.createTime) {
            news.createTime = utils.formatDate(news.createTime, 'YYYY-MM-DD HH:mm:ss');
          }
          return news;
        });
        this.setData({
          latestNews: latestNews
        })
      }
    }).catch(err => {
      console.error('加载最新新闻失败:', err)
    })
  },
@@ -341,6 +386,22 @@
    utils.navigateTo('/pages/activity/detail', { id: activityId })
  },
  // 跳转到新闻详情
  goToNewsDetail(e) {
    const newsId = e.currentTarget.dataset.id
    if (newsId) {
      wx.navigateTo({
        url: `/pages/news/detail?id=${newsId}`
      })
    }
  },
  // 跳转到新闻列表
  goToNewsList() {
    wx.navigateTo({
      url: '/pages/news/list'
    })
  },
  // 格式化日期
  formatDate(date) {
@@ -525,77 +586,34 @@
        imageUrl: '', // 可以设置分享图片
        success: (res) => {
          console.log('分享成功', res)
          wx.showToast({
            title: '分享成功',
            icon: 'success',
            duration: 2000
          })
          // 清除分享状态
          this.setData({
            shareActivityId: null,
            shareActivityName: null
          })
        },
        fail: (res) => {
          console.log('分享失败', res)
          wx.showToast({
            title: '分享失败',
            icon: 'none',
            duration: 2000
          })
        }
      }
      return shareData
    }
    
    // 默认分享整个首页
    // 默认分享
    return {
      title: '蓉e创比赛平台 - 发现精彩比赛',
      title: '蓉e创比赛平台',
      path: '/pages/index/index',
      imageUrl: '', // 可以设置默认分享图片
      imageUrl: '',
      success: (res) => {
        console.log('分享成功', res)
        wx.showToast({
          title: '分享成功',
          icon: 'success',
          duration: 2000
        })
      },
      fail: (res) => {
        console.log('分享失败', res)
        wx.showToast({
          title: '分享失败',
          icon: 'none',
          duration: 2000
        })
      }
    }
  },
  // 分享到朋友圈
  // 页面分享功能 - 分享到朋友圈
  onShareTimeline() {
    console.log('分享到朋友圈')
    return {
      title: '蓉e创比赛平台 - 发现精彩比赛',
      title: '蓉e创比赛平台',
      query: '',
      imageUrl: '', // 可以设置分享图片
      success: (res) => {
        console.log('分享到朋友圈成功', res)
        wx.showToast({
          title: '分享成功',
          icon: 'success',
          duration: 2000
        })
      },
      fail: (res) => {
        console.log('分享到朋友圈失败', res)
        wx.showToast({
          title: '分享失败',
          icon: 'none',
          duration: 2000
        })
      }
      imageUrl: ''
    }
  }
})