generated from dellevin/template
59 lines
2.5 KiB
HTML
59 lines
2.5 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>管理员登录</title>
|
|
<style>
|
|
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; background-color: #f0f2f5; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; }
|
|
.login-box { background: white; padding: 40px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); width: 320px; text-align: center; }
|
|
h2 { margin-top: 0; color: #333; }
|
|
input { width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; }
|
|
button { width: 100%; padding: 10px; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; margin-top: 10px; }
|
|
button:hover { background-color: #0056b3; }
|
|
.error { color: red; font-size: 14px; margin-top: 10px; display: none; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="login-box">
|
|
<h2>后台管理登录</h2>
|
|
<input type="text" id="username" placeholder="用户名">
|
|
<input type="password" id="password" placeholder="密码">
|
|
<button onclick="handleLogin()">登录</button>
|
|
<div id="errorMsg" class="error"></div>
|
|
</div>
|
|
|
|
<script>
|
|
function handleLogin() {
|
|
const username = document.getElementById('username').value;
|
|
const password = document.getElementById('password').value;
|
|
const errorDiv = document.getElementById('errorMsg');
|
|
|
|
fetch('/api/login', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ username, password })
|
|
})
|
|
.then(res => res.json())
|
|
.then(result => {
|
|
if (result.errno === 0) {
|
|
window.location.href = '/admin';
|
|
} else {
|
|
errorDiv.textContent = result.errmsg;
|
|
errorDiv.style.display = 'block';
|
|
}
|
|
})
|
|
.catch(err => {
|
|
errorDiv.textContent = '网络错误,请重试';
|
|
errorDiv.style.display = 'block';
|
|
});
|
|
}
|
|
|
|
// 允许按回车键登录
|
|
document.addEventListener('keypress', function(e) {
|
|
if (e.key === 'Enter') handleLogin();
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|