feat(h5): remember profile selections and add finger-following skin swipe

This commit is contained in:
xsl
2026-10-12 21:10:00 +08:00
parent c9352fe4ca
commit ce6dbc20d4
14 changed files with 2230 additions and 900 deletions
@@ -0,0 +1,34 @@
# 基础信息记忆与肤质拖动
## 范围
- 出生年月、性别、地区每次点滚轮“确定”即保存,不必拍照或提交报告。
- 日常肤质切换后也保存。再次进入基础信息页,包括刷新、返回、重新登录同一账号时,默认使用本机上次已确认的值;滚轮重新打开也定位到原选择。
- 保存出生年月而非固定年龄,进入页面和提交前按当前年月重新计算实际年龄。
- 使用当前登录账号的 `kind + id` 隔离本机缓存。切换微信/游客或另一个账号时,页面值与滚轮位置一起重置/恢复,不串用其他账号信息。
- 这是本机浏览器偏好缓存,不新增服务端档案同步接口;同一微信账号换手机仍可看服务器报告,但本次新增的基础信息默认值不跨设备。清除浏览器数据后需重新填写。
- 老版本没有单独保存出生年月,无法准确反推出原选择;更新后需确认一次,从此开始记住。缓存被禁用或容量不足时保持当前页面可用,在该页面内记忆,不保证刷新后保留。
- 缓存只包含出生年月、性别、省市、肤质序号,不复制身份凭据、照片、报告。
## 肤质交互
- 水平方向拖动时,图片、名称与说明一起实时跟随手指,不再等松手才切换。
- 松手按距离/轻扫速度吸附到相应选项;短距离慢拖回原项。
- 首尾拖动有弹性阻力,松手回到有效选项;系统取消手势时复位。
- 横竖方向锁定,保留 `touch-action: pan-y`,不阻塞页面上下滚动;屏幕尺寸变化后保持选项对齐。
- 原有箭头、圆点保留;补充左右方向键支持。
- 不改变 PSD 素材、颜色、页面布局、拍摄约束、评分或推荐规则。
## 回归命令
```bash
node h5/test/profile-store.js
node h5/test/profile-interaction.mjs
H5_BASE_URL=https://1me.xajuzi.com/state/ node h5/test/profile-interaction.mjs
```
浏览器测试使用真实页面与 mobile-select 控件,以模拟账号和真实触摸事件检查恢复、账号隔离、跟手位移、吸附、短拖、轻扫、首尾阻力、系统取消、纵向手势以及不同屏宽。测试只跳过字体下载、拦截登录会话并暴露滚轮实例用于选择测试值;所有非 GET 请求均阻止,不会新增线上账号、报告或付费检测调用。
本地已通过上述两套新增测试,以及第四轮反馈浏览器闭环、登录加载与超时、报告持久化、账号/OAuth 隔离、真实本地模型自动三连拍与最终 JPEG 复验、推荐 126 用例及算法真值 86 断言。
部署目标为 `ubuntu@1me.xajuzi.com:/home/ubuntu/juzi`,基线 `c9352fe`。沿用 Git bundle 快进同步,不代用户推送 origin,不改服务器环境配置或历史数据。上线后核对静态文件哈希、服务健康、匿名访问保护,并执行同一套只读模拟账号浏览器测试。