蓝牙调试页面初步完成
This commit is contained in:
@@ -62,6 +62,10 @@ Page({
|
||||
bdHosts: [],
|
||||
address: "",
|
||||
UpgradeType:"",
|
||||
checkedCount: 0,
|
||||
totalCount: 0,
|
||||
successCount: 0,
|
||||
failCount: 0,
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -145,13 +149,33 @@ Page({
|
||||
|
||||
|
||||
upgrader.on('progress', p => {
|
||||
console.log(p)
|
||||
this.setData({ CurrentUpgradeDevStart: p }) // 实时刷新 UI
|
||||
console.log('upgrader progress:', p)
|
||||
try {
|
||||
// 支持数字或对象 {percent:xx} 或字符串数字
|
||||
let prog = p && typeof p === 'object' && p.percent != null ? p.percent : (typeof p === 'number' ? p : (typeof p === 'string' && !isNaN(Number(p)) ? Number(p) : p));
|
||||
const cur = this.data.CurrentUpgradeDev;
|
||||
if (cur && this.data.devlist && Array.isArray(this.data.devlist)) {
|
||||
const devlist = this.data.devlist.slice();
|
||||
const idx = devlist.findIndex(d => String(d.RoomNumber) === String(cur) || String(d.ID) === String(cur));
|
||||
if (idx >= 0) {
|
||||
devlist[idx].UpgradeProgress = prog;
|
||||
if (!devlist[idx].UpgradeStatus || devlist[idx].UpgradeStatus === 0) devlist[idx].UpgradeStatus = 1; // 进行中
|
||||
this.setData({ devlist });
|
||||
}
|
||||
}
|
||||
this.setData({ CurrentUpgradeDevStart: p });
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
this.setData({ CurrentUpgradeDevStart: p });
|
||||
}
|
||||
})
|
||||
upgrader.on('error', e => {
|
||||
wx.showToast({ title: '升级失败', icon: 'none' })
|
||||
})
|
||||
|
||||
// 初始化计数
|
||||
try { this.updateCounts && this.updateCounts(); } catch (e) { console.log('init counts error', e); }
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -575,6 +599,7 @@ Page({
|
||||
for (let i = 0; i < this.data.devlist.length; i++) {
|
||||
|
||||
devlist[i].UpgradeStatus = 0
|
||||
devlist[i].UpgradeProgress = "";
|
||||
|
||||
if (devlist[i].checkbox) { //勾选
|
||||
if (devlist[i].Status) { //离在线
|
||||
@@ -617,31 +642,64 @@ Page({
|
||||
upgradefileName: filename,
|
||||
hotelid:HotelId
|
||||
})
|
||||
.then(res => {
|
||||
_this.setData({
|
||||
UpgradeCount:_this.data.UpgradeCount+1, //升级计数
|
||||
})
|
||||
console.log('升级完成', res)
|
||||
.then(res => {
|
||||
// 标记对应设备为已完成,并更新进度,取消勾选
|
||||
try {
|
||||
const devlist = _this.data.devlist.slice();
|
||||
const idx = devlist.findIndex(d => String(d.ID) === String(element.ID) || String(d.RoomNumber) === String(element.RoomNumber));
|
||||
if (idx >= 0) {
|
||||
devlist[idx].UpgradeProgress = 100;
|
||||
devlist[idx].UpgradeStatus = 2; // 完成
|
||||
devlist[idx].checkbox = false;
|
||||
_this.setData({ devlist, UpgradeCount: _this.data.UpgradeCount + 1 }, () => { _this.updateCounts && _this.updateCounts(); });
|
||||
} else {
|
||||
_this.setData({ UpgradeCount: _this.data.UpgradeCount + 1 }, () => { _this.updateCounts && _this.updateCounts(); });
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('update dev progress error', err);
|
||||
_this.setData({ UpgradeCount: _this.data.UpgradeCount + 1 });
|
||||
}
|
||||
console.log('升级完成', res)
|
||||
})
|
||||
.catch(err =>{
|
||||
|
||||
|
||||
// 标记对应设备为失败,取消勾选,并继续下一个
|
||||
try {
|
||||
const devlist = _this.data.devlist.slice();
|
||||
const idx = devlist.findIndex(d => String(d.ID) === String(element.ID) || String(d.RoomNumber) === String(element.RoomNumber));
|
||||
if (idx >= 0) {
|
||||
devlist[idx].UpgradeProgress = "";
|
||||
devlist[idx].UpgradeStatus = 3; // 失败
|
||||
// 保持勾选状态(不取消),以便用户查看/重试
|
||||
_this.setData({ devlist }, () => { _this.updateCounts && _this.updateCounts(); });
|
||||
}
|
||||
} catch (err2) {
|
||||
console.log('update dev fail state error', err2);
|
||||
}
|
||||
console.log('升级失败', err)
|
||||
});
|
||||
}catch (error) {
|
||||
_this.setData({
|
||||
//升级计数
|
||||
CurrentUpgradeDev:element.RoomNumber, //当前升级设备
|
||||
CurrentUpgradeDevStart:errstr+',服务器响应异常',//当前升级设备状态
|
||||
Completed:false
|
||||
})
|
||||
//this.DisplayPrompt(errstr+',服务器响应异常',1000)
|
||||
return
|
||||
// 如果 startUpgrade 抛出异常,标记该设备为失败并继续下一个
|
||||
try {
|
||||
const devlist2 = _this.data.devlist.slice();
|
||||
const idx2 = devlist2.findIndex(d => String(d.ID) === String(element.ID) || String(d.RoomNumber) === String(element.RoomNumber));
|
||||
if (idx2 >= 0) {
|
||||
devlist2[idx2].UpgradeProgress = "";
|
||||
devlist2[idx2].UpgradeStatus = 3; // 失败
|
||||
// 保持勾选状态(不取消),以便用户查看/重试
|
||||
_this.setData({ devlist: devlist2 }, () => { _this.updateCounts && _this.updateCounts(); });
|
||||
}
|
||||
} catch (err2) {
|
||||
console.log('handle thrown upgrade error', err2);
|
||||
}
|
||||
console.log('升级异常', error);
|
||||
// 不 return,继续下一个设备
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.DisplayPrompt2("升级完成!", 1000)
|
||||
// 所有设备处理完毕,取消批量升级标记
|
||||
_this.setData({ Completed:false });
|
||||
|
||||
},
|
||||
DisplayPrompt2(tipstr, showtime)
|
||||
@@ -665,7 +723,7 @@ Page({
|
||||
this.setData({
|
||||
devlist:devlist,
|
||||
Allcheckbox:values
|
||||
});
|
||||
}, () => { this.updateCounts && this.updateCounts(); });
|
||||
},
|
||||
checkboxSub(e){
|
||||
let devlist =this.data.devlist
|
||||
@@ -691,7 +749,7 @@ Page({
|
||||
devlist:devlist,
|
||||
Allcheckbox:values,
|
||||
checksun:checksun
|
||||
});
|
||||
}, () => { this.updateCounts && this.updateCounts(); });
|
||||
},
|
||||
SearchForHotels(e){
|
||||
//debugger
|
||||
@@ -889,6 +947,7 @@ Page({
|
||||
devlist[nindex].show=1
|
||||
devlist[nindex].checkbox=0
|
||||
devlist[nindex].UpgradeStatus=0
|
||||
devlist[nindex].UpgradeProgress = "";
|
||||
devlist[nindex].Model =_this.removeNullCharsAndInvisibleChars(devlist[nindex].Model)
|
||||
}
|
||||
}
|
||||
@@ -926,7 +985,7 @@ if (Nres.Status==200) {
|
||||
Pfilename:Pfilename,
|
||||
Gfilename:Gfilename,
|
||||
Upgradenode:Upgradenode
|
||||
});
|
||||
}, () => { this.updateCounts && this.updateCounts(); });
|
||||
console.log(devlist)
|
||||
} catch (err) {
|
||||
console.log('GetRoomTypeNode error', err);
|
||||
@@ -941,6 +1000,18 @@ if (Nres.Status==200) {
|
||||
}
|
||||
|
||||
},
|
||||
updateCounts() {
|
||||
try {
|
||||
const devlist = Array.isArray(this.data.devlist) ? this.data.devlist : [];
|
||||
const total = devlist.length;
|
||||
const checked = devlist.filter(d => d && d.checkbox).length;
|
||||
const success = devlist.filter(d => d && Number(d.UpgradeStatus) === 2).length;
|
||||
const fail = devlist.filter(d => d && Number(d.UpgradeStatus) === 3).length;
|
||||
this.setData({ checkedCount: checked, totalCount: total, successCount: success, failCount: fail });
|
||||
} catch (e) {
|
||||
console.log('updateCounts error', e);
|
||||
}
|
||||
},
|
||||
tabSelect(e) {
|
||||
this.setData({
|
||||
TabCur: e.currentTarget.dataset.id,
|
||||
|
||||
Reference in New Issue
Block a user