89 lines
3.6 KiB
Plaintext
89 lines
3.6 KiB
Plaintext
<view class="page-shell defaults-page">
|
||
<view class="top-row">
|
||
<view>
|
||
<text class="eyebrow">档案预设</text>
|
||
<view class="page-heading">
|
||
<text class="page-title">新增学生默认值</text>
|
||
</view>
|
||
<text class="page-subtitle">新增学生时自动带出以下信息</text>
|
||
</view>
|
||
<button class="reload-button {{loading ? 'reload-button-loading' : ''}}" disabled="{{loading || saving}}" bindtap="onReload" aria-label="刷新预设项">
|
||
<text class="reload-icon">↻</text>
|
||
</button>
|
||
</view>
|
||
|
||
<view wx:if="{{errorMessage}}" class="status-banner">
|
||
<text>{{errorMessage}}</text>
|
||
<text class="status-action" bindtap="onReload">重试</text>
|
||
</view>
|
||
|
||
<view class="defaults-card surface">
|
||
<view class="defaults-grid">
|
||
<picker class="select-field" mode="selector" range="{{grades}}" disabled="{{loading || saving}}" bindchange="onGradeChange" aria-label="默认年级,当前为 {{defaults.grade}}">
|
||
<view class="select-field-content">
|
||
<view class="select-copy">
|
||
<text class="field-label">年级</text>
|
||
<text class="field-value">{{defaults.grade}}</text>
|
||
</view>
|
||
<text class="select-chevron" aria-hidden="true">›</text>
|
||
</view>
|
||
</picker>
|
||
<picker class="select-field" mode="selector" range="{{subjects}}" disabled="{{loading || saving}}" bindchange="onSubjectChange" aria-label="默认学科,当前为 {{defaults.subject}}">
|
||
<view class="select-field-content">
|
||
<view class="select-copy">
|
||
<text class="field-label">学科</text>
|
||
<text class="field-value">{{defaults.subject}}</text>
|
||
</view>
|
||
<text class="select-chevron" aria-hidden="true">›</text>
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
|
||
<view class="duration-field">
|
||
<view class="duration-heading">
|
||
<text class="field-label">上课时长</text>
|
||
<text class="duration-step-label">15 分钟间隔</text>
|
||
</view>
|
||
|
||
<view class="duration-stepper">
|
||
<button
|
||
class="duration-step-button"
|
||
disabled="{{loading || saving || defaults.lessonDurationMinutes <= minimumDuration}}"
|
||
bindtap="decreaseDuration"
|
||
aria-label="减少 15 分钟"
|
||
>−</button>
|
||
<view class="duration-value" aria-label="当前上课时长 {{defaults.lessonDurationMinutes}} 分钟">
|
||
<text class="duration-number">{{defaults.lessonDurationMinutes}}</text>
|
||
<text class="duration-unit">分钟</text>
|
||
</view>
|
||
<button
|
||
class="duration-step-button"
|
||
disabled="{{loading || saving || defaults.lessonDurationMinutes >= maximumDuration}}"
|
||
bindtap="increaseDuration"
|
||
aria-label="增加 15 分钟"
|
||
>+</button>
|
||
</view>
|
||
|
||
<view class="duration-presets" aria-label="常用上课时长">
|
||
<button
|
||
wx:for="{{durationPresets}}"
|
||
wx:key="*this"
|
||
class="duration-preset {{defaults.lessonDurationMinutes === item ? 'duration-preset-active' : ''}}"
|
||
disabled="{{loading || saving}}"
|
||
data-value="{{item}}"
|
||
bindtap="selectDurationPreset"
|
||
aria-label="设置为 {{item}} 分钟"
|
||
>{{item}}</button>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="time-help">
|
||
<icon class="time-help-icon" type="info" size="16" color="#6E6E73" />
|
||
<text>新增学生时会根据开始时间自动推算结束时间</text>
|
||
</view>
|
||
<view class="save-area">
|
||
<button class="save-defaults primary-button" loading="{{saving}}" disabled="{{saving || loading}}" bindtap="save">保存</button>
|
||
</view>
|
||
</view>
|
||
</view>
|