教练端在学生报告页录入体质数据并生成报告,新增报告查看页;学员端从报告页查看最新评估结果、体测指标与运动建议。请求统一走现有 QA 后端并携带登录令牌。 教学资源改用后台音频管理器,支持进度拖动、曲目切换、时长探测及网络异常时下载恢复;修正跳绳和开合跳动作提示文案。 验证:相关 JS 语法、页面 JSON 解析和 git diff --cached --check 均通过。
62 lines
2.8 KiB
Plaintext
62 lines
2.8 KiB
Plaintext
<view class="page">
|
||
<mp-bar background="linear-gradient(135deg, #49a5fc, #f5f8ff 900rpx)" title="录入体质信息" color="#fff" back="{{true}}"></mp-bar>
|
||
<view class="student-card">
|
||
<view class="student-name">{{studentName || '学生'}} <text class="student-no">{{studentNo}}</text></view>
|
||
<view class="student-class">{{className}}</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title">基本信息 <text class="required">必填</text></view>
|
||
<view class="field">
|
||
<text>出生日期</text>
|
||
<picker mode="date" value="{{birthDate}}" end="{{testDate}}" bindchange="onBirthDateChange">
|
||
<view class="picker-value {{birthDate ? '' : 'placeholder'}}">{{birthDate || '请选择出生日期'}} ›</view>
|
||
</picker>
|
||
</view>
|
||
<view class="field">
|
||
<text>测试日期</text>
|
||
<picker mode="date" value="{{testDate}}" end="{{testDate}}" bindchange="onTestDateChange">
|
||
<view class="picker-value">{{testDate}} ›</view>
|
||
</picker>
|
||
</view>
|
||
<view class="field">
|
||
<text>性别</text>
|
||
<picker range="{{sexOptions}}" value="{{sexIndex}}" bindchange="onSexChange">
|
||
<view class="picker-value {{sexIndex === -1 ? 'placeholder' : ''}}">{{sexIndex === -1 ? '请选择性别' : sexOptions[sexIndex]}} ›</view>
|
||
</picker>
|
||
</view>
|
||
<view class="field">
|
||
<text>年级</text>
|
||
<picker range="{{gradeOptions}}" value="{{gradeIndex}}" bindchange="onGradeChange">
|
||
<view class="picker-value {{gradeIndex === -1 ? 'placeholder' : ''}}">{{gradeIndex === -1 ? '请选择年级' : gradeOptions[gradeIndex]}} ›</view>
|
||
</picker>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title">身体形态 <text class="section-hint">身高、体重必填</text></view>
|
||
<view class="field" wx:for="{{bodyFields}}" wx:key="key">
|
||
<text>{{item.label}}</text>
|
||
<view class="number-wrap">
|
||
<input class="number-input" type="digit" placeholder="请输入" value="{{values[item.key]}}" data-key="{{item.key}}" bindinput="onNumberInput" />
|
||
<text class="unit">{{item.unit}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="section">
|
||
<view class="section-title">体测项目 <text class="section-hint">按已测项目填写</text></view>
|
||
<view class="field" wx:for="{{testFields}}" wx:key="key">
|
||
<text>{{item.label}}</text>
|
||
<view class="number-wrap">
|
||
<input class="number-input" type="digit" placeholder="未测可留空" value="{{values[item.key]}}" data-key="{{item.key}}" bindinput="onNumberInput" />
|
||
<text class="unit">{{item.unit}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="submit-wrap">
|
||
<button class="submit-btn" loading="{{submitting}}" disabled="{{submitting}}" bindtap="submit">生成并保存体测报告</button>
|
||
</view>
|
||
</view>
|