Codex Assistant
1 天以前 58d9f460b2f8c34430285115e2557d18333c5cab
wx/pages/index/index.js
@@ -162,7 +162,7 @@
  },
  // 加载赛事列表
  loadActivities() {
  loadActivities(isLoadMore = false) {
    this.setData({ loading: true })
    
    const { currentPage, pageSize, searchKeyword, filterStatus } = this.data
@@ -170,9 +170,21 @@
    // 名称搜索条件
    const nameFilter = searchKeyword || ""
    
    // 状态筛选条件:将前端的筛选状态转换为后端的state参数
    let stateFilter = null
    if (filterStatus !== 'all') {
      // 根据filterStatus映射到对应的state值
      const stateMapping = {
        'upcoming': 1,    // 即将开始
        'ongoing': 2,     // 进行中
        'ended': 3        // 已结束
      }
      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 +213,8 @@
    `, {
      page: currentPage,
      size: pageSize,
      name: nameFilter
      name: nameFilter,
      state: stateFilter
    }).then(data => {
      if (data.activities) {
        let newActivities = data.activities.content
@@ -211,20 +224,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 +252,7 @@
    this.setData({
      currentPage: this.data.currentPage + 1
    })
    this.loadActivities()
    this.loadActivities(true) // 传入true表示这是加载更多
  },
  // 轮播图切换
@@ -329,14 +337,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 +366,29 @@
    const v = utils.formatDate(date, 'YYYY-MM-DD')
    return v && typeof v === 'string' && v.trim() ? v : '—'
  },
  onTest(e){
    const activityId = e.currentTarget.dataset.id
    const xid = e.currentTarget.dataset.xid;
    const idx = e.currentTarget.dataset.idx;
  // 点击“详情”按钮(与卡片点击一致)
  onDetailTap(e) {
    const id = e.currentTarget.dataset.id
    if (id) {
      this.goToActivityDetail(id)
    // 简化的调试信息
    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)
    }
  },