4a989bf50f
后端: - 新增 /api/system/ws WebSocket端点 替代HTTP轮询 (每2s推送系统+框架数据) - 修复 uptime始终为0 (sm.start_time时间戳) - 网络采集新增TX上行+实时网速(delta法) - 进程内存采集 (/proc/self/status VmRSS) - 抑制aiohttp内部WS帧日志防刷爆日志文件 前端: - 仪表盘: HTTP轮询→WS连接+指数退避自动重连 - 实时日志: 修复onclose重连bug+批量渲染30fps+500行上限防卡死 - 网速卡片: DualLineChart双线图(下行实线/上行虚线) - Y轴零点偏移-5% 防止零网速贴底 - 所有按钮修复MD3组合类(btn+btn-tonal+btn-sm) - 页面加载器: 改动态script元素执行 修复onclick全局作用域问题 - emoji图标→Material Design SVG图标 - CSS去残留</style>+新增.nav-item svg约束 - 登录页输入框+标签左对齐+按钮MD3样式 - 多个版本号显示修复(去双重v前缀) - chart.js/app.js/HTML页面统一加版本号防浏览器缓存 - .gitignore新增docs/目录 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
1.6 KiB
HTML
37 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>SenSu 登录</title>
|
|
<link rel="stylesheet" href="./static/css/style.css">
|
|
</head>
|
|
<body>
|
|
<div class="login-wrapper">
|
|
<div class="login-card">
|
|
<h2>🐱 SenSu Login</h2>
|
|
<div class="input-group"><label>用户名</label><input class="input" type="text" id="u" value="admin"></div>
|
|
<div class="input-group"><label>密码</label><input class="input" type="password" id="p" value="admin"></div>
|
|
<button class="btn btn-filled" style="width:100%;margin-top:8px" onclick="doLogin()">进入系统</button>
|
|
<div id="err" class="err-msg"></div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
async function doLogin() {
|
|
const u = document.getElementById('u').value;
|
|
const p = document.getElementById('p').value;
|
|
const err = document.getElementById('err');
|
|
err.textContent = "验证中...";
|
|
try {
|
|
const res = await fetch('./api/login', {
|
|
method: 'POST', headers: {'Content-Type': 'application/json'},
|
|
credentials: 'include', body: JSON.stringify({username: u, password: p})
|
|
});
|
|
const data = await res.json();
|
|
if(res.ok && data.success) window.location.href = './home.html';
|
|
else err.textContent = data.msg || "凭证错误";
|
|
} catch(e) { err.textContent = "网络异常"; }
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|