@taocompany/magic-grid 0.7.2 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +205 -32
- package/dist/components/MagicGrid/MagicGrid.vue.d.ts +2 -2
- package/dist/core/api/gridApi.d.ts +32 -4
- package/dist/core/api/gridApi.d.ts.map +1 -1
- package/dist/core/event/projectGridEvent.d.ts.map +1 -1
- package/dist/core/grid/grid.d.ts +13 -0
- package/dist/core/grid/grid.d.ts.map +1 -1
- package/dist/core/grid/gridRowMutation.d.ts +4 -0
- package/dist/core/grid/gridRowMutation.d.ts.map +1 -1
- package/dist/core/row/resolveRowDragMoveIds.d.ts +2 -0
- package/dist/core/row/resolveRowDragMoveIds.d.ts.map +1 -1
- package/dist/core/rowModel/clientSideRowModel.d.ts.map +1 -1
- package/dist/core/rowModel/createRowNodes.d.ts +2 -2
- package/dist/core/rowModel/transientRowId.d.ts +9 -1
- package/dist/core/rowModel/transientRowId.d.ts.map +1 -1
- package/dist/core/selection/selectable.d.ts +2 -0
- package/dist/core/selection/selectable.d.ts.map +1 -1
- package/dist/core/types/events.d.ts +14 -3
- package/dist/core/types/events.d.ts.map +1 -1
- package/dist/core/types/gridOptions.d.ts +1 -1
- package/dist/core/types/gridOptions.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +4 -2
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/rowDrag.d.ts +19 -0
- package/dist/core/types/rowDrag.d.ts.map +1 -1
- package/dist/core/types/rowMutation.d.ts +7 -2
- package/dist/core/types/rowMutation.d.ts.map +1 -1
- package/dist/core/types/selectedRowSnapshot.d.ts +48 -0
- package/dist/core/types/selectedRowSnapshot.d.ts.map +1 -0
- package/dist/getRowDragCommitHierarchy-BbyzRJXx.cjs +2 -0
- package/dist/getRowDragCommitHierarchy-BbyzRJXx.cjs.map +1 -0
- package/dist/getRowDragCommitHierarchy-Cz2FPv3R.js +256 -0
- package/dist/getRowDragCommitHierarchy-Cz2FPv3R.js.map +1 -0
- package/dist/index.cjs.js +5 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +2824 -2781
- package/dist/index.es.js.map +1 -1
- package/dist/types/core.cjs.js +1 -1
- package/dist/types/core.d.ts +116 -8
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.es.js +2 -2
- package/package.json +97 -96
- package/dist/getRowDragCommitHierarchy-0oVURi17.cjs +0 -2
- package/dist/getRowDragCommitHierarchy-0oVURi17.cjs.map +0 -1
- package/dist/getRowDragCommitHierarchy-qD8vAlIy.js +0 -146
- package/dist/getRowDragCommitHierarchy-qD8vAlIy.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,6 +7,14 @@
|
|
|
7
7
|
- [概述](#概述)
|
|
8
8
|
- [架构与设计](#架构与设计)
|
|
9
9
|
- [快速开始](#快速开始)
|
|
10
|
+
- [行移动](#行移动)
|
|
11
|
+
- [核心概念:source 与 display](#核心概念source-与-display)
|
|
12
|
+
- [前置配置](#行移动前置配置)
|
|
13
|
+
- [平铺表:UI 拖拽与 API](#平铺表ui-拖拽与-api)
|
|
14
|
+
- [分组表:组内换序](#分组表组内换序)
|
|
15
|
+
- [indexMode 说明](#indexmode-说明)
|
|
16
|
+
- [约束与常见失败原因](#约束与常见失败原因)
|
|
17
|
+
- [moveRows 参数与返回值](#moverows-参数与返回值)
|
|
10
18
|
- [数据与性能最佳实践](#数据与性能最佳实践)
|
|
11
19
|
- [Cell Renderer 滚动渲染](#cell-renderer-滚动渲染)
|
|
12
20
|
- [树形表格](#树形表格)
|
|
@@ -22,7 +30,6 @@
|
|
|
22
30
|
- [行拖拽与层级变更](#行拖拽与层级变更)
|
|
23
31
|
- [与其它能力叠加](#树形与其它能力叠加)
|
|
24
32
|
- [常见错误与排查](#常见错误与排查)
|
|
25
|
-
- [Playground 与延伸阅读](#playground-与延伸阅读)
|
|
26
33
|
- [默认配置](#默认配置)
|
|
27
34
|
- [Props](#props)
|
|
28
35
|
- [MagicGrid Props](#magicgrid-props)
|
|
@@ -58,14 +65,16 @@
|
|
|
58
65
|
| 类别 | 能力 |
|
|
59
66
|
|------|------|
|
|
60
67
|
| **性能** | 行/列双轴虚拟化、DOM 池复用、RAF 帧预算分片、Cell Renderer 滚动调度(idle flush · 按行合并 · placeholder-then-vue)、增量数据管线 |
|
|
61
|
-
| **数据** | 排序、列筛选、Quick Filter、事务增量更新(`applyTransaction`)、行 CRUD |
|
|
68
|
+
| **数据** | 排序、列筛选、Quick Filter、事务增量更新(`applyTransaction`)、行 CRUD、**行移动**(`moveRow` / `moveRows`) |
|
|
62
69
|
| **交互** | 单元格/行编辑(内置 text/number/checkbox/switch · overlay/inline)、校验、行选择、索引列定位、框选与剪贴板 |
|
|
63
70
|
| **布局** | 固定列、列拖拽/调整宽度、列有效性与显隐(`available` / `hidden`)、合并单元格、动态行高、主从展开行 |
|
|
64
71
|
| **结构** | 行分组、树形表格(含懒加载)、表尾汇总 |
|
|
65
72
|
| **体验** | 溢出 Tooltip、单元格批注、空态 Overlay、暗色主题、底部状态栏 |
|
|
66
73
|
| **扩展** | 列设置面板、内置编辑器(text/number/checkbox/switch)、Vue 第三方编辑器 Composable、inline 常驻编辑器、async-validator 校验 |
|
|
67
74
|
|
|
68
|
-
当前版本:**0.
|
|
75
|
+
当前版本:**0.7.5**(`@taocompany/magic-grid`)。
|
|
76
|
+
|
|
77
|
+
> **上手路径**:安装 → [快速开始](#快速开始) → 按需查阅 [行移动](#行移动)、[树形表格](#树形表格) 等专题,以及下文 Props / Events / GridApi 索引。
|
|
69
78
|
|
|
70
79
|
### 环境要求
|
|
71
80
|
|
|
@@ -94,7 +103,7 @@ import '@taocompany/magic-grid/style.css'
|
|
|
94
103
|
|
|
95
104
|
## 架构与设计
|
|
96
105
|
|
|
97
|
-
Magic Grid 采用 **命令式渲染内核 + Vue 薄封装** 的分层架构,对标 AG Grid 社区版 API
|
|
106
|
+
Magic Grid 采用 **命令式渲染内核 + Vue 薄封装** 的分层架构,对标 AG Grid 社区版 API 语义,渲染路径针对百万级行数据做了专门优化。
|
|
98
107
|
|
|
99
108
|
### 分层结构
|
|
100
109
|
|
|
@@ -189,6 +198,155 @@ const columns: ColumnDef[] = [
|
|
|
189
198
|
```
|
|
190
199
|
|
|
191
200
|
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 行移动
|
|
204
|
+
|
|
205
|
+
MagicGrid 支持**编程式 API**与**索引列 UI 拖拽**两种方式调整行序。无论哪种方式,最终都修改 **`source` 数组**(即 `api.getData()` / `ref.getData()` 返回的顺序),表格按当前 sort / filter / 分组 / 树形规则重新计算可见顺序(`rowsToDisplay`)。
|
|
206
|
+
|
|
207
|
+
### 核心概念:source 与 display
|
|
208
|
+
|
|
209
|
+
| 概念 | 含义 | 消费端如何观察 |
|
|
210
|
+
|------|------|----------------|
|
|
211
|
+
| **source 顺序** | 业务数据在内存中的存储顺序 | `gridRef.getData()` 或 `api.getData()` 返回的数组下标 |
|
|
212
|
+
| **display 顺序** | 经过分组/树形/sort/filter 后,屏幕上看到的行顺序 | 肉眼所见;`indexMode: 'display'` 的 `toIndex` 指此顺序 |
|
|
213
|
+
| **rowsToDisplay** | 内核内部的可见行列表(含 groupHeader、tree 节点等) | 不直接暴露;`toIndex` 在分组表中含 **groupHeader / groupFooter** 行 |
|
|
214
|
+
|
|
215
|
+
**重要**:分组表下 source 可以交错(如研发部行 1、5、7 在 source 中不相邻),界面仍按 `department` 聚合展示。组内换序只改变 source 中同组 leaf 的相对位置,**不会**把行移到另一组。
|
|
216
|
+
|
|
217
|
+
### 行移动前置配置
|
|
218
|
+
|
|
219
|
+
| Prop | 典型值 | 说明 |
|
|
220
|
+
|------|--------|------|
|
|
221
|
+
| `show-index-column` | `true` | 显示索引列;drag handle 与 index focus 的前提 |
|
|
222
|
+
| `index-column.showRowDragHandle` | `true` | 索引列左侧拖拽把柄 |
|
|
223
|
+
| `index-column.focusMode` | `'multiple'` | 索引列多选 focus,可整块移动(**不读取** checkbox 行选) |
|
|
224
|
+
| `row-drag-managed` | `true`(默认) | drop 后自动写回 source 并触发 `row-moved`;`false` 时自行监听 `row-drag-end` 改序 |
|
|
225
|
+
|
|
226
|
+
```vue
|
|
227
|
+
<MagicGrid
|
|
228
|
+
show-index-column
|
|
229
|
+
:index-column="{ showRowDragHandle: true, focusMode: 'multiple' }"
|
|
230
|
+
row-drag-managed
|
|
231
|
+
@row-moved="onRowMoved"
|
|
232
|
+
/>
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 平铺表:UI 拖拽与 API
|
|
236
|
+
|
|
237
|
+
**UI 拖拽**:在索引列 focus 一行或多行 → 拖左侧 handle → 松手后 source 顺序更新。
|
|
238
|
+
|
|
239
|
+
**编程式 API**:
|
|
240
|
+
|
|
241
|
+
```ts
|
|
242
|
+
const api = gridRef.value?.api
|
|
243
|
+
|
|
244
|
+
// 移动单行:将 id=3 的行移到 source 下标 0
|
|
245
|
+
api?.moveRow(3, 0)
|
|
246
|
+
|
|
247
|
+
// 批量移动:将 id 2、3、4 作为一块移到 source 下标 0,块内相对顺序不变
|
|
248
|
+
api?.moveRows({ rowIds: [2, 3, 4], toIndex: 0 })
|
|
249
|
+
|
|
250
|
+
// 结合索引列 focus(业务 rowKey,不是 __MG_TMP__::* 除非临时行)
|
|
251
|
+
const rowIds = api?.getIndexFocusedRowIds() ?? []
|
|
252
|
+
if (rowIds.length > 0) {
|
|
253
|
+
api.moveRows({ rowIds, toIndex: 0, indexMode: 'display' })
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
`moveRows` **不读取** checkbox 选区(`rowSelection`)。若需按 checkbox 选中移动,请 `getSelectedRows()` 取 `rowId`,或 `generateSelectedRowIds(selectedRows)`(临时行场景)。
|
|
258
|
+
|
|
259
|
+
返回值 `RowMoveResult`:`{ moved: true, fromIndex, toIndex, moves? }` 或 `{ moved: false, reason }`。失败时 **不修改** source,不 emit `row-moved`。
|
|
260
|
+
|
|
261
|
+
### 分组表:组内换序
|
|
262
|
+
|
|
263
|
+
开启 `rowGrouping` 后,行移动**限定在同一分组下的数据行(leaf)**内,不可跨组、不能通过 drag/API 改分组字段。
|
|
264
|
+
|
|
265
|
+
```vue
|
|
266
|
+
<MagicGrid
|
|
267
|
+
row-grouping
|
|
268
|
+
show-group-header
|
|
269
|
+
show-index-column
|
|
270
|
+
:index-column="{ showRowDragHandle: true, focusMode: 'multiple' }"
|
|
271
|
+
row-drag-managed
|
|
272
|
+
:columns="[
|
|
273
|
+
{ prop: 'department', rowGroup: true, rowGroupIndex: 0, label: '部门', width: 120 },
|
|
274
|
+
{ prop: 'name', label: '姓名', width: 120 },
|
|
275
|
+
]"
|
|
276
|
+
/>
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**组内上移一步**(`indexMode: 'display'`):
|
|
280
|
+
|
|
281
|
+
```ts
|
|
282
|
+
const rowIds = api.getIndexFocusedRowIds()
|
|
283
|
+
if (rowIds.length === 0) return
|
|
284
|
+
|
|
285
|
+
// rowIds 须同属一组 leaf;toIndex 为 leader 行移动后的可见下标(含 groupHeader)
|
|
286
|
+
api.moveRows({
|
|
287
|
+
rowIds,
|
|
288
|
+
leaderRowId: rowIds[0],
|
|
289
|
+
toIndex: leaderDisplayIndex - 1, // leader 移动后的可见下标;须自行解析,见下文说明
|
|
290
|
+
indexMode: 'display',
|
|
291
|
+
})
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
跨组时返回 `{ moved: false, reason: 'cannot move rows across groups' }`。
|
|
295
|
+
|
|
296
|
+
**解析 display 下标**:Grid API 暂不暴露「按 rowId 查可见行下标」。实现上移/下移按钮时,可读取表格 mount 区域内 `.mg-row[data-row-id]` 的 DOM 顺序作为 display 下标(含 `mg-row--group-header` 行);或自行维护 rowId → displayIndex 映射。
|
|
297
|
+
|
|
298
|
+
### indexMode 说明
|
|
299
|
+
|
|
300
|
+
| 值 | `toIndex` 含义 | 适用场景 |
|
|
301
|
+
|----|----------------|----------|
|
|
302
|
+
| `'source'`(默认) | source 数组下标 | 平铺表、sort 激活时仍可用 |
|
|
303
|
+
| `'display'` | 当前可见行下标(含 groupHeader 等) | 平铺表按肉眼顺序移动;**分组表组内换序推荐** |
|
|
304
|
+
|
|
305
|
+
sort 激活时 **`display` 模式会被拒绝**(返回 `reason` 含 `sort`);此时请用 `source` 模式或先 `setSortModel([])`。
|
|
306
|
+
|
|
307
|
+
### 约束与常见失败原因
|
|
308
|
+
|
|
309
|
+
| 场景 | 行为 |
|
|
310
|
+
|------|------|
|
|
311
|
+
| **sort 激活** | `indexMode: 'display'` 拒绝;`source` 仍可用 |
|
|
312
|
+
| **filter 激活** | 无「只改 display 不改 source」;display 模式映射后仍写 source |
|
|
313
|
+
| **行分组** | 须同一组 leaf;不可跨组 |
|
|
314
|
+
| **树形** | 须同一父节点下兄弟;跨父 reorder 仅 UI hierarchy drag + deferred commit |
|
|
315
|
+
| **rowDragManaged + sort(平铺)** | drag handle 隐藏;**API 仍可用**(`source` 模式) |
|
|
316
|
+
|
|
317
|
+
常见 `reason`:`no rows to move` · `display index mode is not allowed while sort is active` · `selected rows must belong to the same group` · `cannot move rows across groups` · `selected rows must belong to the same tree parent`
|
|
318
|
+
|
|
319
|
+
### 事件
|
|
320
|
+
|
|
321
|
+
| 事件 | 说明 |
|
|
322
|
+
|------|------|
|
|
323
|
+
| `@row-moved` / `api.on('rowMoved')` | 换序成功后触发;`source: 'api'` 或 `'uiRowDrag'`;`fromIndex` / `toIndex` 为 **source 下标** |
|
|
324
|
+
| `@row-drag-end` | `rowDragManaged: false` 时由业务自行改序 |
|
|
325
|
+
| `@index-focus-changed` | 索引列 focus 变化(与 checkbox 选区独立) |
|
|
326
|
+
|
|
327
|
+
### moveRows 参数与返回值
|
|
328
|
+
|
|
329
|
+
`MoveRowsGridApiOptions`:
|
|
330
|
+
|
|
331
|
+
| 字段 | 类型 | 默认值 | 说明 |
|
|
332
|
+
|------|------|--------|------|
|
|
333
|
+
| `rowIds` | `RowId[]` | — | **必填**。待移动行的业务 rowKey(`string \| number`) |
|
|
334
|
+
| `toIndex` | `number` | — | **必填**。目标下标;含义由 `indexMode` 决定 |
|
|
335
|
+
| `indexMode` | `'source' \| 'display'` | `'source'` | 下标基准 |
|
|
336
|
+
| `leaderRowId` | `RowId` | source 中最早出现的行 | 块 anchor:`toIndex` 表示 leader 移动后的位置,其余行随块保持相对顺序 |
|
|
337
|
+
|
|
338
|
+
`RowMoveResult`:
|
|
339
|
+
|
|
340
|
+
| 字段 | 类型 | 说明 |
|
|
341
|
+
|------|------|------|
|
|
342
|
+
| `moved` | `boolean` | 是否发生位移 |
|
|
343
|
+
| `fromIndex` | `number?` | leader 变更前 **source** 下标 |
|
|
344
|
+
| `toIndex` | `number?` | leader 变更后 **source** 下标 |
|
|
345
|
+
| `moves` | `{ rowId, fromIndex, toIndex }[]?` | 块内各行位移明细 |
|
|
346
|
+
| `reason` | `string?` | `moved: false` 时的失败原因 |
|
|
347
|
+
|
|
348
|
+
`moveRow(rowId, toIndex, indexMode?)` 为单行语法糖;`moveRows` 在 `rowIds.length === 1` 时与之等价。更多 API 索引见 [GridApi](#gridapigridrefvalueapi)、事件见 [`row-moved`](#row-moved)。
|
|
349
|
+
|
|
192
350
|
---
|
|
193
351
|
|
|
194
352
|
## 数据与性能最佳实践
|
|
@@ -196,7 +354,7 @@ const columns: ColumnDef[] = [
|
|
|
196
354
|
### 行数据
|
|
197
355
|
|
|
198
356
|
- **`data` 使用普通对象数组**,不要对行数据做 `reactive()` 深代理;Grid 内部维护 RowNode,深代理会显著拖慢增量更新。
|
|
199
|
-
- **`rowKey` 必须稳定唯一**(业务主键);临时新增行可省略主键,内核分配 `
|
|
357
|
+
- **`rowKey` 必须稳定唯一**(业务主键);临时新增行可省略主键,内核分配 `__MG_TMP__::*`(不对用户暴露),落库后调用 `promoteRowId`。
|
|
200
358
|
- **大批量写入**优先 `applyTransaction` 或 `beginUpdate` / `endUpdate` 包裹多次 API 调用,避免连续 `setData` 全量替换。
|
|
201
359
|
|
|
202
360
|
### 列定义
|
|
@@ -208,7 +366,7 @@ const columns: ColumnDef[] = [
|
|
|
208
366
|
### 性能提示
|
|
209
367
|
|
|
210
368
|
- 避免在 `cellRenderer` / `formatter` / `valueGetter` 中创建重量级对象或触发外部副作用;这些函数在滚动时会高频调用。
|
|
211
|
-
- 多列使用 `#cell-{colId}` Vue 插槽时,滚停后可能出现 renderer 列空白拖尾;见下方 [Cell Renderer 滚动渲染](#cell-renderer-滚动渲染)
|
|
369
|
+
- 多列使用 `#cell-{colId}` Vue 插槽时,滚停后可能出现 renderer 列空白拖尾;见下方 [Cell Renderer 滚动渲染](#cell-renderer-滚动渲染)。
|
|
212
370
|
- 合并单元格(`enableCellSpan`)会启用 `style.top` 行定位并增加 span cache 开销,仅在确有需求时开启。
|
|
213
371
|
- 生产环境可通过 `scroll` / `data-rendered` 事件订阅渲染完成时机;开发调试时可关注 DOM 行池规模与 `setData` 耗时。
|
|
214
372
|
|
|
@@ -243,13 +401,13 @@ const columns: ColumnDef[] = [
|
|
|
243
401
|
/>
|
|
244
402
|
```
|
|
245
403
|
|
|
246
|
-
`placeholder-then-vue` 模式下,slot 列需配置可读 `prop` 或 `formatter
|
|
404
|
+
`placeholder-then-vue` 模式下,slot 列需配置可读 `prop` 或 `formatter`,滚动态才有文字兜底。调优项见上表。
|
|
247
405
|
|
|
248
406
|
---
|
|
249
407
|
|
|
250
408
|
## 树形表格
|
|
251
409
|
|
|
252
|
-
树形表格(Tree Table)在 **扁平 `data` 数组** 上,通过 **`getDataPath`** 为每行提供 **从根到当前节点的路径**(`string[]`),内核据此构建层级并 **DFS 投影** 为可见的 `rowsToDisplay`。对标 [AG Grid Tree Data](https://www.ag-grid.com/javascript-data-grid/tree-data/)
|
|
410
|
+
树形表格(Tree Table)在 **扁平 `data` 数组** 上,通过 **`getDataPath`** 为每行提供 **从根到当前节点的路径**(`string[]`),内核据此构建层级并 **DFS 投影** 为可见的 `rowsToDisplay`。对标 [AG Grid Tree Data](https://www.ag-grid.com/javascript-data-grid/tree-data/) 社区版语义。
|
|
253
411
|
|
|
254
412
|
> **与行分组互斥**:`tree: true` 与 `rowGrouping: true` **不得同时生效**。双开时控制台 dev 警告,**`tree` 优先**,`rowGrouping` 及 `ColumnDef.rowGroup` 被忽略。flat / group / tree 三选一,见 [概述与核心概念](#概述与核心概念)。
|
|
255
413
|
|
|
@@ -280,7 +438,7 @@ Magic Grid **不支持**嵌套 `children` 字段作为树数据源(与 AG Grid
|
|
|
280
438
|
1. **前缀唯一确定父子**:`['A','B']` 的父路径必须是 `['A']`;缺父路径 → 建树 **throw**。
|
|
281
439
|
2. **同一路径不得对应多行**:重复路径 → 建树 **throw**。
|
|
282
440
|
3. **路径段为任意字符串**:可含中文、空格、特殊字符;内核用 `\0` 拼接做内部 key。
|
|
283
|
-
4. **`rowKey` 必须稳定唯一**:与 flat
|
|
441
|
+
4. **`rowKey` 必须稳定唯一**:与 flat 表格相同;临时行内部 id 为 `__MG_TMP__::*`,落库后 `promoteRowId`。
|
|
284
442
|
|
|
285
443
|
#### 数据管线(tree 模式)
|
|
286
444
|
|
|
@@ -361,7 +519,7 @@ const getDataPath: GetDataPathFn = ({ data }) =>
|
|
|
361
519
|
</template>
|
|
362
520
|
```
|
|
363
521
|
|
|
364
|
-
效果:左侧自动注入 **tree 系统列**(缩进 + chevron + 路径末段或 `name
|
|
522
|
+
效果:左侧自动注入 **tree 系统列**(缩进 + chevron + 路径末段或 `name`),支持折叠/展开、同级排序筛选、父子联动行选。
|
|
365
523
|
|
|
366
524
|
### 树形表格配置项详解
|
|
367
525
|
|
|
@@ -715,7 +873,7 @@ async function onRowDragCommit(context: RowDragCommitContext): Promise<boolean>
|
|
|
715
873
|
}
|
|
716
874
|
```
|
|
717
875
|
|
|
718
|
-
`RowHierarchyChange` 含 `rowId`、`parentRowId`、`siblingIndex`、`treeLevel`、`dataPath`
|
|
876
|
+
`RowHierarchyChange` 含 `rowId`、`parentRowId`、`siblingIndex`、`treeLevel`、`dataPath` 等字段,由 `onRowDragCommit` 回调接收。
|
|
719
877
|
|
|
720
878
|
### 树形与其它能力叠加
|
|
721
879
|
|
|
@@ -745,13 +903,7 @@ async function onRowDragCommit(context: RowDragCommitContext): Promise<boolean>
|
|
|
745
903
|
| 选中父但子孙未选中 | 子孙折叠不可见,或 `groupSelectsChildren: false` | 展开 / 检查配置 |
|
|
746
904
|
| `expandAll` 未加载 lazy 子级 | 设计限制 | 逐节点 expand 或预加载 |
|
|
747
905
|
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
- **交互验收**:本地运行 Playground,访问 **`/phase19`**(`Phase19Demo.vue`)。
|
|
751
|
-
- **数据集**:组织树全量 · 组织树 lazy · 菜单 mock(多根、深层路径)。
|
|
752
|
-
- **验收步骤 T1–T15**:见 [`playground/shared/phase19-grid.ts`](playground/shared/phase19-grid.ts) 中 `PHASE19_ACCEPTANCE_STEPS`。
|
|
753
|
-
- **设计文档**:[`docs/30-phase19-tree-table.md`](docs/30-phase19-tree-table.md)(架构、拍板记录、测试矩阵)。
|
|
754
|
-
- **Props / Events / GridApi 索引**:[Props · 树形表格](#树形表格-1) · [Events · 树形表格](#树形表格-2) · [Expose · expandNode](#展开--分组--树)。
|
|
906
|
+
相关 API 索引:[Props · 树形表格](#树形表格-1) · [Events · 树形表格](#树形表格-2) · [GridApi · expandNode](#展开--分组--树)。
|
|
755
907
|
|
|
756
908
|
---
|
|
757
909
|
|
|
@@ -1727,7 +1879,7 @@ GridApi 行 CRUD 参数:
|
|
|
1727
1879
|
|
|
1728
1880
|
| 字段 | 类型 | 说明 |
|
|
1729
1881
|
|------|------|------|
|
|
1730
|
-
| `rowId` | `string \| number` | 当前 RowNode.id
|
|
1882
|
+
| `rowId` | `string \| number` | 当前 `RowNode.id`(临时行通常为 `__MG_TMP__::*`) |
|
|
1731
1883
|
| `businessId` | `string \| number` | 正式业务主键,写入 `data[rowKey]` |
|
|
1732
1884
|
|
|
1733
1885
|
### ValidateGridOptions / ValidateRowsOptions / ValidateCellsOptions
|
|
@@ -1760,11 +1912,22 @@ GridApi 校验参数:
|
|
|
1760
1912
|
|
|
1761
1913
|
| 字段 | 类型 | 默认值 | 说明 |
|
|
1762
1914
|
|------|------|--------|------|
|
|
1763
|
-
| `rowId` | `
|
|
1915
|
+
| `rowId` | `RowId` | — | **必填**。业务 rowKey 或内核 id(`string \| number`) |
|
|
1764
1916
|
| `toIndex` | `number` | — | **必填**。目标下标 |
|
|
1765
1917
|
| `indexMode` | `'source' \| 'display'` | `'source'` | 下标基准 |
|
|
1766
1918
|
| `finished` | `boolean` | `true` | live drag 中间态为 `false` |
|
|
1767
1919
|
|
|
1920
|
+
**MoveRowsGridApiOptions**(`GridApi.moveRows(options)`):
|
|
1921
|
+
|
|
1922
|
+
| 字段 | 类型 | 默认值 | 说明 |
|
|
1923
|
+
|------|------|--------|------|
|
|
1924
|
+
| `rowIds` | `RowId[]` | — | **必填**。待移动行 id |
|
|
1925
|
+
| `toIndex` | `number` | — | **必填**。目标下标 |
|
|
1926
|
+
| `indexMode` | `'source' \| 'display'` | `'source'` | 下标基准 |
|
|
1927
|
+
| `leaderRowId` | `RowId` | source 中最早出现的行 | 块 anchor;`toIndex` 针对该行 |
|
|
1928
|
+
|
|
1929
|
+
完整语义与约束见 [行移动 · moveRows 参数与返回值](#moverows-参数与返回值)。
|
|
1930
|
+
|
|
1768
1931
|
**RefreshCellsParams**(`GridApi.refreshCells(params?)`):
|
|
1769
1932
|
|
|
1770
1933
|
| 字段 | 类型 | 说明 |
|
|
@@ -1950,7 +2113,7 @@ function onCellChange(event: CellValueChangedEvent<UserRow, number>) {
|
|
|
1950
2113
|
|
|
1951
2114
|
| 字段 | 说明 |
|
|
1952
2115
|
|------|------|
|
|
1953
|
-
| `rowId`(`BusinessRowId`) | 业务主键,通常等于 `data[rowKey]
|
|
2116
|
+
| `rowId`(`BusinessRowId`) | 业务主键,通常等于 `data[rowKey]`;临时行为 `null` |
|
|
1954
2117
|
| `data` | 行数据快照,规则同 `api.getData()`(浅拷贝;临时行 `rowKey` 字段为 `null`)。**优先用 `event.data` 读业务字段** |
|
|
1955
2118
|
| `rowNode` | 内核行节点,含布局/分组/树形等运行时字段;`data` 不够用时再用 |
|
|
1956
2119
|
| `value` / `oldValue` / `newValue` | 单元格原始值,与排序/过滤/编辑管线同源,**不是** formatter 展示文本 |
|
|
@@ -2066,13 +2229,16 @@ payload 为 `RowClickedEvent<TData>` / `RowDoubleClickedEvent<TData>`(默认 `
|
|
|
2066
2229
|
|
|
2067
2230
|
#### `selection-changed`
|
|
2068
2231
|
|
|
2069
|
-
行选择列 checkbox 选中集变化时触发。MagicGrid:`@selection-changed`。仅反映 checkbox 勾选,不含索引列定位(见 `index-focus-changed
|
|
2232
|
+
行选择列 checkbox 选中集变化时触发。MagicGrid:`@selection-changed`。仅反映 checkbox 勾选,不含索引列定位(见 `index-focus-changed`)。
|
|
2070
2233
|
|
|
2071
2234
|
payload 为 `SelectionChangedEvent`:
|
|
2072
2235
|
|
|
2073
2236
|
| 字段 | 类型 | 说明 |
|
|
2074
2237
|
|------|------|------|
|
|
2075
|
-
| `selectedRowIds` | `BusinessRowId[]` |
|
|
2238
|
+
| `selectedRowIds` | `BusinessRowId[]` | 业务 id 列表;**临时行均为 `null`**,不可用于删除 |
|
|
2239
|
+
| `selectedRows` | `SelectedRowSnapshot[]` | 完整快照(含 `internalRowId`);**删除临时行请用此字段** |
|
|
2240
|
+
|
|
2241
|
+
也可通过 `api.getSelectedRows()` / `api.getSelectedRowIds()` 同步读取。
|
|
2076
2242
|
|
|
2077
2243
|
#### `index-focus-changed`
|
|
2078
2244
|
|
|
@@ -2295,12 +2461,14 @@ payload 为 `FilterModel`(`Record<colId, FilterCondition>`)。各列条件
|
|
|
2295
2461
|
|
|
2296
2462
|
| 字段 | 类型 | 说明 |
|
|
2297
2463
|
|------|------|------|
|
|
2298
|
-
| `oldRowId` | `BusinessRowId` |
|
|
2464
|
+
| `oldRowId` | `BusinessRowId` | 晋升前业务 id;临时行源 id 对外投影为 `null` |
|
|
2299
2465
|
| `newRowId` | `BusinessRowId` | 正式业务主键 |
|
|
2300
2466
|
| `data` | `RowData` | 更新后的行数据 |
|
|
2301
2467
|
|
|
2302
2468
|
#### `row-moved`
|
|
2303
2469
|
|
|
2470
|
+
> 语义、source/display 与分组约束见 **[行移动](#行移动)** 专章。
|
|
2471
|
+
|
|
2304
2472
|
| 字段 | 类型 | 说明 |
|
|
2305
2473
|
|------|------|------|
|
|
2306
2474
|
| `rowId` | `BusinessRowId` | 被移动行 id |
|
|
@@ -2549,7 +2717,7 @@ async function addRow() {
|
|
|
2549
2717
|
|
|
2550
2718
|
### GridApi(`gridRef.value?.api`)
|
|
2551
2719
|
|
|
2552
|
-
`api` 是完整的命令式 API 面。以下按职责分组列出全部公开方法;入参 rowId 均接受 `string | number
|
|
2720
|
+
`api` 是完整的命令式 API 面。以下按职责分组列出全部公开方法;入参 rowId 均接受 `string | number`;出参 `rowId` 多为 `BusinessRowId`(`string | number | null`),临时行对外为 `null`。
|
|
2553
2721
|
|
|
2554
2722
|
#### 数据
|
|
2555
2723
|
|
|
@@ -2558,10 +2726,12 @@ async function addRow() {
|
|
|
2558
2726
|
| `setData(rows)` | `RowData[]` | `void` | 全量替换数据;触发完整重绘 |
|
|
2559
2727
|
| `applyTransaction(tx)` | `{ add?, update?, remove? }` | `Promise<RowNodeTransaction>` | 增量事务 add/update/remove |
|
|
2560
2728
|
| `addRows(options)` | `AddRowsOptions` | `Promise<RowNodeTransaction>` | 指定位置插入行;省略 rowKey 生成临时行 |
|
|
2561
|
-
| `removeRows(options)` | `{ rowIds?, indexes?, indexMode? }` | `Promise<RowNodeTransaction>` | 按 rowId
|
|
2729
|
+
| `removeRows(options)` | `{ rowIds?, indexes?, indexMode? }` | `Promise<RowNodeTransaction>` | 按 rowId 或下标删除;`rowIds` 可含 `__MG_TMP__::*` |
|
|
2730
|
+
| `removeSelectedRows(options?)` | `{ scope? }` | `Promise<RowNodeTransaction>` | 删除 checkbox 选中行(含临时行) |
|
|
2562
2731
|
| `getData(options?)` | `{ sourceOrder?: boolean }` | `RowData[]` | 导出业务数据;默认 source 顺序 |
|
|
2563
2732
|
| `promoteRowId(options)` | `{ rowId, businessId }` | `PromoteRowIdResult` | 临时 id 提升为正式主键 |
|
|
2564
|
-
| `moveRow(rowId, toIndex, indexMode?)` | rowId / 目标下标 / `'source'\|'display'` | `RowMoveResult` |
|
|
2733
|
+
| `moveRow(rowId, toIndex, indexMode?)` | rowId / 目标下标 / `'source'\|'display'` | `RowMoveResult` | 编程式移动单行;见 [行移动](#行移动) |
|
|
2734
|
+
| `moveRows(options)` | `MoveRowsGridApiOptions` | `RowMoveResult` | 编程式批量移动行块;见 [行移动](#行移动) |
|
|
2565
2735
|
|
|
2566
2736
|
#### 排序 / 筛选
|
|
2567
2737
|
|
|
@@ -2654,7 +2824,9 @@ async function addRow() {
|
|
|
2654
2824
|
| `toggleRowSelection(rowIds, selected?, force?)` | selected 省略时 toggle | `void` | 切换/设置 checkbox 选中;变更时 emit `selectionChanged` |
|
|
2655
2825
|
| `toggleAllSelection(selected?)` | 仅 multiple 模式 | `void` | 表头全选操作;`false` 仅取消可见可选行,保留 disabled 已选行 |
|
|
2656
2826
|
| `clearRowSelection(options?)` | `ClearRowSelectionOptions` | `void` | 清空行 checkbox 选中;变更时 emit `selectionChanged` |
|
|
2657
|
-
| `getSelectedRowIds()` | — | `BusinessRowId[]` |
|
|
2827
|
+
| `getSelectedRowIds()` | — | `BusinessRowId[]` | 业务 id;临时行为 `null` |
|
|
2828
|
+
| `getSelectedRows()` | — | `SelectedRowSnapshot[]` | 含 `internalRowId`;删除临时行推荐 |
|
|
2829
|
+
| `removeSelectedRows(options?)` | `{ scope? }` | `Promise<RowNodeTransaction>` | 删除 checkbox 选中行(含临时行) |
|
|
2658
2830
|
| `setIndexFocus(rowIds, options?)` | `SetIndexFocusOptions` | `void` | 编程式设置索引列辅助定位,不进入鼠标拖拉;变更时 emit `indexFocusChanged` |
|
|
2659
2831
|
| `getIndexFocusedRowIds()` | — | `BusinessRowId[]` | 读取当前索引列辅助定位;未启用 `showIndexColumn` 时返回 `[]` |
|
|
2660
2832
|
|
|
@@ -2764,7 +2936,7 @@ off?.() // 取消订阅
|
|
|
2764
2936
|
|
|
2765
2937
|
- **入参**:接受 `string | number`,与 `data[rowKey]` 类型一致;API 边界自动 `String()`。
|
|
2766
2938
|
- **出参 / 事件 `rowId`**:对外投影为 `BusinessRowId`(`string | number | null`),与 `data[rowKey]` 同型。
|
|
2767
|
-
- **临时行**:新增时省略 `rowKey` 或值为 `null`
|
|
2939
|
+
- **临时行**:新增时省略 `rowKey` 或值为 `null` 时,内核生成 `__MG_TMP__::*`;对外 `rowId` / `getData()[rowKey]` 均为 `null`。删除请用 `removeSelectedRows()` 或 `generateSelectedRowIds(selectedRows)`。
|
|
2768
2940
|
- **事件 `data`**:行数据快照,规则同 `getData()`;handler 中优先读 `event.data`,不必 `event.rowNode.data`。
|
|
2769
2941
|
|
|
2770
2942
|
---
|
|
@@ -3278,7 +3450,7 @@ function onCellValueChanged(event: { colId: string; rowId: string | number; oldV
|
|
|
3278
3450
|
- **校验失败** 或 **valueSetter 返回 false**:按 `invalidEditValueMode`(`keep` / `revert` / `block`)处理;inline checkbox/switch 会 **revert 控件 checked 态**。
|
|
3279
3451
|
- **async valueSetter**:提交期间单元格加 `.mg-cell--committing`,控件 disabled;Esc 可 `cancelCommit()` abort。
|
|
3280
3452
|
|
|
3281
|
-
|
|
3453
|
+
inline 编辑器无 overlay 浮层,组件随 refresh 复用而非每次 destroy;改值即 commit,不走 `useCellEditor` 的 overlay 生命周期。
|
|
3282
3454
|
|
|
3283
3455
|
### Vue 自定义编辑器
|
|
3284
3456
|
|
|
@@ -3298,7 +3470,7 @@ function onCellValueChanged(event: { colId: string; rowId: string | number; oldV
|
|
|
3298
3470
|
| `'input'`(默认) | 立即提交 | 否 | ElInput、原生 input |
|
|
3299
3471
|
| `'overlay'` | 延迟(由组件确认) | 是 | ElSelect、DatePicker |
|
|
3300
3472
|
|
|
3301
|
-
**`useCellEditor` 生命周期钩子**(overlay Vue
|
|
3473
|
+
**`useCellEditor` 生命周期钩子**(overlay Vue 编辑器):
|
|
3302
3474
|
|
|
3303
3475
|
| 钩子 | 时机 | 典型用途 |
|
|
3304
3476
|
|------|------|----------|
|
|
@@ -3309,7 +3481,7 @@ function onCellValueChanged(event: { colId: string; rowId: string | number; oldV
|
|
|
3309
3481
|
| `onBeforeCancel` / `onAfterCancel` | 取消前后 | 清理组件态 |
|
|
3310
3482
|
| `onDestroy` | Vue unmount | 释放定时器;**勿写 cache** |
|
|
3311
3483
|
|
|
3312
|
-
Overlay remount
|
|
3484
|
+
Overlay 编辑器在滚动/重绘时可能 remount。跨 remount 保留 UI 附属态(如 Select 的 allowCreate 临时项)可用 `params.getCellCache` / `params.setCellCache`(按 rowId + colId 键值存储,destroy 时清理)。
|
|
3313
3485
|
|
|
3314
3486
|
```vue
|
|
3315
3487
|
<!-- MyInputEditor.vue -->
|
|
@@ -3832,6 +4004,7 @@ import type { ColumnSettingsMenuIconName } from '@taocompany/magic-grid/types/co
|
|
|
3832
4004
|
|
|
3833
4005
|
- `toggleHeaderSort`
|
|
3834
4006
|
- `toBusinessRowId`、`toBusinessRowIdFromInternal`、`toBusinessRowIdsFromInternal`、`isSyntheticRow`
|
|
4007
|
+
- `generateSelectedRowIds`(将 `SelectedRowSnapshot[]` 转为 `removeRows` 可用的 id 列表)
|
|
3835
4008
|
- `evaluateGridAcceptance`、`getGridAcceptanceThresholds`、`getGridSetDataLimit`(性能验收)
|
|
3836
4009
|
- `RowMutationPersistError`
|
|
3837
4010
|
|
|
@@ -700,7 +700,7 @@ declare const __VLS_base: DefineComponent<ExtractPropTypes<{
|
|
|
700
700
|
"cell-clicked": (event: CellClickedEvent<RowData, unknown>) => any;
|
|
701
701
|
"row-click": (event: RowClickedEvent<RowData>) => any;
|
|
702
702
|
"row-dblclick": (event: RowDoubleClickedEvent<RowData>) => any;
|
|
703
|
-
"selection-changed": (event: SelectionChangedEvent) => any;
|
|
703
|
+
"selection-changed": (event: SelectionChangedEvent<RowData>) => any;
|
|
704
704
|
"index-focus-changed": (event: IndexFocusChangedEvent) => any;
|
|
705
705
|
"cell-value-changed": (event: CellValueChangedEvent<RowData, unknown>) => any;
|
|
706
706
|
"cell-editing-started": (event: CellEditingStartedEvent<RowData, unknown>) => any;
|
|
@@ -1359,7 +1359,7 @@ declare const __VLS_base: DefineComponent<ExtractPropTypes<{
|
|
|
1359
1359
|
"onCell-clicked"?: ((event: CellClickedEvent<RowData, unknown>) => any) | undefined;
|
|
1360
1360
|
"onRow-click"?: ((event: RowClickedEvent<RowData>) => any) | undefined;
|
|
1361
1361
|
"onRow-dblclick"?: ((event: RowDoubleClickedEvent<RowData>) => any) | undefined;
|
|
1362
|
-
"onSelection-changed"?: ((event: SelectionChangedEvent) => any) | undefined;
|
|
1362
|
+
"onSelection-changed"?: ((event: SelectionChangedEvent<RowData>) => any) | undefined;
|
|
1363
1363
|
"onIndex-focus-changed"?: ((event: IndexFocusChangedEvent) => any) | undefined;
|
|
1364
1364
|
"onCell-value-changed"?: ((event: CellValueChangedEvent<RowData, unknown>) => any) | undefined;
|
|
1365
1365
|
"onCell-editing-started"?: ((event: CellEditingStartedEvent<RowData, unknown>) => any) | undefined;
|
|
@@ -12,11 +12,13 @@ import { RowMoveResult } from '../row/rowMoveService';
|
|
|
12
12
|
import { CellSpanInfo } from '../types/cellSpan';
|
|
13
13
|
import { RowData } from '../../types/core.ts';
|
|
14
14
|
import { Grid } from '../grid/grid';
|
|
15
|
+
import { MoveRowsGridApiOptions } from '../types/rowDrag';
|
|
15
16
|
import { Column } from '../types/column';
|
|
16
17
|
import { ColumnFilterValueOption } from '../filter/filterSetValue';
|
|
17
18
|
import { ColumnResizeSource } from '../types/columnResize';
|
|
18
19
|
import { SizeColumnsToFitParams } from '../types/columnAutosize';
|
|
19
20
|
import { UpdateRowDimensionsParams } from '../types/rowHeight';
|
|
21
|
+
import { SelectedRowSnapshot } from '../types/selectedRowSnapshot';
|
|
20
22
|
import { CellComment, RefreshCellCommentsParams } from '../types/cellComment';
|
|
21
23
|
import { CellRange } from '../types/cellRangeSelection';
|
|
22
24
|
import { CellSelectionAggregation } from '../types/cellSelectionAggregation';
|
|
@@ -42,7 +44,7 @@ export interface RowMutationGridApi {
|
|
|
42
44
|
/**
|
|
43
45
|
* 在指定位置插入一行或多行。
|
|
44
46
|
*
|
|
45
|
-
* - 省略 `data[rowKey]` 或值为 `null` 时生成**临时行**(`RowNode.id =
|
|
47
|
+
* - 省略 `data[rowKey]` 或值为 `null` 时生成**临时行**(`RowNode.id = __MG_TMP__::*`);
|
|
46
48
|
* `getData()` 导出时对应字段为 `null`。
|
|
47
49
|
* - 带有效 `rowKey` 的新增行视为持久化行,须保证主键唯一。
|
|
48
50
|
* - 配置 `asyncRowMutation.add` 时 await 服务端成功后再写入本地。
|
|
@@ -61,11 +63,20 @@ export interface RowMutationGridApi {
|
|
|
61
63
|
* @returns 本次删除的 RowNode 快照
|
|
62
64
|
*/
|
|
63
65
|
removeRows(options: RemoveRowsOptions): Promise<RowNodeTransaction>;
|
|
66
|
+
/**
|
|
67
|
+
* 删除当前 checkbox 选中的行。
|
|
68
|
+
*
|
|
69
|
+
* - 使用内核 rowId,**可删除无业务主键的临时行**(`__MG_TMP__::*`)。
|
|
70
|
+
* - 等价于 `removeRows({ rowIds: generateSelectedRowIds(getSelectedRows()) })`,但更简洁。
|
|
71
|
+
* - `scope: 'all'`(默认)含离屏选中;`'current'` 仅当前 display 可见选中。
|
|
72
|
+
* - 配置 `asyncRowMutation.remove` 时 await 服务端成功后再删除本地。
|
|
73
|
+
*/
|
|
74
|
+
removeSelectedRows(options?: ClearRowSelectionOptions): Promise<RowNodeTransaction>;
|
|
64
75
|
/**
|
|
65
76
|
* 导出当前表格数据为业务层 `RowData[]`。
|
|
66
77
|
*
|
|
67
78
|
* - 默认 `sourceOrder: true`,按 source 存储顺序返回。
|
|
68
|
-
* - 临时行的 `data[rowKey]` 固定为 `null`(不暴露 `
|
|
79
|
+
* - 临时行的 `data[rowKey]` 固定为 `null`(不暴露 `__MG_TMP__::*`)。
|
|
69
80
|
*
|
|
70
81
|
* @param options.sourceOrder `false` 时按当前 display 顺序(含 sort/filter 结果)
|
|
71
82
|
*/
|
|
@@ -73,7 +84,7 @@ export interface RowMutationGridApi {
|
|
|
73
84
|
/**
|
|
74
85
|
* 将临时行的内部 id 提升为正式业务主键。
|
|
75
86
|
*
|
|
76
|
-
* - `rowId`:当前 `RowNode.id`(通常为 `
|
|
87
|
+
* - `rowId`:当前 `RowNode.id`(通常为 `__MG_TMP__::*`)。
|
|
77
88
|
* - `businessId`:写入 `data[rowKey]` 并更新 `RowNode.id` 的值(number / string)。
|
|
78
89
|
* - 目标 id 已存在或行正在编辑时返回 `{ ok: false, reason }`。
|
|
79
90
|
*
|
|
@@ -88,6 +99,16 @@ export interface RowMutationGridApi {
|
|
|
88
99
|
* - managed UI drag 成功时 emit `rowMoved`(`source: 'uiRowDrag'`);API 调用为 `'api'`。
|
|
89
100
|
*/
|
|
90
101
|
moveRow(rowId: RowId, toIndex: number, indexMode?: RowIndexMode): RowMoveResult;
|
|
102
|
+
/**
|
|
103
|
+
* 编程式批量移动行(保持 source 内相对顺序)。
|
|
104
|
+
*
|
|
105
|
+
* - `rowIds.length === 1` 时等价于 {@link moveRow}。
|
|
106
|
+
* - `leaderRowId` 省略时取 `rowIds` 在 source 中最早出现的行。
|
|
107
|
+
* - 成功时为块内每一行 emit `rowMoved`(`source: 'api'`)。
|
|
108
|
+
*
|
|
109
|
+
* @see docs/43-move-rows-api.md
|
|
110
|
+
*/
|
|
111
|
+
moveRows(options: MoveRowsGridApiOptions): RowMoveResult;
|
|
91
112
|
}
|
|
92
113
|
/**
|
|
93
114
|
* Magic Grid 完整命令式 API(对照 AG Grid GridApi 子集)。
|
|
@@ -396,8 +417,15 @@ export interface GridApi extends RowMutationGridApi {
|
|
|
396
417
|
* 变更时 emit `selectionChanged`。
|
|
397
418
|
*/
|
|
398
419
|
clearRowSelection(options?: ClearRowSelectionOptions): void;
|
|
399
|
-
/** 读取当前 checkbox
|
|
420
|
+
/** 读取当前 checkbox 选中的业务 id(与 `data[rowKey]` 一致;临时行均为 `null`) */
|
|
400
421
|
getSelectedRowIds(): BusinessRowId[];
|
|
422
|
+
/**
|
|
423
|
+
* 读取当前 checkbox 选中的完整快照。
|
|
424
|
+
*
|
|
425
|
+
* 含 `internalRowId`(临时行 `__MG_TMP__::*`),删除临时行、展示选中项时推荐使用。
|
|
426
|
+
* 配合 {@link generateSelectedRowIds} 可转为 `removeRows({ rowIds })` 入参。
|
|
427
|
+
*/
|
|
428
|
+
getSelectedRows(): SelectedRowSnapshot[];
|
|
401
429
|
/** 读取当前索引列辅助定位 rowId;未启用 `showIndexColumn` 时返回 `[]` */
|
|
402
430
|
getIndexFocusedRowIds(): BusinessRowId[];
|
|
403
431
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridApi.d.ts","sourceRoot":"","sources":["../../../src/core/api/gridApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gridApi.d.ts","sourceRoot":"","sources":["../../../src/core/api/gridApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectGridEvent.d.ts","sourceRoot":"","sources":["../../../src/core/event/projectGridEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAA;AAKlC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"projectGridEvent.d.ts","sourceRoot":"","sources":["../../../src/core/event/projectGridEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAA;AAKlC,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AA8BrE,gDAAgD;AAChD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,aAAa,EACtD,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,oBAAoB,GACxB,YAAY,CAAC,CAAC,CAAC,CAwUjB"}
|
package/dist/core/grid/grid.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ import { ColumnResizeGridOptions, ColumnResizeSource } from '../types/columnResi
|
|
|
29
29
|
import { FilterGridOptions } from '../types/filterGridOptions';
|
|
30
30
|
import { CellEditorFn } from '../types/cellEditor';
|
|
31
31
|
import { RowId, RowIdInput } from '../types/rowId';
|
|
32
|
+
import { MoveRowsGridApiOptions } from '../types/rowDrag';
|
|
32
33
|
import { BusinessRowId } from '../types/businessRowId';
|
|
33
34
|
import { ClearCellValidationOptions, ClearRowValidationOptions, ClearValidationOptions, ValidateCellsOptions, ValidateGridOptions, ValidateRowsOptions } from '../types/validation';
|
|
34
35
|
import { AddRowsOptions, GetDataOptions, PromoteRowIdOptions, PromoteRowIdResult, RemoveRowsOptions, RowIndexMode } from '../types/rowMutation';
|
|
@@ -36,6 +37,7 @@ import { RowData, ColumnFilterValueOption, GridValidationResult } from '../../ty
|
|
|
36
37
|
import { GridMetrics } from './gridMetrics';
|
|
37
38
|
import { GridInitOptions } from './gridOptions';
|
|
38
39
|
import { ColumnAutosizeGridOptions, SizeColumnsToFitParams } from '../types/columnAutosize';
|
|
40
|
+
import { SelectedRowSnapshot } from '../types/selectedRowSnapshot';
|
|
39
41
|
import { ColumnPinSource } from '../types/columnPin';
|
|
40
42
|
export type { GridMetrics, GridAcceptanceThresholds } from './gridMetrics';
|
|
41
43
|
export { evaluateGridAcceptance, getGridAcceptanceThresholds, getGridSetDataLimit, } from './gridMetrics';
|
|
@@ -149,6 +151,8 @@ export declare class Grid {
|
|
|
149
151
|
private destroyed;
|
|
150
152
|
/** updateDimensions 批量更新期间跳过中间态 syncViewportHeight */
|
|
151
153
|
private suppressRowLayoutViewportSync;
|
|
154
|
+
/** 行序变更前框选/锚点 rowIndex → rowId 快照(供 remap) */
|
|
155
|
+
private rowOrderRangeIndexSnapshot;
|
|
152
156
|
constructor(mountEl: HTMLElement, options: GridInitOptions);
|
|
153
157
|
getApi(): GridApi;
|
|
154
158
|
setSelectable(value: SelectableFn | undefined): void;
|
|
@@ -181,6 +185,8 @@ export declare class Grid {
|
|
|
181
185
|
toggleAllSelection(selected?: boolean): void;
|
|
182
186
|
clearRowSelection(options?: ClearRowSelectionOptions): void;
|
|
183
187
|
getSelectedRowIds(): BusinessRowId[];
|
|
188
|
+
getSelectedRows(): SelectedRowSnapshot[];
|
|
189
|
+
removeSelectedRows(options?: ClearRowSelectionOptions): Promise< RowNodeTransaction>;
|
|
184
190
|
getIndexFocusedRowIds(): BusinessRowId[];
|
|
185
191
|
isRowNodeSelectable(rowNode: RowNode): boolean;
|
|
186
192
|
getSelectableRowIdAt(index: number): string | undefined;
|
|
@@ -235,6 +241,8 @@ export declare class Grid {
|
|
|
235
241
|
removeRows(options: RemoveRowsOptions): Promise<RowNodeTransaction>;
|
|
236
242
|
/** Phase 15 · 改 source / display 行序 */
|
|
237
243
|
moveRow(rowId: RowId, toIndex: number, indexMode?: RowIndexMode): RowMoveResult;
|
|
244
|
+
/** Phase 15 · 批量改 source / display 行序(保持块内相对顺序) */
|
|
245
|
+
moveRows(options: MoveRowsGridApiOptions): RowMoveResult;
|
|
238
246
|
/** Phase 15 · 设单行高并 pinned */
|
|
239
247
|
setRowHeight(rowId: RowId, height: number, finished?: boolean): void;
|
|
240
248
|
/** Phase 15 · 批量设行高 */
|
|
@@ -327,6 +335,11 @@ export declare class Grid {
|
|
|
327
335
|
private applyFocusVisuals;
|
|
328
336
|
/** 行编辑:投影同行全部编辑列的表头/行号高亮 */
|
|
329
337
|
private resolveRowEditingHighlightRanges;
|
|
338
|
+
private beginRowOrderVisualCapture;
|
|
339
|
+
private captureCellRangeRowIndexSnapshot;
|
|
340
|
+
private finishRowOrderVisualSync;
|
|
341
|
+
private remapCellFocusAfterRowOrderChanged;
|
|
342
|
+
private remapCellRangeSelectionAfterRowOrderChanged;
|
|
330
343
|
/** 高亮投影格:编辑态优先当前编辑列,否则取焦点格 */
|
|
331
344
|
private resolveHighlightProjectionCell;
|
|
332
345
|
private isHighlightProjectionCellEligible;
|