阶段3: 摘除 STF——删除 stf_client/stf_device_mgmt 与全部引用(STF 容器重启/设备管理/强制释放占用/agent 按钮/占用列),调度与设备管理完全基于本地设备池+adb;错误类迁入 device_worker,create_worker 去 stf 参数
This commit is contained in:
@@ -9,8 +9,6 @@ function _sortValue(dev,key){
|
||||
if(key==='progress'){
|
||||
const p=dev.progress||{};
|
||||
v=(p.done||0)+(((p.total||0)>0?(p.done||0)/(p.total):0)*10000);
|
||||
}else if(key==='stf_occupied'){
|
||||
v=dev.stf_occupied?1:0;
|
||||
}else if(key==='worker_status'){
|
||||
// 按状态优先级排序:running>connecting>idle>done>error>released
|
||||
const order={running:0,connecting:1,idle:2,done:3,released:4,error:5,failed:6};
|
||||
@@ -231,14 +229,12 @@ async function loadMonitor(){
|
||||
const running=devices.filter(x=>x.worker_status==='running').length;
|
||||
const idle=devices.filter(x=>x.worker_status==='idle').length;
|
||||
const error=devices.filter(x=>['error','failed'].includes(x.worker_status)).length;
|
||||
const occupied=devices.filter(x=>x.stf_occupied).length;
|
||||
const total=devices.length;
|
||||
const online=devices.filter(x=>x.present).length;
|
||||
const cards=[
|
||||
{n:total,l:'设备总数',c:'#3b82f6'},
|
||||
{n:online,l:'在线',c:'#10b981'},
|
||||
{n:running,l:'运行中',c:'#10b981'},
|
||||
{n:occupied,l:'STF占用',c:'#f59e0b'},
|
||||
{n:idle,l:'空闲',c:'#94a3b8'},
|
||||
{n:error,l:'异常',c:'#ef4444'},
|
||||
];
|
||||
@@ -318,7 +314,6 @@ function renderDevices(){
|
||||
initListSearch('devices','search-devices');
|
||||
}
|
||||
function renderDeviceRow(dev){
|
||||
const stf=dev.stf_occupied?'<span class="label label-success">占用</span>':'<span class="label label-default">空闲</span>';
|
||||
const offline=dev.present?'':' <span class="label label-danger">离线</span>';
|
||||
const st=STATUS_MAP[dev.worker_status]||{t:dev.worker_status,c:'default'};
|
||||
const wb='<span class="label label-'+st.c+'">'+st.t+'</span>';
|
||||
@@ -355,7 +350,7 @@ function renderDeviceRow(dev){
|
||||
const checked=_selectedSerials.has(dev.serial)?'checked':'';
|
||||
const rowCls=_selectedSerials.has(dev.serial)?'row-checked':'';
|
||||
const cb='<input type="checkbox" '+checked+' onclick="toggleDevice(\''+esc(dev.serial)+'\',this.checked)">';
|
||||
return '<tr class="'+rowCls+'"><td class="col-cb">'+cb+'</td><td>'+devLabel+'</td><td>'+esc(dev.model)+'</td><td>'+stf+offline+'</td><td>'+wb+'</td><td>'+fg+'</td><td>'+prog+'</td><td>'+tname+retry+endInfo+'</td><td class="text-muted">'+esc(dev.current_action||'-')+warnInfo+'</td><td class="err-text" title="'+esc(dev.last_error||'')+'">'+esc(dev.last_error||'-')+'</td><td>'+btns+'</td></tr>';
|
||||
return '<tr class="'+rowCls+'"><td class="col-cb">'+cb+'</td><td>'+devLabel+'</td><td>'+esc(dev.model)+'</td><td>'+offline+'</td><td>'+wb+'</td><td>'+fg+'</td><td>'+prog+'</td><td>'+tname+retry+endInfo+'</td><td class="text-muted">'+esc(dev.current_action||'-')+warnInfo+'</td><td class="err-text" title="'+esc(dev.last_error||'')+'">'+esc(dev.last_error||'-')+'</td><td>'+btns+'</td></tr>';
|
||||
}
|
||||
|
||||
async function loadJobsForMonitor(){
|
||||
|
||||
Reference in New Issue
Block a user