e-virt-table 1.2.22 → 1.2.24

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.
@@ -40,8 +40,11 @@ export default class Config {
40
40
  MAX_HEIGHT: number;
41
41
  /** 区域边框圆角 */
42
42
  BORDER_RADIUS: number;
43
+ /** 启用偏移高度内部计算表格高度 */
43
44
  ENABLE_OFFSET_HEIGHT: boolean;
45
+ /** 偏移高度 */
44
46
  OFFSET_HEIGHT: number;
47
+ /** 表头高度 */
45
48
  HEADER_HEIGHT: number;
46
49
  /** 启用头部固定,需要外面实现覆盖层,或者所有表头都要是元素 */
47
50
  ENABLE_HEADER_STICKY: boolean;
@@ -124,6 +127,16 @@ export default class Config {
124
127
  CHECKBOX_UNCHECK_SVG: string;
125
128
  /** 选择框半选中图标 */
126
129
  CHECKBOX_INDETERMINATE_SVG: string;
130
+ /** 启用严格排序,即不支持多列排序 */
131
+ SORT_STRICTLY: boolean;
132
+ /** 排序升序图标 */
133
+ SORT_ASC_ICON_SVG: string;
134
+ /** 排序降序图标 */
135
+ SORT_DESC_ICON_SVG: string;
136
+ /** 排序默认图标 */
137
+ SORTABLE_ICON_SVG: string;
138
+ /** 排序图标颜色 */
139
+ SORT_ICON_COLOR: string;
127
140
  /** 单元格只读背景色 */
128
141
  READONLY_COLOR: string;
129
142
  /** 单元格只读文本颜色 */
@@ -146,6 +159,10 @@ export default class Config {
146
159
  TREE_INDENT: number;
147
160
  /** 树形图标大小 */
148
161
  TREE_ICON_SIZE: number;
162
+ /**树形划线 */
163
+ TREE_LINE: boolean;
164
+ /** 树形划线颜色 */
165
+ TREE_LINE_COLOR: string;
149
166
  /** 启用单点击立马编辑 */
150
167
  ENABLE_EDIT_SINGLE_CLICK: boolean;
151
168
  /** 启用点击选择器编辑 */
@@ -140,18 +140,21 @@ export default class Config {
140
140
  writable: true,
141
141
  value: 8
142
142
  });
143
+ /** 启用偏移高度内部计算表格高度 */
143
144
  Object.defineProperty(this, "ENABLE_OFFSET_HEIGHT", {
144
145
  enumerable: true,
145
146
  configurable: true,
146
147
  writable: true,
147
148
  value: false
148
149
  });
150
+ /** 偏移高度 */
149
151
  Object.defineProperty(this, "OFFSET_HEIGHT", {
150
152
  enumerable: true,
151
153
  configurable: true,
152
154
  writable: true,
153
155
  value: 0
154
156
  });
157
+ /** 表头高度 */
155
158
  Object.defineProperty(this, "HEADER_HEIGHT", {
156
159
  enumerable: true,
157
160
  configurable: true,
@@ -444,6 +447,41 @@ export default class Config {
444
447
  writable: true,
445
448
  value: ''
446
449
  });
450
+ /** 启用严格排序,即不支持多列排序 */
451
+ Object.defineProperty(this, "SORT_STRICTLY", {
452
+ enumerable: true,
453
+ configurable: true,
454
+ writable: true,
455
+ value: true
456
+ });
457
+ /** 排序升序图标 */
458
+ Object.defineProperty(this, "SORT_ASC_ICON_SVG", {
459
+ enumerable: true,
460
+ configurable: true,
461
+ writable: true,
462
+ value: ''
463
+ });
464
+ /** 排序降序图标 */
465
+ Object.defineProperty(this, "SORT_DESC_ICON_SVG", {
466
+ enumerable: true,
467
+ configurable: true,
468
+ writable: true,
469
+ value: ''
470
+ });
471
+ /** 排序默认图标 */
472
+ Object.defineProperty(this, "SORTABLE_ICON_SVG", {
473
+ enumerable: true,
474
+ configurable: true,
475
+ writable: true,
476
+ value: ''
477
+ });
478
+ /** 排序图标颜色 */
479
+ Object.defineProperty(this, "SORT_ICON_COLOR", {
480
+ enumerable: true,
481
+ configurable: true,
482
+ writable: true,
483
+ value: 'rgb(82,146,247)'
484
+ });
447
485
  /** 单元格只读背景色 */
448
486
  Object.defineProperty(this, "READONLY_COLOR", {
449
487
  enumerable: true,
@@ -521,6 +559,20 @@ export default class Config {
521
559
  writable: true,
522
560
  value: 20
523
561
  });
562
+ /**树形划线 */
563
+ Object.defineProperty(this, "TREE_LINE", {
564
+ enumerable: true,
565
+ configurable: true,
566
+ writable: true,
567
+ value: false
568
+ });
569
+ /** 树形划线颜色 */
570
+ Object.defineProperty(this, "TREE_LINE_COLOR", {
571
+ enumerable: true,
572
+ configurable: true,
573
+ writable: true,
574
+ value: '#e1e6eb'
575
+ });
524
576
  /** 启用单点击立马编辑 */
525
577
  Object.defineProperty(this, "ENABLE_EDIT_SINGLE_CLICK", {
526
578
  enumerable: true,
@@ -946,7 +998,9 @@ export default class Config {
946
998
  if (key.endsWith('_COLOR') || key.endsWith('_FONT')) {
947
999
  const cssKey = `--evt-${key.toLocaleLowerCase().replace(/_/g, '-')}`;
948
1000
  const val = getCssVar(cssKey);
949
- obj[key] = val;
1001
+ if (val) {
1002
+ obj[key] = val;
1003
+ }
950
1004
  }
951
1005
  });
952
1006
  Object.assign(this, obj, this._config);
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export default class Database {
26
26
  private sumHeight;
27
27
  private filterMethod;
28
28
  private positions;
29
+ private sortState;
29
30
  constructor(ctx: Context, options: EVirtTableOptions);
30
31
  init(isClear?: boolean): void;
31
32
  /**
@@ -45,7 +46,7 @@ export default class Database {
45
46
  */
46
47
  setRowHeight(rowIndex: number, height: number): void;
47
48
  /**
48
- *
49
+ * 获取所有行数据(平铺)
49
50
  * @returns 获取转化平铺数据
50
51
  */
51
52
  getAllRowsData(): any[];
@@ -72,6 +73,34 @@ export default class Database {
72
73
  * 清空过滤方法
73
74
  */
74
75
  clearFilterMethod(): void;
76
+ /**
77
+ * 获取排序状态
78
+ */
79
+ getSortState(key: string): import("./types").SortStateMapItem;
80
+ /**
81
+ * 设置排序状态
82
+ */
83
+ setSortState(key: string, direction: 'asc' | 'desc' | 'none'): void;
84
+ /**
85
+ * 清除所有排序状态
86
+ */
87
+ clearSort(): void;
88
+ /**
89
+ * 递归排序方法,支持树形数据
90
+ * @param data 要排序的数据
91
+ * @param sortedEntries 排序条目,按时间戳排序
92
+ * @returns 排序后的数据
93
+ */
94
+ private sortDataRecursive;
95
+ /**
96
+ * 对数组进行单列排序
97
+ * @param data 要排序的数据
98
+ * @param key 排序的列键
99
+ * @param direction 排序方向
100
+ * @param sortBy 排序类型
101
+ * @returns 排序后的数据
102
+ */
103
+ private applySingleColumnSort;
75
104
  /**
76
105
  * 根据rowKey,控制指定展开行
77
106
  * @param rowKey
@@ -1,5 +1,5 @@
1
1
  import Validator from './Validator';
2
- import { generateShortUUID, toLeaf } from './util';
2
+ import { generateShortUUID, toLeaf, compareDates } from './util';
3
3
  import Cell from './Cell';
4
4
  export default class Database {
5
5
  constructor(ctx, options) {
@@ -140,6 +140,12 @@ export default class Database {
140
140
  writable: true,
141
141
  value: []
142
142
  }); //虚拟滚动位置
143
+ Object.defineProperty(this, "sortState", {
144
+ enumerable: true,
145
+ configurable: true,
146
+ writable: true,
147
+ value: new Map()
148
+ });
143
149
  this.ctx = ctx;
144
150
  const { data = [], columns = [], footerData = [] } = options;
145
151
  this.data = data;
@@ -199,6 +205,7 @@ export default class Database {
199
205
  * @param level
200
206
  */
201
207
  initData(dataList, level = 0, parentRowKeys = []) {
208
+ const siblingsLength = dataList.length;
202
209
  dataList.forEach((item, index) => {
203
210
  const { ROW_KEY = '', DEFAULT_EXPAND_ALL, CELL_HEIGHT, SELECTABLE_METHOD, CHECKBOX_KEY } = this.ctx.config;
204
211
  const _rowKey = item[ROW_KEY]; // 行唯一标识,否则就rowKey
@@ -245,6 +252,8 @@ export default class Database {
245
252
  expandLoading: false,
246
253
  item,
247
254
  parentRowKeys,
255
+ parentRowKey: parentRowKeys[parentRowKeys.length - 1] || '',
256
+ isLastChild: index === siblingsLength - 1,
248
257
  });
249
258
  if (Array.isArray(item.children)) {
250
259
  if (item.children.length) {
@@ -269,7 +278,7 @@ export default class Database {
269
278
  this.clearBufferData(); // 清除缓存数据
270
279
  }
271
280
  /**
272
- *
281
+ * 获取所有行数据(平铺)
273
282
  * @returns 获取转化平铺数据
274
283
  */
275
284
  getAllRowsData() {
@@ -282,7 +291,6 @@ export default class Database {
282
291
  }
283
292
  });
284
293
  };
285
- recursiveData(this.data);
286
294
  return list;
287
295
  }
288
296
  filterColumns(columns) {
@@ -310,9 +318,8 @@ export default class Database {
310
318
  }
311
319
  setData(data) {
312
320
  this.data = data;
313
- if (this.columns.length) {
314
- this.init();
315
- }
321
+ this.setLoading(true);
322
+ this.init();
316
323
  }
317
324
  /**
318
325
  * 统一转化数据,给画body使用,包括过滤树状等,统一入口
@@ -356,6 +363,13 @@ export default class Database {
356
363
  if (typeof this.filterMethod === 'function') {
357
364
  _data = this.filterMethod(_data);
358
365
  }
366
+ // 说明需要排序
367
+ if (this.sortState.size) {
368
+ // 按时间戳排序,最早的先排序
369
+ const sortedEntries = Array.from(this.sortState.entries()).sort((a, b) => a[1].timestamp - b[1].timestamp);
370
+ // 对 sortedData 进行排序
371
+ _data = this.sortDataRecursive(_data, sortedEntries);
372
+ }
359
373
  recursiveData(_data);
360
374
  this.bufferData = list;
361
375
  return {
@@ -382,6 +396,100 @@ export default class Database {
382
396
  clearFilterMethod() {
383
397
  this.filterMethod = undefined;
384
398
  }
399
+ /**
400
+ * 获取排序状态
401
+ */
402
+ getSortState(key) {
403
+ return this.sortState.get(key) || { direction: 'none', timestamp: 0 };
404
+ }
405
+ /**
406
+ * 设置排序状态
407
+ */
408
+ setSortState(key, direction) {
409
+ const timestamp = Date.now();
410
+ if (this.ctx.config.SORT_STRICTLY) {
411
+ // 严格排序,清除所有排序状态
412
+ this.sortState.clear();
413
+ }
414
+ if (direction === 'none') {
415
+ // 清除排序状态
416
+ this.sortState.delete(key);
417
+ }
418
+ else {
419
+ this.sortState.set(key, { direction, timestamp });
420
+ }
421
+ this.ctx.emit('sortChange', this.sortState);
422
+ this.clearBufferData();
423
+ this.ctx.emit('draw');
424
+ }
425
+ /**
426
+ * 清除所有排序状态
427
+ */
428
+ clearSort() {
429
+ this.sortState.clear();
430
+ this.ctx.emit('sortChange', this.sortState);
431
+ this.clearBufferData();
432
+ this.ctx.emit('draw');
433
+ }
434
+ /**
435
+ * 递归排序方法,支持树形数据
436
+ * @param data 要排序的数据
437
+ * @param sortedEntries 排序条目,按时间戳排序
438
+ * @returns 排序后的数据
439
+ */
440
+ sortDataRecursive(data, sortedEntries) {
441
+ // 对当前层级进行排序
442
+ let sortedData = [...data];
443
+ // 逐层应用排序条件
444
+ for (const [key, { direction }] of sortedEntries) {
445
+ if (direction === 'none')
446
+ continue;
447
+ const cellHeader = this.getColumnByKey(key);
448
+ if (!cellHeader || !cellHeader.column.sortBy)
449
+ continue;
450
+ // 对当前层级进行单列排序
451
+ sortedData = this.applySingleColumnSort(sortedData, key, direction, cellHeader.column.sortBy);
452
+ }
453
+ // 递归处理子节点
454
+ return sortedData.map((item) => {
455
+ if (item.children && Array.isArray(item.children)) {
456
+ item.children = this.sortDataRecursive(item.children, sortedEntries);
457
+ }
458
+ return item;
459
+ });
460
+ }
461
+ /**
462
+ * 对数组进行单列排序
463
+ * @param data 要排序的数据
464
+ * @param key 排序的列键
465
+ * @param direction 排序方向
466
+ * @param sortBy 排序类型
467
+ * @returns 排序后的数据
468
+ */
469
+ applySingleColumnSort(data, key, direction, sortBy) {
470
+ return data.sort((a, b) => {
471
+ const aValue = a[key];
472
+ const bValue = b[key];
473
+ let comparison = 0;
474
+ if (typeof sortBy === 'function') {
475
+ comparison = sortBy(a, b);
476
+ }
477
+ else if (sortBy === 'number') {
478
+ const aNum = Number(aValue) || 0;
479
+ const bNum = Number(bValue) || 0;
480
+ comparison = aNum - bNum;
481
+ }
482
+ else if (sortBy === 'string') {
483
+ const aStr = String(aValue || '');
484
+ const bStr = String(bValue || '');
485
+ comparison = aStr.localeCompare(bStr);
486
+ }
487
+ else if (sortBy === 'date') {
488
+ comparison = compareDates(aValue, bValue);
489
+ }
490
+ return direction === 'asc' ? comparison : -comparison;
491
+ });
492
+ }
385
493
  /**
386
494
  * 根据rowKey,控制指定展开行
387
495
  * @param rowKey
@@ -846,7 +954,7 @@ export default class Database {
846
954
  // 递归选中树形选择
847
955
  selectTreeSelectionRecursive(rowKey) {
848
956
  const children = this.getTreeChildren(rowKey);
849
- children.forEach(childKey => {
957
+ children.forEach((childKey) => {
850
958
  this.setRowSelection(childKey, true, false);
851
959
  this.selectTreeSelectionRecursive(childKey);
852
960
  });
@@ -854,7 +962,7 @@ export default class Database {
854
962
  // 递归取消树形选择
855
963
  clearTreeSelectionRecursive(rowKey) {
856
964
  const children = this.getTreeChildren(rowKey);
857
- children.forEach(childKey => {
965
+ children.forEach((childKey) => {
858
966
  this.setRowSelection(childKey, false, false);
859
967
  this.clearTreeSelectionRecursive(childKey);
860
968
  });
@@ -867,8 +975,8 @@ export default class Database {
867
975
  }
868
976
  // 获取父项的所有直接子项
869
977
  const children = this.getTreeChildren(parentKey);
870
- const childSelections = children.map(childKey => this.selectionMap.get(childKey));
871
- const checkedChildren = childSelections.filter(s => s?.check).length;
978
+ const childSelections = children.map((childKey) => this.selectionMap.get(childKey));
979
+ const checkedChildren = childSelections.filter((s) => s?.check).length;
872
980
  const totalChildren = childSelections.length;
873
981
  // 计算父项应该的状态
874
982
  let parentShouldBeChecked = false;
@@ -973,8 +1081,8 @@ export default class Database {
973
1081
  return allDescendants;
974
1082
  };
975
1083
  const allDescendants = getAllDescendantsRecursive(rowKey);
976
- const descendantSelections = allDescendants.map(descKey => this.selectionMap.get(descKey));
977
- const checkedDescendants = descendantSelections.filter(s => s?.check).length;
1084
+ const descendantSelections = allDescendants.map((descKey) => this.selectionMap.get(descKey));
1085
+ const checkedDescendants = descendantSelections.filter((s) => s?.check).length;
978
1086
  const totalDescendants = descendantSelections.length;
979
1087
  const someChecked = checkedDescendants > 0;
980
1088
  const allChecked = checkedDescendants === totalDescendants;
@@ -999,8 +1107,8 @@ export default class Database {
999
1107
  return allDescendants;
1000
1108
  };
1001
1109
  const allDescendants = getAllDescendantsRecursive(rowKey);
1002
- const descendantSelections = allDescendants.map(descKey => this.selectionMap.get(descKey));
1003
- const checkedDescendants = descendantSelections.filter(s => s?.check).length;
1110
+ const descendantSelections = allDescendants.map((descKey) => this.selectionMap.get(descKey));
1111
+ const checkedDescendants = descendantSelections.filter((s) => s?.check).length;
1004
1112
  const totalDescendants = descendantSelections.length;
1005
1113
  const someChecked = checkedDescendants > 0;
1006
1114
  const allChecked = checkedDescendants === totalDescendants;
@@ -1653,7 +1761,7 @@ export default class Database {
1653
1761
  */
1654
1762
  calculateMaxTreeDepth(data, currentDepth = 0) {
1655
1763
  let maxDepth = currentDepth;
1656
- data.forEach(item => {
1764
+ data.forEach((item) => {
1657
1765
  if (Array.isArray(item.children) && item.children.length > 0) {
1658
1766
  const childMaxDepth = this.calculateMaxTreeDepth(item.children, currentDepth + 1);
1659
1767
  maxDepth = Math.max(maxDepth, childMaxDepth);