diff --git a/scripts/assets/web-probe-sentinel-dashboard/dashboard.css b/scripts/assets/web-probe-sentinel-dashboard/dashboard.css index 8dbcd969..750be284 100644 --- a/scripts/assets/web-probe-sentinel-dashboard/dashboard.css +++ b/scripts/assets/web-probe-sentinel-dashboard/dashboard.css @@ -943,6 +943,52 @@ select { grid-template-columns: 1fr; } + .table-frame { + overflow: visible; + } + + .runs-table, + .runs-table tbody, + .runs-table tr, + .runs-table td { + display: block; + width: 100%; + min-width: 0; + } + + .runs-table { + min-width: 0; + } + + .runs-table thead { + display: none; + } + + .runs-table tr { + padding: 10px 12px; + border-bottom: 1px solid #edf0f4; + } + + .runs-table td { + display: grid; + grid-template-columns: 82px minmax(0, 1fr); + gap: 8px; + padding: 6px 0; + border-bottom: 0; + } + + .runs-table td::before { + content: attr(data-label); + color: var(--muted); + font-size: 10px; + font-weight: 800; + text-transform: uppercase; + } + + .run-identity div { + grid-template-columns: 54px minmax(0, 1fr); + } + .run-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } diff --git a/scripts/assets/web-probe-sentinel-dashboard/dashboard.js b/scripts/assets/web-probe-sentinel-dashboard/dashboard.js index 4941cf60..cf333f3b 100644 --- a/scripts/assets/web-probe-sentinel-dashboard/dashboard.js +++ b/scripts/assets/web-probe-sentinel-dashboard/dashboard.js @@ -352,14 +352,14 @@ function renderRuns() { const runId = run.runId || run.id || "-"; const selected = state.selectedRunId === runId ? " selected-row" : ""; return ` -
+
run${escapeHtml(runId)}
observer${escapeHtml(run.observerId || "-")}
- ${escapeHtml(displayStatus(run.status))} - ${escapeHtml(run.scenarioId || "-")} - ${escapeHtml(String(run.findingCount ?? 0))}${run.maxSeverity ? ` ${escapeHtml(displaySeverity(run.maxSeverity))}` : ""} - ${escapeHtml(run.updatedAt ? formatRelative(run.updatedAt) : "-")}${escapeHtml(run.maintenance ? "维护窗口" : "")} + ${escapeHtml(displayStatus(run.status))} + ${escapeHtml(run.scenarioId || "-")} + ${escapeHtml(String(run.findingCount ?? 0))}${run.maxSeverity ? ` ${escapeHtml(displaySeverity(run.maxSeverity))}` : ""} + ${escapeHtml(run.updatedAt ? formatRelative(run.updatedAt) : "-")}${escapeHtml(run.maintenance ? "维护窗口" : "")} `; }).join(""); for (const row of refs.runsBody.querySelectorAll("tr[data-run-id]")) { diff --git a/scripts/src/hwlab-node/web-probe-observe.ts b/scripts/src/hwlab-node/web-probe-observe.ts index 49dd06bc..01c0f94a 100644 --- a/scripts/src/hwlab-node/web-probe-observe.ts +++ b/scripts/src/hwlab-node/web-probe-observe.ts @@ -708,11 +708,11 @@ try { const overflowLeft = -rect.left; if (overflowRight > 1 || overflowLeft > 1) { overflowCount += 1; - if (overflow.length < 20) { + if (overflow.length < 5) { overflow.push({ tag: element.tagName.toLowerCase(), - className: String(element.className || "").slice(0, 120), - text: String(element.textContent || "").replace(/\s+/g, " ").trim().slice(0, 120), + className: String(element.className || "").slice(0, 80), + text: String(element.textContent || "").replace(/\s+/g, " ").trim().slice(0, 80), x: Math.round(rect.x), y: Math.round(rect.y), width: Math.round(rect.width), @@ -748,8 +748,8 @@ try { layout, consoleCount: consoleMessages.length, requestFailureCount: requestFailures.length, - consoleMessages, - requestFailures, + consoleMessages: consoleMessages.slice(0, 5), + requestFailures: requestFailures.slice(0, 5), valuesRedacted: true, })); } finally {