83 lines
4.3 KiB
Plaintext
83 lines
4.3 KiB
Plaintext
<view class="score-page">
|
||
<view class="hero">
|
||
<view class="hero-orb hero-orb--one"></view>
|
||
<view class="hero-orb hero-orb--two"></view>
|
||
<text class="hero-title">成绩查询</text>
|
||
<text class="hero-subtitle">选择赛事,输入姓名或参赛编号查询</text>
|
||
</view>
|
||
|
||
<view class="search-card">
|
||
<text class="field-label">赛事</text>
|
||
<picker mode="selector" range="{{eventNames}}" value="{{eventIndex}}" bindchange="onEventChange">
|
||
<view class="picker-value">
|
||
<text class="picker-text">{{eventNames[eventIndex] || '暂无可查询赛事'}}</text>
|
||
<view class="picker-arrow"></view>
|
||
</view>
|
||
</picker>
|
||
<view class="filter-row">
|
||
<picker class="filter-picker" mode="selector" range="{{projectNames}}" value="{{projectIndex}}" bindchange="onProjectChange">
|
||
<view class="picker-value"><text class="picker-text">{{projectNames[projectIndex]}}</text><view class="picker-arrow"></view></view>
|
||
</picker>
|
||
<picker class="filter-picker" mode="selector" range="{{groupNames}}" value="{{groupIndex}}" bindchange="onGroupChange">
|
||
<view class="picker-value"><text class="picker-text">{{groupNames[groupIndex]}}</text><view class="picker-arrow"></view></view>
|
||
</picker>
|
||
</view>
|
||
<text class="field-label field-label--keyword">参赛人</text>
|
||
<view class="keyword-box">
|
||
<text class="search-symbol">⌕</text>
|
||
<input class="keyword-input" value="{{keyword}}" placeholder="姓名 / 参赛编号" placeholder-class="placeholder" confirm-type="search" bindinput="onKeywordInput" bindconfirm="onSearch" />
|
||
<text wx:if="{{keyword}}" class="clear-btn" bindtap="onClearKeyword">×</text>
|
||
</view>
|
||
<button class="search-btn" loading="{{loading}}" disabled="{{loading || !selectedEventId || !projects.length || !groupNames.length}}" bindtap="onSearch">查询成绩</button>
|
||
</view>
|
||
|
||
<view class="result-header" wx:if="{{searched && !loading}}">
|
||
<text class="result-title">查询结果</text>
|
||
<text class="result-count">共 {{rows.length}} 条</text>
|
||
</view>
|
||
|
||
<view class="skeleton-card" wx:if="{{loading}}" >
|
||
<view class="skeleton-line skeleton-line--short"></view>
|
||
<view class="skeleton-line"></view>
|
||
<view class="skeleton-line skeleton-line--middle"></view>
|
||
</view>
|
||
|
||
<view class="empty" wx:elif="{{searched && rows.length === 0}}">
|
||
<view class="empty-icon">分</view>
|
||
<text class="empty-title">未查询到成绩</text>
|
||
<text class="empty-desc">请核对赛事、姓名或参赛编号后重试</text>
|
||
</view>
|
||
|
||
<view class="result-card" wx:for="{{rows}}" wx:key="id">
|
||
<view class="result-top">
|
||
<view class="athlete-info">
|
||
<view class="rank-badge">{{item.rank}}</view>
|
||
<view class="athlete-text">
|
||
<view><text class="athlete-name">{{item.athleteName}}</text><text class="athlete-no">{{item.athleteNo}}</text></view>
|
||
<text class="event-name">{{item.eventName}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="score-main">
|
||
<text class="score-num">{{item.totalScore}}</text>
|
||
<text class="score-unit">总分</text>
|
||
</view>
|
||
</view>
|
||
<view class="meta-grid">
|
||
<view class="meta-item"><text class="meta-label">比赛项目</text><text class="meta-value">{{item.category}}</text></view>
|
||
<view class="meta-item"><text class="meta-label">参赛组别</text><text class="meta-value">{{item.groupName}}</text></view>
|
||
<view class="meta-item"><text class="meta-label">比赛轮次</text><text class="meta-value">{{item.roundName}}</text></view>
|
||
<view class="meta-item"><text class="meta-label">成绩状态</text><text class="meta-value meta-value--success">{{item.status}}</text></view>
|
||
</view>
|
||
<view wx:if="{{expandedId === item.id}}" class="score-breakdown">
|
||
<view class="breakdown-item" wx:for="{{item.judgeScores}}" wx:key="label">
|
||
<text class="breakdown-label">{{item.label}}</text><text class="breakdown-score">{{item.score}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="detail-toggle" data-id="{{item.id}}" bindtap="onToggleDetail">
|
||
<text>{{expandedId === item.id ? '收起评分明细' : '查看评分明细'}}</text>
|
||
<view class="toggle-arrow {{expandedId === item.id ? 'open' : ''}}"></view>
|
||
</view>
|
||
</view>
|
||
<view class="safe-space"></view>
|
||
</view>
|