3.6 KiB
3.6 KiB
日历功能新增 Bug 记录
Created: 2026-03-02 Feature: 日历事件创建功能 Status: Partial (Bug 5, 7 pending)
Bug 1: 日视图时间范围不完整
Severity: High Status: Fixed
修复内容:
- 修改循环范围从
for (var hour = 7; hour <= 22; hour++)改为for (var hour = 0; hour <= 23; hour++) - 现在日视图显示完整的 00:00-24:00 时间线
Bug 2: 日历事件保存后视图不刷新
Severity: High Status: Fixed
修复内容:
- 为
CreateEventSheet添加onSaved回调参数 - 在月视图和日视图中使用
setState+UniqueKey强制刷新事件列表 - 保存后自动刷新,无需手动切换页面
Bug 3: 日视图事件高度未按时间范围渲染
Severity: Medium Status: Fixed
修复内容:
- 使用
Positioned+Stack替代原来的Wrap布局 - 根据事件实际持续时间计算高度:
持续分钟数 / 60 * _hourHeight - 事件垂直位置根据开始时间计算:
开始分钟数 / 60 * _hourHeight
Bug 4: 月视图事件超过3个后无法显示
Severity: Medium Status: Fixed
修复内容:
- 显示前 2 个事件
- 超过 2 个时显示
+N按钮 - 点击
+N跳转到日视图
Bug 5: 日视图点击事件跳转到错误页面
Severity: High Status: Pending
现象描述:
- 在日视图中点击日历事件
- 跳转到的页面不是日历详情页,而是显示了类似首页的聊天输入框
- 页面显示"输入消息..."和麦克风图标
- 路由应该是
/calendar/events/evt_xxx但显示的是首页布局
已尝试的修复:
- 将
/calendar/events/:id路由移到最前面优先匹配 - 调试日志显示 eventId 正确传递
- 添加了
clipBehavior: Clip.none和Material + InkWell
可能原因:
- 路由配置问题,可能被其他路由或 Shell 组件影响
- 页面布局问题导致显示异常
修复建议:
- 检查路由配置,确认 CalendarEventDetailScreen 正确加载
- 检查页面布局是否正确渲染
Bug 6: 日视图多事件重叠时布局错乱
Severity: Medium Status: Fixed
修复内容:
- 使用
_calculateEventColumns方法计算事件列位置 - 最早开始的事件放在最左边
- 其余事件依次向右排列,每个事件宽度 = 总宽度 / 列数
- 使用
Positioned绝对定位控制事件位置
Bug 7: 日历详情页布局错误
Severity: High Status: Pending
现象描述:
- 点击跳转到的页面显示异常
- 页面顶部显示聊天输入框("输入消息..."和麦克风图标)
- 应该是日历详情页但显示了类似首页的布局
- 渲染错误:RenderFlex children have non-zero flex but incoming width constraints are unbounded
已尝试的修复:
- 给
_buildInputContainer中的 Container 添加width: double.infinity - 修改内部的 Row 使用 const
修复建议:
- 需要重新设计详情页布局
- 确认底部输入框组件是否需要(可能复制自其他页面)
相关文件清单
新增文件
apps/lib/features/calendar/data/models/schedule_item_model.dart- 日历事件数据模型apps/lib/features/calendar/data/services/mock_calendar_service.dart- Mock 服务apps/lib/features/calendar/ui/widgets/create_event_sheet.dart- 创建事件底部弹窗
修改文件
apps/lib/features/calendar/ui/screens/calendar_month_screen.dart- 月视图apps/lib/features/calendar/ui/screens/calendar_dayweek_screen.dart- 日视图apps/lib/features/calendar/ui/screens/calendar_event_detail_screen.dart- 事件详情页apps/lib/core/router/app_router.dart- 路由配置