Files
workspace/code/g3soft-libs/.changeset/table-readonly-grey-gate.md
T
2026-10-13 22:32:50 +08:00

14 lines
1.4 KiB
Markdown

---
'@g3soft/ui': patch
---
G3Table:「不可改的格子」灰底加上前提 —— **这张表里得先有人能编辑**。
- 灰底的语义是「这一格现在改不了」,它靠「旁边有可改的格子」传达意义。原先的判据是逐格看「有没有 `editor`」,于是**纯展示表**(列上都没写 `editor`,文档 7 张 demo 里有 6 张如此)会把**每一格**都标成只读并铺灰 —— 整张表看上去像「禁用状态」,与实际(这是一张正常展示表)不符。
- 现在两种情况不再铺灰:
- 表格里**一个可编辑列都没有**(含「唯一有 editor 的那列 `disabled: true`」);
- `editable="false"`,编辑功能整体关掉。
- 判据取「存在**真的可编辑**的列」:`disabled` 写成**函数**的列算可编辑(总有行能改,灰底正是要表达它)。
- 可编辑表里的行为**不变**:没有 `editor` 的列、`editor.disabled: true` 的列、以及按行禁用的格子照旧常驻灰底(不需要先点开某一行)。
- 单测锁「按行禁用时展示 span 带 `cell-readonly`」与「总开关关闭时不带」;真浏览器 e2e 用两个新宿主分别锁「纯展示表」与「`editable: false`」都是 0 个灰格,并反向断言可编辑表里仍有灰底(把门控改成恒真时,纯展示表立刻量到 6 个灰格、用例转红,实测)。