fix: correct region mapping (swap left/right, swap middle/bottom) and auto-scan proceeds on timeout
Region name mapping corrected to match actual hardware IO positions: - 0x01: 左区→右区, 0x02: 右区→左区 - 0x08: 下区→中区, 0x10: 中区→下区 Auto-scan no longer shows timeout error, proceeds to next step instead.
这个提交包含在:
@@ -73,7 +73,7 @@ import { exportCSV } from '../utils/export'
|
||||
import { formatDate as formatDateUtil } from '../utils/format'
|
||||
|
||||
var REGION_MAP = {
|
||||
1: '左区', 2: '右区', 4: '上区', 8: '下区', 16: '中区', 32: '左上区', 64: '右上区'
|
||||
1: '右区', 2: '左区', 4: '上区', 8: '中区', 16: '下区', 32: '左上区', 64: '右上区'
|
||||
}
|
||||
|
||||
export default {
|
||||
@@ -168,7 +168,7 @@ export default {
|
||||
async onExport() {
|
||||
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 })
|
||||
var REGION_MAP = { 1: '左区', 2: '右区', 4: '上区', 8: '下区', 16: '中区', 32: '左上区', 64: '右上区' }
|
||||
var REGION_MAP = { 1: '右区', 2: '左区', 4: '上区', 8: '中区', 16: '下区', 32: '左上区', 64: '右上区' }
|
||||
const records = data.records || []
|
||||
exportCSV('records_' + new Date().toISOString().slice(0, 10) + '.csv',
|
||||
['记录ID', '用户', '设备编号', '使用模式', '使用区域', '使用时长(分钟)', '使用时间'],
|
||||
|
||||
@@ -54,8 +54,9 @@ Page({
|
||||
setTimeout(function () {
|
||||
clearInterval(self._progressTimer)
|
||||
if (!self.data.scanning) return
|
||||
self.setData({ scanning: false, timeout: true })
|
||||
wx.showToast({ title: '扫描超时,请重试', icon: 'none' })
|
||||
self.setData({ scanning: false, scanProgress: 100 })
|
||||
var names = ble.getRegionName(self.data.regions || 0x7F)
|
||||
self.setData({ regionData: self.parseScanResults(names) })
|
||||
}, 5000)
|
||||
},
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Page({
|
||||
},
|
||||
|
||||
_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 '全区域'
|
||||
var names = []
|
||||
for (var bit in REGION_MAP) {
|
||||
|
||||
@@ -3,11 +3,11 @@ Page({
|
||||
data: {
|
||||
statusBarHeight: 44,
|
||||
regions: [
|
||||
{ name: '左区', mask: 0x01, checked: true },
|
||||
{ name: '右区', mask: 0x02, checked: true },
|
||||
{ name: '右区', mask: 0x01, checked: true },
|
||||
{ name: '左区', mask: 0x02, checked: true },
|
||||
{ name: '上区', mask: 0x04, checked: true },
|
||||
{ name: '下区', mask: 0x08, checked: true },
|
||||
{ name: '中区', mask: 0x10, checked: true }
|
||||
{ name: '中区', mask: 0x08, checked: true },
|
||||
{ name: '下区', mask: 0x10, checked: true }
|
||||
],
|
||||
selectedMode: 0,
|
||||
subExpired: false,
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
|
||||
<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 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 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 left-cheek {{regions[1].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="1">左区</view>
|
||||
<view class="face-region right-cheek {{regions[0].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="0">右区</view>
|
||||
<view class="face-region nose {{regions[3].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="3">中区</view>
|
||||
<view class="face-region chin {{regions[4].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="4">下区</view>
|
||||
</view>
|
||||
|
||||
<button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}">
|
||||
|
||||
@@ -312,8 +312,8 @@ function parseException(payload) {
|
||||
function getRegionName(mask) {
|
||||
var names = []
|
||||
var bits = [
|
||||
[0x01, '左区'], [0x02, '右区'], [0x04, '上区'],
|
||||
[0x08, '下区'], [0x10, '中区'], [0x20, '左上区'], [0x40, '右上区']
|
||||
[0x01, '右区'], [0x02, '左区'], [0x04, '上区'],
|
||||
[0x08, '中区'], [0x10, '下区'], [0x20, '左上区'], [0x40, '右上区']
|
||||
]
|
||||
for (var i = 0; i < bits.length; i++) {
|
||||
if (mask & bits[i][0]) names.push(bits[i][1])
|
||||
|
||||
在新工单中引用
屏蔽一个用户