# Changelog All notable changes to this project will be documented in this file. --- ## [1.3.3] - 2026-03-30 ### 修复 - 🐛 **验证码验证问题修复** - 修复验证码填写正确但提交时仍显示"验证码错误"的问题 - 原因:Flutter应用无法像浏览器那样自动维护PHP Session,导致服务器无法验证验证码 - 解决方案:将验证码生成本地化,本地验证用户输入,提交时发送正确答案 - 文件:`lib/views/profile/expand/manu-script.dart` --- ## [1.3.2] - 2026-03-30 ### 新增 - 📝 **诗词投稿功能** - 新增投稿页面 `lib/views/profile/expand/manu-script.dart` - 支持诗词收录申请,包含完整表单(参考语句、分类选择、诗人和标题、关键词、诗词介绍、人机验证) - 实现相似度检测功能,防止重复提交 - 平台字段自动获取设备类型并发送"设备类型 + Flutter"格式数据 - 修改"去投稿"按钮跳转逻辑,文件:`lib/views/profile/profile_page.dart` ### 修复 - 🐛 **投稿API网络请求修复** - 修改HTTP客户端 `lib/utils/http/http_client.dart`,新增 `postForm` 方法支持 FormData 格式 - 修复验证码获取逻辑,从API获取验证码而非本地生成 - 修复所有API调用使用正确的路径 `app/api.php` 和 FormData 数据格式 - 修复"网络请求失败2"错误 --- ## [1.3.1] - 2026-03-29 ### 修复 - 🐛 **服务器监控页面错误修复** - 修复获取服务器数据失败的错误 - 添加模拟数据功能,确保在无PHP服务器时也能正常显示 - 优化错误处理逻辑,提供更好的用户体验 - 文件:`server_monitor.html` ### 新增 - 📊 **服务器监控模拟数据** - 添加 `getMockData()` 函数生成模拟服务器数据 - 模拟数据包括:服务器负载、内存使用、磁盘使用、运行时间、响应时间和网络延迟 - 当无法连接到PHP API时自动使用模拟数据 - 显示"模拟数据"状态标识 - 文件:`server_monitor.html` --- ## [1.3.0] - 2026-03-29 ### 新增 - ⚡ **离线数据下载优化** - 添加取消下载功能,支持中断下载过程 - 下载过程中显示取消按钮,点击可立即停止 - 优化下载状态显示,避免页面卡死 - 取消下载时显示相应提示 - 文件:`lib/views/profile/settings/offline-data.dart` ### 优化 - 🌐 **网络状态自动检测** - 个人卡片加载时自动检测网络状态 - 无网络时自动调整为离线状态 - 避免网络异常导致的错误 - 文件:`lib/views/profile/per_card.dart` ### 修复 - 🐛 **网络状态检测错误修复** - 修复 `currentNetworkStatus` 不存在的错误 - 修复 `NetworkStatus.offline` 不存在的错误 - 使用正确的 `currentStatus` 和 `NetworkStatus.error` - 文件:`lib/views/profile/per_card.dart` ### 新增 - 📊 **服务器信息显示** - 在离线数据页面添加服务器信息卡片 - 显示 API 地址、版本、频率限制等信息 - 文件:`lib/views/profile/settings/offline-data.dart` ### 优化 - 📱 **离线数据下载功能增强** - 新增下载类型选择:诗句和答题 - 诗句数量选项:20、30、60、100条 - 答题数量选项:20、50、80、100条 - 100条下载需要加入用户体验计划 - 实现下载一条写入一条的功能 - 取消下载时保存已下载的数据 - 实时更新缓存状态显示 - 返回上一页时继续后台下载,不中断 - 清空缓存时弹窗选择清空内容(诗句/答题/全部) - 缓存状态同时显示诗句和答题数量 - 文件:`lib/views/profile/settings/offline-data.dart` --- ## [1.2.99] - 2026-03-29 ### 新增 - 🌐 **离线模式支持** - 新增 `OfflineDataManager` 类管理离线数据加载 - 离线状态时从本地缓存加载诗句,在线状态时从网络加载 - 支持循环加载本地缓存的诗句 - 离线模式下隐藏点赞按钮 - 无缓存时显示网络错误提示 - 优化数据加载逻辑,确保离线模式正常工作 - 文件:`lib/views/home/home-load.dart`, `lib/views/home/home_page.dart` --- ## [1.2.98] - 2026-03-29 ### 新增 - 🔄 **个人卡片在线/离线状态切换** - 在个人卡片tips卡片内添加在线状态开关 - 开关状态保存到SharedPreferences,默认开启 - 关闭后切换为离线状态,个人头像右下角绿勾切换成红勾(关闭图标) - 支持点击tips卡片切换祝福语功能 - 优化开关布局:开关位于卡片右侧,与文本平行显示 - 移除状态文字,保持界面简洁 - 状态切换时显示气泡消息提示 - 文件:`lib/views/profile/per_card.dart` --- ## [1.2.97] - 2026-03-29 ### 新增 - 📱 **离线数据管理功能** - 新增离线数据管理页面 `lib/views/profile/settings/offline-data.dart` - 从服务器加载诗词数据到本地缓存 - 支持选择下载数量:30/50/100/200条 - 显示实时下载进度条 - 数据保存在SharedPreferences中 - 缓存数据不会写入历史记录 - 提供清空缓存功能 - 优化"离线使用"按钮跳转逻辑 - 文件:`lib/views/profile/profile_page.dart` --- ## 软件特性功能 ### 已开发完成 - � **调试信息显示功能** - 功能设置页面添加"调试信息"开关、开启后主页显示操作反馈悬浮气泡、支持显示各种操作成功/失败状态、气泡显示2秒后自动消失、开关状态保存到SharedPreferences、调试信息默认关闭 - �� **首页自动刷新功能** - 功能设置页面添加"自动刷新"开关、开启后首页诗句每5秒自动加载下一条、开关状态保存到SharedPreferences、自动刷新默认关闭、创建home-load.dart统一管理自动刷新逻辑 - 🗳️ **投票功能完整实现** - 用户登录/注册、获取投票列表、投票详情、提交投票、投票结果展示、API服务基础URL修改、登录注册逻辑简化(只需用户名、默认密码123456、自动注册登录、设备标识)、投票页面调试功能、user_identifier增加Flutter后缀、setState调用安全修复(添加mounted检查)、投票登录状态持久化修复(添加Cookie管理器支持PHP Session认证) - 🎨 **个人卡片标签栏布局优化** - 将标签栏区域一分为二,左侧区域可以点击展开/收起个人卡片 - 🎲 **题目随机化功能** - 进入答题页面时调用 fetch 接口获取新题,使用 Fisher-Yates 算法打乱题目 ID 顺序 - 💬 **答对答错反馈信息修复** - 当 API 返回的提示信息为空时,自行添加提示内容 - 📚 **App 自行管理题目 ID** - 实现题目 ID 管理逻辑,不再随机生成 - 🔧 **API 接口路径和参数最终修复** - 确认 API 路径,调整随机题目 ID 范围 - 🔧 **API 接口路径和参数修复** - 修复 API 路径和参数,使用正确的新 API 接口 - 🐛 **HttpResponse 处理修复** - 修复 HttpResponse 对象处理方式,使用正确的属性访问 - 🔧 **API 请求参数更新** - 根据新的 API 文档更新所有请求参数 - 📊 **个人页面统计数字动态化** - 从SharedPreferences读取真实的答题统计数据 - 📝 **记录页显示问题修复** - 修复答题记录页面显示未知题目和标签的问题 - 📋 **答题统计弹窗功能** - 显示详细的答题统计数据,支持复制发送给AI评估 - 📝 **诗词答题功能** - 完整的答题页面,支持题目加载、答案提交、提示获取 - 🕐 **中国十二时辰制时间显示** - 时间显示改为十二时辰(子丑寅卯辰巳午未申酉戌亥) - 🌤️ **天气功能集成** - 集成天气API获取城市、天气状态和温度 - 📚 **朝代信息显示** - 在诗人名称左侧添加朝代信息显示 - 🎨 **卡片样式优化** - 经典和现代样式颜色统一,毛玻璃样式优化 - 🐛 **卡片设置页面重复打开问题修复** - 使用 router.replaceUrl 替换当前页面,避免堆叠 - 📐 **2x2卡片布局优化** - 移除天气按钮组件,保留城市名称显示 ### 开发进度 - 🏗️ **HarmonyOS桌面小组件** - 开发中,包含2x2布局、天气显示、诗句展示等功能 - 优先级:3