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 |  179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 171 insertions(+), 8 deletions(-)

diff --git a/wx/pages/index/index.js b/wx/pages/index/index.js
index cf405ea..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() {
@@ -175,9 +179,9 @@
     if (filterStatus !== 'all') {
       // 鏍规嵁filterStatus鏄犲皠鍒板搴旂殑state鍊�
       const stateMapping = {
-        'upcoming': 1,    // 鍗冲皢寮�濮�
-        'ongoing': 2,     // 杩涜涓�  
-        'ended': 3        // 宸茬粨鏉�
+        'upcoming': 1,    // 鍗冲皢寮�濮� -> 鍙戝竷鐘舵��
+        'ongoing': 1,     // 杩涜涓� -> 鍙戝竷鐘舵��  
+        'ended': 2        // 宸茬粨鏉� -> 鍏抽棴鐘舵��
       }
       stateFilter = stateMapping[filterStatus]
     }
@@ -214,7 +218,7 @@
       page: currentPage,
       size: pageSize,
       name: nameFilter,
-      state: stateFilter
+      state: 1
     }).then(data => {
       if (data.activities) {
         let newActivities = data.activities.content
@@ -434,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