fix(待办): 新建待办默认不带截止时间 (#55)

## 现象
新建待办时,截止时间默认被填成"今天 09:00",用户还得手动清掉。

## 根因
两处叠加:
1. `Index.openTodoCreator()` 传了 `pendingTodoDate = this.selectedDate`
2. `TodoEditPage.initPage()` 拿到这个值就 `this.hasDue = true`,
   并把截止时间设成"该日 09:00"

而 `@State hasDue` 本身的默认值是 `false` —— 逻辑上"默认有截止"是这两处
预填把它顶成 true 的。

## 语义上也不对
日程(VEVENT)是"发生在某天某时的**事**",所以默认带时间合理;
待办(VTODO)是"**要完成的事**",多数一开始并不确定哪天截止,
CalDAV 的 VTODO 里 DUE 本来就是可选字段。

## 修法
1. `openTodoCreator` 不再传 `selectedDate`,改为传 0(不预填)
2. `TodoEditPage` 去掉预填分支:`hasDue` 保持 false、`dueMs` 保持 0
3. 日期选择器仍预置一个合理初值(明天 09:00),用户点了才会真正设置

## 真机验证(5NC0225B27004718)
| 验证项 | 结果 |
|---|---|
| 截止时间显示 | `无截止时间`(原来是 `2026-11-05 09:00`)✅ |
| 「清除」按钮 | 不存在(无截止时不显示)✅ |
| 右侧箭头 `›` | 存在,整行可点 ✅ |

## 编译
BUILD SUCCESSFUL
This commit is contained in:
2026-11-05 16:13:17 +08:00
parent f807a5d99f
commit f08a2a0dea
2 changed files with 13 additions and 14 deletions
+4 -1
View File
@@ -3627,8 +3627,11 @@ struct Index {
*/
private async openTodoCreator(): Promise<void> {
// ⭐ 改为独立页面(与新建日程一致):预置参数后跳转
// 待办默认**没有截止时间**(与日程不同:待办不是"发生在某天的事",
// 而是"要完成的事",多数待办一开始并不确定哪天截止)。
// 所以不传 pendingTodoDate(0 = 不预填)。
AppStorage.setOrCreate<number>('pendingTodoId', 0);
AppStorage.setOrCreate<number>('pendingTodoDate', this.selectedDate);
AppStorage.setOrCreate<number>('pendingTodoDate', 0);
router.pushUrl({ url: 'pages/TodoEditPage' });
}