课堂点名-v1.0.2
课堂点名 v1.0.2 发布说明
发布日期:2026-03-12
版本号:1.0.2 (Build 3)
📋 版本概述
v1.0.2 是 v1.0.1 的维护和功能增强版本,主要聚焦于数据备份功能、Web 端兼容性修复和编码问题解决。
✨ 主要更新
1️⃣ 数据备份功能(核心新增)
导出备份
- 备份格式:JSON 格式,包含所有数据
- 备份内容:
- 所有班级信息
- 所有学生信息
- 所有点名记录
- 时间戳和版本信息
- 跨平台支持:
- Web:直接下载 JSON 文件
- Android:保存到 Download 文件夹
- iOS:保存到 Documents 文件夹
- 文件命名:
backup_[时间戳].json,便于区分多个备份
导入备份
- 恢复数据:从备份文件完全恢复所有数据
- 版本验证:自动检查备份文件版本兼容性
- 数据覆盖:导入时会覆盖当前所有数据(需确认)
- 加载提示:导入过程中显示进度提示
- 成功反馈:导入完成后显示导入统计信息
使用场景
- 设备更换时数据迁移
- 定期数据备份防止丢失
- 多设备间数据同步
- 数据恢复和回滚
2️⃣ Web 端兼容性修复
中文乱码问题修复
问题:Web 端导入 CSV 文件时中文显示为乱码
原因:
String.fromCharCodes()不能正确处理多字节 UTF-8 字符- 中文字符需要特殊的 UTF-8 解码处理
解决方案:
- 使用
utf8.decode()替代String.fromCharCodes() - 正确处理 UTF-8 编码的字节流
- 在 Web 和移动端统一编码处理逻辑
效果:Web 端现在可以正确显示中文字符
文件选择异常修复
问题:Web 端导入时出现"Cannot hit test a render box that has never been laid out"错误
原因:
- 对话框布局在异步操作后崩溃
- 缺少固定宽度导致布局计算失败
解决方案:
- 为对话框内容添加固定宽度
SizedBox(width: 500) - 改进状态管理和错误处理
- 添加
mounted检查防止已卸载组件更新
效果:Web 端导入流程稳定,不再出现布局错误
CSV 列匹配优化
改进:
- 精确匹配"学生姓名"和"学号"列名
- 避免误匹配"班级名称"等相似列
- 支持多种列名格式的自动识别
🚀 使用指南
导出备份
- 打开应用,进入设置页面
- 在"数据管理"部分,点击"导出备份"
- 确认导出内容(班级、学生、点名记录数量)
- 点击"导出"按钮
- 文件自动下载到本地
备份文件位置:
- Web:浏览器默认下载文件夹
- Android:
/storage/emulated/0/Download/ - iOS:
Documents文件夹
导入备份
- 打开应用,进入设置页面
- 在"数据管理"部分,点击"导入备份"
- 阅读警告信息(导入会覆盖当前数据)
- 点击"选择文件"按钮
- 选择备份 JSON 文件
- 等待导入完成
- 查看导入统计信息
注意:
- 导入前建议先导出当前数据作为备份
- 导入过程中请勿关闭应用
- 导入完成后会自动刷新数据
🐛 Bug 修复
| Bug | 原因 | 修复 |
|---|---|---|
| Web 端中文乱码 | UTF-8 编码处理不当 | 使用 utf8.decode() |
| Web 端导入异常 | 对话框布局崩溃 | 添加固定宽度和状态检查 |
| CSV 列匹配错误 | 模糊匹配导致误识别 | 精确匹配 + 智能回退 |
| 导入后白屏 | 错误处理不完善 | 改进异常捕获和显示 |
📞 反馈和支持
如有问题或建议,请通过以下方式联系:
- 网站:https://fusuccess.top
- 开发者:南漳云联软件技术工作室
感谢使用课堂点名! 🎉