Files
ToNav-go/templates/admin/login.html
openclaw efaf787981 feat: ToNav-go v1.0.0 - 内部服务导航系统
功能:
- 前台导航: 分类Tab切换、实时搜索、健康状态指示、响应式适配
- 后台管理: 服务/分类CRUD、系统设置、登录认证(bcrypt)
- 健康检查: 定时检测(5min)、独立检查URL、三态指示(在线/离线/未检测)
- 云端备份: WebDAV上传/下载/恢复/删除、定时自动备份、本地备份管理

技术栈: Go + Gin + GORM + SQLite
2026-02-14 05:09:23 +08:00

41 lines
2.2 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>ToNav 管理登录</title>
<style>
:root { --main-red: #ff4d4f; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: "PingFang SC", -apple-system, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.login-card { background: #fff; border-radius: 20px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); max-width: 400px; width: 100%; padding: 40px 30px; }
.login-card h1 { text-align: center; margin-bottom: 30px; font-size: 28px; }
label { display: block; margin-bottom: 6px; font-size: 14px; color: #333; font-weight: 500; }
.input { width: 100%; padding: 12px; border: 1px solid #d9d9d9; border-radius: 10px; box-sizing: border-box; margin-bottom: 18px; font-size: 15px; -webkit-appearance: none; }
.input:focus { border-color: #667eea; outline: none; box-shadow: 0 0 0 2px rgba(102,126,234,0.2); }
.btn { width: 100%; padding: 13px; border: none; border-radius: 10px; cursor: pointer; font-weight: 600; background: var(--main-red); color: #fff; font-size: 16px; -webkit-appearance: none; }
.btn:active { transform: scale(0.98); }
.error-box { background: #fff2f0; border: 1px solid #ffccc7; color: #ff4d4f; padding: 10px; border-radius: 8px; margin-bottom: 20px; text-align: center; font-size: 14px; }
@media (max-width: 420px) {
.login-card { padding: 30px 20px; border-radius: 16px; }
.login-card h1 { font-size: 24px; }
}
</style>
</head>
<body>
<div class="login-card">
<h1>🧭 ToNav</h1>
{{ if .error }}
<div class="error-box">{{ .error }}</div>
{{ end }}
<form method="POST">
<label>用户名</label>
<input type="text" name="username" class="input" required autofocus autocomplete="username">
<label>密码</label>
<input type="password" name="password" class="input" required autocomplete="current-password">
<button type="submit" class="btn">登 录</button>
</form>
</div>
</body>
</html>