PHP 前后端一体:首页咨询师列表、预约表单、管理后台、二维码准入与邮件通知;敏感配置与提交数据通过 .gitignore 排除。 Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.3 KiB
PHP
56 lines
2.3 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
require __DIR__ . '/api/bootstrap.php';
|
|
sendHtmlNoCacheHeaders();
|
|
$v = getAssetVersion();
|
|
?><!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover">
|
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
|
<meta http-equiv="Pragma" content="no-cache">
|
|
<meta http-equiv="Expires" content="0">
|
|
<title>管理后台 - 心理咨询</title>
|
|
<link rel="stylesheet" href="<?= asset('css/base.css') ?>">
|
|
<link rel="stylesheet" href="<?= asset('css/form.css') ?>">
|
|
<link rel="stylesheet" href="<?= asset('css/admin.css') ?>">
|
|
</head>
|
|
<body>
|
|
<div class="page admin-page">
|
|
<section id="login-section" class="admin-login">
|
|
<h1 class="admin-login__title">管理后台</h1>
|
|
<form id="login-form">
|
|
<div class="form-field">
|
|
<label class="form-field__label" for="admin-user">账号</label>
|
|
<input type="text" id="admin-user" class="form-field__input" placeholder="请输入账号" autocomplete="username" required>
|
|
</div>
|
|
<div class="form-field">
|
|
<label class="form-field__label" for="admin-password">密码</label>
|
|
<input type="password" id="admin-password" class="form-field__input" placeholder="请输入密码" autocomplete="current-password" required>
|
|
</div>
|
|
<button type="submit" class="btn btn--primary btn--block">登录</button>
|
|
</form>
|
|
</section>
|
|
|
|
<section id="dashboard-section" style="display:none">
|
|
<div class="admin-header">
|
|
<h1 class="admin-header__title">提交记录 (<span id="submission-count">0</span>)</h1>
|
|
<button type="button" class="btn btn--ghost" id="logout-btn" style="min-height:36px;padding:0 12px;font-size:13px">退出</button>
|
|
</div>
|
|
|
|
<div class="admin-actions">
|
|
<button type="button" class="btn btn--primary" id="export-csv">下载 CSV</button>
|
|
<button type="button" class="btn btn--primary" id="export-json">下载 JSON</button>
|
|
<button type="button" class="btn btn--ghost" id="refresh-btn">刷新</button>
|
|
</div>
|
|
|
|
<div id="submission-list"></div>
|
|
</section>
|
|
</div>
|
|
|
|
<script src="<?= asset('js/api.js') ?>"></script>
|
|
<script src="<?= asset('js/admin.js') ?>"></script>
|
|
</body>
|
|
</html>
|