39235-vm/admin.php
2026-03-18 12:17:47 +00:00

214 lines
8.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
@ini_set('display_errors', '1');
@error_reporting(E_ALL);
@date_default_timezone_set('UTC');
?>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SMS Chat — 管理后台</title>
<?php
// Read project preview data from environment
$projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? '';
$projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
?>
<?php if ($projectDescription): ?>
<!-- Meta description -->
<meta name="description" content='<?= htmlspecialchars($projectDescription) ?>' />
<!-- Open Graph meta tags -->
<meta property="og:description" content="<?= htmlspecialchars($projectDescription) ?>" />
<!-- Twitter meta tags -->
<meta property="twitter:description" content="<?= htmlspecialchars($projectDescription) ?>" />
<?php endif; ?>
<?php if ($projectImageUrl): ?>
<!-- Open Graph image -->
<meta property="og:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
<!-- Twitter image -->
<meta property="twitter:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
<?php endif; ?>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/css/custom.css?v=<?= time() ?>" rel="stylesheet">
</head>
<body data-page="admin">
<header class="topbar">
<div class="brand">
<div class="brand-badge">S</div>
<div>
SMS Chat
<div class="small text-muted">管理后台</div>
</div>
</div>
<div class="meta">
<span class="status-pill">● 系统正常</span>
<span>管理员Admin</span>
<a class="btn btn-sm btn-outline-secondary" href="index.php">返回工作台</a>
</div>
</header>
<main class="admin-shell">
<aside class="admin-sidebar">
<nav class="nav flex-column">
<a class="nav-link active" href="#" data-section-link="dashboard">仪表盘</a>
<a class="nav-link" href="#" data-section-link="contacts">客户管理</a>
<a class="nav-link" href="#" data-section-link="messages">消息记录</a>
<a class="nav-link" href="#" data-section-link="send">发送短信</a>
<a class="nav-link" href="#" data-section-link="auto">自动回复</a>
<a class="nav-link" href="#" data-section-link="settings">Twilio 配置</a>
<a class="nav-link" href="#" data-section-link="system">系统设置</a>
</nav>
</aside>
<section class="admin-content">
<div class="section-card mb-4" data-section="dashboard">
<h5 class="mb-3">今日概览</h5>
<div class="row g-3">
<div class="col-md-4">
<div class="stat-card">
<div class="muted">今日发送</div>
<div class="fs-3 fw-semibold" data-stat="sent">0</div>
</div>
</div>
<div class="col-md-4">
<div class="stat-card">
<div class="muted">今日接收</div>
<div class="fs-3 fw-semibold" data-stat="received">0</div>
</div>
</div>
<div class="col-md-4">
<div class="stat-card">
<div class="muted">活跃客户</div>
<div class="fs-3 fw-semibold" data-stat="active">0</div>
</div>
</div>
</div>
</div>
<div class="section-card mb-4 d-none" data-section="contacts">
<h5 class="mb-3">客户管理</h5>
<div class="table-responsive">
<table class="table align-middle">
<thead>
<tr>
<th>手机号</th>
<th>标签</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody data-admin-contacts></tbody>
</table>
</div>
</div>
<div class="section-card mb-4 d-none" data-section="messages">
<h5 class="mb-3">消息记录</h5>
<div class="table-responsive">
<table class="table align-middle">
<thead>
<tr>
<th>手机号</th>
<th>方向</th>
<th>内容</th>
<th>时间</th>
</tr>
</thead>
<tbody data-admin-messages></tbody>
</table>
</div>
</div>
<div class="section-card mb-4 d-none" data-section="send">
<h5 class="mb-3">发送短信</h5>
<form class="row g-3" data-send-form>
<div class="col-md-4">
<label class="form-label">手机号</label>
<input class="form-control" name="phone" placeholder="+86 138 0013 8000" required>
</div>
<div class="col-md-8">
<label class="form-label">短信内容</label>
<input class="form-control" name="body" placeholder="输入要发送的短信内容" required>
</div>
<div class="col-12">
<button class="btn btn-primary px-4" type="submit">发送</button>
</div>
</form>
</div>
<div class="section-card mb-4 d-none" data-section="auto">
<h5 class="mb-3">自动回复</h5>
<form class="row g-3 mb-4" data-reply-form>
<div class="col-md-4">
<label class="form-label">关键词</label>
<input class="form-control" name="keyword" required>
</div>
<div class="col-md-8">
<label class="form-label">回复内容</label>
<input class="form-control" name="reply" required>
</div>
<div class="col-12">
<button class="btn btn-primary px-4" type="submit">添加规则</button>
</div>
</form>
<ul class="list-group" data-reply-list></ul>
</div>
<div class="section-card mb-4 d-none" data-section="settings">
<h5 class="mb-3">Twilio 配置</h5>
<form class="row g-3" data-settings-form>
<div class="col-md-4">
<label class="form-label">Account SID</label>
<input class="form-control" name="sid" placeholder="ACxxxxxxxx">
</div>
<div class="col-md-4">
<label class="form-label">Auth Token</label>
<input class="form-control" name="token" placeholder="••••••••">
</div>
<div class="col-md-4">
<label class="form-label">From 号码</label>
<input class="form-control" name="from" placeholder="+14155550199">
</div>
<div class="col-12">
<label class="form-label">Webhook 地址</label>
<input class="form-control" name="webhook" placeholder="https://your-domain.com/twilio/webhook">
</div>
<div class="col-12">
<button class="btn btn-primary px-4" type="submit">保存配置</button>
</div>
</form>
</div>
<div class="section-card d-none" data-section="system">
<h5 class="mb-3">系统设置</h5>
<form class="row g-3" data-system-form>
<div class="col-md-4">
<label class="form-label">刷新频率(秒)</label>
<input class="form-control" name="refresh_interval" value="3">
</div>
<div class="col-md-4">
<label class="form-label">主题</label>
<select class="form-select" name="theme">
<option value="light">浅色</option>
<option value="dark">深色</option>
</select>
</div>
<div class="col-md-4">
<label class="form-label">管理员名称</label>
<input class="form-control" name="admin_name" value="Admin">
</div>
<div class="col-12">
<button class="btn btn-primary px-4" type="submit">保存设置</button>
</div>
</form>
</div>
</section>
</main>
<div class="toast-container"></div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" defer></script>
<script src="assets/js/main.js?v=<?= time() ?>" defer></script>
</body>
</html>