gate / static /index.html
harii66's picture
Upload 23 files
b4edbc0 verified
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Gateway</title>
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><defs><linearGradient id='g' x1='0%25' y1='0%25' x2='100%25' y2='100%25'><stop offset='0%25' style='stop-color:%23667eea'/><stop offset='100%25' style='stop-color:%23764ba2'/></linearGradient></defs><rect width='100' height='100' rx='20' fill='url(%23g)'/><rect x='20' y='30' width='60' height='40' rx='5' fill='white' opacity='0.3'/><rect x='25' y='35' width='50' height='30' rx='3' fill='%23fff'/><circle cx='50' cy='80' r='4' fill='%23fff'/></svg>">
<link rel="stylesheet" href="/static/css/style.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
</head>
<body>
<div class="login-overlay" id="loginOverlay">
<div class="login-box">
<div class="login-box-header">
<h1>🎬 Media Gateway</h1>
<p id="loginSubtitle">欢迎进入</p>
</div>
<div class="login-box-body">
<div id="loginError" class="login-error"></div>
<div class="login-info">
<strong>💡 登录说明</strong><br>
请输入用户名和密码<br>
</div>
<form id="loginForm">
<div class="login-form-group">
<label for="usernameInput">👤 用户名</label>
<input
type="text"
id="usernameInput"
placeholder="输入您的用户名"
autocomplete="username"
required
>
</div>
<div class="login-form-group">
<label for="passwordInput">🔒 密码</label>
<div class="password-toggle-login">
<input
type="password"
id="passwordInput"
placeholder="输入您的密码"
autocomplete="current-password"
required
>
<button type="button" class="password-toggle-btn-login" id="togglePasswordBtn">
👁️
</button>
</div>
</div>
<button type="submit" class="login-btn btn-glow" id="loginBtn">
🚀 立即登录
</button>
</form>
</div>
</div>
</div>
<div class="app-container" id="mainContainer">
<header class="header">
<div class="header-top">
<div>
<h1>🎬 Media Gateway</h1>
<p class="subtitle">v2.0</p>
</div>
<button class="btn-logout" id="logoutBtn">
🚪 退出登录
</button>
</div>
<div class="status-bar">
<div class="status-item">
<span class="status-label">🟢 状态</span>
<span id="apiStatus" class="status-value loading">检查中...</span>
</div>
<div class="status-item">
<span class="status-label">⚡ 响应</span>
<span id="responseTime" class="status-value">-</span>
</div>
<div class="status-item">
<span class="status-label">👤 用户</span>
<span id="currentUser" class="status-value">-</span>
<span id="userTypeBadge" class="user-type-badge"></span>
</div>
</div>
</header>
<nav class="tabs">
<a href="/channels" class="tab-button" data-page="channels">
📋 频道列表
</a>
<a href="/player" class="tab-button" data-page="player">
▶️ 直播播放
</a>
<a href="/epg" class="tab-button" data-page="epg">
📅 节目表
</a>
<a href="/cache" class="tab-button admin-only" data-page="cache">
🗄️ 缓存管理
</a>
<a href="/api-test" class="tab-button admin-only" data-page="api-test">
🔧 API测试
</a>
</nav>
<main class="app-body" id="appBody">
<div id="pageContent">
<div class="loading-spinner">
<div class="loading-spinner-large"></div>
<p style="margin-top: 15px; color: var(--primary); font-weight: 600;">加载中...</p>
</div>
</div>
</main>
<footer class="footer">
<p>
<strong>Media Gateway v2.0</strong>
</p>
</footer>
</div>
<script src="/static/js/common.js"></script>
<script src="/static/js/downloader.js"></script>
<script src="/static/js/user-data-sync.js"></script>
<script src="/static/js/auth.js"></script>
<script src="/static/js/router.js"></script>
</body>
</html>