121 lines
4.1 KiB
HTML
121 lines
4.1 KiB
HTML
<!-- app/templates/statistics/borrow_statistics.html -->
|
|
{% extends "base.html" %}
|
|
|
|
{% block title %}借阅趋势分析 - 统计分析{% endblock %}
|
|
|
|
{% block head %}
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/statistics.css') }}">
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/borrow_statistics.css') }}">
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="statistics-container">
|
|
<!-- 页面装饰元素 -->
|
|
<div class="page-decoration left"></div>
|
|
<div class="page-decoration right"></div>
|
|
|
|
<div class="breadcrumb">
|
|
<a href="{{ url_for('statistics.index') }}">统计分析</a> / <span class="current-page">借阅趋势分析</span>
|
|
</div>
|
|
|
|
<h1 class="page-title">借阅趋势分析</h1>
|
|
|
|
<div class="intro-text">
|
|
<p>探索读者的阅读习惯与喜好,发现图书流通的奥秘</p>
|
|
</div>
|
|
|
|
<div class="filter-section">
|
|
<div class="filter-label">时间范围:</div>
|
|
<select id="time-range" class="filter-select">
|
|
<option value="week">最近7天</option>
|
|
<option value="month" selected>最近30天</option>
|
|
<option value="year">最近一年</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="chart-container trend-chart">
|
|
<h3>借阅与归还趋势</h3>
|
|
<div class="chart-decoration left floating"></div>
|
|
<div class="chart-decoration right floating"></div>
|
|
<div class="chart-wrapper">
|
|
<canvas id="trend-chart"></canvas>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="chart-row">
|
|
<div class="chart-container half">
|
|
<h3>分类借阅分布</h3>
|
|
<div class="chart-wrapper">
|
|
<canvas id="category-chart"></canvas>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="stats-summary half">
|
|
<h3>借阅概况</h3>
|
|
<div class="stats-grid" id="borrow-summary">
|
|
<!-- 数据将通过JS动态填充 -->
|
|
<div class="loading">
|
|
<div class="loader"></div>
|
|
<span>数据加载中<span class="dot-animation">...</span></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="insights-container">
|
|
<h3>阅读洞察</h3>
|
|
<div class="insights-content">
|
|
<p>根据当前数据分析,发现读者更喜欢在周末借阅图书,女性读者偏爱文学和艺术类书籍,而男性读者则更关注科技和历史类图书。</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block scripts %}
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
<script src="{{ url_for('static', filename='js/borrow_statistics.js') }}"></script>
|
|
<script>
|
|
// 添加动画效果
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// 为统计项添加hover效果
|
|
const observer = new IntersectionObserver((entries) => {
|
|
entries.forEach(entry => {
|
|
if (entry.isIntersecting) {
|
|
entry.target.classList.add('animate-fadeInUp');
|
|
observer.unobserve(entry.target);
|
|
}
|
|
});
|
|
}, {
|
|
threshold: 0.1
|
|
});
|
|
|
|
// 监听所有主要元素
|
|
document.querySelectorAll('.chart-container, .stats-summary, .insights-container').forEach(el => {
|
|
observer.observe(el);
|
|
});
|
|
|
|
// 统计卡片的交互效果
|
|
document.addEventListener('mouseover', function(e) {
|
|
if (e.target.closest('.stats-item')) {
|
|
const item = e.target.closest('.stats-item');
|
|
const items = document.querySelectorAll('.stats-item');
|
|
|
|
items.forEach(i => {
|
|
if (i !== item) {
|
|
i.style.opacity = '0.7';
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
document.addEventListener('mouseout', function(e) {
|
|
if (e.target.closest('.stats-item')) {
|
|
document.querySelectorAll('.stats-item').forEach(i => {
|
|
i.style.opacity = '1';
|
|
});
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
{% endblock %}
|