From 308d3b3b7883a92a761dfaf4f607a9f4658213cf Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期四, 06 十一月 2025 09:58:25 +0800
Subject: [PATCH] 修改页面
---
wx/pages/activity/detail.wxml | 161 ++++++++++++++++++-----------------------------------
1 files changed, 56 insertions(+), 105 deletions(-)
diff --git a/wx/pages/activity/detail.wxml b/wx/pages/activity/detail.wxml
index be9286c..d155420 100644
--- a/wx/pages/activity/detail.wxml
+++ b/wx/pages/activity/detail.wxml
@@ -1,119 +1,70 @@
-<!--pages/activity/detail.wxml-->
-<view class="container" wx:if="{{!loading && activity}}">
- <!-- 澶撮儴濯掍綋鍖哄煙 -->
- <view class="media-section">
- <swiper
- class="media-swiper"
- indicator-dots="{{mediaFiles.length > 1}}"
- autoplay="{{false}}"
- duration="{{500}}"
- >
- <swiper-item
- wx:for="{{mediaFiles}}"
- wx:key="url"
- bindtap="onMediaTap"
- data-index="{{index}}"
- >
- <image
- wx:if="{{item.type === 'image'}}"
- class="media-image"
- src="{{item.url}}"
- mode="aspectFill"
- />
- <view wx:if="{{item.type === 'video'}}" class="video-wrapper">
- <image class="video-poster" src="{{item.url}}" mode="aspectFill" />
- <view class="video-play-btn">鈻�</view>
- </view>
+<wxs src="./detail.wxs" module="filters" />
+
+<view class="container">
+ <view wx:if="{{loading}}" class="loading-wrapper">
+ <view class="loading"></view>
+ <text>鍔犺浇涓�...</text>
+ </view>
+
+ <view wx:elif="{{error}}" class="error-wrapper">
+ <text>{{error}}</text>
+ </view>
+
+ <block wx:else>
+ <!-- 椤堕儴 Banner -->
+ <swiper class="banner-swiper" indicator-dots="{{true}}" autoplay="{{true}}">
+ <swiper-item wx:if="{{activity.coverImage}}">
+ <image class="banner-image" src="{{activity.coverImage.fullUrl}}" mode="aspectFill" />
+ </swiper-item>
+ <swiper-item wx:for="{{activity.images}}" wx:key="index">
+ <image class="banner-image" src="{{item.fullUrl}}" mode="aspectFill" />
</swiper-item>
</swiper>
-
- <!-- 鐘舵�佹爣绛� -->
- <view class="status-badge {{getStatusClass(activity.state)}}">
- {{getStatusText(activity.state)}}
- </view>
- </view>
- <!-- 鍩烘湰淇℃伅 -->
- <view class="info-section card">
- <view class="card-body">
- <view class="activity-title">{{activity.name}}</view>
- <view class="activity-desc">{{activity.description}}</view>
-
- <!-- 鏃堕棿淇℃伅 -->
- <view class="time-info">
- <view class="time-item">
- <view class="time-label">娲诲姩鏃堕棿</view>
- <view class="time-value">{{activity.formattedMatchTime || '寰呭畾'}}</view>
- </view>
- <view class="time-item">
- <view class="time-label">鎶ュ悕鎴</view>
- <view class="time-value">{{activity.formattedSignupDeadline || '寰呭畾'}}</view>
+ <view class="content-wrapper">
+ <!-- 姣旇禌淇℃伅 -->
+ <view class="section-card">
+ <view class="section-title main-title">{{activity.name}}</view>
+ <view class="info-grid">
+ <view class="info-row">
+ <text class="info-label">鎶ュ悕鎴鏃堕棿</text>
+ <text class="info-value">{{filters.formatDateTime(activity.signupDeadline)}}</text>
+ </view>
+ <view class="info-row">
+ <text class="info-label">姣旇禌寮�濮嬫椂闂�</text>
+ <text class="info-value">{{filters.formatDateTime(activity.matchTime)}}</text>
+ </view>
</view>
</view>
- <!-- 鍦扮偣淇℃伅 -->
- <view class="location-info" wx:if="{{activity.address}}">
- <view class="location-label">馃搷 娲诲姩鍦扮偣</view>
- <view class="location-value">
- <text class="address">{{activity.address}}</text>
+ <!-- 姣旇禌闃舵 -->
+ <view class="section-card" wx:if="{{activity.stages && activity.stages.length > 0}}">
+ <view class="section-title">姣旇禌闃舵</view>
+ <view class="timeline">
+ <view class="timeline-item" wx:for="{{activity.stages}}" wx:key="id">
+ <view class="timeline-icon">
+ <view class="icon-calendar-bg"></view>
+ </view>
+ <view class="timeline-content">
+ <view class="stage-name">{{item.name}}</view>
+ <view class="stage-date">{{filters.formatDate(item.matchTime)}}</view>
+ </view>
+ </view>
</view>
</view>
- <!-- 鎶ュ悕杩涘害 -->
- <view class="registration-progress" wx:if="{{activity.playerMax > 0}}">
- <view class="progress-header">
- <view class="progress-label">鎶ュ悕杩涘害</view>
- <view class="progress-count">{{currentParticipants}}/{{activity.playerMax}}</view>
+ <!-- 姣旇禌浠嬬粛 -->
+ <view class="section-card" wx:if="{{activity.description}}">
+ <view class="section-title">姣旇禌浠嬬粛</view>
+ <view class="description-content">
+ <text>{{activity.description}}</text>
</view>
- <view class="progress-bar">
- <view
- class="progress-fill"
- style="width: {{getRegistrationProgress()}}%"
- ></view>
- </view>
- <view class="progress-percent">{{getRegistrationProgress()}}%</view>
- </view>
-
- </view>
- </view>
-
-
-
- <!-- 搴曢儴鎿嶄綔鏍� -->
- <view class="bottom-actions">
- <view class="action-left">
- <view class="share-btn" bindtap="onShareTap">
- <text class="share-icon">馃摛</text>
- <text class="share-text">鍒嗕韩</text>
</view>
</view>
- <view class="action-right">
- <!-- 缁熶竴鐨勬姤鍚嶆寜閽� -->
- <view
- class="register-btn btn {{registerButtonDisabled ? 'btn-disabled' : (canRegisterStatus ? 'btn-primary' : 'btn-secondary')}}"
- bindtap="onRegisterTap"
- >
- {{registerButtonText}}
- </view>
+
+ <!-- 搴曢儴鎿嶄綔鏍� -->
+ <view class="footer-actions">
+ <button class="register-btn" bindtap="handleRegister" disabled="{{buttonDisabled}}">{{buttonText}}</button>
</view>
- </view>
-</view>
-
-<!-- 鍔犺浇鐘舵�� -->
-<view class="loading-wrapper" wx:if="{{loading}}">
- <view class="loading"></view>
- <text class="loading-text">鍔犺浇涓�...</text>
-</view>
-
-<!-- 瑙嗛棰勮寮圭獥 -->
-<view class="media-preview-modal" wx:if="{{showMediaPreview}}" bindtap="closeMediaPreview">
- <view class="modal-content" catchtap="">
- <video
- class="preview-video"
- src="{{mediaFiles[currentMediaIndex].url}}"
- controls="{{true}}"
- autoplay="{{true}}"
- ></video>
- <view class="close-btn" bindtap="closeMediaPreview">鉁�</view>
- </view>
+ </block>
</view>
\ No newline at end of file
--
Gitblit v1.8.0