ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Super Productivity 归档任务优化:三步上手与避坑指南

Super Productivity 归档任务优化:三步上手与避坑指南 Super Productivity 归档任务优化三步上手与避坑指南【免费下载链接】super-productivitySuper Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.项目地址: https://gitcode.com/GitHub_Trending/su/super-productivity月底复盘你想翻一翻上个月完成的任务却发现工作视图里干干净净找不到 Super Productivity 归档任务去了哪里。这不是任务丢了而是它们被批量移进了归档区查看入口又不显眼复盘自然无从下手。归档的位置一句话归档就是把完成的任务从当前视图挪进一个独立区域任务没删只是换个地方存放。打个比方它像办公室的档案柜办完的文件不扔进碎纸机而是放进柜子里。日常办公桌面不受影响需要查旧账时拉开柜门就行。在 Super Productivity 里归档与时间盒Timeboxing即给任务预留一段固定的工作时间和时间追踪工作流是一体的你把当天完成的任务从工作视图移走时底层调用的就是 task.service.ts 中TaskService的moveToArchive方法。移出去的任务仍保留在数据里随时可以回看。两个坑子任务归档冲突项目上下文会直接报错现象在项目视图里对一批已完成任务执行归档操作报错父任务没能进归档区。原因moveToArchive在项目上下文Project Context即按项目组织任务的工作视角中不允许子任务单独进归档// task.service.ts 中的判断 const subTasks tasks.filter((t) t.parentId); if (subTasks.length activeWorkContextType ! WorkContextType.TAG) { throw new Error(Trying to move sub tasks into archive for project); }标签上下文按标签组织任务的视角是例外项目上下文不是。后果只要传给归档方法的顶层数组里混着子任务带子任务的父任务就容易触发这条报错。扁平化结构父子被拍成一层现象完成列表里父任务和子任务同时以独立条目出现。父任务带着两个子任务本该是两层结构实际却是三条平铺记录。原因这个拍平的状态由 move-to-archive.spec.ts 完整复现// 现状子任务被拍平成独立条目 const doneTasks: TaskWithSubTasks[] [ createMockTaskWithSubTasks(parentTask, [subTask1, subTask2]), createMockTaskWithSubTasks(subTask1), // 子任务单独成条 createMockTaskWithSubTasks(subTask2), // 子任务单独成条 ];后果归档时同一批任务被重复处理数据不一致上面的报错也更容易被触发。spec 文件里的 EXPECTED 场景给出的预期是顶层数组只留父任务子任务挂在父任务的subTasks里。三层改造数据过滤层归档前先把子任务滤掉改什么调用归档方法之前先保证只有顶级任务进入流程。怎么改在把列表交给moveToArchive前加一行过滤把带parentId的条目筛掉。这正是 spec 中 FIX 部分对应 move-to-archive.spec.ts 的思路// 过滤后只有顶级任务进入归档 const tasksToArchive doneTasks.filter((task) !task.parentId);用户感知批量归档不再因为列表里混了子任务而失败。UI 交互层任务列表里加归档切换按钮改什么让用户不翻菜单也能进出归档视图。怎么改参考 task-list.component.ts 的现有交互模式在任务列表加一个切换按钮button mat-icon-button (click)toggleArchiveView() mat-icon{{isArchiveView ? unarchive : archive}}/mat-icon /button用户感知点一下就在常规视图和归档视图之间切换不用绕道搜索框。状态管理层给归档一个专用 action改什么把归档哪批任务从组件里抽到状态层统一调度。怎么改建议在 task.actions.ts 中新增一个专用 action形如archiveFilteredTasksprops 携带taskIds数组和contextType当前工作上下文类型。action 配合 selector 按上下文精确计算待归档集合组件只负责触发不再各自拼任务列表。用户感知归档行为由状态层统一把关多视图下的表现一致不再出现换个视图归档结果不一样的情况。验收与收益改造是否到位看一条断言。验证片段来自 move-to-archive.spec.ts 的修复用例expect(tasksToArchive.length).toBe(1); // 只剩父任务 expect(tasksToArchive[0].id).toBe(parent-1); expect(tasksToArchive[0].subTasks.length).toBe(2); // 子任务仍挂在父任务下归档后待处理集合里只剩 1 个父任务2 个子任务仍挂在它下面顶层不再出现子任务。达到这个状态两个坑就都填上了。收益从用户视角看操作更稳包含子任务的父任务可以顺利进归档报错场景消失大项目更快批量归档的重复处理明显减少任务越多体感越明显入口更多左侧导航的归档入口、项目页的归档标签、任务搜索里的归档筛选三条路都能翻到历史任务。上手与延伸三步上手在任务列表把要归档的任务标为完成点批量操作选择归档已完成任务在左侧导航点归档查看历史任务。给管理员的提醒升级后建议跑一次数据校验确认存量归档任务的父子结构已正确转换遇到同步层面的异常可对照 docs/sync/vector-clocks.md 的同步机制排查。后续可以延伸两个方向多维筛选按时间范围、标签、优先级组合筛选归档任务UI 可参考 task-summary-table.component.ts 的设计模式复用其列与筛选结构改动集中、风险可控。归档分析报表基于 task-summary-table 的统计逻辑输出归档任务的完成时间分布与子任务完成度报表复盘时直接给出结论不用再逐条翻记录。本文基于 Super Productivity 当前代码库整理技术细节以仓库源码为准。【免费下载链接】super-productivitySuper Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.项目地址: https://gitcode.com/GitHub_Trending/su/super-productivity创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表