e-virt-table 1.3.26 → 1.4.1

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.
Files changed (82) hide show
  1. package/dist/index.cjs.js +16 -5
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.es.js +2993 -2520
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/index.umd.js +16 -5
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/lib/Autofill.js +3 -2
  8. package/dist/lib/Autofill.js.map +1 -1
  9. package/dist/lib/BaseCell.d.ts +15 -2
  10. package/dist/lib/BaseCell.js +55 -15
  11. package/dist/lib/BaseCell.js.map +1 -1
  12. package/dist/lib/Body.d.ts +8 -0
  13. package/dist/lib/Body.js +230 -0
  14. package/dist/lib/Body.js.map +1 -1
  15. package/dist/lib/Cell.d.ts +9 -18
  16. package/dist/lib/Cell.js +143 -181
  17. package/dist/lib/Cell.js.map +1 -1
  18. package/dist/lib/CellHeader.d.ts +9 -2
  19. package/dist/lib/CellHeader.js +80 -44
  20. package/dist/lib/CellHeader.js.map +1 -1
  21. package/dist/lib/CellImage.d.ts +15 -0
  22. package/dist/lib/CellImage.js +72 -0
  23. package/dist/lib/CellImage.js.map +1 -0
  24. package/dist/lib/Config.d.ts +18 -3
  25. package/dist/lib/Config.js +72 -25
  26. package/dist/lib/Config.js.map +1 -1
  27. package/dist/lib/Context.d.ts +5 -1
  28. package/dist/lib/Context.js +22 -3
  29. package/dist/lib/Context.js.map +1 -1
  30. package/dist/lib/ContextMenu.js +10 -2
  31. package/dist/lib/ContextMenu.js.map +1 -1
  32. package/dist/lib/DOMTreeMenu.js +1 -1
  33. package/dist/lib/DOMTreeMenu.js.map +1 -1
  34. package/dist/lib/Database.d.ts +1 -0
  35. package/dist/lib/Database.js +105 -94
  36. package/dist/lib/Database.js.map +1 -1
  37. package/dist/lib/EVirtTable.d.ts +5 -0
  38. package/dist/lib/EVirtTable.js +24 -0
  39. package/dist/lib/EVirtTable.js.map +1 -1
  40. package/dist/lib/Editor.d.ts +1 -0
  41. package/dist/lib/Editor.js +10 -3
  42. package/dist/lib/Editor.js.map +1 -1
  43. package/dist/lib/Empty.d.ts +2 -0
  44. package/dist/lib/Empty.js +11 -2
  45. package/dist/lib/Empty.js.map +1 -1
  46. package/dist/lib/EventTable.d.ts +0 -13
  47. package/dist/lib/EventTable.js +33 -221
  48. package/dist/lib/EventTable.js.map +1 -1
  49. package/dist/lib/Header.d.ts +2 -0
  50. package/dist/lib/Header.js +46 -2
  51. package/dist/lib/Header.js.map +1 -1
  52. package/dist/lib/Icons.d.ts +8 -7
  53. package/dist/lib/Icons.js +22 -10
  54. package/dist/lib/Icons.js.map +1 -1
  55. package/dist/lib/Loading.d.ts +3 -0
  56. package/dist/lib/Loading.js +18 -4
  57. package/dist/lib/Loading.js.map +1 -1
  58. package/dist/lib/Locale.d.ts +7 -0
  59. package/dist/lib/Locale.js +26 -0
  60. package/dist/lib/Locale.js.map +1 -0
  61. package/dist/lib/Paint.d.ts +7 -0
  62. package/dist/lib/Paint.js +220 -67
  63. package/dist/lib/Paint.js.map +1 -1
  64. package/dist/lib/Selector.js +16 -12
  65. package/dist/lib/Selector.js.map +1 -1
  66. package/dist/lib/TextSelector.d.ts +95 -0
  67. package/dist/lib/TextSelector.js +250 -0
  68. package/dist/lib/TextSelector.js.map +1 -0
  69. package/dist/lib/TreeUtil.d.ts +6 -8
  70. package/dist/lib/TreeUtil.js +49 -40
  71. package/dist/lib/TreeUtil.js.map +1 -1
  72. package/dist/lib/lang/en-US.d.ts +25 -0
  73. package/dist/lib/lang/en-US.js +25 -0
  74. package/dist/lib/lang/en-US.js.map +1 -0
  75. package/dist/lib/lang/zh-CN.d.ts +25 -0
  76. package/dist/lib/lang/zh-CN.js +25 -0
  77. package/dist/lib/lang/zh-CN.js.map +1 -0
  78. package/dist/lib/types.d.ts +25 -3
  79. package/dist/lib/util.d.ts +2 -1
  80. package/dist/lib/util.js +5 -1
  81. package/dist/lib/util.js.map +1 -1
  82. package/package.json +1 -1
@@ -1,5 +1,3 @@
1
- import Cell from './Cell';
2
- import CellHeader from './CellHeader';
3
1
  export default class EventTable {
4
2
  constructor(ctx) {
5
3
  Object.defineProperty(this, "ctx", {
@@ -60,11 +58,7 @@ export default class EventTable {
60
58
  const { offsetY, offsetX } = this.ctx.getOffset(e);
61
59
  const y = offsetY;
62
60
  const x = offsetX;
63
- // 判断是否在body外部
64
- const { body: { height, visibleHeight, visibleWidth, y: bodyY }, } = this.ctx;
65
- const realityHeight = Math.min(height, visibleHeight);
66
- const isInBody = x > 0 && x < visibleWidth && y > bodyY && y < bodyY + realityHeight;
67
- if (!isInBody) {
61
+ if (!this.isInsideBody(x, y)) {
68
62
  this.ctx.emit('mousedownBodyOutside', e);
69
63
  }
70
64
  // 左边点击
@@ -80,7 +74,7 @@ export default class EventTable {
80
74
  this.ctx.setFocusCell(cell);
81
75
  this.ctx.focusCellHeader = undefined;
82
76
  this.ctx.emit('cellMousedown', cell, e);
83
- });
77
+ }, true);
84
78
  });
85
79
  // 按上事件
86
80
  this.ctx.on('mouseup', (e) => {
@@ -96,11 +90,9 @@ export default class EventTable {
96
90
  const y = offsetY;
97
91
  const x = offsetX;
98
92
  this.handleHeaderEvent(x, y, this.ctx.header.renderCellHeaders, (cell) => {
99
- this.ctx.focusCellHeader = cell;
100
93
  this.ctx.emit('cellHeaderMouseup', cell, e);
101
94
  });
102
95
  this.handleBodyEvent(x, y, this.ctx.body.renderRows, (cell) => {
103
- this.ctx.setFocusCell(cell);
104
96
  this.ctx.emit('cellMouseup', cell, e);
105
97
  });
106
98
  });
@@ -118,22 +110,16 @@ export default class EventTable {
118
110
  this.handleHeaderEvent(x, y, this.ctx.header.renderCellHeaders, (cell) => {
119
111
  this.ctx.clickCellHeader = cell;
120
112
  this.ctx.emit('cellHeaderClick', cell, e);
121
- // selection事件
122
- this.selectionClick(cell, e);
123
- this.sortClick(cell, e);
124
113
  });
125
114
  // 可视区
126
115
  this.handleBodyEvent(x, y, this.ctx.body.renderRows, (cell) => {
127
116
  this.ctx.clickCell = cell;
128
117
  this.ctx.emit('cellClick', cell, e);
129
- this.selectionClick(cell, e);
130
- this.treeClick(cell, e);
118
+ const hoverIcon = cell.getImage('hover');
119
+ if (!this.ctx.disableHoverIconClick && hoverIcon && hoverIcon.isInside(x, y)) {
120
+ this.ctx.emit('hoverIconClick', cell);
121
+ }
131
122
  }, true);
132
- // 正常
133
- this.handleBodyEvent(x, y, this.ctx.body.renderRows, (cell) => {
134
- // hoverIcon事件
135
- this.hoverIconClick(cell);
136
- }, false);
137
123
  });
138
124
  this.ctx.on('dblclick', (e) => {
139
125
  // 左边点击
@@ -180,20 +166,18 @@ export default class EventTable {
180
166
  if (this.isBusy(e)) {
181
167
  return;
182
168
  }
183
- this.ctx.isPointer = false;
184
- if (this.ctx.stageElement.style.cursor === 'pointer') {
169
+ if (!this.ctx.mousedown && this.ctx.stageElement.style.cursor !== 'default') {
185
170
  this.ctx.stageElement.style.cursor = 'default';
186
171
  }
187
172
  const y = this.ctx.getOffset(e).offsetY;
188
173
  const x = this.ctx.getOffset(e).offsetX;
189
174
  this.handleHeaderEvent(x, y, this.ctx.header.renderCellHeaders, (cell) => {
175
+ this.imageEnterAndLeave(cell, e);
190
176
  this.ctx.emit('cellHeaderMouseenter', cell, e);
191
177
  // 移出事件
192
178
  if (this.ctx.hoverCellHeader && this.ctx.hoverCellHeader !== cell) {
193
179
  this.ctx.emit('cellHeaderMouseleave', this.ctx.hoverCellHeader, e);
194
180
  }
195
- // selection头部事件
196
- this.imageEnterAndLeave(cell, e);
197
181
  if (this.ctx.hoverCellHeader === cell) {
198
182
  return;
199
183
  }
@@ -203,8 +187,6 @@ export default class EventTable {
203
187
  });
204
188
  // 可视区
205
189
  this.handleBodyEvent(x, y, this.ctx.body.renderRows, (cell) => {
206
- // selection移入移除事件
207
- // this.ctx.emit("visibleCellHoverChange", cell, e);
208
190
  this.imageEnterAndLeave(cell, e);
209
191
  if (this.visibleHoverCell !== cell) {
210
192
  this.ctx.emit('visibleCellMouseleave', cell, e);
@@ -215,7 +197,7 @@ export default class EventTable {
215
197
  }, true);
216
198
  // 正常
217
199
  this.handleBodyEvent(x, y, this.ctx.body.renderRows, (cell) => {
218
- this.imageEnterAndLeave(cell, e);
200
+ // this.imageEnterAndLeave(cell, e);
219
201
  this.ctx.emit('cellMouseenter', cell, e);
220
202
  // 移出事件
221
203
  if (this.ctx.hoverCell && this.ctx.hoverCell !== cell) {
@@ -242,183 +224,28 @@ export default class EventTable {
242
224
  });
243
225
  });
244
226
  }
245
- hoverIconClick(cell) {
246
- // 鼠标移动到图标上会变成pointer,所以这里判断是否是pointer就能判断出是图标点击的
247
- if (cell.hoverIconName && this.ctx.isPointer && !this.ctx.disableHoverIconClick) {
248
- this.ctx.emit('hoverIconClick', cell);
249
- }
250
- }
251
- /**
252
- *选中点击
253
- * @param cell
254
- */
255
- selectionClick(cell, e) {
256
- // 鼠标移动到图标上会变成pointer,所以这里判断是否是pointer就能判断出是图标点击的
257
- const isSelection = ['selection', 'index-selection', 'selection-tree', 'tree-selection'].includes(cell.type) &&
258
- this.ctx.isPointer;
259
- if (!isSelection) {
260
- return;
261
- }
262
- // 判断是否点击checkbox图标
263
- const { offsetY, offsetX } = this.ctx.getOffset(e);
264
- const clickY = offsetY;
265
- const clickX = offsetX;
266
- if (!this.isInsideElement(clickX, clickY, cell.drawSelectionImageX, cell.drawSelectionImageY, cell.drawSelectionImageWidth, cell.drawSelectionImageHeight)) {
267
- return;
268
- }
269
- // 点击头部
270
- if (cell instanceof CellHeader) {
271
- if (cell.drawSelectionImageName === 'checkbox-uncheck' ||
272
- cell.drawSelectionImageName === 'checkbox-indeterminate') {
273
- this.ctx.database.toggleAllSelection();
274
- }
275
- else if (cell.drawSelectionImageName === 'checkbox-check') {
276
- this.ctx.database.clearSelection(true);
277
- }
278
- }
279
- else {
280
- // 点击body
281
- // 是否可点击
282
- const selectable = this.ctx.database.getRowSelectable(cell.rowKey);
283
- if (!selectable) {
284
- return;
285
- }
286
- this.ctx.database.toggleRowSelection(cell.rowKey, cell.type);
287
- }
288
- }
289
- /**
290
- * 树点击
291
- * @param cell
292
- */
293
- treeClick(cell, e) {
294
- // 鼠标移动到图标上会变成pointer,所以这里判断是否是pointer就能判断出是图标点击的
295
- const isTree = ['tree', 'selection-tree', 'tree-selection'].includes(cell.type) && this.ctx.isPointer;
296
- if (!isTree) {
297
- return;
298
- }
299
- // 判断是否点击tree图标
300
- const { offsetY, offsetX } = this.ctx.getOffset(e);
301
- const clickY = offsetY;
302
- const clickX = offsetX;
303
- if (!this.isInsideElement(clickX, clickY, cell.drawTreeImageX, cell.drawTreeImageY, cell.drawTreeImageWidth, cell.drawTreeImageHeight)) {
304
- return;
305
- }
306
- const row = this.ctx.database.getRowForRowKey(cell.rowKey);
307
- const { expand = false, expandLazy = false } = row || {};
308
- const { EXPAND_LAZY, EXPAND_LAZY_METHOD } = this.ctx.config;
309
- // 懒加载且有懒加载方法,不是展开的不是已经加载过的
310
- if (EXPAND_LAZY && EXPAND_LAZY_METHOD && !expand && !expandLazy) {
311
- if (typeof EXPAND_LAZY_METHOD === 'function') {
312
- this.ctx.database.expandLoading(cell.rowKey, true);
313
- const expandLazyMethod = EXPAND_LAZY_METHOD;
314
- expandLazyMethod({
315
- row: cell.row,
316
- rowIndex: cell.rowIndex,
317
- colIndex: cell.colIndex,
318
- column: cell.column,
319
- value: cell.getValue(),
320
- })
321
- .then((res) => {
322
- this.ctx.database.setExpandChildren(cell.rowKey, res);
323
- this.ctx.database.expandLoading(cell.rowKey, false);
324
- this.ctx.emit('expandChange', this.ctx.database.getExpandRowKeys());
325
- })
326
- .catch((err) => {
327
- this.ctx.database.expandLoading(cell.rowKey, false);
328
- console.error(err);
329
- });
330
- }
331
- // 懒加载
332
- }
333
- else {
334
- const isExpand = this.ctx.database.getIsExpand(cell.rowKey);
335
- this.ctx.database.expandItem(cell.rowKey, !isExpand);
336
- this.ctx.emit('expandChange', this.ctx.database.getExpandRowKeys());
337
- }
338
- }
339
- sortClick(cellHeader, e) {
340
- const { offsetY, offsetX } = this.ctx.getOffset(e);
341
- const clickY = offsetY;
342
- const clickX = offsetX;
343
- if (!this.isInsideElement(clickX, clickY, cellHeader.drawSortImageX, cellHeader.drawSortImageY, cellHeader.drawSortImageWidth, cellHeader.drawSortImageHeight)) {
344
- return;
345
- }
346
- // 前端排序
347
- const currentState = this.ctx.database.getSortState(cellHeader.key);
348
- let newDirection;
349
- // 按照 不排序->升序->降序->不排序 的顺序循环
350
- if (currentState.direction === 'none') {
351
- newDirection = 'asc';
352
- }
353
- else if (currentState.direction === 'asc') {
354
- newDirection = 'desc';
355
- }
356
- else {
357
- newDirection = 'none';
358
- }
359
- this.ctx.database.setSortState(cellHeader.key, newDirection);
360
- }
361
227
  /**
362
228
  * 图标进入和离开事件,包括选中,展开,提示图标等
363
229
  * @param cell
364
230
  * @param e
365
231
  */
366
232
  imageEnterAndLeave(cell, e) {
233
+ if (this.ctx.dragRowIng || this.ctx.dragHeaderIng || this.ctx.selectColsIng || this.ctx.selectRowsIng || this.ctx.selectorMove || this.ctx.autofillMove) {
234
+ return;
235
+ }
367
236
  const { offsetY, offsetX } = this.ctx.getOffset(e);
368
237
  const y = offsetY;
369
238
  const x = offsetX;
370
- // 检查头部图标
371
- if (cell instanceof CellHeader) {
372
- // 选中图标
373
- if (cell.drawSelectionImageSource &&
374
- this.isInsideElement(x, y, cell.drawSelectionImageX, cell.drawSelectionImageY, cell.drawSelectionImageWidth, cell.drawSelectionImageHeight)) {
375
- this.ctx.stageElement.style.cursor = 'pointer';
376
- this.ctx.isPointer = true;
377
- return;
378
- }
379
- // 排序图标
380
- if (cell.drawSortImageSource &&
381
- this.isInsideElement(x, y, cell.drawSortImageX, cell.drawSortImageY, cell.drawSortImageWidth, cell.drawSortImageHeight)) {
382
- this.ctx.stageElement.style.cursor = 'pointer';
383
- this.ctx.isPointer = true;
384
- return;
385
- }
386
- }
387
- // 检查body图标
388
- if (cell instanceof Cell) {
389
- // 选中图标
390
- if (cell.drawSelectionImageSource &&
391
- this.isInsideElement(x, y, cell.drawSelectionImageX, cell.drawSelectionImageY, cell.drawSelectionImageWidth, cell.drawSelectionImageHeight)) {
392
- this.ctx.stageElement.style.cursor = 'pointer';
393
- this.ctx.isPointer = true;
394
- // body cell 需要处理是否禁用
395
- const selectable = this.ctx.database.getRowSelectable(cell.rowKey);
396
- if (!selectable) {
397
- this.ctx.stageElement.style.cursor = 'not-allowed';
239
+ cell.cellImages.forEach((image, key) => {
240
+ if (image.isInside(x, y)) {
241
+ if (key === 'drag') {
242
+ this.ctx.stageElement.style.cursor = 'grab';
243
+ }
244
+ else {
245
+ this.ctx.stageElement.style.cursor = 'pointer';
398
246
  }
399
- return;
400
- }
401
- // hover图标
402
- if (cell.drawHoverImageSource &&
403
- this.isInsideElement(x, y, cell.drawHoverImageX, cell.drawHoverImageY, cell.drawHoverImageWidth, cell.drawHoverImageHeight)) {
404
- this.ctx.stageElement.style.cursor = 'pointer';
405
- this.ctx.isPointer = true;
406
- return;
407
- }
408
- // tree图标
409
- if (cell.drawTreeImageSource &&
410
- this.isInsideElement(x, y, cell.drawTreeImageX, cell.drawTreeImageY, cell.drawTreeImageWidth, cell.drawTreeImageHeight)) {
411
- this.ctx.stageElement.style.cursor = 'pointer';
412
- this.ctx.isPointer = true;
413
- return;
414
247
  }
415
- }
416
- }
417
- isInsideElement(x, y, xElement, yElement, widthElement, heightElement) {
418
- if (x > xElement && x < xElement + widthElement && y > yElement && y < yElement + heightElement) {
419
- return true;
420
- }
421
- return false;
248
+ });
422
249
  }
423
250
  isBusy(e) {
424
251
  const { offsetY, offsetX } = this.ctx.getOffset(e);
@@ -466,60 +293,45 @@ export default class EventTable {
466
293
  return false;
467
294
  }
468
295
  handleBodyEvent(x, y, renderRows, callback, visible = false) {
469
- if (!this.isInsideBody(y)) {
296
+ if (!this.isInsideBody(x, y)) {
470
297
  return;
471
298
  }
472
299
  for (const row of renderRows) {
473
300
  // 优先处理固定列
474
301
  const cells = row.fixedCells.concat(row.noFixedCells);
475
302
  for (const cell of cells) {
476
- const drawX = cell.getDrawX();
477
- const drawY = cell.getDrawY();
478
- if (visible) {
479
- if (x > drawX && x < drawX + cell.visibleWidth && y > drawY && y < drawY + cell.visibleHeight) {
480
- callback(cell);
481
- return; // 找到后直接返回
482
- }
483
- }
484
- else if (x > drawX && x < drawX + cell.width && y > drawY && y < drawY + cell.height) {
303
+ const isInside = visible ? cell.isInsideVisible(x, y) : cell.isInside(x, y);
304
+ if (isInside) {
485
305
  callback(cell);
486
- return; // 找到后直接返回
306
+ return;
487
307
  }
488
308
  }
489
309
  }
490
310
  }
491
311
  handleHeaderEvent(x, y, renderCellHeaders, callback) {
492
312
  for (const cell of renderCellHeaders) {
493
- const drawX = cell.getDrawX();
494
- const drawY = cell.getDrawY();
495
- if (x > drawX && x < drawX + cell.width && y > drawY && y < drawY + cell.height) {
313
+ if (cell.isInside(x, y)) {
496
314
  callback(cell);
497
- return; // 找到后直接返回
315
+ return;
498
316
  }
499
317
  }
500
318
  }
501
- handleFooterEvent(x, y, renderRows, callback, visible = false) {
319
+ handleFooterEvent(x, y, renderRows, callback) {
502
320
  for (const row of renderRows) {
503
321
  // 优先处理固定列
504
322
  const cells = row.fixedCells.concat(row.noFixedCells);
505
323
  for (const cell of cells) {
506
- const drawX = cell.getDrawX();
507
- const drawY = cell.getDrawY();
508
- if (visible) {
509
- if (x > drawX && x < drawX + cell.visibleWidth && y > drawY && y < drawY + cell.visibleHeight) {
510
- callback(cell);
511
- return; // 找到后直接返回
512
- }
513
- }
514
- else if (x > drawX && x < drawX + cell.width && y > drawY && y < drawY + cell.height) {
324
+ if (cell.isInside(x, y)) {
515
325
  callback(cell);
516
- return; // 找到后直接返回
326
+ return;
517
327
  }
518
328
  }
519
329
  }
520
330
  }
521
- isInsideBody(y) {
522
- return y > this.ctx.body.y && y < this.ctx.body.y + this.ctx.body.visibleHeight;
331
+ isInsideBody(_x, _y) {
332
+ const { body: { y, visibleHeight, height, visibleWidth, } } = this.ctx;
333
+ const realityHeight = Math.min(height, visibleHeight);
334
+ return _x > 0 && _x < visibleWidth && _y > y && _y < y + realityHeight;
523
335
  }
524
336
  destroy() {
525
337
  this.resizeObserver.unobserve(this.ctx.stageElement);
@@ -1 +1 @@
1
- {"version":3,"file":"EventTable.js","sourceRoot":"","sources":["../../src/EventTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventTable.js","sourceRoot":"","sources":["../../src/EventTable.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ export default class Header {
31
31
  private renderFixedCellHeaders;
32
32
  constructor(ctx: Context);
33
33
  init(isBuffer?: boolean): void;
34
+ private initSort;
35
+ private initSelection;
34
36
  private initResizeColumn;
35
37
  private initDragColumn;
36
38
  private getDragCellHeader;
@@ -179,6 +179,8 @@ export default class Header {
179
179
  this.ctx.emit('draw');
180
180
  }, 100));
181
181
  this.init();
182
+ this.initSelection();
183
+ this.initSort();
182
184
  // 初始化调整列大小ENABLE_RESIZE_COLUMN
183
185
  this.initResizeColumn();
184
186
  this.initDragColumn();
@@ -246,6 +248,43 @@ export default class Header {
246
248
  this.ctx.header.visibleWidth = this.visibleWidth;
247
249
  this.ctx.header.visibleHeight = this.visibleHeight;
248
250
  }
251
+ initSort() {
252
+ this.ctx.on('cellHeaderClick', (cellHeader, e) => {
253
+ if (!cellHeader.isImageInside('sort', e)) {
254
+ return;
255
+ }
256
+ const currentState = this.ctx.database.getSortState(cellHeader.key);
257
+ let newDirection;
258
+ // 按照 不排序->升序->降序->不排序 的顺序循环
259
+ if (currentState.direction === 'none') {
260
+ newDirection = 'asc';
261
+ }
262
+ else if (currentState.direction === 'asc') {
263
+ newDirection = 'desc';
264
+ }
265
+ else {
266
+ newDirection = 'none';
267
+ }
268
+ this.ctx.database.setSortState(cellHeader.key, newDirection);
269
+ });
270
+ }
271
+ initSelection() {
272
+ this.ctx.on('cellHeaderClick', (cellHeader, e) => {
273
+ if (this.ctx.stageElement.style.cursor !== 'pointer') {
274
+ return;
275
+ }
276
+ if (!cellHeader.isImageInside('selection', e)) {
277
+ return;
278
+ }
279
+ const image = cellHeader.getImage('selection');
280
+ if (['checkbox-uncheck', 'checkbox-indeterminate'].includes(image.name)) {
281
+ this.ctx.database.toggleAllSelection();
282
+ }
283
+ else if (image.name === 'checkbox-check') {
284
+ this.ctx.database.clearSelection(true);
285
+ }
286
+ });
287
+ }
249
288
  // 调整表头的宽度
250
289
  initResizeColumn() {
251
290
  this.ctx.on('mousedown', (e) => {
@@ -358,6 +397,9 @@ export default class Header {
358
397
  }
359
398
  initDragColumn() {
360
399
  this.ctx.on('cellHeaderMousedown', (cellHeader) => {
400
+ if (this.ctx.stageElement.style.cursor !== 'default') {
401
+ return;
402
+ }
361
403
  if (!this.ctx.config.ENABLE_DRAG_COLUMN) {
362
404
  return;
363
405
  }
@@ -403,7 +445,7 @@ export default class Header {
403
445
  childrenKey: 'children', // 子节点数组字段
404
446
  });
405
447
  const position = this.dragTarget.colIndex > this.dragingCell.colIndex ? 'before' : 'after';
406
- tree.treeMove(this.dragTarget.column, this.dragingCell.column, position);
448
+ tree.treeMove(this.dragTarget.column.key, this.dragingCell.column.key, position);
407
449
  const columnsTree = tree.getTree();
408
450
  const sortData = genSortObj(columnsTree);
409
451
  this.ctx.database.setCustomHeader({ sortData });
@@ -416,13 +458,15 @@ export default class Header {
416
458
  this.ctx.emit('columnDragChange', data);
417
459
  }
418
460
  if (this.ctx.dragHeaderIng && this.dragTarget) {
461
+ if (this.ctx.stageElement.style.cursor === 'grabbing') {
462
+ this.ctx.stageElement.style.cursor = 'default';
463
+ }
419
464
  this.ctx.dragHeaderIng = false;
420
465
  this.dragTarget = null;
421
466
  this.dragingCell = undefined;
422
467
  this.dragCellDiff = 0;
423
468
  this.ctx.clearSelector();
424
469
  this.ctx.focusCellHeader = undefined;
425
- this.ctx.stageElement.style.cursor = 'default';
426
470
  this.ctx.emit('draw');
427
471
  }
428
472
  });