Files
miniprogram-1/miniprogram/pages/assessment/assessment.wxml
2025-10-10 17:27:11 +08:00

86 lines
3.7 KiB
Plaintext

<!-- assessment.wxml - 评估页面 -->
<view class="assessment-container">
<!-- 顶部图片区域 -->
<view class="image-section">
<image class="assessment-image" src="{{imagePath}}" mode="widthFix" />
</view>
<!-- 中间例句区域 -->
<view class="sentence-section">
<view class="sentence-container">
<!-- 左箭头 -->
<view class="arrow-btn left {{currentIndex <= 0 ? 'disabled' : ''}}" bindtap="prevSentence">
<t-icon name="chevron-left" size="48rpx" />
</view>
<!-- 例句内容 -->
<view class="sentence-content">
<text class="sentence-text">{{currentSentence.content}}</text>
<text class="page-indicator">{{currentIndex + 1}}/{{sentences.length}}</text>
</view>
<!-- 右箭头 -->
<view class="arrow-btn right {{currentIndex >= sentences.length - 1 ? 'disabled' : ''}}" bindtap="nextSentence">
<t-icon name="chevron-right" size="48rpx" />
</view>
</view>
<!-- 话筒图标和倒计时 -->
<view class="microphone-container">
<t-icon name="microphone-1" class="microphone {{isRecording ? 'recording' : ''}}" size="100rpx" bind:longpress="handleRecordStart" bind:touchend="handleRecordEnd" bind:touchcancel="handleRecordEnd" />
<text wx:if="{{isRecording}}" class="countdown">{{remainingTime}}s</text>
<!-- 评分详解按钮 -->
<t-button wx:if="{{hasScoreInfo}}" class="score-detail-btn" theme="primary" size="small" variant="outline" bind:tap="handleScoreDetailClick">评分详解</t-button>
</view>
</view>
<!-- 底部评分结果区域 -->
<view class="score-section">
<block wx:if="{{hasScoreInfo}}">
<view class="score-container">
<view class="total-score">
<view class="circle-progress" style="{{circleProgressStyle}}">
<text class="total-score-value">{{totalScore}}</text>
<text class="total-score-label">总分</text>
</view>
</view>
<view class="score-details">
<view class="score-item">
<text class="score-label">准确性</text>
<view class="score-content">
<block wx:if="{{accuracyScore >= 0}}">
<view class="progress-bar">
<view class="progress-fill" style="width: {{accuracyScore}}%"></view>
</view>
<text class="score-value">{{accuracyScore}}</text>
</block>
<text wx:else class="no-score-text">暂无评分</text>
</view>
</view>
<view class="score-item">
<text class="score-label">完整性</text>
<view class="score-content">
<block wx:if="{{completenessScore >= 0}}">
<view class="progress-bar">
<view class="progress-fill" style="width: {{completenessScore}}%"></view>
</view>
<text class="score-value">{{completenessScore}}</text>
</block>
<text wx:else class="no-score-text">暂无评分</text>
</view>
</view>
<view class="score-item">
<text class="score-label">流利度</text>
<view class="score-content">
<block wx:if="{{fluencyScore >= 0}}">
<view class="progress-bar">
<view class="progress-fill" style="width: {{fluencyScore}}%"></view>
</view>
<text class="score-value">{{fluencyScore}}</text>
</block>
<text wx:else class="no-score-text">暂无评分</text>
</view>
</view>
</view>
</view>
</block>
<view wx:else class="no-score">
<text class="no-score-text">暂无评分</text>
</view>
</view>
</view>