- app.js: remove window.Dashboard=... block that crashed the whole file before page scripts load (ReferenceError: Dashboard is not defined). Page objects are top-level const in global lexical scope; PAGE_OBJS map + indirect eval in loadScript onload now expose them to window for inline onclick / data-action lookups - index.html: Font Awesome 6.5.1 localized (css/fontawesome.min.css + 8 webfont files) - no more cdnjs CDN (Edge Tracking Prevention blocked it, CN access unstable)
62 lines
2.2 KiB
HTML
62 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 id="site-title">MC举报系统</title>
|
|
<link rel="stylesheet" href="css/style.css">
|
|
<!-- Font Awesome 本地化(避免 CDN 被浏览器跟踪防护拦截/国内访问慢) -->
|
|
<link rel="stylesheet" href="css/fontawesome.min.css">
|
|
</head>
|
|
<body>
|
|
<div id="top-bar">
|
|
<div class="top-bar-inner">
|
|
<a href="#/home" class="top-logo"><i class="fas fa-shield-halved"></i><span id="logo-text">MC举报系统</span></a>
|
|
<div id="top-auth">
|
|
<a href="#/login" class="btn btn-o btn-sm"><i class="fas fa-sign-in-alt"></i> 登录</a>
|
|
<a href="#/register" class="btn btn-p btn-sm"><i class="fas fa-user-plus"></i> 注册</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="app">
|
|
<div id="public-page" class="page hidden"></div>
|
|
<div id="main-layout" class="hidden">
|
|
<aside id="sidebar">
|
|
<div class="sidebar-header"><i class="fas fa-shield-halved"></i><span id="sidebar-title">举报系统</span></div>
|
|
<nav id="sidebar-nav"></nav>
|
|
<div class="sidebar-footer">
|
|
<div id="user-info"></div>
|
|
<button class="btn btn-sm btn-outline w-full" id="sidebar-logout"><i class="fas fa-sign-out-alt"></i> 退出</button>
|
|
</div>
|
|
</aside>
|
|
<main id="main-content">
|
|
<header id="page-header"><h1 id="page-title"></h1><div id="page-actions"></div></header>
|
|
<div id="page-alert"></div>
|
|
<div id="page-content"></div>
|
|
</main>
|
|
</div>
|
|
</div>
|
|
|
|
<footer id="page-footer">
|
|
<div class="footer-inner">
|
|
<span id="footer-copyright">© 2024 MC举报系统</span>
|
|
<span id="footer-icp"></span>
|
|
</div>
|
|
</footer>
|
|
|
|
<div id="modal-overlay" class="hidden">
|
|
<div class="modal-box">
|
|
<div class="modal-h"><h3 id="modal-title"></h3><button id="modal-close-btn">×</button></div>
|
|
<div class="modal-b" id="modal-body"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="js/utils.js"></script>
|
|
<script src="js/api.js"></script>
|
|
<script src="js/auth.js"></script>
|
|
<!-- 页面脚本按路由懒加载(app.js 动态注入), 不再全量下发 -->
|
|
<script src="js/app.js"></script>
|
|
</body>
|
|
</html>
|