- scan-report: replace zone card grid with the same oval face-map layout as treatment-setup, zones tinted by recommended light with mode label; restore the per-light legend under the map - manual-treatment: region picker now uses the same face-map layout - manual care mode selection is smart-mode only: entry link hidden for non-subscribers and the page itself checks subscription (free mode passes since the backend reports it as active)
57 行
2.8 KiB
Plaintext
57 行
2.8 KiB
Plaintext
<view class="page">
|
||
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
|
||
<view class="nav-back" bindtap="onBack">‹ {{i18n.common.back}}</view>
|
||
<view class="page-header-title">{{i18n.manual.navTitle}}</view>
|
||
<view class="page-header-subtitle">{{i18n.manual.navSubtitle}}</view>
|
||
</view>
|
||
|
||
<view class="page-content">
|
||
<view class="page-title">{{i18n.manual.functionTitle}}</view>
|
||
|
||
<view class="func-grid">
|
||
<view
|
||
wx:for="{{functions}}"
|
||
wx:key="id"
|
||
class="func-card {{selectedFunctionId === item.id ? 'active' : ''}}"
|
||
style="{{selectedFunctionId === item.id ? 'border-color:' + item.color + ';' : ''}}"
|
||
bindtap="onSelectFunction"
|
||
data-id="{{item.id}}">
|
||
<view class="func-dot" style="background: {{item.color}};"></view>
|
||
<view class="func-name">{{i18n.manual.functions[item.id].name}}</view>
|
||
<view class="func-wl" style="color: {{item.color}};">{{i18n.common.wavelengths[item.wl]}}</view>
|
||
<view class="func-benefit">{{i18n.manual.functions[item.id].benefit}}</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="page-title section-title">{{i18n.manual.regionTitle}}</view>
|
||
<!-- 脸型图布局(与「使用设置」一致);位置↔idx:0=左 1=中上 2=中 3=中下 4=右 -->
|
||
<view class="face-map">
|
||
<view class="face-region forehead {{regions[1].checked ? 'active' : ''}}" bindtap="onToggleRegion" data-idx="1">{{i18n.common.regions.top}}</view>
|
||
<view class="face-region left-cheek {{regions[0].checked ? 'active' : ''}}" bindtap="onToggleRegion" data-idx="0">{{i18n.common.regions.left}}</view>
|
||
<view class="face-region right-cheek {{regions[4].checked ? 'active' : ''}}" bindtap="onToggleRegion" data-idx="4">{{i18n.common.regions.right}}</view>
|
||
<view class="face-region nose {{regions[2].checked ? 'active' : ''}}" bindtap="onToggleRegion" data-idx="2">{{i18n.common.regions.middle}}</view>
|
||
<view class="face-region chin {{regions[3].checked ? 'active' : ''}}" bindtap="onToggleRegion" data-idx="3">{{i18n.common.regions.bottom}}</view>
|
||
</view>
|
||
|
||
<view class="page-title section-title">{{i18n.manual.durationTitle}}</view>
|
||
<view class="segmented">
|
||
<view
|
||
wx:for="{{durationOptions}}"
|
||
wx:key="min"
|
||
class="segment {{selectedMinutes === item.min ? 'active' : ''}}"
|
||
bindtap="onSelectDuration"
|
||
data-min="{{item.min}}">
|
||
{{item.label}}
|
||
</view>
|
||
</view>
|
||
|
||
<view class="safety-tip">{{i18n.manual.safetyTip}}</view>
|
||
|
||
<button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}">
|
||
{{submitting ? i18n.manual.starting : i18n.manual.start}}
|
||
</button>
|
||
|
||
<view class="error-text" wx:if="{{error}}">{{error}}</view>
|
||
</view>
|
||
</view>
|