diff --git a/client/harmony/entry/src/main/ets/pages/CalendarPage.ets b/client/harmony/entry/src/main/ets/pages/CalendarPage.ets index ad51643..e0e55b8 100644 --- a/client/harmony/entry/src/main/ets/pages/CalendarPage.ets +++ b/client/harmony/entry/src/main/ets/pages/CalendarPage.ets @@ -1063,6 +1063,32 @@ export struct CalendarPage { */ if (this.cellShowsChips() && cell.label > 0) { Column({ space: 2 }) { + /* + * ★★ 2026-09-21 补:**空列要有「—」占位**。 + * + * WebUI `WeekGrid`(`CalendarView.tsx:649`)是: + * {list.length === 0 + * ?
—
+ * : list.map(...)} + * 我们原来**只有 if 没有 else** ⇒ 没日程的那几列是**全空**的。 + * + * 为什么不是“反正也没内容”: + * 七列等高,有日程的列有卡片、没日程的列一片白 ⇒ + * 看上去像“这几列没渲染出来”(用户说的“一塌糊涂”包含这一条)。 + * 一个破折号把“查明过、这天真没有”与“还没查/没画”区分开 —— + * 与右栏「这一天没有日程」同一个道理(本页注释里已有这句话)。 + * + * 颜色:WebUI 是 `text-gray-300`(周格)/`text-gray-200`(时刻表), + * 本仓取 `textSubtleFor()` —— 三级文字就是这两个档的对应物, + * 且它自带深浅两套(手写 gray-300 在深色下会发亮)。 + */ + if (this.eventsOf(cell.iso).length === 0) { + Text('—') + .fontSize(Theme.fontTiny) + .fontColor(Theme.textSubtleFor(this.isDarkNow)) + .width('100%') + .padding({ left: 4, top: 6 }) + } ForEach(this.eventsOf(cell.iso), (ev: CalendarEvent) => { this.EventChip(ev) }, (ev: CalendarEvent) => ev.event_id)