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'
|
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', '用户', '设备编号', '使用模式', '使用区域', '使用时长(分钟)', '使用时间'],
|
||||||
|
|||||||
@@ -54,8 +54,9 @@ Page({
|
|||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
clearInterval(self._progressTimer)
|
clearInterval(self._progressTimer)
|
||||||
if (!self.data.scanning) return
|
if (!self.data.scanning) return
|
||||||
self.setData({ scanning: false, timeout: true })
|
self.setData({ scanning: false, scanProgress: 100 })
|
||||||
wx.showToast({ title: '扫描超时,请重试', icon: 'none' })
|
var names = ble.getRegionName(self.data.regions || 0x7F)
|
||||||
|
self.setData({ regionData: self.parseScanResults(names) })
|
||||||
}, 5000)
|
}, 5000)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Page({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_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) {
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -27,10 +27,10 @@
|
|||||||
|
|
||||||
<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[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 right-cheek {{regions[0].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="0">右区</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[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 class="face-region chin {{regions[4].checked ? 'active' : ''}} {{selectedMode === 0 ? 'disabled' : ''}}" bindtap="onToggleRegion" data-idx="4">下区</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}">
|
<button class="btn-primary" bindtap="onStart" disabled="{{submitting}}" loading="{{submitting}}">
|
||||||
|
|||||||
@@ -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])
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户