Files
workspace/code/g3soft-libs/.changeset/rich-text-table.md
T
2026-10-11 22:14:13 +08:00

32 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
'@g3soft/ui': minor
---
修复并增强 `RichText` 表格编辑。
**修复**
- 初始为 `disabled` / `readonly` 的编辑器恢复可编辑后,列宽拖拽仍失效:Tiptap 在创建时按 `isEditable` 决定是否注册 `columnResizing` 插件,而 `setEditable` 不会重建插件。现改为始终按可编辑创建、挂载后按 props 降级,插件集完整保留。
- 光标落在单元格文本内时,操作浮层定位崩溃(`domAtPos().node` 返回文本节点,`closest` 不存在抛 `TypeError`)。已归一化节点类型后再取表格元素。
- 浮层 `z-index` 硬编码 `1000`,会被 modal(1101+)盖住;改用 `nextZIndex('popup')` 领取、隐藏即归还。
- 页面级滚动 / 窗口缩放时浮层位置漂移:新增 `window` 捕获阶段 `scroll` / `resize` 监听跟随重定位。
- 插入表格面板行列数不校验,输入 0 / 负数 / 超大值会生成畸形表格:现在插入时夹回 1–20。
**增强**
- 补齐表头能力:切换表头列、切换表头单元格(此前仅表头行)。
- 单元格水平对齐:左 / 中 / 右对齐(写入 `style="text-align: …"`),激活态高亮,支持一键取消。
- 「合并或拆分」单键智能操作:选中多格合并、单格有合并则拆分。
- 分组分隔线 + 去重图标,危险操作(删除表格)单独分组防误点。
- 插入面板新增「包含表头行」开关、Enter 键提交;只读 / 禁用态浮层自动隐藏。
**列宽拖拽重构**
- 布局从 `table-layout: auto` 改为 `fixed`:拖拽只动被拖列、其余列纹丝不动,不再出现「拖第 2/3 列线时第 1 列被动变窄」的联动错位。
- 拖拽结束 / 插入表格后自动把整表各列实际宽度固化回 `colwidth`,保证后续每次拖拽严格隔离相邻列。
- 最小列宽从 80px 调整为 10px。
- 移除拖拽时的黑色竖线指示条(只保留 `col-resize` 光标提示)。
- fixed 布局消除 auto 布局下每次 mousemove 的整表重排,拖拽不再卡顿。
文档见 `docs/content/ui/form/rich-text.md`,e2e 见 `packages/ui/e2e/rich-text-table.spec.ts`。