lrj
17 小时以前 ae3349d2ff53767b5bc9cb30e1bf7e15f9e814ee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<wxs src="./filters.wxs" module="filters" />
<!--pages/index/index.wxml-->
<view class="container">
  <!-- 搜索栏 - 暂时隐藏 -->
  <view class="search-bar" style="display: none;">
    <view class="search-input-wrapper">
      <input 
        class="search-input" 
        placeholder="搜索赛事..." 
        value="{{searchKeyword}}"
        bindinput="onSearchInput"
        bindconfirm="onSearchSubmit"
      />
      <view class="search-icon">🔍</view>
      <view wx:if="{{searchKeyword}}" class="clear-icon" bindtap="onSearchClear">✕</view>
    </view>
  </view>
 
  <!-- 轮播图 -->
  <view class="banner-section" wx:if="{{banners.length > 0}}">
    <swiper 
      class="banner-swiper" 
      indicator-dots="{{true}}" 
      autoplay="{{true}}" 
      interval="{{3000}}" 
      duration="{{500}}"
      bindchange="onBannerChange"
    >
      <swiper-item 
        wx:for="{{banners}}" 
        wx:key="id"
        bindtap="onBannerTap"
        data-index="{{index}}"
      >
        <!-- 如果有媒体文件,显示第一个媒体文件 -->
        <view wx:if="{{item.mediaFiles && item.mediaFiles.length > 0}}" class="banner-media">
          <view wx:if="{{item.mediaFiles[0].type === 'image'}}" class="banner-image-wrapper">
            <image class="banner-image" src="{{item.mediaFiles[0].url}}" mode="aspectFill" />
          </view>
          <view wx:elif="{{item.mediaFiles[0].type === 'video'}}" class="banner-video-wrapper">
            <image class="banner-video-thumb" src="{{item.mediaFiles[0].thumbUrl || item.mediaFiles[0].url}}" mode="aspectFill" />
            <view class="banner-video-play-btn">
              <view class="play-icon">▶</view>
            </view>
          </view>
        </view>
        <!-- 如果没有媒体文件,显示封面图片或占位符 -->
        <view wx:elif="{{item.coverImage && item.coverImage.fullUrl}}" class="banner-image-wrapper">
          <image class="banner-image" src="{{item.coverImage.fullUrl}}" mode="aspectFill" />
        </view>
        <view wx:else class="banner-placeholder">
          <text class="placeholder-text">{{item.title}}</text>
        </view>
 
        <!-- 覆盖层隐藏 -->
        <view class="banner-overlay" style="display: none;">
          <view class="banner-title">{{item.title}}</view>
          <view class="banner-desc">{{item.content}}</view>
        </view>
      </swiper-item>
    </swiper>
  </view>
 
  <!-- 模块标题 -->
  <view class="section-title">比赛信息</view>
 
  <!-- 筛选栏(隐藏,保留逻辑) -->
  <view class="filter-bar" wx:if="{{false}}">
    <view class="filter-tabs">
      <view class="filter-tab {{filterStatus === 'all' ? 'active' : ''}}" bindtap="onFilterChange" data-status="all">全部</view>
      <view class="filter-tab {{filterStatus === 'SIGNUP' ? 'active' : ''}}" bindtap="onFilterChange" data-status="SIGNUP">报名中</view>
      <view class="filter-tab {{filterStatus === 'PLAYING' ? 'active' : ''}}" bindtap="onFilterChange" data-status="PLAYING">进行中</view>
      <view class="filter-tab {{filterStatus === 'ENDED' ? 'active' : ''}}" bindtap="onFilterChange" data-status="ENDED">已结束</view>
    </view>
  </view>
 
  <!-- 赛事列表:新版水平卡片(左图右文,按钮靠右) -->
  <view class="activity-list">
    <view 
      class="activity-card-horizontal"
      wx:for="{{activities}}"
      wx:key="id"
    >
      <view class="activity-row">
        <view class="thumb-col">
          <image wx:if="{{item.coverImage && item.coverImage.fullUrl}}" class="thumb-image" src="{{item.coverImage.fullUrl}}" mode="aspectFill" />
          <view wx:else class="thumb-placeholder">{{item.nameText}}</view>
        </view>
        <view class="info-col">
          <view class="activity-title-lg">{{item.name}}</view>
          
          <view class="deadline">报名截止:{{filters.formatDateYYYYMMDD(item.signupDeadline)}}</view>
          <view class="registered">已报名:{{item.playerCount}}人</view>
          <view class="btn-row">
            <button class="ghost-btn" catchtap="onDetailTap" data-id="{{item.id}}">查看详情</button>
          </view>
        </view>
      </view>
    </view>
 
    <!-- 加载状态 -->
    <view class="loading-wrapper" wx:if="{{loading}}">
      <view class="loading"></view>
      <text class="loading-text">加载中...</text>
    </view>
 
    <!-- 没有更多数据 -->
    <view class="no-more" wx:if="{{!hasMore && activities.length > 0}}">
      <text class="no-more-text">没有更多数据了</text>
    </view>
 
    <!-- 空状态 -->
    <view class="empty-state" wx:if="{{!loading && activities.length === 0}}">
      <view class="empty-icon">📋</view>
      <view class="empty-text">暂无赛事信息</view>
      <view class="empty-desc">请稍后再试或联系管理员</view>
    </view>
  </view>
</view>