跨端: 周视图空列补「—」占位(只有 if 没有 else)

用户:「宽屏布局下日历的周视图日视图还是一塌糊涂」。

WebUI `WeekGrid`(`CalendarView.tsx:649`)是**两条分支**:

    {list.length === 0
      ? <div className="text-xs text-gray-300 px-1 py-2">—</div>
      : list.map(e => <EventChip .../>)}

我们只有 `ForEach`,**没有 else** ⇒ 没日程的那几列是**全空**的。

为什么"反正也没内容"不成立:七列等高,有日程的列有卡片、没日程的列一片白
⇒ 看上去像"这几列没渲染出来"。一个破折号把
「查明过、这天真没有」 与 「还没查 / 没画」 区分开 ——
与右栏「这一天没有日程」是同一个道理(本页注释里早有这句话)。

颜色用 `textSubtleFor()` 而不是 WebUI 的字面 `text-gray-300`:
三级文字就是这两个档(周格 gray-300 / 时刻表 gray-200)的对应物,
且它自带深浅两套 —— 手写 gray-300 在深色下会发亮(本仓已撞过 12 次)。

验证:宽屏 3184 周视图实测 —— 21/22/23/26/27 五列各行首出现「—」,
24/25 两列照旧显示日程条。
This commit is contained in:
2026-09-21 21:02:01 +08:00
parent e6a4070a95
commit df79f34ab8

View File

@ -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
* ? <div className="text-xs text-gray-300 px-1 py-2">—</div>
* : 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)