fix: replace facial/medical terms with neutral position labels

Region names: 左脸→左区, 右脸→右区, 额头→上区, 下巴→下区,
鼻唇→中区, 左眼→左上区, 右眼→右上区, 全脸→全区域.
Replace 面部/面罩 with 设备 in wear-check and auto-scan pages.
这个提交包含在:
Guoguo
2026-05-31 23:39:06 -07:00
父节点 aff8c2d9b5
当前提交 29ff1c015b
修改 7 个文件,包含 26 行新增26 行删除
+2 -2
查看文件
@@ -73,7 +73,7 @@ import { exportCSV } from '../utils/export'
import { formatDate as formatDateUtil } from '../utils/format' import { formatDate as formatDateUtil } from '../utils/format'
var REGION_MAP = { var REGION_MAP = {
1: '左', 2: '右', 4: '额头', 8: '下', 16: '', 32: '左', 64: '右' 1: '左', 2: '右', 4: '上区', 8: '下', 16: '中区', 32: '左上区', 64: '右上区'
} }
export default { export default {
@@ -168,7 +168,7 @@ export default {
async onExport() { async onExport() {
try { try {
const data = await get('/api/v1/admin/records', { page: 1, page_size: 9999, keyword: this.keyword, user_id: this.filterUserId, date_from: this.dateFrom, date_to: this.dateTo }) const data = await get('/api/v1/admin/records', { page: 1, page_size: 9999, keyword: this.keyword, user_id: this.filterUserId, date_from: this.dateFrom, date_to: this.dateTo })
var REGION_MAP = { 1: '左', 2: '右', 4: '额头', 8: '下', 16: '', 32: '左', 64: '右' } var REGION_MAP = { 1: '左', 2: '右', 4: '上区', 8: '下', 16: '中区', 32: '左上区', 64: '右上区' }
const records = data.records || [] const records = data.records || []
exportCSV('records_' + new Date().toISOString().slice(0, 10) + '.csv', exportCSV('records_' + new Date().toISOString().slice(0, 10) + '.csv',
['记录ID', '用户', '设备编号', '使用模式', '使用区域', '使用时长(分钟)', '使用时间'], ['记录ID', '用户', '设备编号', '使用模式', '使用区域', '使用时长(分钟)', '使用时间'],
+3 -3
查看文件
@@ -2,11 +2,11 @@
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;"> <view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="nav-back" bindtap="onBack"> 返回</view> <view class="nav-back" bindtap="onBack"> 返回</view>
<view class="page-header-title">自动扫描</view> <view class="page-header-title">自动扫描</view>
<view class="page-header-subtitle">正在识别面部...</view> <view class="page-header-subtitle">正在识别区域...</view>
</view> </view>
<view class="page-content"> <view class="page-content">
<view class="page-title">自动扫描面部区域</view> <view class="page-title">自动扫描区域</view>
<view class="scan-container"> <view class="scan-container">
<view class="face-outline"> <view class="face-outline">
@@ -14,7 +14,7 @@
</view> </view>
</view> </view>
<view class="scan-hint">请将面罩对准面部</view> <view class="scan-hint">请正确佩戴设备</view>
<view class="scan-hint" style="font-size:24rpx;color:#999;margin-top:8rpx;">连接设备后可获取检测数据</view> <view class="scan-hint" style="font-size:24rpx;color:#999;margin-top:8rpx;">连接设备后可获取检测数据</view>
<view class="scan-progress" wx:if="{{scanning}}"> <view class="scan-progress" wx:if="{{scanning}}">
+4 -4
查看文件
@@ -16,17 +16,17 @@ Page({
paused: false, paused: false,
completed: false, completed: false,
startedAt: 0, startedAt: 0,
regionText: '全脸使用', regionText: '全区域',
}, },
_getRegionText: function (regionMask) { _getRegionText: function (regionMask) {
var REGION_MAP = {1:'左', 2:'右', 4:'额头', 8:'下', 16:'', 32:'左', 64:'右'} var REGION_MAP = {1:'左', 2:'右', 4:'上区', 8:'下', 16:'中区', 32:'左上区', 64:'右上区'}
if (regionMask === 0x7F) return '全脸使用' if (regionMask === 0x7F) return '全区域'
var names = [] var names = []
for (var bit in REGION_MAP) { for (var bit in REGION_MAP) {
if (regionMask & parseInt(bit)) names.push(REGION_MAP[bit]) if (regionMask & parseInt(bit)) names.push(REGION_MAP[bit])
} }
return names.length > 0 ? names.join('+') + '使用' : '全脸使用' return names.length > 0 ? names.join('+') : '全区域'
}, },
onLoad: function (options) { onLoad: function (options) {
@@ -3,11 +3,11 @@ Page({
data: { data: {
statusBarHeight: 44, statusBarHeight: 44,
regions: [ regions: [
{ name: '左脸颊', mask: 0x01, checked: true }, { name: '左', mask: 0x01, checked: true },
{ name: '右脸颊', mask: 0x02, checked: true }, { name: '右', mask: 0x02, checked: true },
{ name: '额头', mask: 0x04, checked: true }, { name: '上区', mask: 0x04, checked: true },
{ name: '下', mask: 0x08, checked: true }, { name: '下', mask: 0x08, checked: true },
{ name: '鼻唇', mask: 0x10, checked: true } { name: '中区', mask: 0x10, checked: true }
], ],
selectedMode: 0, selectedMode: 0,
subExpired: false, subExpired: false,
@@ -23,14 +23,14 @@
</view> </view>
<view class="page-title" style="font-size:28rpx;">选择区域</view> <view class="page-title" style="font-size:28rpx;">选择区域</view>
<view class="mode-tip" wx:if="{{selectedMode === 0}}">普通模式固定 10 分钟,使用区域默认全,不可调整</view> <view class="mode-tip" wx:if="{{selectedMode === 0}}">普通模式固定 10 分钟,使用区域默认全区域,不可调整</view>
<view class="face-map"> <view class="face-map">
<view class="face-region forehead {{regions[2].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="2">额头</view> <view class="face-region forehead {{regions[2].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="2">上区</view>
<view class="face-region left-cheek {{regions[0].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="0">左</view> <view class="face-region left-cheek {{regions[0].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="0">左</view>
<view class="face-region right-cheek {{regions[1].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="1">右</view> <view class="face-region right-cheek {{regions[1].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="1">右</view>
<view class="face-region nose {{regions[4].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="4">鼻唇</view> <view class="face-region nose {{regions[4].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="4">中区</view>
<view class="face-region chin {{regions[3].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="3">下</view> <view class="face-region chin {{regions[3].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="3">下</view>
</view> </view>
<button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}"> <button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}">
+4 -4
查看文件
@@ -2,7 +2,7 @@
<view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;"> <view class="page-header page-header-pink" style="padding-top: {{statusBarHeight + 24}}px;">
<view class="nav-back" bindtap="onBack"> 返回</view> <view class="nav-back" bindtap="onBack"> 返回</view>
<view class="page-header-title">确认佩戴</view> <view class="page-header-title">确认佩戴</view>
<view class="page-header-subtitle">请确保面罩贴合面部</view> <view class="page-header-subtitle">请确保设备正确佩戴</view>
</view> </view>
<view class="page-content"> <view class="page-content">
@@ -20,10 +20,10 @@
<view class="guide-card"> <view class="guide-card">
<view class="guide-title">佩戴指引</view> <view class="guide-title">佩戴指引</view>
<view class="guide-img">面罩佩戴示意图</view> <view class="guide-img">设备佩戴示意图</view>
<view class="guide-steps"> <view class="guide-steps">
<view class="guide-step">1. 取出面罩,展开弹性绑带</view> <view class="guide-step">1. 取出设备,展开弹性绑带</view>
<view class="guide-step">2. 将面罩贴合面部</view> <view class="guide-step">2. 将设备正确佩戴</view>
<view class="guide-step">3. 调节绑带至舒适位置</view> <view class="guide-step">3. 调节绑带至舒适位置</view>
</view> </view>
</view> </view>
+2 -2
查看文件
@@ -312,8 +312,8 @@ function parseException(payload) {
function getRegionName(mask) { function getRegionName(mask) {
var names = [] var names = []
var bits = [ var bits = [
[0x01, '左脸颊'], [0x02, '右脸颊'], [0x04, '额头'], [0x01, '左'], [0x02, '右'], [0x04, '上区'],
[0x08, '下'], [0x10, '鼻部'], [0x20, '左眼周'], [0x40, '右眼周'] [0x08, '下'], [0x10, '中区'], [0x20, '左上区'], [0x40, '右上区']
] ]
for (var i = 0; i < bits.length; i++) { for (var i = 0; i < bits.length; i++) {
if (mask & bits[i][0]) names.push(bits[i][1]) if (mask & bits[i][0]) names.push(bits[i][1])