- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
10 lines
15 KiB
HTML
10 lines
15 KiB
HTML
<!--
|
||
SUBJECT 模板(lark-cli mail --subject 用):
|
||
[团队] 工作周报 · [YYYY 第 NN 周]
|
||
-->
|
||
<div style="margin-top:24px;margin-bottom:8px;line-height:1.6"><span style="display:inline-block;border-bottom:3px solid rgb(36,91,219);padding-bottom:4px"><b style="font-size:18px;color:rgb(31,35,41)">本周工作</b></span></div>
|
||
<ol data-list-number="true" style="margin:0px;padding-left:0px;list-style-position:inside"><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-this" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><b><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[项目 / 事件 1 名称]</span></span></b><a id="at-user-1" class="not-doclink" href="mailto:[email-1a]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 a]</a><a id="at-user-2" class="not-doclink" href="mailto:[email-1b]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 b]</a><blockquote style="padding-left:0px;color:rgb(100,106,115);border-left:2px solid rgb(187,191,196);margin:0px"><div dir="auto" style="font-size:14px;padding-left:12px"><span style="font-family:inherit"><span style="color:rgb(100,106,115)">文档:<a class="not-doclink" href="https://[doc-url-1]" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">[文档名]</a></span></span></div></blockquote><ul data-list-bullet="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside"><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 1.1:动作 / 产出,宏观角度]</span></span><a id="at-user-3" class="not-doclink" href="mailto:[email-子1.1]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 c]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,已完成</span></span></li><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 1.2]</span></span><a id="at-user-4" class="not-doclink" href="mailto:[email-子1.2]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 d]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,已完成</span></span></li><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 1.3]</span></span><a id="at-user-5" class="not-doclink" href="mailto:[email-子1.3a]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 e]</a><a id="at-user-6" class="not-doclink" href="mailto:[email-子1.3b]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 f]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,已完成</span></span></li></ul></li><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-this" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><b><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[项目 / 事件 2 名称]</span></span></b><a id="at-user-7" class="not-doclink" href="mailto:[email-2]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 g]</a><blockquote style="padding-left:0px;color:rgb(100,106,115);border-left:2px solid rgb(187,191,196);margin:0px"><div dir="auto" style="font-size:14px;padding-left:12px"><span style="font-family:inherit"><span style="color:rgb(100,106,115)">技术方案:<a class="not-doclink" href="https://[doc-url-2a]" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">[文档名]</a> · 设计稿:<a class="not-doclink" href="https://[doc-url-2b]" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">[设计稿名]</a></span></span></div></blockquote><ul data-list-bullet="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside"><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><b><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 2.1:含孙子项的动作主题]</span></span></b><ul data-list-bullet="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside"><li class="temp-li bullet3" data-li-line="true" data-list="bullet3" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:square;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[孙子项 2.1.1:必要时再细分一层;不需要可整段删除]</span></span><a id="at-user-8" class="not-doclink" href="mailto:[email-孙2.1.1]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 h]</a></li><li class="temp-li bullet3" data-li-line="true" data-list="bullet3" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:square;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[孙子项 2.1.2]</span></span></li></ul></li><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 2.2]</span></span><a id="at-user-9" class="not-doclink" href="mailto:[email-子2.2]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 i]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,进行中</span></span></li><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 2.3]</span></span><a id="at-user-10" class="not-doclink" href="mailto:[email-子2.3]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 j]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,评审中</span></span></li></ul></li><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-this" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><b><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[项目 / 事件 3 名称]</span></span></b><a id="at-user-11" class="not-doclink" href="mailto:[email-3a]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 k]</a><a id="at-user-12" class="not-doclink" href="mailto:[email-3b]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 l]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,</span></span><span style="background-color:rgb(255,225,140);color:rgb(31,35,41)">阻塞</span><blockquote style="padding-left:0px;color:rgb(100,106,115);border-left:2px solid rgb(187,191,196);margin:0px"><div dir="auto" style="font-size:14px;padding-left:12px"><span style="font-family:inherit"><span style="color:rgb(100,106,115)">阻塞分析:<a class="not-doclink" href="https://[doc-url-3]" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">[文档名]</a></span></span></div></blockquote><ul data-list-bullet="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside"><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 3.1:阻塞点 / 卡住原因]</span></span><a id="at-user-13" class="not-doclink" href="mailto:[email-子3.1]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 m]</a></li><li class="temp-li bullet2" data-li-line="true" data-list="bullet2" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:circle;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子项 3.2:解锁路径]</span></span><a id="at-user-14" class="not-doclink" href="mailto:[email-子3.2]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 n]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,待启动</span></span></li></ul></li></ol>
|
||
<div style="margin-top:28px;margin-bottom:8px;line-height:1.6"><span style="display:inline-block;border-bottom:3px solid rgb(36,91,219);padding-bottom:4px"><b style="font-size:18px;color:rgb(31,35,41)">下周工作</b></span></div>
|
||
<ol data-list-number="true" style="margin:0px;padding-left:0px;list-style-position:inside"><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-next" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[重点 1:项目 / 事件名]</span></span><a id="at-user-15" class="not-doclink" href="mailto:[email-r1]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 o]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,预计 [YYYY-MM-DD]</span></span></li><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-next" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[重点 2:含子重点的项目]</span></span><ol data-list-number="true" style="margin:0px 0px 0px 24px;padding-left:0px;list-style-position:inside"><li class="temp-li number2" data-li-line="true" data-list="number2" data-ol-id="weekly-next" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:lower-alpha;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子重点 a:动作 / 推进方式]</span></span><a id="at-user-16" class="not-doclink" href="mailto:[email-r2a]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 p]</a></li><li class="temp-li number2" data-li-line="true" data-list="number2" data-ol-id="weekly-next" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:lower-alpha;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[子重点 b:动作]</span></span><a id="at-user-17" class="not-doclink" href="mailto:[email-r2b]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 q]</a></li></ol></li><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-next" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[重点 3:项目 / 事件名]</span></span><a id="at-user-18" class="not-doclink" href="mailto:[email-r3a]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 r]</a><a id="at-user-19" class="not-doclink" href="mailto:[email-r3b]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 s]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,预计 [YYYY-MM-DD]</span></span></li><li class="temp-li number1" data-li-line="true" data-list="number1" data-ol-id="weekly-next" style="line-height:1.6;margin:4px 0;padding-left:0px;display:list-item;list-style-type:decimal;font-family:inherit;font-size:14px;list-style-position:inside" dir="auto"><span style="font-family:inherit"><span style="color:rgb(31,35,41)">[重点 4:项目 / 事件名]</span></span><a id="at-user-20" class="not-doclink" href="mailto:[email-r4]" style="cursor:pointer;color:rgb(20,86,240);padding:2px;text-decoration:none;border-radius:999em;margin:0px 2px" rel="nofollow noopener noreferrer">@[姓名 t]</a><span style="font-family:inherit"><span style="color:rgb(31,35,41)">,预计 [YYYY-MM-DD]</span></span></li></ol>
|
||
<div style="margin-top:32px;margin-bottom:4px;line-height:1.6"><div dir="auto" style="font-size:14px"><span style="font-family:inherit"><span style="color:rgb(143,149,158)">— [姓名] / [团队] / [日期]|<a class="not-doclink" href="mailto:[your@email]" style="cursor:pointer;text-decoration:none;color:rgb(20,86,240)">[your@email]</a></span></span></div></div>
|