文件
jw-beauty/miniprogram/pages/ble-debug/ble-debug.wxss
T
Guoguo 74b0c5fa86 feat(debug): temporary BLE debug page for on-device verification
- entry in profile menu, visible only while a device is connected
- live FFE4 readout: 7x PD, VBAT, fitting, scan wave marker, run state
- tap a face-map region to fire a 2s single-region treat command
  (verifies region-to-IO mapping on the physical mask)
- wavelength selector (red/ir/uv/yellow) to verify color byte order
- scan command / full-face 2s / stop buttons, hex log of every write
- intentionally not i18n'd; remove page before release
2026-07-28 06:58:03 -07:00

40 行
2.4 KiB
Plaintext

/* 临时调试页样式(上线前随页面一并移除) */
.page { min-height: 100vh; background: #f5f6f8; }
.page-content { padding: 24rpx; }
.card { background: #fff; border-radius: 24rpx; padding: 24rpx; margin-bottom: 20rpx; }
.card-title { font-size: 28rpx; font-weight: 600; color: #333; margin-bottom: 16rpx; }
.frames { font-size: 22rpx; color: #999; font-weight: 400; }
.pd-row { display: flex; flex-wrap: wrap; gap: 12rpx; }
.pd-cell { flex: 0 0 calc((100% - 72rpx) / 7); text-align: center; background: #FAFAFA; border-radius: 12rpx; padding: 10rpx 0; }
.pd-idx { font-size: 20rpx; color: #999; }
.pd-val { font-size: 24rpx; color: #333; font-weight: 600; }
.status-row { display: flex; flex-wrap: wrap; gap: 20rpx; margin-top: 16rpx; font-size: 24rpx; color: #666; }
.wave-row { display: flex; gap: 16rpx; }
.wave-chip { flex: 1; text-align: center; padding: 18rpx 0; border: 4rpx solid #e5e5e5; border-radius: 20rpx; font-size: 26rpx; color: #999; }
.wave-chip.active { border-color: #E6508C; background: rgba(230, 80, 140, 0.12); color: #E6508C; }
.face-map { width: 280rpx; height: 340rpx; margin: 0 auto; position: relative; }
.face-region {
position: absolute; border: 4rpx solid #d5d5d5; border-radius: 50%;
display: flex; align-items: center; justify-content: center; text-align: center;
font-size: 22rpx; color: #666; background: #FAFAFA; white-space: pre-line; line-height: 1.3;
}
.face-region:active { background: rgba(230, 80, 140, 0.25); border-color: #E6508C; color: #E6508C; }
.face-region.forehead { top: 5%; left: 25%; width: 50%; height: 15%; border-radius: 40rpx 40rpx 50% 50%; }
.face-region.left-cheek { top: 25%; left: 5%; width: 30%; height: 25%; }
.face-region.right-cheek { top: 25%; right: 5%; width: 30%; height: 25%; }
.face-region.nose { top: 45%; left: 35%; width: 30%; height: 18%; border-radius: 40%; }
.face-region.chin { top: 68%; left: 25%; width: 50%; height: 20%; border-radius: 0 0 50% 50%; }
.btn-row { display: flex; gap: 16rpx; }
.dbg-btn { flex: 1; font-size: 26rpx; padding: 0; line-height: 76rpx; border-radius: 20rpx; background: #4A90D9; color: #fff; }
.dbg-btn::after { border: none; }
.dbg-btn-stop { background: #E8503A; }
.log-clear { float: right; font-size: 22rpx; color: #4A90D9; font-weight: 400; }
.log-line { font-family: monospace; font-size: 20rpx; color: #555; padding: 4rpx 0; border-bottom: 1rpx solid #f2f2f2; word-break: break-all; }
.log-empty { font-size: 22rpx; color: #bbb; }