135 lines
7.5 KiB
HTML
135 lines
7.5 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>角色管理 - CDK兑换系统</title>
|
||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||
<link href="{{ url_for('static', filename='css/particle-bg.css') }}" rel="stylesheet">
|
||
</head>
|
||
<body>
|
||
<!-- Particles.js container -->
|
||
<div id="particles-js"></div>
|
||
|
||
<div class="container mt-5">
|
||
<div class="row justify-content-center">
|
||
<div class="col-md-10">
|
||
<div class="card">
|
||
<div class="card-header d-flex justify-content-between align-items-center">
|
||
<h2>AzerothCore 角色管理</h2>
|
||
<div>
|
||
<a href="{{ url_for('admin_dashboard') }}" class="btn btn-outline-primary btn-sm">返回仪表盘</a>
|
||
</div>
|
||
</div>
|
||
<div class="card-body">
|
||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||
{% if messages %}
|
||
{% for category, message in messages %}
|
||
<div class="alert alert-{{ category }} mt-3" role="alert">
|
||
{{ message }}
|
||
</div>
|
||
{% endfor %}
|
||
{% endif %}
|
||
{% endwith %}
|
||
|
||
<div class="row mb-4">
|
||
<div class="col-md-6">
|
||
<div class="card">
|
||
<div class="card-header">
|
||
<h4>手动分配CDK</h4>
|
||
</div>
|
||
<div class="card-body">
|
||
<form method="post" action="{{ url_for('link_account') }}">
|
||
<div class="mb-3">
|
||
<label for="character_name" class="form-label">角色名称</label>
|
||
<input type="text" class="form-control" id="character_name" name="character_name" required>
|
||
</div>
|
||
<div class="mb-3">
|
||
<label for="post_url" class="form-label">宣传链接</label>
|
||
<input type="url" class="form-control" id="post_url" name="post_url" required>
|
||
<div class="form-text">可以填写任意有效URL,用于记录</div>
|
||
</div>
|
||
<div class="text-center">
|
||
<button type="submit" class="btn btn-primary">分配CDK</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6">
|
||
<div class="card">
|
||
<div class="card-header">
|
||
<h4>角色说明</h4>
|
||
</div>
|
||
<div class="card-body">
|
||
<p>这里显示的是AzerothCore数据库中的角色信息。</p>
|
||
<p>您可以手动为角色分配CDK,无需验证宣传内容。</p>
|
||
<p>注意:</p>
|
||
<ul>
|
||
<li>角色名称必须完全匹配</li>
|
||
<li>角色必须存在于数据库中</li>
|
||
<li>每个角色只能分配一个CDK</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<div class="card-header">
|
||
<h4>角色列表</h4>
|
||
</div>
|
||
<div class="card-body">
|
||
{% if characters %}
|
||
<div class="table-responsive">
|
||
<table class="table table-dark table-striped">
|
||
<thead>
|
||
<tr>
|
||
<th>GUID</th>
|
||
<th>账号ID</th>
|
||
<th>角色名</th>
|
||
<th>等级</th>
|
||
<th>种族</th>
|
||
<th>职业</th>
|
||
<th>性别</th>
|
||
<th>状态</th>
|
||
<th>金币</th>
|
||
<th>游戏时间</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for character in characters %}
|
||
<tr>
|
||
<td>{{ character.guid }}</td>
|
||
<td>{{ character.account }}</td>
|
||
<td>{{ character.name }}</td>
|
||
<td>{{ character.level }}</td>
|
||
<td>{{ character.race_text }}</td>
|
||
<td>{{ character.class_text }}</td>
|
||
<td>{{ character.gender_text }}</td>
|
||
<td>{{ character.online_status }}</td>
|
||
<td>{{ character.gold|round(2) }}G</td>
|
||
<td>{{ character.hours_played|round(1) }}小时</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
{% else %}
|
||
<div class="alert alert-info">
|
||
无法获取角色列表,请检查数据库连接配置。
|
||
</div>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||
<script src="{{ url_for('static', filename='js/particles-config.js') }}"></script>
|
||
<script src="{{ url_for('static', filename='js/cursor-effects.js') }}"></script>
|
||
</body>
|
||
</html> |