待办投射到日历视图:日视图顶部显示"今天截止"待办区(带勾选框) #45

Closed
opened 2026-11-04 09:40:05 +00:00 by laoyang · 2 comments
Owner

背景

用户想看待办在日历里的展示方式。待办只有 DUE(截止)没有 DTSTART(开始),
无法画时间轴色块。历史上 buildEventDaySet() 明确"待办不计入月视图"。

经讨论选定方案 A:日视图(月/周视图选中日下方的时间轴)顶部加一个「今天截止」待办区,
列当天 DUE 的未完成待办,每行带勾选框 + 标题 + 完成态划线。

需要做的事

  1. DayTimeline 加 todos 字段(当天截止、未完成的待办列表)
  2. rebuildDayTimeline() / buildAgendaTimelines() 填充当天截止待办
  3. DayTimelineView 时间轴顶部(全天区之上)渲染待办区
  4. 勾选框点击回调到 Index 的 toggleTodo(级联完成等既有逻辑复用)
  5. 已完成的待办不显示;有截止时间(startTime>0)才显示

验收标准

  • 新建一条"明天截止"的待办,明天日期的时间轴顶部显示它
  • 有截止时间、未完成的才显示;无截止/已完成的不显示
  • 点勾选框能直接完成(带划线和进度联动,与待办列表一致)
  • 不影响现有全天/跨天/时间轴色块

显示位置

日视图时间轴(DayTimelineView)顶部、全天区之上,与全天区同样随内容滚动。


为什么单独建单

待办投射到日历是全新的显示需求,与已关闭的 #43 子任务 #44 附件以及其它待办功能无重叠,可独立验收

## 背景 用户想看待办在日历里的展示方式。待办只有 DUE(截止)没有 DTSTART(开始), 无法画时间轴色块。历史上 `buildEventDaySet()` 明确"待办不计入月视图"。 经讨论选定方案 A:**日视图(月/周视图选中日下方的时间轴)顶部加一个「今天截止」待办区**, 列当天 DUE 的未完成待办,每行带勾选框 + 标题 + 完成态划线。 ## 需要做的事 1. `DayTimeline` 加 `todos` 字段(当天截止、未完成的待办列表) 2. `rebuildDayTimeline()` / `buildAgendaTimelines()` 填充当天截止待办 3. `DayTimelineView` 时间轴顶部(全天区之上)渲染待办区 4. 勾选框点击回调到 Index 的 `toggleTodo`(级联完成等既有逻辑复用) 5. 已完成的待办不显示;有截止时间(startTime>0)才显示 ## 验收标准 - 新建一条"明天截止"的待办,明天日期的时间轴顶部显示它 - 有截止时间、未完成的才显示;无截止/已完成的不显示 - 点勾选框能直接完成(带划线和进度联动,与待办列表一致) - 不影响现有全天/跨天/时间轴色块 ## 显示位置 日视图时间轴(DayTimelineView)顶部、全天区之上,与全天区同样随内容滚动。 --- ### 为什么单独建单 待办投射到日历是全新的显示需求,与已关闭的 #43 子任务 #44 附件以及其它待办功能无重叠,可独立验收
Author
Owner

验收记录

提交:8497cfe

改了什么

  • DayTimeline 加 todos 字段(当天截止、未完成的待办)
  • Index.todosDueOn() 筛选:当天截止 + 未完成 + 有截止时间,按截止升序
  • rebuildDayTimeline() / buildAgendaTimelines() 填充
  • DayTimelineView 时间轴顶部(全天区之上)渲染待办区,勾选圈复用 toggleTodo
  • toggleTodo 成功后重建时间轴(否则待办区快照不刷新)

显示位置

日时间轴顶部、全天/跨天区之上,随内容滚动。列表视图每天卡片同样生效。

验证

  • 编译 BUILD SUCCESSFUL
  • 筛选逻辑等价验证通过(当天/未完成/有截止 三条件 + 排序 + 边界)

遗留

真机未验(设备离线)。需人工验勾选圈交互、待办区随数据刷新。

## 验收记录 提交:`8497cfe` ### 改了什么 - `DayTimeline` 加 `todos` 字段(当天截止、未完成的待办) - `Index.todosDueOn()` 筛选:当天截止 + 未完成 + 有截止时间,按截止升序 - `rebuildDayTimeline()` / `buildAgendaTimelines()` 填充 - `DayTimelineView` 时间轴顶部(全天区之上)渲染待办区,勾选圈复用 `toggleTodo` - toggleTodo 成功后重建时间轴(否则待办区快照不刷新) ### 显示位置 日时间轴顶部、全天/跨天区之上,随内容滚动。列表视图每天卡片同样生效。 ### 验证 - 编译 BUILD SUCCESSFUL - 筛选逻辑等价验证通过(当天/未完成/有截止 三条件 + 排序 + 边界) ### 遗留 真机未验(设备离线)。需人工验勾选圈交互、待办区随数据刷新。
Author
Owner

真机验证结果(2026-11-04 19:00,设备 5NC0225B27004718)

设备连上后补做了本批(#43 #44 #45)的真机验证。

#45 待办投射到日历 —— ✅ 全部通过

服务器写入一条「今天 DUE」的待办后:

验证项 结果
时间轴日志 待办 0 条 → 待办 1 条(同步后正确识别)
界面渲染 [144,1398][1004,1442] 今天截止验证
位置正确 在「11月4日 三」下方、07:00 刻度之上(待办区在时间轴顶部)
勾选交互 点勾选圈 → 待办完成成功 id=750
自动刷新 勾选后 待办 1 条 → 0 条,界面消失
完成态过滤 已完成的不再显示(待办区是否还在: False)

#43 子任务 —— ✅ 全部通过

服务器写入父任务 + 子任务(RELATED-TO)后:

验证项 结果
同步 个人成长待办:REPORT 4 个资源,解析 4 条
父任务显示 [202,796][437,851] 父任务验证
父任务进度 副行 无截止时间 · 群晖:个人成长 · 0/1
子任务缩进 [277,985][571,1040] ∟ 子任务验证(x 从 202→277,缩进 75px)
连线符 ∟ 正确显示
级联完成 点父任务 → 待办完成成功 id=751 + id=752 + 级联完成 1 个子任务(父 verify43-parent)

#44 附件 —— ⚠️ 部分通过

验证项 结果
弹层字段 父任务(y=1810)、附件(y=1905) 均渲染
「添加文件」按钮 存在且可点
文件选择器唤起 ✅ 日志出现 filePicker/FileMgr 记录,选择器正常打开
完整上传链路 ❌ 未验(无法用自动化在系统选择器里选文件)

清理

测试数据已全部删除(verify45-today-todo / verify43-parent / verify43-child,均 204)。

## 真机验证结果(2026-11-04 19:00,设备 5NC0225B27004718) 设备连上后补做了本批(#43 #44 #45)的真机验证。 ### #45 待办投射到日历 —— ✅ 全部通过 服务器写入一条「今天 DUE」的待办后: | 验证项 | 结果 | |---|---| | 时间轴日志 | `待办 0 条` → `待办 1 条`(同步后正确识别) | | 界面渲染 | `[144,1398][1004,1442] 今天截止验证` | | 位置正确 | 在「11月4日 三」下方、07:00 刻度之上(待办区在时间轴顶部) | | 勾选交互 | 点勾选圈 → `待办完成成功 id=750` | | 自动刷新 | 勾选后 `待办 1 条` → `0 条`,界面消失 | | 完成态过滤 | 已完成的不再显示(`待办区是否还在: False`) | ### #43 子任务 —— ✅ 全部通过 服务器写入父任务 + 子任务(RELATED-TO)后: | 验证项 | 结果 | |---|---| | 同步 | `个人成长待办:REPORT 4 个资源,解析 4 条` | | 父任务显示 | `[202,796][437,851] 父任务验证` | | 父任务进度 | 副行 `无截止时间 · 群晖:个人成长 · 0/1` | | 子任务缩进 | `[277,985][571,1040] ∟ 子任务验证`(x 从 202→277,缩进 75px) | | 连线符 | `∟` 正确显示 | | **级联完成** | 点父任务 → `待办完成成功 id=751` + `id=752` + `级联完成 1 个子任务(父 verify43-parent)` | ### #44 附件 —— ⚠️ 部分通过 | 验证项 | 结果 | |---|---| | 弹层字段 | 父任务(y=1810)、附件(y=1905) 均渲染 | | 「添加文件」按钮 | 存在且可点 | | 文件选择器唤起 | ✅ 日志出现 `filePicker/FileMgr` 记录,选择器正常打开 | | **完整上传链路** | ❌ 未验(无法用自动化在系统选择器里选文件) | ### 清理 测试数据已全部删除(verify45-today-todo / verify43-parent / verify43-child,均 204)。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/FamilyBook#45