init
This commit is contained in:
153
templates/statistics.html
Normal file
153
templates/statistics.html
Normal file
@@ -0,0 +1,153 @@
|
||||
{% extends "base.html" %}
|
||||
{% set show_nav = true %}
|
||||
|
||||
{% block title %}统计报表{% endblock %}
|
||||
|
||||
{% block extra_css %}
|
||||
<script src="{{ url_for('static', filename='js/chart.umd.min.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid">
|
||||
<h2 class="mb-4">统计报表</h2>
|
||||
|
||||
<!-- 筛选器 -->
|
||||
<div class="card mb-3">
|
||||
<div class="card-body">
|
||||
<div class="row g-3 align-items-end">
|
||||
<div class="col-md-2">
|
||||
<label class="form-label">快捷选择</label>
|
||||
<select class="form-select" id="quick-select" onchange="applyQuickSelect()">
|
||||
<option value="">自定义</option>
|
||||
<option value="today">今天</option>
|
||||
<option value="week">本周</option>
|
||||
<option value="month">本月</option>
|
||||
<option value="30days">最近30天</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<label class="form-label">开始日期</label>
|
||||
<input type="date" class="form-control" id="date-from">
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<label class="form-label">结束日期</label>
|
||||
<input type="date" class="form-control" id="date-to">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<button class="btn btn-primary me-2" onclick="loadStatistics()">
|
||||
<i class="bi bi-search"></i> 查询
|
||||
</button>
|
||||
<button class="btn btn-success" onclick="exportData()">
|
||||
<i class="bi bi-download"></i> 导出CSV
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 概览卡片 -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-3">
|
||||
<div class="card text-white bg-primary">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">今日完成</h5>
|
||||
<h2 id="today-count">-</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card text-white bg-success">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">本月完成</h5>
|
||||
<h2 id="month-count">-</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card text-white bg-warning">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">待认领</h5>
|
||||
<h2 id="pending-count">-</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card text-white bg-info">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">进行中</h5>
|
||||
<h2 id="claimed-count">-</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 个人统计 -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 id="stats-title">我的完成统计</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3">
|
||||
<strong>总完成数:</strong><span id="my-total">-</span>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<strong>待完成数:</strong><span id="my-pending">-</span>
|
||||
</div>
|
||||
<div style="height: 250px;">
|
||||
<canvas id="myChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 排行榜 -->
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5>本月排行榜</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div style="max-height: 400px; overflow-y: auto;">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>排名</th>
|
||||
<th>用户</th>
|
||||
<th>完成数</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="leaderboard">
|
||||
<tr>
|
||||
<td colspan="3" class="text-center">加载中...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 趋势图 -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 id="trend-title">完成趋势</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div style="height: 300px;">
|
||||
<canvas id="trendChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_js %}
|
||||
<script src="{{ url_for('static', filename='js/statistics.js') }}"></script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user