Merge branch 'fix/device-name-display'——选择设备与所有通知显示设备名(不再显示 IP)+ 修 /locate 500/XSS

This commit is contained in:
2026-09-24 09:17:15 +08:00
10 changed files with 156 additions and 15 deletions
+14 -9
View File
@@ -592,10 +592,7 @@ var _stepEditor={
if(!list)return;
if(!r||!r.ok){list.innerHTML='<div class="se-empty">'+esc((r&&r.error)||'获取设备失败')+'</div>';return;}
list.innerHTML=(r.devices||[]).map(function(d){
return '<div class="el-device-card" onclick="_stepEditor._runTestStep(\''+esc(d.serial)+'\')">'+
'<div class="edc-icon">📱</div>'+
'<div class="edc-info"><div class="edc-serial">'+esc(d.serial)+'</div>'+
'<div class="edc-model">'+esc(d.model||d.product||'')+'</div></div></div>';
return self._devCard(d, "_stepEditor._runTestStep('"+esc(d.serial)+"')");
}).join('')||'<div class="se-empty">无可用设备</div>';
});
},
@@ -918,8 +915,20 @@ var _stepEditor={
// 直接弹设备选择页(独立模态框,不影响任务编辑窗口)
this._showDevicePicker();
},
// 设备选择卡片(「抓取元素」与「测试此步骤」两处共用):
// **设备名优先**,型号与地址降为副标题——同型号好几台时只有平台起的名字
// (A08)能认出"是哪一台",光看 IP 选错设备是常事。
_devCard:function(d,onclick){
var sub=[d.model||d.product||'', d.serial||''].filter(Boolean).join(' · ');
return '<div class="el-device-card" onclick="'+onclick+'">'+
'<div class="edc-icon">📱</div>'+
'<div class="edc-info"><div class="edc-name">'+esc(d.name||d.serial)+'</div>'+
'<div class="edc-serial">'+esc(sub)+'</div></div>'+
(d.status?'<span class="edc-status">'+esc(d.status)+'</span>':'')+'</div>';
},
// 步骤1:设备选择页
_showDevicePicker:function(){
var self=this;
document.getElementById('el-picker-title').textContent='抓取元素 - 选择设备';
document.getElementById('el-picker-body').innerHTML='<div class="el-device-grid"><div class="egd-title">选择要抓取元素的设备</div><div id="el-device-list">加载中...</div></div>';
document.getElementById('el-picker-footer').innerHTML='<button class="btn" onclick="closeElPicker()">取消</button>';
@@ -930,11 +939,7 @@ var _stepEditor={
var devices=res.devices||[];
if(!devices.length){list.innerHTML='<div class="se-empty">uiauto2 未发现已连接设备</div>';return;}
list.innerHTML=devices.map(function(d){
return '<div class="el-device-card" onclick="_stepEditor._showElPicker(\''+esc(d.serial)+'\')">'+
'<div class="edc-icon">📱</div>'+
'<div class="edc-info"><div class="edc-serial">'+esc(d.serial)+'</div>'+
'<div class="edc-model">'+esc(d.model||d.product||'')+'</div></div>'+
'<span class="edc-status">'+esc(d.status||'device')+'</span></div>';
return self._devCard(d, "_stepEditor._showElPicker('"+esc(d.serial)+"')");
}).join('');
}).catch(function(e){
document.getElementById('el-device-list').innerHTML='<div class="se-empty">请求失败: '+esc(e)+'<br><button class="btn btn-sm" style="margin-top:10px" onclick="_stepEditor._showDevicePicker()">重试</button></div>';