92 lines
3.4 KiB
Plaintext
92 lines
3.4 KiB
Plaintext
<view class="page">
|
||
<view class="bg-orb orb1"></view>
|
||
<view class="bg-orb orb2"></view>
|
||
|
||
<view class="hero">
|
||
<view class="badge">
|
||
<view class="badge-inner">🏆</view>
|
||
</view>
|
||
<view class="hero-copy">
|
||
<text class="headline">复习结果</text>
|
||
<text class="subtitle">本次复习已完成</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view wx:if="{{error}}" class="empty-state">
|
||
<text class="empty-title">{{error}}</text>
|
||
<text class="empty-subtitle">可重新进入结果页,或再完成一次复习会话</text>
|
||
</view>
|
||
|
||
<view wx:elif="{{!total}}" class="empty-state">
|
||
<text class="empty-title">暂无复习结果</text>
|
||
<text class="empty-subtitle">请先完成一次复习会话</text>
|
||
</view>
|
||
|
||
<view wx:else class="grid">
|
||
<view class="hero-card">
|
||
<view class="hero-card-head">
|
||
<view>
|
||
<text class="metric-label">正确率</text>
|
||
<view class="metric-row">
|
||
<text class="metric-big">{{accuracy}}</text>
|
||
<text class="metric-unit">%</text>
|
||
</view>
|
||
</view>
|
||
<view class="ring">✓</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="mini-card">
|
||
<view class="mini-head"><text class="mini-ico">⏱</text><text class="mini-label">耗时</text></view>
|
||
<text class="mini-value">{{timeUsed}}</text>
|
||
</view>
|
||
|
||
<view class="mini-card">
|
||
<view class="mini-head"><text class="mini-ico">📚</text><text class="mini-label">总题数</text></view>
|
||
<text class="mini-value">{{total}}</text>
|
||
</view>
|
||
|
||
<view class="breakdown">
|
||
<view class="break-item">
|
||
<text class="break-num cyan">{{mastered}}</text>
|
||
<text class="break-label">已掌握</text>
|
||
</view>
|
||
<view class="break-item">
|
||
<text class="break-num pink">{{reviewNeeded}}</text>
|
||
<text class="break-label">需加强</text>
|
||
</view>
|
||
<view class="break-item">
|
||
<text class="break-num green">{{improved}}</text>
|
||
<text class="break-label">进步题目</text>
|
||
</view>
|
||
<view class="break-item">
|
||
<text class="break-num amber">{{regressed}}</text>
|
||
<text class="break-label">退步题目</text>
|
||
</view>
|
||
</view>
|
||
|
||
<view wx:if="{{clozeResults.length}}" class="cloze-panel">
|
||
<text class="panel-title">填空逐空反馈</text>
|
||
<view wx:for="{{clozeResults}}" wx:for-item="item" wx:for-index="itemIndex" wx:key="record_id" class="cloze-result-card">
|
||
<view class="cloze-result-head">
|
||
<text class="cloze-result-index">题目 {{itemIndex + 1}}</text>
|
||
<text class="cloze-result-status {{item.is_correct ? 'ok' : 'bad'}}">{{item.is_correct ? '正确' : '错误'}}</text>
|
||
</view>
|
||
<view wx:if="{{item.prompt_text}}" class="cloze-result-prompt">{{item.prompt_text}}</view>
|
||
<view class="cloze-result-body">
|
||
<view wx:for="{{item.blanks}}" wx:for-item="blank" wx:for-index="blankIndex" wx:key="index" class="cloze-blank-line">
|
||
<text class="cloze-result-answer">空 {{blankIndex + 1}}:{{blank.user_answer || '(空)'}}</text>
|
||
<text class="cloze-result-answer">答案:{{blank.correct_answers.join(' / ') || '—'}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
|
||
<view class="actions">
|
||
<button class="primary-btn" bindtap="restart">再来一组</button>
|
||
<button class="secondary-btn" bindtap="goHome">返回首页</button>
|
||
</view>
|
||
</view>
|