16 lines
3.5 KiB
HTML
16 lines
3.5 KiB
HTML
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>CoffeeChat 管理后台</title><link rel="stylesheet" href="/admin/style.css"></head>
|
||
<body><main>
|
||
<header><div><span class="eyebrow">COFFEECHAT CONSOLE</span><h1>让每一次会面都有意义</h1></div><button id="logout" class="ghost">退出</button></header>
|
||
<section id="login" class="card login"><h2>管理员登录</h2><p>输入部署时配置的管理令牌。</p><form id="loginForm"><input id="token" type="password" placeholder="ADMIN_TOKEN" required><button>进入后台</button></form></section>
|
||
<div id="app" hidden>
|
||
<section class="stats"><article><b id="exhibitionCount">0</b><span>会展</span></article><article><b id="activityCount">0</b><span>活动</span></article><article><b id="pendingCount">0</b><span>待审核群</span></article></section>
|
||
<nav><button data-tab="activities" class="active">活动</button><button data-tab="exhibitions">会展</button><button data-tab="groups">群审核</button></nav>
|
||
<section id="activities" class="panel"><div class="section-title"><div><h2>活动管理</h2><p>创建活动并决定何时在小程序发布</p></div><button data-open="activityDialog">新建活动</button></div><div id="activityList" class="list"></div></section>
|
||
<section id="exhibitions" class="panel" hidden><div class="section-title"><div><h2>会展管理</h2><p>活动必须归属于一个会展</p></div><button data-open="exhibitionDialog">新建会展</button></div><div id="exhibitionList" class="list"></div></section>
|
||
<section id="groups" class="panel" hidden><div class="section-title"><div><h2>微信群审核</h2><p>确认群名称和二维码后再向参与者展示</p></div></div><div id="groupList" class="list"></div></section>
|
||
</div>
|
||
</main>
|
||
<dialog id="exhibitionDialog"><form id="exhibitionForm"><button type="button" class="close">×</button><h2>新建会展</h2><label>名称<input name="name" required></label><label>场馆<input name="venue" required></label><label>地址<input name="address"></label><div class="grid"><label>开始时间<input name="startsAt" type="datetime-local" required></label><label>结束时间<input name="endsAt" type="datetime-local" required></label></div><label>描述<textarea name="description" rows="5"></textarea></label><label>封面图 URL<input name="coverUrl" type="url"></label><button>保存会展</button></form></dialog>
|
||
<dialog id="activityDialog"><form id="activityForm"><button type="button" class="close">×</button><h2>新建活动</h2><label>所属会展<select name="exhibitionId" id="exhibitionSelect" required></select></label><label>标题<input name="title" required></label><label>地点<input name="location"></label><div class="grid"><label>开始时间<input name="startsAt" type="datetime-local" required></label><label>结束时间<input name="endsAt" type="datetime-local"></label></div><label>活动描述<textarea name="description" rows="6"></textarea></label><label>活动图片(最多 9 张)<input name="images" type="file" accept="image/jpeg,image/png,image/webp,image/gif" multiple></label><label>也可填写图片 URL(每行一张)<textarea name="imageUrls" rows="3"></textarea></label><label>标签<div id="tagChecks" class="checks"></div></label><label class="inline"><input name="published" type="checkbox"> 立即发布</label><button>保存活动</button></form></dialog>
|
||
<div id="toast"></div><script src="/admin/app.js"></script></body></html>
|