Files
geminiWX/wechat-mini-program/pages/course/course.wxml
2025-12-08 14:39:07 +08:00

73 lines
3.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<view class="page-container">
<block wx:if="{{user.phone}}">
<!-- 头部荣誉区域 -->
<view class="honor-section" wx:if="{{honors.length > 0}}">
<view class="section-header">
<text class="section-title">我的荣誉</text>
<text class="honor-count">共 {{honors.length}} 项</text>
</view>
<view class="honor-list">
<view class="honor-item" wx:for="{{honors}}" wx:key="id" bindtap="showHonorDetail" data-item="{{item}}">
<image class="honor-image" src="{{item.image}}" mode="aspectFill"></image>
<view class="honor-info">
<text class="honor-title">{{item.title}}</text>
<text class="honor-date">{{item.date}}</text>
</view>
</view>
</view>
</view>
<!-- 课程赛事列表 -->
<view class="course-section">
<view class="section-header">
<text class="section-title">我的项目&活动</text>
</view>
<view class="filter-tabs">
<view class="tab-item {{currentFilter === 'all' ? 'active' : ''}}" bindtap="setFilter" data-type="all">全部</view>
<view class="tab-item {{currentFilter === 'enrolled' ? 'active' : ''}}" bindtap="setFilter" data-type="enrolled">进行中</view>
<view class="tab-item {{currentFilter === 'completed' ? 'active' : ''}}" bindtap="setFilter" data-type="completed">已完成</view>
</view>
<view class="project-list" wx:if="{{filteredProjects.length > 0}}">
<view class="project-card" wx:for="{{filteredProjects}}" wx:key="id">
<image class="project-image" src="{{item.project_image}}" mode="aspectFill"></image>
<view class="project-info">
<view class="project-header">
<text class="project-title">{{item.project_title}}</text>
<text class="project-type-tag {{item.project_type}}">{{item.project_type_display}}</text>
</view>
<view class="project-meta">
<text class="status-text {{item.status}}">{{item.status_display}}</text>
<text class="date-text">报名时间: {{item.enrolled_at_formatted}}</text>
</view>
</view>
</view>
</view>
<view class="empty-state" wx:else>
<text class="empty-text">暂无相关记录</text>
</view>
</view>
</block>
<view class="empty-state-global" wx:else style="display: flex; flex-direction: column; align-items: center; justify-content: center; padding-top: 200rpx;">
<image src="/assets/empty-honor.png" mode="aspectFit" style="width: 200rpx; height: 200rpx; margin-bottom: 20rpx; filter: grayscale(100%); opacity: 0.5;"></image>
<text style="color: #999; font-size: 28rpx;">暂无数据,请先完善个人信息</text>
</view>
<!-- 荣誉详情弹窗 -->
<view class="modal-mask" wx:if="{{showHonorModal}}" bindtap="closeHonorModal">
<view class="modal-content" catchtap="preventBubble">
<image class="modal-image" src="{{currentHonor.image}}" mode="widthFix"></image>
<view class="modal-info">
<text class="modal-title">{{currentHonor.title}}</text>
<text class="modal-date">获得时间:{{currentHonor.date}}</text>
<text class="modal-desc" wx:if="{{currentHonor.description}}">{{currentHonor.description}}</text>
</view>
<view class="modal-close" bindtap="closeHonorModal">×</view>
</view>
</view>
</view>