This commit is contained in:
binghuai
2025-11-10 10:27:43 +08:00
parent 31c9d5754b
commit 1feb1be62d
8 changed files with 991 additions and 28 deletions

View File

@@ -54,7 +54,7 @@ feat(quartz): 新增乌鲁木齐地区直属定时任务
2.参加巴州常见病需求研讨会
[[巴州儿童青少年健康监测平台——功能清单.xlsx]]
3.<span style="color:#3EC1D3 !important;">cjb-app巴州</span>
feat(app): 更新应用配置和界面主题
- 修改AndroidManifest.xml中的应用标签为"巴州常见病"
@@ -118,7 +118,12 @@ style(physicalcheck): 统一使用微信配色风格优化界面
# 11.7
1.<span style="color:#3EC1D3 !important;">中考体育生产达梦</span>
1.
> [!note]
> 资源发展中心网信办扫描漏洞
> [[体质健康.docx]]
<span style="color:#3EC1D3 !important;">中考体育生产达梦</span>
chore(deps): 移除过时的Bootstrap JS文件
- 删除了旧版本Bootstrap的JavaScript文件引用
- 清理了不再使用的前端资源依赖
@@ -126,7 +131,6 @@ chore(deps): 移除过时的Bootstrap JS文件
<span style="display: inline-block; width: 50px; height: 2px; background: #00F9FF; vertical-align: middle; margin: 0 5px;"></span>主要是修复下述漏洞
![image.png|500x400](https://www.binghuai.xyz/markdown/20251107124900463.png)
2.<span style="color:#3EC1D3 !important;">cjb-ui巴州</span>
feat(doubtful): 重构可疑数据年龄分析页面
- 重新设计页面布局,采用卡片式结构提升视觉效果
@@ -140,7 +144,7 @@ feat(doubtful): 重构可疑数据年龄分析页面
- 修复路由切换时详情页关闭逻辑
- 完善数据加载状态和错误处理机制
# 11.8
# 11.8
1.<span style="color:#3EC1D3 !important;">cjb巴州后端</span>
feat(check): 支持学制多选筛选功能
- 在CheckPlacePointController中增加schoolClass参数用于筛选
@@ -169,3 +173,20 @@ feat(static): 添加学制筛选功能并重构查询组件
- 优化区域选择器的重置和禁用状态控制
- 调整页面布局和样式以适应新增筛选项
- 修复部分数据字段和组件引用问题
# 11.9
1.撰写<span style="color:#3EC1D3 !important;">家校协同</span>体育教师端功能列表
[[体育教师端首页.html]]<span style="display: inline-block; width: 50px; height: 2px; background: #00F9FF; vertical-align: middle; margin: 0 5px;"></span>[[体育教师端.xlsx]]
[[数据统计页面.html]]
晨午检&家校协同页面
```embed
title: "Lanhu_Share"
image: ""
description: ""
url: "https://lanhuapp.com/link/#/invite?sid=lx0S1sqJ"
favicon: ""
```
# 11.10

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,498 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>体质提升作业平台</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdn.tailwindcss.com" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.8/dist/chart.umd.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2563EB', // 专业蓝
secondary: '#10B981', // 健康绿
accent: '#F59E0B', // 活力橙
warning: '#EF4444',
light: '#F3F4F6',
dark: '#1F2937'
},
fontFamily: {
sans: ['PingFang SC', 'Microsoft YaHei', 'sans-serif'],
},
}
}
}
</script>
<style type="text/tailwindcss">
@layer utilities {
.content-auto {
content-visibility: auto;
}
.card {
@apply bg-white rounded-xl shadow-sm p-4 transition-all duration-300 hover:shadow-md;
}
.btn {
@apply px-4 py-2.5 rounded-lg font-medium transition-all duration-200;
}
.btn-primary {
@apply bg-primary text-white hover:bg-primary/90;
}
.badge {
@apply px-2 py-0.5 rounded-full text-xs font-medium;
}
.progress-bar {
@apply h-2 rounded-full bg-gray-200 overflow-hidden;
}
.progress-value {
@apply h-full rounded-full transition-all duration-700;
}
}
</style>
</head>
<body class="bg-light text-dark font-sans min-h-screen flex flex-col">
<!-- 顶部导航栏 -->
<header class="bg-primary text-white py-4 px-5 sticky top-0 z-10 shadow-md">
<div class="flex items-center justify-between">
<div class="flex items-center gap-2">
<i class="fa fa-line-chart text-xl"></i>
<h1 class="text-lg font-bold">体质提升作业平台</h1>
</div>
<div class="flex items-center gap-4">
<button class="relative">
<i class="fa fa-bell text-xl"></i>
<span class="absolute -top-1 -right-1 w-4 h-4 bg-accent rounded-full text-white text-xs flex items-center justify-center">4</span>
</button>
<img src="https://picsum.photos/id/1005/200/200" alt="体育老师头像" class="w-9 h-9 rounded-full border-2 border-white">
</div>
</div>
</header>
<!-- 主内容区 -->
<main class="flex-1 overflow-y-auto">
<!-- 体质测试进度概览 -->
<div class="px-5 py-4 bg-white">
<div class="flex justify-between items-center mb-4">
<div>
<h2 class="text-base font-bold">体质测试提升计划</h2>
<p class="text-xs text-gray-500 mt-1">当前学期2023-2024学年第一学期</p>
</div>
<div class="text-right">
<p class="text-xs text-gray-500">距离体质测试还有</p>
<p class="text-base font-bold text-primary">32天</p>
</div>
</div>
<div class="bg-light rounded-xl p-3">
<div class="flex justify-between items-center mb-2">
<span class="text-sm font-medium">整体提升进度</span>
<span class="text-sm font-medium">62%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-primary" style="width: 62%"></div>
</div>
<div class="grid grid-cols-3 gap-2 mt-3 text-center text-xs">
<div>
<p class="text-gray-500">优秀率</p>
<p class="font-bold text-secondary">28%</p>
</div>
<div>
<p class="text-gray-500">良好率</p>
<p class="font-bold text-secondary">45%</p>
</div>
<div>
<p class="text-gray-500">待提升</p>
<p class="font-bold text-warning">27%</p>
</div>
</div>
</div>
</div>
<!-- 快捷操作 -->
<div class="px-5 py-3">
<div class="grid grid-cols-3 gap-3">
<button class="card flex flex-col items-center justify-center p-3">
<div class="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-2">
<i class="fa fa-plus text-primary"></i>
</div>
<span class="text-sm font-medium">布置作业</span>
</button>
<button class="card flex flex-col items-center justify-center p-3">
<div class="w-12 h-12 bg-secondary/10 rounded-full flex items-center justify-center mb-2">
<i class="fa fa-bar-chart text-secondary"></i>
</div>
<span class="text-sm font-medium">查看数据</span>
</button>
<button class="card flex flex-col items-center justify-center p-3">
<div class="w-12 h-12 bg-accent/10 rounded-full flex items-center justify-center mb-2">
<i class="fa fa-file-text-o text-accent"></i>
</div>
<span class="text-sm font-medium">测试报告</span>
</button>
</div>
</div>
<!-- 家庭打卡任务列表 -->
<div class="px-5 py-2">
<div class="flex justify-between items-center mb-3">
<h3 class="font-bold">家庭打卡任务</h3>
<button class="text-primary text-sm">查看全部</button>
</div>
<div class="space-y-3 mb-6">
<!-- 进行中的任务 -->
<div class="card border-l-4 border-primary">
<div class="flex justify-between items-start">
<div>
<h4 class="font-medium">每日跳绳练习</h4>
<p class="text-xs text-gray-500 mt-1">针对1-6年级 | 提升:协调性、耐力</p>
</div>
<span class="badge bg-primary/10 text-primary">进行中</span>
</div>
<div class="mt-3">
<div class="flex justify-between items-center mb-1">
<span class="text-xs text-gray-500">打卡完成率</span>
<span class="text-xs font-medium">82%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-primary" style="width: 82%"></div>
</div>
</div>
<div class="mt-3 flex flex-wrap gap-2">
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-calendar-o text-gray-500"></i>
<span>9.20-10.5</span>
</div>
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-clock-o text-gray-500"></i>
<span>每天10分钟</span>
</div>
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-users text-gray-500"></i>
<span>187人参与</span>
</div>
</div>
<div class="mt-3 flex justify-between items-center">
<button class="text-xs text-gray-500 flex items-center">
<i class="fa fa-comment-o mr-1"></i> 查看反馈(12)
</button>
<button class="text-xs text-primary flex items-center">
<i class="fa fa-bar-chart mr-1"></i> 查看详情
</button>
</div>
</div>
<!-- 新发布的任务 -->
<div class="card border-l-4 border-accent">
<div class="flex justify-between items-start">
<div>
<h4 class="font-medium">家庭仰卧起坐训练</h4>
<p class="text-xs text-gray-500 mt-1">针对4-6年级 | 提升:核心力量</p>
</div>
<span class="badge bg-accent/10 text-accent">新发布</span>
</div>
<div class="mt-3">
<div class="flex justify-between items-center mb-1">
<span class="text-xs text-gray-500">打卡完成率</span>
<span class="text-xs font-medium">36%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-accent" style="width: 36%"></div>
</div>
</div>
<div class="mt-3 flex flex-wrap gap-2">
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-calendar-o text-gray-500"></i>
<span>9.25-10.10</span>
</div>
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-clock-o text-gray-500"></i>
<span>每天8分钟</span>
</div>
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-users text-gray-500"></i>
<span>124人参与</span>
</div>
</div>
<div class="mt-3 flex justify-between items-center">
<button class="text-xs text-gray-500 flex items-center">
<i class="fa fa-comment-o mr-1"></i> 查看反馈(5)
</button>
<button class="text-xs text-primary flex items-center">
<i class="fa fa-bar-chart mr-1"></i> 查看详情
</button>
</div>
</div>
<!-- 即将开始的任务 -->
<div class="card border-l-4 border-secondary">
<div class="flex justify-between items-start">
<div>
<h4 class="font-medium">柔韧性提升训练</h4>
<p class="text-xs text-gray-500 mt-1">针对1-6年级 | 提升:坐位体前屈成绩</p>
</div>
<span class="badge bg-secondary/10 text-secondary">即将开始</span>
</div>
<div class="mt-3 flex flex-wrap gap-2">
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-calendar-o text-gray-500"></i>
<span>10.6-10.20</span>
</div>
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-clock-o text-gray-500"></i>
<span>每天5分钟</span>
</div>
<div class="flex items-center gap-1 bg-light px-2 py-1 rounded text-xs">
<i class="fa fa-users text-gray-500"></i>
<span>187人参与</span>
</div>
</div>
<div class="mt-3 flex justify-end">
<button class="text-xs text-primary flex items-center">
<i class="fa fa-pencil mr-1"></i> 编辑任务
</button>
</div>
</div>
</div>
</div>
<!-- 班级打卡情况 -->
<div class="px-5 py-2 mb-20">
<div class="flex justify-between items-center mb-3">
<h3 class="font-bold">班级打卡情况</h3>
<button class="text-primary text-sm">全部班级</button>
</div>
<div class="space-y-3">
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<div class="w-9 h-9 bg-primary/10 rounded-lg flex items-center justify-center text-primary font-bold">3</div>
<div>
<h4 class="font-medium">三年级(1)班</h4>
<p class="text-xs text-gray-500">32名学生</p>
</div>
</div>
<div class="text-right">
<p class="text-sm font-medium">91%</p>
<p class="text-xs text-secondary">优秀</p>
</div>
</div>
</div>
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<div class="w-9 h-9 bg-primary/10 rounded-lg flex items-center justify-center text-primary font-bold">4</div>
<div>
<h4 class="font-medium">四年级(2)班</h4>
<p class="text-xs text-gray-500">30名学生</p>
</div>
</div>
<div class="text-right">
<p class="text-sm font-medium">85%</p>
<p class="text-xs text-secondary">良好</p>
</div>
</div>
</div>
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<div class="w-9 h-9 bg-primary/10 rounded-lg flex items-center justify-center text-primary font-bold">5</div>
<div>
<h4 class="font-medium">五年级(3)班</h4>
<p class="text-xs text-gray-500">29名学生</p>
</div>
</div>
<div class="text-right">
<p class="text-sm font-medium">76%</p>
<p class="text-xs text-accent">一般</p>
</div>
</div>
</div>
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<div class="w-9 h-9 bg-primary/10 rounded-lg flex items-center justify-center text-primary font-bold">6</div>
<div>
<h4 class="font-medium">六年级(1)班</h4>
<p class="text-xs text-gray-500">31名学生</p>
</div>
</div>
<div class="text-right">
<p class="text-sm font-medium">68%</p>
<p class="text-xs text-warning">需关注</p>
</div>
</div>
</div>
</div>
</div>
</main>
<!-- 底部导航 -->
<footer class="bg-white border-t border-gray-200 py-2 px-4 fixed bottom-0 left-0 right-0 z-10">
<div class="flex justify-between">
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-primary">
<i class="fa fa-home text-lg"></i>
<span class="text-xs mt-1">首页</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-tasks text-lg"></i>
<span class="text-xs mt-1">任务管理</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-bar-chart text-lg"></i>
<span class="text-xs mt-1">数据统计</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-users text-lg"></i>
<span class="text-xs mt-1">班级管理</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-cog text-lg"></i>
<span class="text-xs mt-1">设置</span>
</a>
</div>
</footer>
<!-- 布置作业弹窗 (默认隐藏) -->
<div id="assign-task-modal" class="fixed inset-0 bg-black/50 z-50 flex items-center justify-center p-5 hidden">
<div class="bg-white rounded-2xl w-full max-w-md max-h-[90vh] overflow-y-auto">
<div class="p-5 border-b border-gray-100 flex justify-between items-center">
<h3 class="text-lg font-bold">布置家庭打卡任务</h3>
<button id="close-modal" class="text-gray-400 hover:text-gray-600">
<i class="fa fa-times text-xl"></i>
</button>
</div>
<div class="p-5 space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">选择训练项目</label>
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary">
<option>一分钟跳绳 - 提升协调性与耐力</option>
<option>仰卧起坐 - 提升核心力量</option>
<option>坐位体前屈 - 提升柔韧性</option>
<option>家庭趣味跑步 - 提升心肺功能</option>
<option>平衡练习 - 提升身体协调性</option>
<option>开合跳 - 提升爆发力</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">适用班级</label>
<div class="grid grid-cols-3 gap-2">
<button class="border border-primary bg-primary/5 text-primary py-2 rounded-lg text-sm">1年级</button>
<button class="border border-gray-200 hover:border-primary py-2 rounded-lg text-sm">2年级</button>
<button class="border border-gray-200 hover:border-primary py-2 rounded-lg text-sm">3年级</button>
<button class="border border-gray-200 hover:border-primary py-2 rounded-lg text-sm">4年级</button>
<button class="border border-gray-200 hover:border-primary py-2 rounded-lg text-sm">5年级</button>
<button class="border border-gray-200 hover:border-primary py-2 rounded-lg text-sm">6年级</button>
</div>
</div>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">开始日期</label>
<input type="date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">结束日期</label>
<input type="date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">每日训练时长</label>
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary">
<option>5分钟</option>
<option>10分钟</option>
<option>15分钟</option>
<option>20分钟</option>
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">训练要求与指导</label>
<textarea rows="3" placeholder="请输入具体的训练指导和要求..." class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">体质提升目标</label>
<select class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary">
<option>提升10%以上</option>
<option>提升5-10%</option>
<option>巩固现有水平</option>
<option>针对薄弱项提升</option>
</select>
</div>
</div>
<div class="p-5 border-t border-gray-100 flex gap-3">
<button id="cancel-task" class="flex-1 py-2.5 border border-gray-300 rounded-lg font-medium text-gray-700">取消</button>
<button class="flex-1 btn btn-primary">发布打卡任务</button>
</div>
</div>
</div>
<script>
// 页面交互逻辑
document.addEventListener('DOMContentLoaded', function() {
// 获取元素
const assignTaskBtn = document.querySelector('.grid .card:first-child');
const taskModal = document.getElementById('assign-task-modal');
const closeModal = document.getElementById('close-modal');
const cancelTask = document.getElementById('cancel-task');
// 打开弹窗
assignTaskBtn.addEventListener('click', function() {
taskModal.classList.remove('hidden');
document.body.style.overflow = 'hidden'; // 阻止背景滚动
});
// 关闭弹窗
function hideModal() {
taskModal.classList.add('hidden');
document.body.style.overflow = 'auto'; // 恢复背景滚动
}
closeModal.addEventListener('click', hideModal);
cancelTask.addEventListener('click', hideModal);
// 点击弹窗外部关闭
taskModal.addEventListener('click', function(e) {
if (e.target === taskModal) {
hideModal();
}
});
// 底部导航切换效果
const navItems = document.querySelectorAll('footer a');
navItems.forEach(item => {
item.addEventListener('click', function(e) {
e.preventDefault();
navItems.forEach(nav => nav.classList.remove('text-primary'));
navItems.forEach(nav => nav.classList.add('text-gray-500'));
this.classList.remove('text-gray-500');
this.classList.add('text-primary');
});
});
});
</script>
</body>
</html>

View File

@@ -0,0 +1,442 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>体质数据统计分析</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.8/dist/chart.umd.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#2563EB', // 专业蓝
secondary: '#10B981', // 健康绿
accent: '#F59E0B', // 活力橙
warning: '#EF4444',
light: '#F3F4F6',
dark: '#1F2937'
},
fontFamily: {
sans: ['PingFang SC', 'Microsoft YaHei', 'sans-serif'],
},
}
}
}
</script>
<style type="text/tailwindcss">
@layer utilities {
.content-auto {
content-visibility: auto;
}
.card {
@apply bg-white rounded-xl shadow-sm p-4 transition-all duration-300 hover:shadow-md;
}
.stat-card {
@apply bg-white rounded-xl shadow-sm p-4 transition-all duration-300 hover:shadow-md border-l-4;
}
.progress-bar {
@apply h-2 rounded-full bg-gray-200 overflow-hidden;
}
.progress-value {
@apply h-full rounded-full transition-all duration-700;
}
}
</style>
</head>
<body class="bg-light text-dark font-sans min-h-screen flex flex-col">
<!-- 顶部导航栏 -->
<header class="bg-primary text-white py-4 px-5 sticky top-0 z-10 shadow-md">
<div class="flex items-center justify-between">
<button id="back-btn" class="text-white">
<i class="fa fa-arrow-left text-xl"></i>
</button>
<h1 class="text-lg font-bold">体质数据统计分析</h1>
<div class="w-6"></div> <!-- 占位元素,保持标题居中 -->
</div>
</header>
<!-- 筛选条件 -->
<div class="bg-white px-5 py-3 border-b border-gray-100">
<div class="flex justify-between items-center">
<div class="flex items-center gap-2">
<span class="text-sm text-gray-500">统计周期:</span>
<select class="text-sm border-none bg-transparent focus:outline-none text-primary font-medium">
<option>近30天</option>
<option>本学期</option>
<option>上月</option>
<option>自定义</option>
</select>
</div>
<div class="flex items-center gap-2">
<span class="text-sm text-gray-500">班级:</span>
<select class="text-sm border-none bg-transparent focus:outline-none text-primary font-medium">
<option>全部班级</option>
<option>三年级(1)班</option>
<option>四年级(2)班</option>
<option>五年级(3)班</option>
<option>六年级(1)班</option>
</select>
</div>
</div>
</div>
<!-- 主内容区 -->
<main class="flex-1 overflow-y-auto">
<!-- 核心指标卡片 -->
<div class="px-5 py-4">
<h2 class="text-sm font-medium text-gray-500 mb-3">核心指标</h2>
<div class="grid grid-cols-2 gap-3">
<div class="stat-card border-primary bg-primary/5">
<p class="text-xs text-gray-500">平均打卡完成率</p>
<h3 class="text-2xl font-bold mt-1 text-primary">78.5%</h3>
<div class="flex items-center mt-2 text-xs">
<span class="text-secondary flex items-center">
<i class="fa fa-arrow-up mr-1"></i> 4.2%
</span>
<span class="text-gray-500 ml-2">较上周</span>
</div>
</div>
<div class="stat-card border-secondary bg-secondary/5">
<p class="text-xs text-gray-500">体质提升幅度</p>
<h3 class="text-2xl font-bold mt-1 text-secondary">12.3%</h3>
<div class="flex items-center mt-2 text-xs">
<span class="text-secondary flex items-center">
<i class="fa fa-arrow-up mr-1"></i> 2.8%
</span>
<span class="text-gray-500 ml-2">较上月</span>
</div>
</div>
<div class="stat-card border-accent bg-accent/5">
<p class="text-xs text-gray-500">参与率</p>
<h3 class="text-2xl font-bold mt-1 text-accent">92.7%</h3>
<div class="flex items-center mt-2 text-xs">
<span class="text-secondary flex items-center">
<i class="fa fa-arrow-up mr-1"></i> 1.5%
</span>
<span class="text-gray-500 ml-2">较上周</span>
</div>
</div>
<div class="stat-card border-warning bg-warning/5">
<p class="text-xs text-gray-500">待提升学生</p>
<h3 class="text-2xl font-bold mt-1 text-warning">24人</h3>
<div class="flex items-center mt-2 text-xs">
<span class="text-secondary flex items-center">
<i class="fa fa-arrow-down mr-1"></i> 6人
</span>
<span class="text-gray-500 ml-2">较上月</span>
</div>
</div>
</div>
</div>
<!-- 打卡趋势图表 -->
<div class="px-5 py-2">
<div class="flex justify-between items-center mb-3">
<h3 class="font-bold">家庭打卡趋势</h3>
<select class="text-xs border-none bg-transparent focus:outline-none text-primary">
<option>按周统计</option>
<option>按月统计</option>
<option>按日统计</option>
</select>
</div>
<div class="card h-64">
<canvas id="checkInChart"></canvas>
</div>
</div>
<!-- 各项目完成情况 -->
<div class="px-5 py-2">
<h3 class="font-bold mb-3">各项目完成情况</h3>
<div class="card mb-3">
<div class="flex justify-between items-center mb-2">
<span class="text-sm">一分钟跳绳</span>
<span class="text-sm font-medium">82%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-primary" style="width: 82%"></div>
</div>
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>平均时长: 9.2分钟</span>
<span>提升: +15.3%</span>
</div>
</div>
<div class="card mb-3">
<div class="flex justify-between items-center mb-2">
<span class="text-sm">仰卧起坐</span>
<span class="text-sm font-medium">68%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-primary" style="width: 68%"></div>
</div>
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>平均时长: 7.5分钟</span>
<span>提升: +9.7%</span>
</div>
</div>
<div class="card mb-3">
<div class="flex justify-between items-center mb-2">
<span class="text-sm">坐位体前屈</span>
<span class="text-sm font-medium">75%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-primary" style="width: 75%"></div>
</div>
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>平均时长: 5.8分钟</span>
<span>提升: +11.2%</span>
</div>
</div>
<div class="card">
<div class="flex justify-between items-center mb-2">
<span class="text-sm">家庭趣味跑步</span>
<span class="text-sm font-medium">62%</span>
</div>
<div class="progress-bar">
<div class="progress-value bg-primary" style="width: 62%"></div>
</div>
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>平均时长: 12.3分钟</span>
<span>提升: +8.5%</span>
</div>
</div>
</div>
<!-- 班级对比 -->
<div class="px-5 py-2 mb-4">
<div class="flex justify-between items-center mb-3">
<h3 class="font-bold">班级表现对比</h3>
<button class="text-primary text-sm">详情</button>
</div>
<div class="card h-64">
<canvas id="classComparisonChart"></canvas>
</div>
</div>
<!-- 待提升学生 -->
<div class="px-5 py-2 mb-20">
<div class="flex justify-between items-center mb-3">
<h3 class="font-bold">需重点关注学生</h3>
<button class="text-primary text-sm">查看全部</button>
</div>
<div class="space-y-3">
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<img src="https://picsum.photos/id/1012/100/100" alt="学生头像" class="w-10 h-10 rounded-full object-cover">
<div>
<h4 class="font-medium">张明 - 四年级(2)班</h4>
<p class="text-xs text-gray-500">打卡完成率: 35% | 体质提升: 2.1%</p>
</div>
</div>
<button class="text-xs bg-warning/10 text-warning px-3 py-1 rounded-full">
重点关注
</button>
</div>
</div>
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<img src="https://picsum.photos/id/1027/100/100" alt="学生头像" class="w-10 h-10 rounded-full object-cover">
<div>
<h4 class="font-medium">李娜 - 五年级(3)班</h4>
<p class="text-xs text-gray-500">打卡完成率: 42% | 体质提升: 3.5%</p>
</div>
</div>
<button class="text-xs bg-warning/10 text-warning px-3 py-1 rounded-full">
重点关注
</button>
</div>
</div>
<div class="card">
<div class="flex justify-between items-center">
<div class="flex items-center gap-3">
<img src="https://picsum.photos/id/1025/100/100" alt="学生头像" class="w-10 h-10 rounded-full object-cover">
<div>
<h4 class="font-medium">王浩 - 六年级(1)班</h4>
<p class="text-xs text-gray-500">打卡完成率: 58% | 体质提升: 1.8%</p>
</div>
</div>
<button class="text-xs bg-accent/10 text-accent px-3 py-1 rounded-full">
一般关注
</button>
</div>
</div>
</div>
</div>
</main>
<!-- 底部导航 -->
<footer class="bg-white border-t border-gray-200 py-2 px-4 fixed bottom-0 left-0 right-0 z-10">
<div class="flex justify-between">
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-home text-lg"></i>
<span class="text-xs mt-1">首页</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-tasks text-lg"></i>
<span class="text-xs mt-1">任务管理</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-primary">
<i class="fa fa-bar-chart text-lg"></i>
<span class="text-xs mt-1">数据统计</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-users text-lg"></i>
<span class="text-xs mt-1">班级管理</span>
</a>
<a href="#" class="flex flex-col items-center justify-center w-1/5 text-gray-500">
<i class="fa fa-cog text-lg"></i>
<span class="text-xs mt-1">设置</span>
</a>
</div>
</footer>
<script>
// 页面加载完成后初始化图表
document.addEventListener('DOMContentLoaded', function() {
// 返回按钮功能
document.getElementById('back-btn').addEventListener('click', function() {
window.history.back();
});
// 打卡趋势图表
const checkInCtx = document.getElementById('checkInChart').getContext('2d');
const checkInChart = new Chart(checkInCtx, {
type: 'line',
data: {
labels: ['第1周', '第2周', '第3周', '第4周', '第5周', '第6周'],
datasets: [
{
label: '打卡完成率',
data: [65, 68, 72, 69, 75, 78.5],
borderColor: '#2563EB',
backgroundColor: 'rgba(37, 99, 235, 0.1)',
tension: 0.3,
fill: true
},
{
label: '体质提升幅度',
data: [3.2, 5.8, 7.5, 9.1, 10.5, 12.3],
borderColor: '#10B981',
backgroundColor: 'rgba(16, 185, 129, 0.1)',
tension: 0.3,
fill: true
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'top',
labels: {
boxWidth: 12,
font: {
size: 11
}
}
}
},
scales: {
y: {
beginAtZero: true,
max: 100,
ticks: {
callback: function(value) {
return value + '%';
},
font: {
size: 10
}
}
},
x: {
ticks: {
font: {
size: 10
}
}
}
}
}
});
// 班级对比图表
const classCtx = document.getElementById('classComparisonChart').getContext('2d');
const classChart = new Chart(classCtx, {
type: 'bar',
data: {
labels: ['3(1)班', '4(2)班', '5(3)班', '6(1)班'],
datasets: [
{
label: '打卡完成率',
data: [91, 85, 76, 68],
backgroundColor: '#2563EB',
borderRadius: 4
},
{
label: '体质提升幅度',
data: [15.2, 13.8, 11.5, 8.7],
backgroundColor: '#10B981',
borderRadius: 4
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
position: 'top',
labels: {
boxWidth: 12,
font: {
size: 11
}
}
}
},
scales: {
y: {
beginAtZero: true,
max: 100,
ticks: {
callback: function(value) {
return value + '%';
},
font: {
size: 10
}
}
},
x: {
ticks: {
font: {
size: 10
}
}
}
}
}
});
});
</script>
</body>
</html>