Preserve H5 flows while adding Taobao identity, native capture, reports and isolated local development. Fix canceled province selection and expired-session logout. Record passing local regressions, two pre-existing H5 assertion failures and pending platform validation.
92 lines
3.8 KiB
XML
92 lines
3.8 KiB
XML
<!-- ═════ 03 档案填写 ═════ -->
|
||
<view class="profile">
|
||
<image class="profile-bg" src="{{bgUrl}}" mode="aspectFill" />
|
||
<view class="profile-body">
|
||
<view class="page-title">您的肌肤状态</view>
|
||
|
||
<!-- 出生年月 + 性别(原生 picker 底部滚轮) -->
|
||
<view class="form-row">
|
||
<view class="field field-half">
|
||
<view class="field-label">您的出生年月</view>
|
||
<view onTap="onOpenBirth">
|
||
<view class="pick">
|
||
<text class="pick-value">{{birthText}}</text>
|
||
<text class="chev">⌄</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="field field-half">
|
||
<view class="field-label">您的性别</view>
|
||
<picker mode="selector" range="{{genderRange}}" onChange="onGenderChange">
|
||
<view class="pick">
|
||
<text class="pick-value">{{genderText}}</text>
|
||
<text class="chev">⌄</text>
|
||
</view>
|
||
</picker>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 所在地区(省+市联动) -->
|
||
<view class="field">
|
||
<view class="field-label">您的所在地区</view>
|
||
<view onTap="onOpenRegion">
|
||
<view class="pick">
|
||
<text class="pick-value">{{regionText}}</text>
|
||
<text class="chev">⌄</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 日常肤质(轮播卡) -->
|
||
<view class="field">
|
||
<view class="field-label">您的日常肤质</view>
|
||
<view class="skin-card">
|
||
<view class="skin-axis">
|
||
<text class="axis-item"><text class="chip chip-dry"></text>偏干</text>
|
||
<text class="axis-item"><text class="chip chip-oily"></text>偏油</text>
|
||
<text class="axis-item"><text class="chip chip-balance"></text>水油平衡</text>
|
||
</view>
|
||
<view class="skin-stage">
|
||
<view class="skin-arrow" onTap="onSkinPrev">‹</view>
|
||
<swiper class="skin-swiper" current="{{skinIndex}}" onChange="onSkinChange" circular="{{false}}">
|
||
<swiper-item a:for="{{skins}}" a:key="name">
|
||
<view class="skin-item">
|
||
<image src="{{item.img}}" class="skin-img" mode="aspectFit" lazy-load />
|
||
<view class="skin-name">{{item.name}}</view>
|
||
<view class="skin-desc">{{item.desc}}</view>
|
||
</view>
|
||
</swiper-item>
|
||
</swiper>
|
||
<view class="skin-arrow" onTap="onSkinNext">›</view>
|
||
</view>
|
||
<view class="skin-dots">
|
||
<text a:for="{{skins}}" a:key="name" class="dot {{index === skinIndex ? 'on' : ''}}"></text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<button class="btn-primary btn-submit" onTap="onSubmit">提交</button>
|
||
</view>
|
||
|
||
<!-- ═══ 弹窗:拍照引导 ═══ -->
|
||
<view class="overlay" a:if="{{showGuide}}" onTap="onCloseGuide">
|
||
<view class="popup" catchTap="noop">
|
||
<button class="popup-close" onTap="onCloseGuide">✕</button>
|
||
<view class="popup-title">
|
||
<text>请拍摄或上传</text>
|
||
<text>正面及左右侧面照片</text>
|
||
</view>
|
||
<button class="btn-primary popup-btn" onTap="onStartCamera">开始</button>
|
||
</view>
|
||
</view>
|
||
<view class="overlay" a:if="{{picker}}" onTap="onPickerClose">
|
||
<view class="picker-sheet" catchTap="noop">
|
||
<view class="picker-actions"><text onTap="onPickerClose">取消</text><text onTap="onPickerConfirm">确定</text></view>
|
||
<picker-view value="{{pickerValue}}" onChange="onPickerChange" class="native-picker">
|
||
<picker-view-column><view a:for="{{picker === 'birth' ? birthRange[0] : regionRange[0]}}" a:key="*this">{{item}}</view></picker-view-column>
|
||
<picker-view-column><view a:for="{{picker === 'birth' ? birthRange[1] : regionRange[1]}}" a:key="*this">{{item}}</view></picker-view-column>
|
||
</picker-view>
|
||
</view>
|
||
</view>
|
||
</view>
|