Files

117 lines
4.8 KiB
HTML

{% extends "base.html" %}
{% block title %}管理仪表板 - ap_ds{% endblock %}
{% block content %}
<div class="repo-container">
<div class="repo-flex repo-justify-between repo-items-center repo-mb-6">
<h1 class="repo-text-2xl repo-font-bold">管理仪表板</h1>
<a href="{{ url_for('admin_logout') }}" class="repo-btn repo-btn--danger">登出</a>
</div>
<!-- 统计卡片 -->
<div class="repo-row repo-mb-6">
<div class="repo-col">
<div class="repo-card">
<div class="repo-card__body repo-text-center">
<div class="repo-text-3xl repo-font-bold" style="color: var(--repo-color-primary);">{{ stats.branches }}</div>
<div class="repo-text-secondary">分支</div>
</div>
</div>
</div>
<div class="repo-col">
<div class="repo-card">
<div class="repo-card__body repo-text-center">
<div class="repo-text-3xl repo-font-bold" style="color: var(--repo-color-success);">{{ stats.versions }}</div>
<div class="repo-text-secondary">版本</div>
</div>
</div>
</div>
<div class="repo-col">
<div class="repo-card">
<div class="repo-card__body repo-text-center">
<div class="repo-text-3xl repo-font-bold" style="color: var(--repo-color-warning);">{{ stats.feedbacks }}</div>
<div class="repo-text-secondary">反馈总数</div>
</div>
</div>
</div>
<div class="repo-col">
<div class="repo-card">
<div class="repo-card__body repo-text-center">
<div class="repo-text-3xl repo-font-bold" style="color: var(--repo-color-danger);">{{ stats.unread_feedbacks }}</div>
<div class="repo-text-secondary">未读反馈</div>
</div>
</div>
</div>
</div>
<!-- 快速操作 -->
<div class="repo-row">
<div class="repo-col">
<div class="repo-card">
<div class="repo-card__header">
<h3 class="repo-card__title">上传 WHL 文件</h3>
</div>
<div class="repo-card__body">
<form method="post" action="{{ url_for('admin_whl_upload') }}" enctype="multipart/form-data">
<input type="file" name="whl_file" accept=".whl" class="repo-input repo-mb-3" required>
<button type="submit" class="repo-btn repo-btn--primary">上传</button>
</form>
</div>
</div>
</div>
<div class="repo-col">
<div class="repo-card">
<div class="repo-card__header">
<h3 class="repo-card__title">管理链接</h3>
</div>
<div class="repo-card__body">
<div class="repo-flex repo-gap-3">
<a href="{{ url_for('admin_branches') }}" class="repo-btn repo-btn--primary">分支管理</a>
<a href="{{ url_for('admin_feedbacks') }}" class="repo-btn repo-btn--secondary">反馈管理</a>
</div>
</div>
</div>
</div>
</div>
<!-- 最近反馈 -->
<div class="repo-card repo-mt-6">
<div class="repo-card__header">
<h3 class="repo-card__title">最近反馈</h3>
</div>
<div class="repo-card__body">
{% if recent_feedbacks %}
<table class="repo-table">
<thead>
<tr>
<th>时间</th>
<th>邮箱</th>
<th>内容</th>
<th>状态</th>
</tr>
</thead>
<tbody>
{% for f in recent_feedbacks %}
<tr>
<td class="repo-text-sm">{{ f.created }}</td>
<td class="repo-text-sm">{{ f.email }}</td>
<td class="repo-text-sm repo-truncate" style="max-width: 300px;">{{ f.content[:50] }}...</td>
<td>
{% if f.status == 'unread' %}
<span class="repo-tag repo-tag--danger">未读</span>
{% else %}
<span class="repo-tag repo-tag--default">已读</span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p class="repo-text-secondary repo-text-center">暂无反馈</p>
{% endif %}
</div>
</div>
</div>
{% endblock %}