feat: 完善淘宝小程序拍照、报告与登录流程

接入本地实时识别和自动三连拍,调整报告裁切、商品跳转、分享标题及居中页眉;完善游客会话、后台渠道隔离、部署脚本与回归测试。
This commit is contained in:
xsl
2026-11-04 15:07:51 +08:00
parent 381da60ae4
commit 774376fa16
147 changed files with 17420 additions and 597 deletions
+24 -15
View File
@@ -1,10 +1,16 @@
<import src="../../components/brand-header.axml" />
<template is="brand-header" data="{{brandHeader: brandHeader}}" />
<!-- ═════ 03 档案填写 —— 对照 H5 index.html #s-profile(L61-108) + #p-photoguide(L311-327) ═════ -->
<view class="profile">
<view class="profile" style="--brand-header-height:{{brandHeader.height}}px;margin-top:{{brandHeader.height}}px;height:calc(100vh - {{brandHeader.height}}px);">
<view class="session-guard" a:if="{{identityChecking || identityError}}">
<view>{{identityChecking ? '正在确认当前淘宝账号…' : identityError}}</view>
<button a:if="{{identityError}}" class="btn-primary" onTap="onRetryIdentity">重新验证</button>
</view>
<!-- H5 .profile-bg -->
<image class="profile-bg" src="{{bgUrl}}" mode="aspectFill" />
<!-- H5 .profile-body -->
<view class="profile-body">
<view class="profile-body" hidden="{{identityChecking || identityError}}">
<view class="page-title">您的肌肤状态</view>
<!-- H5 .form-row.two:出生年月 + 性别 -->
@@ -18,12 +24,10 @@
</view>
<view class="field">
<view class="field-label">您的性别</view>
<picker class="pick-host" mode="selector" range="{{genderRange}}" onChange="onGenderChange">
<view class="pick">
<text class="pick-value">{{genderText}}</text>
<view class="chev down"></view>
</view>
</picker>
<view class="pick" onTap="onOpenGender">
<text class="pick-value">{{genderText}}</text>
<view class="chev down"></view>
</view>
</view>
</view>
@@ -49,8 +53,8 @@
<view class="skin-arrow prev {{skinIndex === 0 ? 'disabled' : ''}}" onTap="onSkinPrev">
<view class="chev left"></view>
</view>
<view class="skin-carousel" onTouchStart="onSkinTouchStart" onTouchEnd="onSkinTouchEnd">
<view class="skin-track" style="transform: translateX(-{{skinPercent}}%);">
<view class="skin-carousel" onTouchStart="onSkinTouchStart" onTouchMove="onSkinTouchMove" onTouchEnd="onSkinTouchEnd" onTouchCancel="onSkinTouchCancel">
<view class="skin-track {{skinDragging ? 'dragging' : ''}}" style="transform: translateX(-{{skinPercent}}%) translateX({{skinDragOffset}}px);">
<view class="skin-item" a:for="{{skins}}" a:key="name">
<image class="skin-img" src="{{item.img}}" mode="aspectFit" />
<text class="skin-name">{{item.name}}</text>
@@ -75,15 +79,20 @@
<button class="btn-primary btn-submit" hover-class="btn-press" onTap="onSubmit">提交</button>
</view>
<!-- ═══ 弹层:出生年月/地区滚轮(保留现有 picker-view 自绘实现,仅统一外观) ═══ -->
<view class="overlay overlay-sheet" a:if="{{picker}}" onTap="onPickerClose">
<view class="picker-sheet" catchTap="noop">
<!-- ═══ 弹层:出生年月/性别/地区滚轮 ═══ -->
<view class="overlay overlay-sheet" a:if="{{picker && !identityChecking && !identityError}}" onTap="onPickerClose">
<view class="picker-sheet {{picker === 'gender' ? 'gender-sheet' : ''}}" catchTap="noop">
<view class="picker-btn-bar">
<view class="picker-cancel" onTap="onPickerClose">取消</view>
<view class="picker-title">{{pickerTitle}}</view>
<view class="picker-ensure" onTap="onPickerConfirm">确定</view>
</view>
<picker-view class="native-picker" value="{{pickerValue}}" onChange="onPickerChange">
<picker-view a:if="{{picker === 'gender'}}" class="native-picker gender-picker" value="{{pickerValue}}" onChange="onPickerChange" indicator-style="height:44px; border-top:1px solid #EFEFEF; border-bottom:1px solid #EFEFEF; background-color:rgba(245,240,120,.18);">
<picker-view-column>
<view class="picker-cell" a:for="{{genderRange}}" a:key="*this">{{item}}</view>
</picker-view-column>
</picker-view>
<picker-view a:else class="native-picker" value="{{pickerValue}}" onChange="onPickerChange">
<picker-view-column>
<view class="picker-cell" a:for="{{picker === 'birth' ? birthRange[0] : regionRange[0]}}" a:key="*this">{{item}}</view>
</picker-view-column>
@@ -95,7 +104,7 @@
</view>
<!-- ═══ 弹窗:拍照引导(H5 #p-photoguide:L311-327) ═══ -->
<view class="overlay overlay-guide" a:if="{{showGuide}}" onTap="onCloseGuide">
<view class="overlay overlay-guide" a:if="{{showGuide && !identityChecking && !identityError}}" onTap="onCloseGuide">
<view class="guide-bg">
<image class="guide-bg-img" src="{{guideBgUrl}}" mode="aspectFill" />
<!-- 背景只保留启动页底图 + Slogan -->