|
|
<!DOCTYPE html> |
|
|
<html lang="zh-CN"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>登录</title> |
|
|
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> |
|
|
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> |
|
|
|
|
|
<link rel="stylesheet" href="/static/style.css"> |
|
|
</head> |
|
|
<body> |
|
|
<div id="app"> |
|
|
<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top"> |
|
|
<div class="container-fluid"> |
|
|
<a class="navbar-brand d-flex align-items-center" href="/"> |
|
|
<img src="/static/images/ShareAPI.png" alt="API Router Logo" width="30" height="30" class="d-inline-block align-text-top me-2"> |
|
|
<span class="fw-bold fs-5">API Router</span> |
|
|
</a> |
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> |
|
|
<span class="navbar-toggler-icon"></span> |
|
|
</button> |
|
|
<div class="collapse navbar-collapse" id="navbarNav"> |
|
|
<ul class="navbar-nav me-auto mb-2 mb-lg-0"> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-comment-dots me-1"></i> 聊天 |
|
|
</a> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-key me-1"></i> 令牌 |
|
|
</a> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-shopping-cart me-1"></i> 充值 |
|
|
</a> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-chart-bar me-1"></i> 总览 |
|
|
</a> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-file-alt me-1"></i> 日志 |
|
|
</a> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-cog me-1"></i> 设置 |
|
|
</a> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center me-3" href="#"> |
|
|
<i class="fas fa-info-circle me-1"></i> 关于 |
|
|
</a> |
|
|
</li> |
|
|
</ul> |
|
|
<ul class="navbar-nav ms-auto mb-2 mb-lg-0"> |
|
|
<li class="nav-item dropdown"> |
|
|
<a class="nav-link dropdown-toggle d-flex align-items-center me-3" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> |
|
|
<i class="fas fa-font me-1"></i> A|文 |
|
|
</a> |
|
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown"> |
|
|
<li><a class="dropdown-item" href="#">中文</a></li> |
|
|
<li><a class="dropdown-item" href="#">English</a></li> |
|
|
</ul> |
|
|
</li> |
|
|
<li class="nav-item"> |
|
|
<a class="nav-link d-flex align-items-center" href="/login"> |
|
|
<i class="fas fa-user me-1"></i> 登录 |
|
|
</a> |
|
|
</li> |
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
</nav> |
|
|
|
|
|
<div class="auth-container d-flex justify-content-center align-items-center"> |
|
|
<div class="login-card card shadow-sm p-4"> |
|
|
<div class="text-center mb-4 d-flex align-items-center justify-content-center"> |
|
|
<img src="/static/images/ShareAPI.png" alt="API Router Logo" width="48" height="48" class="me-2"> |
|
|
<h3 class="card-title mb-0">用户登录</h3> |
|
|
</div> |
|
|
<form @submit.prevent="login"> |
|
|
<div class="mb-3 input-group"> |
|
|
<span class="input-group-text"><i class="fas fa-user"></i></span> |
|
|
<input type="email" class="form-control" id="loginEmail" v-model="loginForm.email" placeholder="用户名 / 邮箱地址" required autocomplete="username"> |
|
|
</div> |
|
|
<div class="mb-3 input-group"> |
|
|
<span class="input-group-text"><i class="fas fa-lock"></i></span> |
|
|
<input type="password" class="form-control" id="loginPassword" v-model="loginForm.password" placeholder="密码" required autocomplete="current-password"> |
|
|
</div> |
|
|
<button type="submit" class="btn btn-primary w-100 mb-3">登录</button> |
|
|
<div class="d-flex justify-content-between mb-3"> |
|
|
<div class="text-decoration-none text-muted">忘记密码?<a href="/reset-password"><span class="text-primary">点击重置</span></a></div> |
|
|
<div class="text-decoration-none text-muted">没有账号?<a href="/signup"><span class="text-primary">点击注册</span></a></div> |
|
|
</div> |
|
|
<div class="divider my-4"> |
|
|
<span class="divider-text">使用其他方式登录</span> |
|
|
</div> |
|
|
<div class="d-flex justify-content-center social-login-icons"> |
|
|
<a href="#" class="btn btn-outline-secondary rounded-circle mx-2 github-icon"><i class="fab fa-github fa-lg"></i></a> |
|
|
<a href="#" class="btn btn-outline-secondary rounded-circle mx-2 wechat-icon"><i class="fab fa-weixin fa-lg"></i></a> |
|
|
</div> |
|
|
</form> |
|
|
<p v-if="authMessage" class="mt-3 text-center text-info"> |
|
|
{{ authMessage }} |
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<footer class="footer text-center py-3 mt-auto"> |
|
|
<p class="mb-0 text-muted">API Router v0.6.11-preview.6 由 JustSong 构建,源代码遵循 <a href="#" class="text-decoration-none">MIT 协议</a></p> |
|
|
</footer> |
|
|
</div> |
|
|
|
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/vue@3/dist/vue.global.prod.js"></script> |
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> |
|
|
|
|
|
<script type="module" src="/static/app.js"></script> |
|
|
</body> |
|
|
</html> |
|
|
|