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.wxml | 174 +++++++++++++++++++++++----------------------------------
1 files changed, 71 insertions(+), 103 deletions(-)
diff --git a/wx/pages/index/index.wxml b/wx/pages/index/index.wxml
index 5458348..7c9996f 100644
--- a/wx/pages/index/index.wxml
+++ b/wx/pages/index/index.wxml
@@ -1,5 +1,16 @@
-<!--pages/index/index.wxml-->
+<wxs src="./filters.wxs" module="filters" />
<view class="container">
+ <!-- 椤甸潰澶撮儴鍒嗕韩鍖哄煙 -->
+ <view class="header-section">
+ <view class="page-title">鎴愭笣寰风湁璧勫垱涓氬ぇ璧�</view>
+ <view class="share-section">
+ <!-- <button class="share-btn" open-type="share">
+ <text class="share-icon">馃摛</text>
+ <text class="share-text">鍒嗕韩</text>
+ </button> -->
+ </view>
+ </view>
+
<!-- 鎼滅储鏍� - 鏆傛椂闅愯棌 -->
<view class="search-bar" style="display: none;">
<view class="search-input-wrapper">
@@ -50,8 +61,9 @@
<view wx:else class="banner-placeholder">
<text class="placeholder-text">{{item.title}}</text>
</view>
-
- <view class="banner-overlay">
+
+ <!-- 瑕嗙洊灞傞殣钘� -->
+ <view class="banner-overlay" style="display: none;">
<view class="banner-title">{{item.title}}</view>
<view class="banner-desc">{{item.content}}</view>
</view>
@@ -59,117 +71,73 @@
</swiper>
</view>
- <!-- 绛涢�夋爮 -->
- <view class="filter-bar">
- <view class="filter-tabs">
- <view
- class="filter-tab {{filterStatus === 'all' ? 'active' : ''}}"
- bindtap="onFilterChange"
- data-status="all"
- >
- 鍏ㄩ儴
+ <!-- 鏂伴椈妯″潡 -->
+ <view class="section-title">鏂伴椈璧勮</view>
+ <view class="news-section">
+ <view
+ class="news-card"
+ wx:for="{{latestNews}}"
+ wx:key="id"
+ bindtap="goToNewsDetail"
+ data-id="{{item.id}}"
+ >
+ <view class="news-content">
+ <view class="news-title">{{item.title}}</view>
+ <view wx:if="{{item.summary}}" class="news-summary">{{item.summary}}</view>
+ <view class="news-meta">
+ <text wx:if="{{item.author}}" class="author">{{item.author}}</text>
+ <text wx:if="{{item.author && item.createTime}}" class="separator">|</text>
+ <text class="time">{{item.createTime}}</text>
+ </view>
</view>
- <view
- class="filter-tab {{filterStatus === 'SIGNUP' ? 'active' : ''}}"
- bindtap="onFilterChange"
- data-status="SIGNUP"
- >
- 鎶ュ悕涓�
+ <view wx:if="{{item.coverImage}}" class="news-thumb">
+ <image class="thumb-image" src="{{item.coverImage}}" mode="aspectFill" />
</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 class="view-more" bindtap="goToNewsList">
+ <text class="view-more-text">鏌ョ湅鏇村</text>
+ <text class="arrow">鈥�</text>
</view>
</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 card"
- wx:for="{{activities}}"
+ class="activity-card-horizontal"
+ wx:for="{{activities}}"
wx:key="id"
- bindtap="onActivityTap"
- data-index="{{index}}"
>
- <!-- 璧涗簨灏侀潰 -->
- <view class="activity-cover">
- <image wx:if="{{item.coverImage && item.coverImage.fullUrl}}" class="cover-image" src="{{item.coverImage.fullUrl}}" mode="aspectFill" />
- <view wx:else class="cover-placeholder">
- <text class="cover-placeholder-text">{{item.nameText}}</text>
+ <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="status-badge {{getStatusClass(item.state)}}">
- {{item.stateName}}
- </view>
- </view>
-
- <!-- 璧涗簨淇℃伅 -->
- <view class="activity-info">
- <view class="activity-title">{{item.name}}</view>
- <view class="activity-desc">{{item.description}}</view>
-
- <!-- 鏃堕棿淇℃伅 -->
- <view class="time-info">
- <view class="time-item">
- <text class="time-label">娲诲姩鏃堕棿锛�</text>
- <text class="time-value">{{formatDate(item.matchTime)}}</text>
+ <view class="info-col">
+ <view class="activity-title-lg">{{item.name}}</view>
+
+ <view class="deadline">鎶ュ悕鎴锛歿{filters.formatDateYYYYMMDD(item.signupDeadline)}}</view>
+ <!-- 闅愯棌鎶ュ悕浜烘暟鏄剧ず -->
+ <view class="registered" wx:if="{{false}}">宸叉姤鍚嶏細{{item.playerCount}}浜�</view>
+ <view class="btn-row">
+ <button class="ghost-btn" catchtap="onActivityDetailTap" data-idx="{{index}}" data-id="{{item.id}}" data-xid="{{item.name}}" >鎶ュ悕</button>
+ <!-- <button class="share-activity-btn" catchtap="onShareActivity" data-idx="{{index}}" data-id="{{item.id}}" data-name="{{item.name}}">
+ <text class="share-icon-small">馃摛</text>
+ </button> -->
</view>
- <view class="time-item" wx:if="{{item.signupDeadline}}">
- <text class="time-label">鎶ュ悕鎴锛�</text>
- <text class="time-value">{{formatDate(item.signupDeadline)}}</text>
- </view>
- </view>
-
- <!-- 鍦扮偣淇℃伅 -->
- <view class="location-info" wx:if="{{item.address}}">
- <text class="location-icon">馃搷</text>
- <text class="location-text">{{item.address}}</text>
- </view>
-
- <!-- 鎶ュ悕杩涘害鍜屾搷浣滄寜閽� -->
- <view class="bottom-info">
- <view class="registration-info" wx:if="{{item.playerMax > 0}}">
- <view class="progress-row">
- <text class="progress-text">鎶ュ悕浜烘暟锛歿{item.playerCount}}/{{item.playerMax}}</text>
- <view class="activity-actions">
- <view class="action-btn btn btn-primary" wx:if="{{canRegister(item)}}">
- 绔嬪嵆鎶ュ悕
- </view>
- <view class="action-btn btn btn-secondary" wx:else>
- 鏌ョ湅璇︽儏
- </view>
- </view>
- </view>
- <view class="progress-bar">
- <view
- class="progress-fill"
- style="width: {{getRegistrationProgress(item.playerCount, item.playerMax)}}%"
- ></view>
- </view>
- </view>
- <view class="activity-actions" wx:else>
- <view class="action-btn btn btn-primary" wx:if="{{canRegister(item)}}">
- 绔嬪嵆鎶ュ悕
- </view>
- <view class="action-btn btn btn-secondary" wx:else>
- 鏌ョ湅璇︽儏
- </view>
- </view>
- </view>
-
- <!-- 鏍囩 -->
- <view class="tags" wx:if="{{item.tags && item.tags.length > 0}}">
- <text class="tag" wx:for="{{item.tags}}" wx:key="*this">{{item}}</text>
</view>
</view>
</view>
--
Gitblit v1.8.0