From c4938f6f4e839890b032c75c7a57333a6a9157a9 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期四, 06 十一月 2025 17:06:10 +0800
Subject: [PATCH] 添加新闻功能
---
wx/pages/index/index.js | 116 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 67 insertions(+), 49 deletions(-)
diff --git a/wx/pages/index/index.js b/wx/pages/index/index.js
index ba5d944..0769b68 100644
--- a/wx/pages/index/index.js
+++ b/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: '钃塭鍒涙瘮璧涘钩鍙� - 鍙戠幇绮惧僵姣旇禌',
+ title: '钃塭鍒涙瘮璧涘钩鍙�',
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: '钃塭鍒涙瘮璧涘钩鍙� - 鍙戠幇绮惧僵姣旇禌',
+ title: '钃塭鍒涙瘮璧涘钩鍙�',
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: ''
}
}
})
\ No newline at end of file
--
Gitblit v1.8.0