fix(ui): 修事件表四列文字错位 + 跨域隐藏刷新按钮 + 补 Pages 部署文档
① 事件表「故障」「狼的评论系统」「UptimeRobot:403 Forbidden」不在同一行 根因(实测定位,非推断):四个 td 的 top/height 完全相同(696/72),错位在单元格内部。 .clamp2 为保证行等高固定了 height:2.8em(36px),而「故障」徽标只有 17px; 单元格按 vertical-align:middle 对齐时,两者居中基准不同,徽标比其它三列低约 9px。 修法:事件表单元格改顶部对齐 + clamp2 在事件表内改为 max-height。 实测修复后四列文字顶端错位 0px。 ② 跨域模式隐藏刷新按钮 /api/refresh 在跨域下必然被 refreshLocalOnly 挡下(对端是代理地址而非私网), 给一个必然失败的按钮不如隐藏。setSource 里按 source==='remote' 切换, 同源模式保留(并补断言守住这个行为)。 ③ 新增 docs/DEPLOY-PAGES.md GitHub Pages 面板 + 本地探针的完整部署指南:架构图、先决条件(含混合内容硬限制)、 本地探针启动与 2FA 绑定、Pages 配置三处填法、验证清单、安全要点、 Actions 快照备选方案、六条常见问题排查(Mixed Content / CORS / Failed to fetch 等)。 测试:verify-views 47→49 项(事件行文字顶端对齐 0px、同源保留刷新按钮)。 全项目 8 套 336 项通过。
This commit is contained in:
@@ -85,6 +85,16 @@ async function mapLimit(items, limit, fn) {
|
||||
function setSource(s) {
|
||||
state.source = s;
|
||||
$('source-badge').textContent = `数据源:${SOURCE_LABEL[s] ?? s}`;
|
||||
// 跨域模式下「刷新」没有意义:/api/refresh 会被服务端的 refreshLocalOnly 挡住
|
||||
// (对端是代理地址而非私网),前端也会退回只读。与其给一个必然失败的按钮,不如隐藏。
|
||||
const crossOrigin = s === 'remote';
|
||||
const btn = $('refresh-btn');
|
||||
if (btn) {
|
||||
btn.hidden = crossOrigin;
|
||||
btn.title = crossOrigin ? '' : '立即重新跑一轮探测(需要服务端允许)';
|
||||
}
|
||||
const ctrl = document.querySelector('.controls');
|
||||
if (ctrl) ctrl.classList.toggle('no-refresh', crossOrigin);
|
||||
}
|
||||
|
||||
// 跨域数据源:settings.dataUrl 指向另一台机器上的探针(通常是本机,但页面部署在别处)。
|
||||
|
||||
@@ -176,6 +176,8 @@ body {
|
||||
.view-btn + .view-btn { border-left: 1px solid var(--border); }
|
||||
.view-btn:hover { color: var(--text); }
|
||||
.view-btn.active { background: var(--accent); color: #fff; }
|
||||
/* 跨域模式下刷新按钮被隐藏(见 app.js setSource),此时控件区只剩视图切换 */
|
||||
.controls.no-refresh { gap: 0; }
|
||||
|
||||
/* ---------- 分组页签 ---------- */
|
||||
.group-tabs {
|
||||
@@ -549,6 +551,13 @@ tr[data-status="pending"] .ev-badge { background: var(--pending-bg); color: var(
|
||||
.ev-maint { margin-left: 6px; border-radius: 999px; padding: 0 6px; font-size: 10px; font-weight: 650; background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
|
||||
.ev-name { font-weight: 600; }
|
||||
.ev-detail { color: var(--text-2); }
|
||||
/* 事件表:单元格一律顶部对齐。clamp2 为了保证等高固定了 height:2.8em,
|
||||
若单元格按 middle 对齐,17px 的徽标与 36px 的文本框居中基准不同,
|
||||
同一行里「类型」会比「时间/目标/详情」低约 9px(实测截图确认)。 */
|
||||
.events-table td { vertical-align: top; }
|
||||
.events-table td > * { vertical-align: top; }
|
||||
/* 事件行的行高已由 --row-h 固定,clamp2 可以只做上限不必占满两行 */
|
||||
.events-table .clamp2 { height: auto; max-height: 2.8em; }
|
||||
/* 事件表的长文本同样限两行,保证与监控表格一致的等高行 */
|
||||
.ev-name, .ev-detail { white-space: normal; }
|
||||
.ev-name > .clamp2, .ev-detail > .clamp2 { overflow-wrap: anywhere; }
|
||||
|
||||
Reference in New Issue
Block a user