优化100J代码

This commit is contained in:
微微一笑
2026-03-24 16:26:37 +08:00
parent 1598065457
commit 4e518e7340
2 changed files with 49 additions and 11 deletions

View File

@ -545,19 +545,48 @@ export function deviceDetail(id) {
function execWithBleFirst(bleExec, httpExec, logName, onWaiting) {
const doBle = () => bleExec().then(res => ({ ...(res || {}), _channel: 'ble' }));
const do4G = () => httpExec().then(res => { res._channel = '4g'; return res; });
const hideWaitUi = () => {
if (typeof onWaiting === 'function') return;
try {
uni.hideLoading();
} catch (e) {}
};
const showWaitUi = (title) => {
if (typeof onWaiting === 'function') return;
try {
uni.hideLoading();
uni.showLoading({ title, mask: false });
} catch (e) {}
};
if (protocolInstance.isBleConnected && protocolInstance.bleDeviceId) {
return doBle().catch(() => { console.log('[100J] 蓝牙失败回退4G'); return do4G(); });
}
// 无 bleDeviceId 时:可能扫描中,先等待连接(设备页在后台可能完成连接)
if (!protocolInstance.bleDeviceId) {
if (typeof onWaiting === 'function') onWaiting();
return waitForBleConnection(12000).then(connected => {
return connected ? doBle().catch(() => { console.log('[100J] 蓝牙失败回退4G'); return do4G(); }) : do4G();
return doBle().catch(() => {
console.log('[100J]', logName || '指令', '蓝牙失败回退4G');
return do4G();
});
}
return tryReconnectBle(2500).then(reconnected => {
return reconnected ? doBle().catch(() => { console.log('[100J] 蓝牙失败回退4G'); return do4G(); }) : do4G();
});
// 无 bleDeviceId页面可能在扫描最多等 12s否则用户以为点了没反应
if (!protocolInstance.bleDeviceId) {
if (typeof onWaiting === 'function') onWaiting();
else showWaitUi('蓝牙连接中…');
return waitForBleConnection(12000)
.then(connected => {
return connected ? doBle().catch(() => {
console.log('[100J]', logName || '指令', '蓝牙失败回退4G');
return do4G();
}) : do4G();
})
.finally(hideWaitUi);
}
if (typeof onWaiting !== 'function') showWaitUi('正在重连蓝牙…');
return tryReconnectBle(2500)
.then(reconnected => {
return reconnected ? doBle().catch(() => {
console.log('[100J]', logName || '指令', '蓝牙失败回退4G');
return do4G();
}) : do4G();
})
.finally(hideWaitUi);
}
// 爆闪模式

View File

@ -736,8 +736,11 @@
}
if (this.formData.bleStatu === true) {
this.formData.bleStatu = 'dicconnect';
bleTool.disconnectDevice(f.deviceId).finally(r => {
bleTool.disconnectDevice(f.deviceId).finally(() => {
this.formData.bleStatu = false;
if (this.deviceInfo && this.deviceInfo.deviceId) {
updateBleStatus(false, '', this.deviceInfo.deviceId);
}
});
return;
}
@ -1182,6 +1185,9 @@
bleTool.StopSearch();
bleTool.removeDeviceFound('HBY100J_SCAN');
console.log('100J 蓝牙扫描超时将使用4G');
that.formData.bleStatu = false;
const devId = that.deviceInfo && that.deviceInfo.deviceId;
if (devId) updateBleStatus(false, '', devId);
}, timeout);
bleTool.addDeviceFound((res) => {
@ -1219,6 +1225,9 @@
clearTimeout(timer);
bleTool.removeDeviceFound('HBY100J_SCAN');
console.log('100J 蓝牙扫描启动失败将使用4G', err);
that.formData.bleStatu = 'err';
const devId = that.deviceInfo && that.deviceInfo.deviceId;
if (devId) updateBleStatus(false, '', devId);
}
});
},