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:
@@ -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' });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user