91 lines
5.7 KiB
Plaintext
91 lines
5.7 KiB
Plaintext
<view class="page">
|
|
<view class="state-card" wx:if="{{viewState === 'loading'}}">
|
|
<view class="loading-ring"></view><text>正在加载检录进度...</text>
|
|
</view>
|
|
|
|
<view class="state-card" wx:elif="{{viewState === 'forbidden'}}">
|
|
<text class="state-icon">🔒</text><text class="state-title">暂无查看权限</text><text class="state-desc">{{errorMessage}}</text>
|
|
</view>
|
|
|
|
<view class="state-card" wx:elif="{{viewState === 'error'}}">
|
|
<text class="state-icon">!</text><text class="state-title">加载失败</text><text class="state-desc">{{errorMessage}}</text>
|
|
<button class="retry-btn" bindtap="onRetry">重新加载</button>
|
|
</view>
|
|
|
|
<view class="state-card" wx:elif="{{viewState === 'empty'}}">
|
|
<text class="state-icon">○</text><text class="state-title">暂无检录安排</text><text class="state-desc">赛事尚未生成秩序册或当前没有与你相关的检录数据</text>
|
|
<button class="retry-btn retry-btn--plain" bindtap="onRetry">刷新</button>
|
|
</view>
|
|
|
|
<block wx:elif="{{viewState === 'content'}}">
|
|
<view class="event-header"><text class="event-name">{{progress.eventName}}</text></view>
|
|
|
|
<view class="prototype-section current-checkin-section">
|
|
<text class="prototype-title">当前检录项目</text>
|
|
<view class="current-checkin-card {{progress.currentCheckin && progress.currentCheckin.isAbnormal ? 'current-checkin-card--abnormal' : ''}}">
|
|
<text>{{progress.currentCheckin ? progress.currentCheckin.displayName : '暂无正在检录的项目'}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="prototype-section sequence-section">
|
|
<text class="prototype-title">赛事检录顺序</text>
|
|
<view class="timeline">
|
|
<view class="timeline-item timeline-item--{{item.statusClass}}" wx:for="{{progress.stages}}" wx:key="stageKey">
|
|
<view class="timeline-axis">
|
|
<view class="timeline-dot"><view class="timeline-dot-core" wx:if="{{item.stageStatus === 1}}"></view></view>
|
|
<view class="timeline-line"></view>
|
|
</view>
|
|
<view class="timeline-content">
|
|
<text class="timeline-name">{{item.displayName}}</text>
|
|
<view class="timeline-status-line">
|
|
<text class="timeline-status">{{item.stageStatusText}}</text>
|
|
<text class="timeline-progress" wx:if="{{item.totalUnits > 0}}">{{item.checkedUnits}}/{{item.totalUnits}}</text>
|
|
</view>
|
|
<text class="timeline-abnormal" wx:if="{{item.isAbnormal}}">数据状态异常,请联系赛事工作人员核实</text>
|
|
</view>
|
|
</view>
|
|
<view class="timeline-empty" wx:if="{{!progress.stages.length}}">暂无赛事检录顺序</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="prototype-divider"></view>
|
|
|
|
<view class="prototype-section competing-section">
|
|
<view class="competing-heading">
|
|
<text class="prototype-title">当前正在比赛</text>
|
|
<text class="registration-tag" wx:if="{{progress.currentCompetingDetail}}">{{progress.currentCompetingDetail.registrationTypeText}}</text>
|
|
</view>
|
|
<view class="competing-card" wx:if="{{progress.currentCompetingDetail}}">
|
|
<view class="competing-row"><text class="competing-label competing-label--wide">项目-组别:</text><text class="competing-value">{{progress.currentCompetingDetail.displayName}}</text></view>
|
|
<view class="competing-row"><text class="competing-label">单位:</text><text class="competing-value">{{progress.currentCompetingDetail.unitNameText}}</text></view>
|
|
<view class="competing-row"><text class="competing-label">队伍:</text><text class="competing-value">{{progress.currentCompetingDetail.teamNameText}}</text></view>
|
|
<view class="competing-row"><text class="competing-label competing-label--wide">运动员:</text><text class="competing-value">{{progress.currentCompetingDetail.athleteNamesText}}</text></view>
|
|
</view>
|
|
<view class="competing-empty" wx:else>暂无正在比赛的项目</view>
|
|
</view>
|
|
|
|
<view class="mine-detail-section" wx:if="{{progress.mine.length}}">
|
|
<view class="detail-heading"><text class="detail-heading-title">我的检录明细</text><text class="detail-heading-count">{{progress.mine.length}} 项</text></view>
|
|
<view class="mine-card mine-card--{{item.statusClass}}" wx:for="{{progress.mine}}" wx:key="unitKey">
|
|
<view class="mine-head">
|
|
<view class="mine-title-wrap"><text class="mine-title">{{item.displayName}}</text><text class="athletes">{{item.athleteNamesText}}</text></view>
|
|
<text class="status-tag status-tag--{{item.statusClass}}">{{item.checkinStatusText}}</text>
|
|
</view>
|
|
<view class="mine-info"><text>场地:{{item.venueName || '—'}}</text><text>场次:{{item.sessionIndex || '—'}}</text></view>
|
|
<view class="notice {{item.isAbnormal ? 'notice--abnormal' : ''}}">{{item.notice || '请留意赛事检录通知'}}</view>
|
|
<view class="round-list">
|
|
<view class="round round--{{round.statusClass}}" wx:for="{{item.rounds}}" wx:for-item="round" wx:key="checkinNo">
|
|
<view class="round-marker">{{round.passed ? '✓' : round.checkinNo}}</view>
|
|
<view class="round-main">
|
|
<view class="round-head"><text class="round-name">{{round.checkinName}}</text><text class="round-state">{{round.passed ? '已完成' : '待完成'}}</text></view>
|
|
<text class="round-detail">完成时间:{{round.checkedTimeText}}</text>
|
|
<text class="round-detail">检录员:{{round.checkerNameText}}</text>
|
|
</view>
|
|
</view>
|
|
<view class="round-empty" wx:if="{{!item.rounds.length}}">暂无检录节点</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</view>
|