新建非今天的日程时,默认时间固定在当天 9 点,可能会更好。
entry/src/main/ets/pages/EventEditPage.ets:274-279:
entry/src/main/ets/pages/EventEditPage.ets:274-279
// 新建:日期取所选日(未选则今天),时间取当前时刻;结束 = 开始 + 1 小时 const base: number = AppStorage.get<number>('pendingEventDate') ?? Date.now(); const dayStart = new Date(new Date(base).getFullYear(), new Date(base).getMonth(), new Date(base).getDate()).getTime(); const now = new Date(); this.startMs = dayStart + now.getHours() * 3600000 + now.getMinutes() * 60000; this.endMs = this.startMs + 3600000;
日期取所选日(正确),但时分取 now(当前时刻),与所选日期无关。 所以下午 15:20 点开"下周三"的新建页,得到的是「下周三 15:20」而不是「下周三 09:00」—— 这就是用户说的"时间不固定"。
now
用户预期:新建时默认 09:00,而不是"现在几点就几点"。
用户的表述是"新建非今天的日程时,默认固定在当天 9 点"。 这句话有两种读法,实现上差别不小:
A 更贴近用户原话,也更合理:今天新建时用户常常是"记一笔现在发生的事", 默认当前时刻有意义;而选别的日期时,"现在几点"毫无参考价值,09:00 才是合理的通用默认。
⚠️ 待确认:按 A 实现(推荐);若用户要 B 再调整。
toggleAllDay() 关闭全天后(同文件 685-691 行)硬编码回 9 点:
toggleAllDay()
this.startMs = s.getTime() + 9 * 3600000; this.endMs = this.startMs + 3600000;
也就是说"全天 → 关闭全天"已经默认 09:00 了,而"新建"却用当前时刻。 两者口径不统一,本次一并统一到 09:00 更符合直觉。
09:00
应用市场用户反馈的第1条,与已关闭的 #2(WSL迁移)、#3(卸载清理)无关;是新建日程默认时间的产品行为调整
已随 0.2.0 完成并真机验证通过,关闭。
entry/src/main/ets/pages/EventEditPage.ets:
entry/src/main/ets/pages/EventEditPage.ets
新增常量(第 116 行)
private static readonly DEFAULT_START_HOUR: number = 9;
新建分支(第 284-292 行):所选日 == 今天 → 当前时刻;≠ 今天 → 09:00
if (dayStart === todayStart) { this.startMs = dayStart + now.getHours() * 3600000 + now.getMinutes() * 60000; } else { this.startMs = dayStart + EventEditPage.DEFAULT_START_HOUR * 3600000; }
全天开关(第 703 行):关闭全天时也引用同一常量,不再是硬编码的 9 * 3600000 —— 之前"新建用当前时刻、关全天用 9 点"两套口径,现已统一。
9 * 3600000
采用 A 方案(只改非今天)而非 B 方案(一律 09:00): 今天新建时用户通常在"记一笔现在发生的事",默认当前时刻更有意义; 而选其它日期时"现在几点"毫无参考价值,09:00 才是合理默认。
No dependencies set.
The note is not visible to the blocked user.
用户反馈(应用市场评价)
根因(已定位到代码)
entry/src/main/ets/pages/EventEditPage.ets:274-279:日期取所选日(正确),但时分取
now(当前时刻),与所选日期无关。所以下午 15:20 点开"下周三"的新建页,得到的是「下周三 15:20」而不是「下周三 09:00」——
这就是用户说的"时间不固定"。
用户预期:新建时默认 09:00,而不是"现在几点就几点"。
需要澄清的一处
用户的表述是"新建非今天的日程时,默认固定在当天 9 点"。
这句话有两种读法,实现上差别不小:
A 更贴近用户原话,也更合理:今天新建时用户常常是"记一笔现在发生的事",
默认当前时刻有意义;而选别的日期时,"现在几点"毫无参考价值,09:00 才是合理的通用默认。
⚠️ 待确认:按 A 实现(推荐);若用户要 B 再调整。
顺带发现的相关不一致
toggleAllDay()关闭全天后(同文件 685-691 行)硬编码回 9 点:也就是说"全天 → 关闭全天"已经默认 09:00 了,而"新建"却用当前时刻。
两者口径不统一,本次一并统一到 09:00 更符合直觉。
建议实现
09:00(含分钟归零)toggleAllDay()关闭全天的 9 点硬编码改为引用同一常量验收标准
为什么单独建单
应用市场用户反馈的第1条,与已关闭的 #2(WSL迁移)、#3(卸载清理)无关;是新建日程默认时间的产品行为调整
已随 0.2.0 完成并真机验证通过,关闭。
实现(按工单推荐的 A 方案)
entry/src/main/ets/pages/EventEditPage.ets:新增常量(第 116 行)
新建分支(第 284-292 行):所选日 == 今天 → 当前时刻;≠ 今天 → 09:00
全天开关(第 703 行):关闭全天时也引用同一常量,不再是硬编码的
9 * 3600000—— 之前"新建用当前时刻、关全天用 9 点"两套口径,现已统一。
验收对照
口径说明
采用 A 方案(只改非今天)而非 B 方案(一律 09:00):
今天新建时用户通常在"记一笔现在发生的事",默认当前时刻更有意义;
而选其它日期时"现在几点"毫无参考价值,09:00 才是合理默认。