feat: 正式池断联设备自动重连——①扫描线程每轮顺带对断联的网络设备 adb_connect_light(幂等,连上即恢复,无需人工;此前只有启动时预连接一次,断联后不会自己回来);②断联设备不删不进待连接池(pending 语义=未授权新设备),GET discovery 返回 pool_offline(serial/型号/备注);③POST /api/devices/discovery/reconnect 手动立即重连;④发现面板加「设备池断联设备」区块(自动重连中 + 立即重连按钮)
This commit is contained in:
@@ -81,6 +81,29 @@ function loadDiscovery(){
|
||||
+'<button class="btn btn-xs" data-serial="'+esc(x.serial)+'" onclick="ignoreDiscoveryDev(this.dataset.serial)">忽略</button></td></tr>';
|
||||
}).join('');
|
||||
}
|
||||
// 正式池断联设备:仍在设备池(不删除),扫描线程自动重连,可手动立即重连
|
||||
const offTb=document.getElementById('tb-pool-offline');
|
||||
if(offTb){
|
||||
const off=(r.pool_offline||[]);
|
||||
if(!off.length){
|
||||
offTb.innerHTML='<tr><td colspan="5" class="empty">全部在线</td></tr>';
|
||||
}else{
|
||||
offTb.innerHTML=off.map(x=>{
|
||||
return '<tr><td style="font-family:monospace">'+esc(x.serial)+'</td>'
|
||||
+'<td>'+esc(x.model||'-')+'</td><td>'+esc(x.name||'')+'</td>'
|
||||
+'<td><span class="label label-danger">断联·自动重连中</span></td>'
|
||||
+'<td><button class="btn btn-xs" data-serial="'+esc(x.serial)+'" onclick="reconnectPoolDev(this.dataset.serial)">立即重连</button></td></tr>';
|
||||
}).join('');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function reconnectPoolDev(serial){
|
||||
apiPost('/api/devices/discovery/reconnect',{serial}).then(r=>{
|
||||
if(r&&r.ok){
|
||||
showToast('重连已启动(约 5-15 秒生效)','success');
|
||||
setTimeout(loadDiscovery,8000);
|
||||
}else showToast('重连失败: '+((r&&r.error)||''),'error');
|
||||
});
|
||||
}
|
||||
function toggleDiscovery(checked){
|
||||
|
||||
Reference in New Issue
Block a user