From df79f34ab8dff79eedc0804846f7f9c964c175ca Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 21 Sep 2026 21:02:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E7=AB=AF:=20=E5=91=A8=E8=A7=86?= =?UTF-8?q?=E5=9B=BE=E7=A9=BA=E5=88=97=E8=A1=A5=E3=80=8C=E2=80=94=E3=80=8D?= =?UTF-8?q?=E5=8D=A0=E4=BD=8D=EF=BC=88=E5=8F=AA=E6=9C=89=20if=20=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=20else=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户:「宽屏布局下日历的周视图日视图还是一塌糊涂」。 WebUI `WeekGrid`(`CalendarView.tsx:649`)是**两条分支**: {list.length === 0 ?
—
: list.map(e => )} 我们只有 `ForEach`,**没有 else** ⇒ 没日程的那几列是**全空**的。 为什么"反正也没内容"不成立:七列等高,有日程的列有卡片、没日程的列一片白 ⇒ 看上去像"这几列没渲染出来"。一个破折号把 「查明过、这天真没有」 与 「还没查 / 没画」 区分开 —— 与右栏「这一天没有日程」是同一个道理(本页注释里早有这句话)。 颜色用 `textSubtleFor()` 而不是 WebUI 的字面 `text-gray-300`: 三级文字就是这两个档(周格 gray-300 / 时刻表 gray-200)的对应物, 且它自带深浅两套 —— 手写 gray-300 在深色下会发亮(本仓已撞过 12 次)。 验证:宽屏 3184 周视图实测 —— 21/22/23/26/27 五列各行首出现「—」, 24/25 两列照旧显示日程条。 --- .../entry/src/main/ets/pages/CalendarPage.ets | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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)