From 3714621173c606c4c58439ed8941100ce9ddea14 Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期三, 05 十一月 2025 15:10:49 +0800
Subject: [PATCH] bug
---
wx/pages/index/index.js | 252 +++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 216 insertions(+), 36 deletions(-)
diff --git a/wx/pages/index/index.js b/wx/pages/index/index.js
index 4c96146..f9cba3f 100644
--- a/wx/pages/index/index.js
+++ b/wx/pages/index/index.js
@@ -21,19 +21,20 @@
// 绛涢�夋潯浠�
filterStatus: 'all', // all, upcoming, ongoing, ended
// 杞挱鍥惧綋鍓嶇储寮�
- currentBannerIndex: 0
+ currentBannerIndex: 0,
+ // 鍒嗕韩鐩稿叧鏁版嵁
+ shareActivityId: null,
+ shareActivityName: null
},
onLoad(options) {
console.log('棣栭〉鍔犺浇')
- this.loadBanners()
- this.loadActivities()
},
onShow() {
console.log('棣栭〉鏄剧ず')
// 缁熶竴绯荤粺瀵艰埅鏍忔爣棰�
- try { wx.setNavigationBarTitle({ title: '钃夋槗鍒�' }) } catch (e) {}
+ try { wx.setNavigationBarTitle({ title: '钃塭鍒�' }) } catch (e) {}
// 妫�鏌ョ櫥褰曠姸鎬�
if (!app.globalData.token) {
app.login()
@@ -42,6 +43,9 @@
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
this.getTabBar().init();
}
+ // 鍔犺浇鏁版嵁
+ this.loadBanners()
+ this.loadActivities()
},
onPullDownRefresh() {
@@ -162,7 +166,7 @@
},
// 鍔犺浇璧涗簨鍒楄〃
- loadActivities() {
+ loadActivities(isLoadMore = false) {
this.setData({ loading: true })
const { currentPage, pageSize, searchKeyword, filterStatus } = this.data
@@ -170,9 +174,21 @@
// 鍚嶇О鎼滅储鏉′欢
const nameFilter = searchKeyword || ""
+ // 鐘舵�佺瓫閫夋潯浠讹細灏嗗墠绔殑绛涢�夌姸鎬佽浆鎹负鍚庣鐨剆tate鍙傛暟
+ let stateFilter = null
+ if (filterStatus !== 'all') {
+ // 鏍规嵁filterStatus鏄犲皠鍒板搴旂殑state鍊�
+ const stateMapping = {
+ 'upcoming': 1, // 鍗冲皢寮�濮� -> 鍙戝竷鐘舵��
+ 'ongoing': 1, // 杩涜涓� -> 鍙戝竷鐘舵��
+ 'ended': 2 // 宸茬粨鏉� -> 鍏抽棴鐘舵��
+ }
+ stateFilter = stateMapping[filterStatus]
+ }
+
return app.graphqlRequest(`
- query getActivities($page: Int!, $size: Int!, $name: String) {
- activities(page: $page, size: $size, name: $name) {
+ query getActivities($page: Int!, $size: Int!, $name: String, $state: Int) {
+ activities(page: $page, size: $size, name: $name, state: $state) {
content {
id
name
@@ -201,7 +217,8 @@
`, {
page: currentPage,
size: pageSize,
- name: nameFilter
+ name: nameFilter,
+ state: 1
}).then(data => {
if (data.activities) {
let newActivities = data.activities.content
@@ -211,20 +228,15 @@
} catch (e) {}
// 涓烘瘡涓椿鍔ㄦ坊鍔犲悕绉版枃瀛�
- newActivities = newActivities.map(activity => ({
- ...activity,
- nameText: (activity.name || '娲诲姩').substring(0, 2)
- }))
+ // newActivities = newActivities.map(activity => ({
+ // ...activity,
+ // nameText: (activity.name || '娲诲姩').substring(0, 2)
+ // }))
- // 鏍规嵁绛涢�夌姸鎬佽繃婊ゆ椿鍔�
- if (filterStatus !== 'all') {
- newActivities = newActivities.filter(activity => activity.state === filterStatus)
- }
-
- // 鍚堝苟鏁版嵁
- const mergedActivities = currentPage === 1
- ? newActivities
- : [...this.data.activities, ...newActivities]
+ // 鍚堝苟鏁版嵁锛氬彧鏈夊湪鐪熸鐨勫姞杞芥洿澶氭椂鎵嶈拷鍔狅紝鍏朵粬鎯呭喌閮芥槸鍏ㄩ噺鏇挎崲
+ const mergedActivities = isLoadMore && this.data.activities.length > 0
+ ? [...this.data.activities, ...newActivities]
+ : newActivities
this.setData({
activities: mergedActivities,
@@ -244,7 +256,7 @@
this.setData({
currentPage: this.data.currentPage + 1
})
- this.loadActivities()
+ this.loadActivities(true) // 浼犲叆true琛ㄧず杩欐槸鍔犺浇鏇村
},
// 杞挱鍥惧垏鎹�
@@ -329,14 +341,6 @@
utils.navigateTo('/pages/activity/detail', { id: activityId })
},
- // 鐐瑰嚮璧涗簨鍗$墖
- onActivityTap(e) {
- const index = e.currentTarget.dataset.index
- const activity = this.data.activities[index]
- if (activity) {
- this.goToActivityDetail(activity.id)
- }
- },
// 鏍煎紡鍖栨棩鏈�
formatDate(date) {
@@ -366,12 +370,29 @@
const v = utils.formatDate(date, 'YYYY-MM-DD')
return v && typeof v === 'string' && v.trim() ? v : '鈥�'
},
-
- // 鐐瑰嚮鈥滆鎯呪�濇寜閽紙涓庡崱鐗囩偣鍑讳竴鑷达級
- onDetailTap(e) {
- const id = e.currentTarget.dataset.id
- if (id) {
- this.goToActivityDetail(id)
+ onTest(e){
+ const activityId = e.currentTarget.dataset.id
+ const xid = e.currentTarget.dataset.xid;
+ const idx = e.currentTarget.dataset.idx;
+
+ // 绠�鍖栫殑璋冭瘯淇℃伅
+ console.log('鐐瑰嚮娲诲姩璇︽儏 - ID:', activityId, '鍚嶇О:', xid, '绱㈠紩:', idx)
+
+ if (activityId) {
+ this.goToActivityDetail(activityId)
+ }
+ },
+ // 鐐瑰嚮"璇︽儏"鎸夐挳锛堜笌鍗$墖鐐瑰嚮涓�鑷达級
+ onActivityDetailTap(e) {
+ const activityId = e.currentTarget.dataset.id
+ const xid = e.currentTarget.dataset.xid;
+ const idx = e.currentTarget.dataset.idx;
+
+ // 绠�鍖栫殑璋冭瘯淇℃伅
+ console.log('鐐瑰嚮娲诲姩璇︽儏 - ID:', activityId, '鍚嶇О:', xid, '绱㈠紩:', idx)
+
+ if (activityId) {
+ this.goToActivityDetail(activityId)
}
},
@@ -417,5 +438,164 @@
return now <= signupDeadline &&
activity.state === 'SIGNUP' &&
activity.playerCount < activity.playerMax
+ },
+
+ // 鍒嗕韩鍗曚釜姣旇禌
+ onShareActivity(e) {
+ const { id, name } = e.currentTarget.dataset
+
+ // 鏄剧ず鍒嗕韩閫夐」
+ wx.showActionSheet({
+ itemList: ['鍒嗕韩缁欐湅鍙�', '鐢熸垚鍒嗕韩娴锋姤'],
+ success: (res) => {
+ if (res.tapIndex === 0) {
+ // 鍒嗕韩缁欐湅鍙�
+ this.shareToFriend(id, name)
+ } else if (res.tapIndex === 1) {
+ // 鐢熸垚鍒嗕韩娴锋姤
+ this.generateSharePoster(id, name)
+ }
+ },
+ fail: (res) => {
+ console.log('鐢ㄦ埛鍙栨秷鍒嗕韩')
+ }
+ })
+ },
+
+ // 鍒嗕韩缁欐湅鍙�
+ shareToFriend(activityId, activityName) {
+ wx.showShareMenu({
+ withShareTicket: true,
+ menus: ['shareAppMessage', 'shareTimeline']
+ })
+
+ // 璁剧疆褰撳墠瑕佸垎浜殑娲诲姩淇℃伅
+ this.setData({
+ shareActivityId: activityId,
+ shareActivityName: activityName
+ })
+
+ // 瑙﹀彂鍒嗕韩
+ wx.updateShareMenu({
+ withShareTicket: true,
+ isUpdatableMessage: true,
+ activityId: 'share_activity_' + activityId,
+ templateInfo: {
+ parameterList: [{
+ name: 'activity_name',
+ value: activityName
+ }]
+ }
+ })
+
+ wx.showToast({
+ title: '璇风偣鍑诲彸涓婅鍒嗕韩',
+ icon: 'none',
+ duration: 2000
+ })
+ },
+
+ // 鐢熸垚鍒嗕韩娴锋姤
+ generateSharePoster(activityId, activityName) {
+ wx.showLoading({
+ title: '鐢熸垚娴锋姤涓�...'
+ })
+
+ // 杩欓噷鍙互璋冪敤鍚庣API鐢熸垚鍒嗕韩娴锋姤
+ // 鎴栬�呬娇鐢╟anvas鍦ㄥ墠绔敓鎴�
+ setTimeout(() => {
+ wx.hideLoading()
+ wx.showToast({
+ title: '娴锋姤鐢熸垚鍔熻兘寮�鍙戜腑',
+ icon: 'none',
+ duration: 2000
+ })
+ }, 1500)
+ },
+
+ // 椤甸潰鍒嗕韩鍔熻兘 - 鍒嗕韩缁欐湅鍙�
+ onShareAppMessage(res) {
+ console.log('鍒嗕韩缁欐湅鍙�', res)
+
+ // 濡傛灉鏄粠姣旇禌鍗$墖鍒嗕韩
+ if (this.data.shareActivityId && this.data.shareActivityName) {
+ const shareData = {
+ title: `${this.data.shareActivityName} - 钃塭鍒涙瘮璧涘钩鍙癭,
+ path: `/pages/activity/detail?id=${this.data.shareActivityId}`,
+ 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: '钃塭鍒涙瘮璧涘钩鍙� - 鍙戠幇绮惧僵姣旇禌',
+ path: '/pages/index/index',
+ 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: '钃塭鍒涙瘮璧涘钩鍙� - 鍙戠幇绮惧僵姣旇禌',
+ 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
+ })
+ }
+ }
}
})
\ No newline at end of file
--
Gitblit v1.8.0