feat: 自动化增加起止时间 + 本轮每次测试明细表

- 显示自动化开始/结束时间
- 测试信息区新增本轮测试明细表(序号、状态、关键字段)
- 方便对照平均值是否计算正确
This commit is contained in:
wangfq
2026-05-28 15:19:20 +08:00
parent dee27eb3be
commit 60215eef48
4 changed files with 84 additions and 0 deletions

View File

@@ -50,6 +50,11 @@ async function startAuto() {
autoRemaining = count;
autoStartTime = new Date().toISOString(); // 记录开始时间
// 显示开始时间
document.getElementById("auto-time").style.display = "block";
document.getElementById("time-start").textContent = new Date().toLocaleString();
document.getElementById("time-end").textContent = "-";
// 清空显示
resetAverages();
document.getElementById("latest-result").innerHTML = '<p class="placeholder">等待测试...</p>';
@@ -59,6 +64,10 @@ async function startAuto() {
document.getElementById("stat-failed").textContent = "0";
document.getElementById("stat-remaining").textContent = count;
// 清空测试明细
document.querySelector("#records-table tbody").innerHTML = "";
document.getElementById("records-empty").style.display = "block";
const btn = document.getElementById("btn-auto");
btn.textContent = "结束";
btn.className = "btn-stop";
@@ -88,6 +97,8 @@ function stopAuto() {
autoRunning = false;
clearInterval(pollInterval);
pollInterval = null;
// 记录结束时间
document.getElementById("time-end").textContent = new Date().toLocaleString();
// 清除所有超时计时器
for (const id in timeoutTimers) {
clearTimeout(timeoutTimers[id]);
@@ -125,6 +136,11 @@ async function pollProgress() {
renderAverages(data.averages);
}
// 显示本轮测试明细
if (data.records) {
renderRecords(data.records);
}
// 自动插入下一条 0xB0
if (autoRemaining > 0) {
// 检查是否还有 pending 的记录,没有则插入新的
@@ -216,3 +232,31 @@ function resetAverages() {
document.getElementById("avg-" + id).textContent = "-";
});
}
// ─── 显示本轮测试明细 ──────────────────────────
function renderRecords(records) {
if (!records || !records.length) {
document.getElementById("records-empty").style.display = "block";
document.getElementById("records-table").style.display = "none";
return;
}
document.getElementById("records-empty").style.display = "none";
document.getElementById("records-table").style.display = "";
const tbody = document.querySelector("#records-table tbody");
tbody.innerHTML = records.map((r, i) => `
<tr>
<td>${i + 1}</td>
<td style="color:${r.sn_state === 2 ? '#27ae60' : r.sn_state === 3 ? '#e74c3c' : '#888'}">
${r.sn_state === 2 ? 'OK' : r.sn_state === 3 ? '超时' : '?'}
</td>
<td>${r.ppvalue?.toFixed(2) || '-'}</td>
<td>${r.idle_freq || '-'}</td>
<td>${r.enter_dist || '-'}</td>
<td>${r.exit_dist || '-'}</td>
<td>${toSpeed(r.enter_speed)}</td>
<td>${r.create_time || '-'}</td>
</tr>
`).join("");
}