feat(miniapp): align UI with H5 and harden device debugging

五个页面按 h5/css 的 style.css → ui-20261009 → ui-20261012 覆盖顺序逐条重排,
换算规则固定为 calc(N * var(--u)) → 2N rpx,固定 px 的字号保持 px。

- app.acss:换回 H5 设计 token(方角小倒角按钮 10rpx、卡片 14rpx、.chev 折线箭头)
- splash/profile/history:底图与按钮文字图改用 H5 资源,隐私/政策弹窗按 H5 重排
- report:环形分用 conic-gradient、人脸裁切窗口叠加 face_maps、标记点百分比盒、
  侧脸皱纹 pending/unavailable 文案;用 Playwright 抓 H5 94 个选择器几何比对,
  整页高 2438.7 vs 2438.67
- camera:淘宝 <camera> 组件在真机整页崩溃(嵌了微信专有的 <cover-view>),
  改为默认系统相机 + `config.nativeCamera` 开关 + pages/camtest 冒烟页验证组件
- permissions:淘宝用带前缀的 scope.camera(裸名返回 5022 Scope:camera信息不存在),
  先试带前缀再退回裸名,拒绝后不再重复弹窗
- voice:非 HTTPS 资源导致的异常不再冒泡成整页崩溃;app.js 加开发版错误 toast
- 开发版入口:权限诊断(启动页/相机页)、相机组件测试
- 测试 20/20(新增权限与相机能力用例)
This commit is contained in:
xsl
2026-11-01 23:30:38 +08:00
parent f5c416dd9d
commit fed52930cc
33 changed files with 3061 additions and 876 deletions
+69 -39
View File
@@ -1,83 +1,113 @@
/* ═════ 全局样式(对齐 H5 设计变量:--yellow #F5F078 / --ink #282828 / --bg #EFEFEF) ═════ */
/* ═════ 全局样式 —— 对齐 H5 h5/css/style.css 的 1'me 设计变量 ═════
单位换算:H5 的 calc(N * var(--u))(375 设计宽基准)→ 2N rpx(750rpx = 屏宽)。
H5 里固定 px 的字号保持 px 不变。
注意:淘宝小程序 acss 不支持 @font-face,字体退化为系统字体栈。 */
page {
background: #101823;
font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
background: #EFEFEF;
color: #282828;
font-size: 28rpx;
font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
font-size: 14px;
-webkit-font-smoothing: antialiased;
}
/* ─── 主按钮(品牌黄) ─── */
/* ─── 主按钮:长方形 + 小倒角(H5 设计稿 181×37,圆角 5) ─── */
.btn-primary {
display: flex;
align-items: center;
justify-content: center;
height: 96rpx;
border-radius: 48rpx;
width: 362rpx;
height: 74rpx;
background: #F5F078;
border-radius: 10rpx;
color: #282828;
font-size: 32rpx;
font-weight: 600;
font-size: 14.5px;
font-weight: 500;
letter-spacing: 1rpx;
border: none;
padding: 0;
line-height: 1;
}
.btn-primary::after { border: none; }
.btn-primary.btn-disabled { opacity: 0.5; }
.btn-primary.btn-disabled { opacity: .5; }
/* ─── 白色卡片(报告页通用) ─── */
.card {
background: #FFFFFF;
border-radius: 24rpx;
margin: 24rpx 32rpx 0;
padding: 32rpx;
/* ─── 折线箭头(H5 .chev) ─── */
.chev {
width: 9px;
height: 9px;
border: solid #2C2C2C;
border-width: 0 2px 2px 0;
display: inline-block;
padding: 2px;
box-sizing: border-box;
}
.card-heading {
font-size: 32rpx;
font-weight: 600;
margin-bottom: 24rpx;
.chev.left { transform: rotate(135deg); }
.chev.right { transform: rotate(-45deg); }
.chev.down { transform: rotate(45deg); }
/* ─── 圆形返回按钮(H5 .nav-back) ─── */
.nav-back {
width: 27px;
height: 27px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #E5E5E5;
border-radius: 50%;
background: #fff;
box-sizing: border-box;
}
/* ─── 弹窗遮罩 ─── */
/* ─── 弹窗(H5 隐私协议/政策层) ─── */
.overlay {
position: fixed;
left: 0; top: 0; right: 0; bottom: 0;
background: rgba(0, 0, 0, 0.6);
background: rgba(0, 0, 0, .6);
z-index: 100;
display: flex;
align-items: center;
justify-content: center;
}
.popup {
width: 600rpx;
background: #FFFFFF;
border-radius: 24rpx;
padding: 48rpx 40rpx 40rpx;
box-sizing: border-box;
position: relative;
width: 640rpx;
max-height: 78vh;
background: #FFFFFF;
border-radius: 14rpx;
padding: 44rpx 40rpx 36rpx;
box-sizing: border-box;
}
.popup-scroll { max-height: 52vh; }
.popup-title {
font-size: 34rpx;
font-weight: 600;
font-size: 19px;
font-weight: 700;
text-align: center;
line-height: 1.5;
line-height: 1.4;
color: #282828;
margin-bottom: 24rpx;
}
.popup-body {
font-size: 26rpx;
font-size: 13px;
color: #4A4A4A;
line-height: 1.7;
margin-bottom: 32rpx;
line-height: 1.75;
}
.popup-close {
position: absolute;
top: 24rpx;
right: 24rpx;
width: 48rpx;
height: 48rpx;
line-height: 48rpx;
top: 16rpx;
right: 16rpx;
width: 56rpx;
height: 56rpx;
line-height: 56rpx;
text-align: center;
font-size: 36rpx;
font-size: 18px;
color: #868686;
background: none;
padding: 0;
}
.popup-close::after { border: none; }
/* ─── 卡片(H5 .card) ─── */
.card {
background: #FFFFFF;
border-radius: 14rpx;
box-sizing: border-box;
}