From bec58fa7fe4fae2deac88200d8d939e12ec8a08f Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期五, 03 十月 2025 22:26:39 +0800 Subject: [PATCH] 修复小程序WXS日期显示问题并重新设计【我的】页面 --- wx/pages/profile/profile.wxml | 206 ++++++++++---------------------------------------- 1 files changed, 43 insertions(+), 163 deletions(-) diff --git a/wx/pages/profile/profile.wxml b/wx/pages/profile/profile.wxml index fee46b7..f3574a8 100644 --- a/wx/pages/profile/profile.wxml +++ b/wx/pages/profile/profile.wxml @@ -8,186 +8,66 @@ <!-- 涓汉淇℃伅鍖哄煙 --> <view wx:else class="profile-content"> - <!-- 鐢ㄦ埛淇℃伅鍗$墖 --> - <view class="user-card"> - <view class="user-info"> + <!-- 鐢ㄦ埛淇℃伅鍖哄煙 --> + <view class="user-section"> + <view class="user-avatar-wrapper"> <image wx:if="{{userInfo.avatar}}" - class="avatar" + class="user-avatar" src="{{userInfo.avatar}}" mode="aspectFill" /> - <view wx:else class="avatar-placeholder"> + <view wx:else class="user-avatar-placeholder"> <text class="avatar-text">{{avatarText}}</text> </view> - <view class="user-details"> - <text class="username">{{userInfo.name || '鏈缃鍚�'}}</text> - <text class="user-desc">{{userInfo.school || '鏈缃鏍�'}} | {{userInfo.major || '鏈缃笓涓�'}}</text> - <view class="user-roles"> - <text wx:for="{{userRoles}}" wx:key="*this" class="role-tag"> - {{item === 'JUDGE' ? '璇勫' : item === 'ORGANIZER' ? '涓诲姙鏂�' : '鍙傝禌鑰�'}} - </text> - </view> - </view> </view> - <view class="edit-btn" bindtap="onEditProfile"> - <text class="icon ic-edit"></text> - <text class="edit-text">缂栬緫</text> - </view> + <text class="user-name">{{userInfo.name || 'Ethan'}}</text> + <text class="user-role">{{userRoles.includes('JUDGE') ? '璇勫' : userRoles.includes('ORGANIZER') ? '涓诲姙鏂�' : '鍙傝禌鑰�'}}</text> </view> - <!-- 缁熻鏁版嵁 --> - <view class="stats-section"> - <view class="stats-grid"> - <view class="stat-item"> - <text class="stat-number">{{stats.totalRegistrations}}</text> - <text class="stat-label">鎬绘姤鍚�</text> + <!-- 鎴戠殑椤圭洰鍖哄煙 --> + <view class="projects-section"> + <text class="section-title">鎴戠殑椤圭洰</text> + <view class="project-list"> + <view class="project-card project-a" bindtap="onMenuItemTap" data-path="/pages/profile/registrations"> + <view class="project-icon"> + <text class="icon-plant">馃尡</text> + </view> + <view class="project-info"> + <text class="project-name">鎴戠殑鎶ュ悕</text> + <text class="project-desc">鏌ョ湅鎶ュ悕璁板綍</text> + </view> + <text class="project-arrow">></text> </view> - <view class="stat-item"> - <text class="stat-number">{{stats.ongoingActivities}}</text> - <text class="stat-label">杩涜涓�</text> - </view> - <view class="stat-item"> - <text class="stat-number">{{stats.completedActivities}}</text> - <text class="stat-label">宸插畬鎴�</text> - </view> - <view class="stat-item"> - <text class="stat-number">{{stats.awards}}</text> - <text class="stat-label">鑾峰鏁�</text> + <view class="project-card project-b" bindtap="onMenuItemTap" data-path="/pages/profile/achievements"> + <view class="project-icon"> + <text class="icon-trophy">馃弳</text> + </view> + <view class="project-info"> + <text class="project-name">鎴戠殑鎴愮哗</text> + <text class="project-desc">鏌ョ湅娲诲姩鎴愮哗</text> + </view> + <text class="project-arrow">></text> </view> </view> </view> - <!-- 璇勫涓撳尯 --> - <view wx:if="{{isJudge}}" class="role-section"> - <view class="section-header"> - <text class="section-title">璇勫涓撳尯</text> - <view class="judge-stats"> - <text class="pending-count">寰呰瘎瀹�: {{judgeStats.pendingReviews}}</text> - </view> + <!-- 鍏朵粬鍔熻兘鑿滃崟 --> + <view class="other-menu-section"> + <view class="menu-item-simple" bindtap="onMenuItemTap" data-path="/pages/profile/favorites"> + <text class="menu-icon">猸�</text> + <text class="menu-title">鎴戠殑鏀惰棌</text> + <text class="menu-arrow">></text> </view> - <view class="menu-grid"> - <view - wx:for="{{judgeMenuItems}}" - wx:key="path" - class="menu-item" - data-path="{{item.path}}" - bindtap="onMenuItemTap" - > - <view class="menu-icon-wrapper"> - <text class="icon {{item.iconName}}"></text> - <view wx:if="{{item.badge > 0}}" class="badge">{{item.badge}}</view> - </view> - <text class="menu-title">{{item.title}}</text> - <text class="menu-desc">{{item.desc}}</text> - </view> + <view class="menu-item-simple" bindtap="onMenuItemTap" data-path="/pages/profile/settings"> + <text class="menu-icon">鈿欙笍</text> + <text class="menu-title">璁剧疆</text> + <text class="menu-arrow">></text> </view> - </view> - - <!-- 涓诲姙鏂逛笓鍖� --> - <view wx:if="{{isOrganizer}}" class="role-section"> - <view class="section-header"> - <text class="section-title">涓诲姙鏂逛笓鍖�</text> - <view class="organizer-stats"> - <text class="active-count">娲昏穬娲诲姩: {{organizerStats.activeActivities}}</text> - </view> - </view> - <view class="menu-grid"> - <view - wx:for="{{organizerMenuItems}}" - wx:key="path" - class="menu-item" - data-path="{{item.path}}" - bindtap="onMenuItemTap" - > - <view class="menu-icon-wrapper"> - <text class="icon {{item.iconName}}"></text> - </view> - <text class="menu-title">{{item.title}}</text> - <text class="menu-desc">{{item.desc}}</text> - </view> - </view> - </view> - - <!-- 鍔熻兘鑿滃崟 --> - <view class="menu-section"> - <view class="section-title">鍔熻兘鑿滃崟</view> - <view class="menu-list"> - <view - wx:for="{{menuItems}}" - wx:key="path" - class="menu-item-row" - data-path="{{item.path}}" - bindtap="onMenuItemTap" - > - <view class="menu-left"> - <text class="icon {{item.iconName}}"></text> - <view class="menu-text"> - <text class="menu-title">{{item.title}}</text> - <text class="menu-desc">{{item.desc}}</text> - </view> - </view> - <text class="icon ic-arrow-right"></text> - </view> - </view> - </view> - - <!-- 鏈�杩戞姤鍚� --> - <view class="recent-section"> - <view class="section-header"> - <text class="section-title">鏈�杩戞姤鍚�</text> - <text class="view-more" bindtap="onViewMoreRegistrations">鏌ョ湅鏇村</text> - </view> - - <view wx:if="{{registrationLoading}}" class="loading-wrapper small"> - <view class="loading small"></view> - <text class="loading-text">鍔犺浇涓�...</text> - </view> - - <view wx:elif="{{registrations.length === 0}}" class="empty-state"> - <text class="empty-icon">馃摑</text> - <text class="empty-text">鏆傛棤鎶ュ悕璁板綍</text> - </view> - - <view wx:else class="registration-list"> - <view - wx:for="{{registrations}}" - wx:key="id" - class="registration-item" - data-id="{{item.id}}" - bindtap="onRegistrationTap" - > - <image - wx:if="{{item.activity.coverImage && item.activity.coverImage.fullUrl}}" - class="activity-cover" - src="{{item.activity.coverImage.fullUrl}}" - mode="aspectFill" - /> - <view wx:else class="activity-cover-placeholder"> - <text class="activity-cover-text">{{item.activity.titleText}}</text> - </view> - <view class="registration-info"> - <text class="activity-title">{{item.activity.title}}</text> - <text class="registration-time">鎶ュ悕鏃堕棿: {{formatDate(item.registrationTime)}}</text> - <text class="activity-time">娲诲姩鏃堕棿: {{formatDate(item.activity.startTime)}}</text> - <view class="status-row"> - <text class="registration-status {{getStatusClass(item.status)}}"> - {{getStatusText(item.status)}} - </text> - <text class="activity-status"> - {{getActivityStatusText(item.activity.status)}} - </text> - </view> - </view> - <text class="item-arrow">></text> - </view> - </view> - </view> - - <!-- 閫�鍑虹櫥褰� --> - <view class="logout-section"> - <view class="logout-btn" bindtap="onLogout"> - <text class="logout-text">閫�鍑虹櫥褰�</text> + <view class="menu-item-simple" bindtap="onLogout"> + <text class="menu-icon">馃毆</text> + <text class="menu-title">閫�鍑虹櫥褰�</text> + <text class="menu-arrow">></text> </view> </view> </view> -- Gitblit v1.8.0