32 lines
2.1 KiB
Markdown
32 lines
2.1 KiB
Markdown
---
|
||
'@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`。
|