| | |
| | | banners: [], |
| | | // 赛事列表 |
| | | activities: [], |
| | | // 最新新闻列表 |
| | | latestNews: [], |
| | | // 加载状态 |
| | | loading: true, |
| | | // 是否还有更多数据 |
| | |
| | | } |
| | | // 加载数据 |
| | | this.loadBanners() |
| | | this.loadLatestNews() |
| | | this.loadActivities() |
| | | }, |
| | | |
| | |
| | | |
| | | Promise.all([ |
| | | this.loadBanners(), |
| | | this.loadLatestNews(), |
| | | this.loadActivities() |
| | | ]).finally(() => { |
| | | wx.stopPullDownRefresh() |
| | |
| | | } |
| | | }).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) |
| | | }) |
| | | }, |
| | | |
| | |
| | | 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) { |
| | |
| | | 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: '' |
| | | } |
| | | } |
| | | }) |