Files
akmon/STUDENT_HEALTH_MANAGEMENT_GUIDE.md
2026-01-20 08:04:15 +08:00

186 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 学生健康数据管理功能实现说明
## 功能概述
实现了教师仪表板中"学生总数"卡片的点击功能,点击后可以查看本人权限下的学生列表,展示学生的基本信息和最新的健康数据(体温、心率、血氧、步数)。
## 实现的功能
### 1. 教师仪表板修改
- **文件**: `pages/sport/teacher/dashboard.uvue`
- **修改内容**: 为"学生总数"统计卡片添加点击事件
- **功能**: 点击后跳转到学生列表页面
### 2. 学生列表页面
- **文件**: `pages/sport/teacher/students.uvue`
- **功能特性**:
- 显示本人权限下的所有学生
- 搜索功能(按学生姓名)
- 每个学生显示:
- 头像(支持图片或首字母缩写)
- 姓名和学号
- 最近的体温、心率、血氧、步数数据
- 数据记录时间(智能时间显示)
- 点击学生卡片可查看详情
### 3. 学生详情页面
- **文件**: `pages/sport/teacher/student-detail.uvue`
- **功能特性**:
- 显示学生详细信息
- 大尺寸健康数据卡片展示
- 健康状态评估(正常/异常标识)
- 提供查看历史数据和训练记录的入口
### 4. 数据库支持
- **文件**: `create_simple_sensor_data.sql`
- **功能**: 创建简化的传感器数据表和示例数据
- **表结构**: `ss_sensor_data` 统一存储各类传感器数据
## 数据库表结构
### ss_sensor_data 表
```sql
CREATE TABLE public.ss_sensor_data (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID NOT NULL REFERENCES public.ak_users(id),
sensor_type TEXT NOT NULL, -- 'temperature', 'heart_rate', 'oxygen_level', 'steps'
value NUMERIC NOT NULL,
unit TEXT, -- '°C', 'bpm', '%', 'steps'
recorded_at TIMESTAMPTZ NOT NULL DEFAULT now(),
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
```
## 部署步骤
### 1. 数据库部署
```sql
-- 执行数据库脚本
\i create_simple_sensor_data.sql
```
### 2. 页面文件部署
确保以下文件已正确部署:
- `pages/sport/teacher/dashboard.uvue` (已修改)
- `pages/sport/teacher/students.uvue` (新建)
- `pages/sport/teacher/student-detail.uvue` (新建)
### 3. 权限配置
确保 `ss_sensor_data` 表具有适当的 RLS 策略和权限设置。
## 使用说明
### 教师端操作流程
1. **进入教师仪表板**
- 登录教师账号
- 进入教师工作台页面
2. **查看学生列表**
- 点击"学生总数"统计卡片
- 系统自动跳转到学生列表页面
3. **浏览学生信息**
- 查看所有学生的基本信息和健康数据
- 使用搜索功能快速找到特定学生
- 观察健康数据的更新时间
4. **查看学生详情**
- 点击任意学生卡片
- 查看该学生的详细健康数据
- 查看健康状态评估结果
## 数据展示说明
### 健康数据类型
- **体温**: 显示摄氏度,正常范围 36.0-37.5°C
- **心率**: 显示每分钟跳动次数,正常范围 60-100 bpm
- **血氧**: 显示血氧饱和度百分比,正常范围 ≥95%
- **步数**: 显示每日步数统计
### 时间显示逻辑
- 1小时内显示"X分钟前"或"刚刚"
- 24小时内显示"X小时前"
- 7天内显示"X天前"
- 超过7天显示具体日期
### 健康状态评估
- **正常**: 绿色标识,数值在正常范围内
- **异常**: 红色标识,数值超出正常范围
- **无数据**: 灰色标识,暂无相关数据
## 技术实现特点
### 1. 响应式设计
- 适配不同屏幕尺寸
- 使用flex布局保证兼容性
### 2. 性能优化
- 异步数据加载
- 错误处理和重试机制
- 加载状态提示
### 3. 用户体验
- 智能搜索功能
- 直观的健康状态展示
- 流畅的页面跳转
### 4. 数据安全
- 基于用户权限的数据访问
- 参数验证和错误处理
- 安全的数据库查询
## 扩展功能建议
### 1. 历史数据图表
- 添加健康数据趋势图
- 支持时间范围选择
- 多维度数据对比
### 2. 健康预警
- 异常数据自动预警
- 消息推送功能
- 预警历史记录
### 3. 数据导出
- 支持健康数据导出
- 生成健康报告
- 数据分析功能
### 4. 批量操作
- 支持批量查看学生
- 批量健康状态检查
- 批量消息发送
## 故障排除
### 常见问题
1. **学生数据不显示**
- 检查数据库连接
- 确认传感器数据表存在
- 验证用户权限设置
2. **健康数据为空**
- 检查 `ss_sensor_data` 表数据
- 确认传感器数据类型正确
- 验证时间戳格式
3. **页面跳转失败**
- 检查路由配置
- 确认页面文件存在
- 验证参数传递
### 调试方法
- 使用浏览器开发者工具查看网络请求
- 检查控制台错误信息
- 验证数据库查询结果
## 更新日志
### v1.0.0 (2025-06-24)
- 实现基本的学生列表功能
- 添加健康数据展示
- 创建学生详情页面
- 完成搜索和筛选功能