vxe-table 3.16.11 → 3.16.13

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 (68) hide show
  1. package/es/locale/lang/de-DE.js +80 -80
  2. package/es/locale/lang/es-ES.js +79 -79
  3. package/es/locale/lang/ja-JP.js +82 -82
  4. package/es/locale/lang/ko-KR.js +88 -88
  5. package/es/locale/lang/ru-RU.js +84 -84
  6. package/es/locale/lang/vi-VN.js +79 -79
  7. package/es/locale/lang/zh-CHT.js +21 -21
  8. package/es/style.css +1 -1
  9. package/es/table/src/methods.js +28 -3
  10. package/es/table/src/table.js +9 -120
  11. package/es/table/src/util.js +116 -0
  12. package/es/toolbar/src/toolbar.js +11 -3
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/lib/index.umd.js +169 -126
  16. package/lib/index.umd.min.js +1 -1
  17. package/lib/locale/lang/de-DE.js +80 -80
  18. package/lib/locale/lang/de-DE.min.js +1 -1
  19. package/lib/locale/lang/de-DE.umd.js +80 -80
  20. package/lib/locale/lang/es-ES.js +79 -79
  21. package/lib/locale/lang/es-ES.min.js +1 -1
  22. package/lib/locale/lang/es-ES.umd.js +79 -79
  23. package/lib/locale/lang/ja-JP.js +82 -82
  24. package/lib/locale/lang/ja-JP.min.js +1 -1
  25. package/lib/locale/lang/ja-JP.umd.js +82 -82
  26. package/lib/locale/lang/ko-KR.js +88 -88
  27. package/lib/locale/lang/ko-KR.min.js +1 -1
  28. package/lib/locale/lang/ko-KR.umd.js +88 -88
  29. package/lib/locale/lang/ru-RU.js +84 -84
  30. package/lib/locale/lang/ru-RU.min.js +1 -1
  31. package/lib/locale/lang/ru-RU.umd.js +84 -84
  32. package/lib/locale/lang/vi-VN.js +79 -79
  33. package/lib/locale/lang/vi-VN.min.js +1 -1
  34. package/lib/locale/lang/vi-VN.umd.js +79 -79
  35. package/lib/locale/lang/zh-CHT.js +21 -21
  36. package/lib/locale/lang/zh-CHT.min.js +1 -1
  37. package/lib/locale/lang/zh-CHT.umd.js +21 -21
  38. package/lib/style.css +1 -1
  39. package/lib/table/src/methods.js +32 -2
  40. package/lib/table/src/methods.min.js +1 -1
  41. package/lib/table/src/table.js +8 -119
  42. package/lib/table/src/table.min.js +1 -1
  43. package/lib/table/src/util.js +117 -0
  44. package/lib/table/src/util.min.js +1 -1
  45. package/lib/toolbar/src/toolbar.js +11 -3
  46. package/lib/toolbar/src/toolbar.min.js +1 -1
  47. package/lib/ui/index.js +1 -1
  48. package/lib/ui/index.min.js +1 -1
  49. package/lib/ui/src/log.js +1 -1
  50. package/lib/ui/src/log.min.js +1 -1
  51. package/package.json +1 -1
  52. package/packages/locale/lang/de-DE.ts +80 -80
  53. package/packages/locale/lang/es-ES.ts +79 -79
  54. package/packages/locale/lang/ja-JP.ts +82 -82
  55. package/packages/locale/lang/ko-KR.ts +88 -88
  56. package/packages/locale/lang/ru-RU.ts +84 -84
  57. package/packages/locale/lang/vi-VN.ts +79 -79
  58. package/packages/locale/lang/zh-CHT.ts +21 -21
  59. package/packages/table/src/methods.ts +28 -3
  60. package/packages/table/src/table.ts +10 -124
  61. package/packages/table/src/util.ts +120 -0
  62. package/packages/toolbar/src/toolbar.ts +13 -3
  63. /package/es/{iconfont.1754364584926.ttf → iconfont.1754456334514.ttf} +0 -0
  64. /package/es/{iconfont.1754364584926.woff → iconfont.1754456334514.woff} +0 -0
  65. /package/es/{iconfont.1754364584926.woff2 → iconfont.1754456334514.woff2} +0 -0
  66. /package/lib/{iconfont.1754364584926.ttf → iconfont.1754456334514.ttf} +0 -0
  67. /package/lib/{iconfont.1754364584926.woff → iconfont.1754456334514.woff} +0 -0
  68. /package/lib/{iconfont.1754364584926.woff2 → iconfont.1754456334514.woff2} +0 -0
@@ -3895,12 +3895,16 @@ const Methods = {
3895
3895
  const internalData = $xeTable;
3896
3896
  const { treeConfig } = props;
3897
3897
  const { isRowGroupStatus } = reactData;
3898
- const { fullAllDataRowIdData, tableFullData, tableFullTreeData, tableFullGroupData, treeExpandedMaps } = internalData;
3898
+ const { currKeyField, fullAllDataRowIdData, tableFullData, tableFullTreeData, tableFullGroupData, treeExpandedMaps } = internalData;
3899
3899
  const fullAllDataRowIdMaps = isReset ? {} : Object.assign({}, fullAllDataRowIdData); // 存在已删除数据
3900
3900
  const fullDataRowIdMaps = {};
3901
+ const idMaps = {};
3901
3902
  const { handleUpdateRowId } = createHandleUpdateRowId($xeTable);
3902
3903
  const handleRowCache = (row, index, items, currIndex, parentRow, rowid, level, seq) => {
3903
3904
  let rowRest = fullAllDataRowIdMaps[rowid];
3905
+ if (idMaps[rowid]) {
3906
+ errLog('vxe.error.repeatKey', [currKeyField, rowid]);
3907
+ }
3904
3908
  if (!rowRest) {
3905
3909
  rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
3906
3910
  }
@@ -3912,6 +3916,7 @@ const Methods = {
3912
3916
  rowRest.level = level;
3913
3917
  rowRest.index = currIndex;
3914
3918
  rowRest.treeIndex = index;
3919
+ idMaps[rowid] = true;
3915
3920
  fullDataRowIdMaps[rowid] = rowRest;
3916
3921
  fullAllDataRowIdMaps[rowid] = rowRest;
3917
3922
  };
@@ -7369,8 +7374,28 @@ const Methods = {
7369
7374
  /**
7370
7375
  * 用于当前行,获取当前行的数据
7371
7376
  */
7372
- getCurrentRecord() {
7373
- return this.rowOpts.isCurrent || this.highlightCurrentRow ? this.currentRow : null;
7377
+ getCurrentRecord(isFull) {
7378
+ const $xeTable = this;
7379
+ const props = $xeTable;
7380
+ const reactData = $xeTable;
7381
+ const internalData = $xeTable;
7382
+ const { currentRow } = reactData;
7383
+ const { fullDataRowIdData, afterFullRowMaps } = internalData;
7384
+ const rowOpts = $xeTable.computeRowOpts;
7385
+ if (rowOpts.isCurrent || props.highlightCurrentRow) {
7386
+ const rowid = getRowid($xeTable, currentRow);
7387
+ if (isFull) {
7388
+ if (fullDataRowIdData[rowid]) {
7389
+ return currentRow;
7390
+ }
7391
+ }
7392
+ else {
7393
+ if (afterFullRowMaps[rowid]) {
7394
+ return currentRow;
7395
+ }
7396
+ }
7397
+ }
7398
+ return null;
7374
7399
  },
7375
7400
  /**
7376
7401
  * 用于单选行,获取当已选中的数据
@@ -1,7 +1,7 @@
1
1
  import XEUtils from 'xe-utils';
2
2
  import { getFuncText, isEnableConf } from '../../ui/src/utils';
3
3
  import { initTpImg } from '../../ui/src/dom';
4
- import { createHandleGetRowId, getCellHeight, hasDeepKey } from './util';
4
+ import { createInternalData, createHandleGetRowId, getCellHeight, hasDeepKey } from './util';
5
5
  import { VxeUI } from '../../ui';
6
6
  import methods from './methods';
7
7
  import TableBodyComponent from './body';
@@ -1278,7 +1278,7 @@ export default {
1278
1278
  if (value && value.length >= 50000) {
1279
1279
  warnLog('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
1280
1280
  }
1281
- this.loadTableData(value || [], false).then(() => {
1281
+ this.loadTableData(value || [], true).then(() => {
1282
1282
  const { scrollXLoad, scrollYLoad, expandColumn } = reactData;
1283
1283
  const expandOpts = $xeTable.computeExpandOpts;
1284
1284
  this.inited = true;
@@ -1399,116 +1399,7 @@ export default {
1399
1399
  const $xeTable = this;
1400
1400
  const props = $xeTable;
1401
1401
  const internalData = $xeTable;
1402
- Object.assign($xeTable, {
1403
- tZindex: 0,
1404
- currKeyField: '',
1405
- isCurrDeepKey: false,
1406
- elemStore: {},
1407
- // 存放横向 X 虚拟滚动相关的信息
1408
- scrollXStore: {
1409
- preloadSize: 0,
1410
- offsetSize: 0,
1411
- visibleSize: 0,
1412
- visibleStartIndex: 0,
1413
- visibleEndIndex: 0,
1414
- startIndex: 0,
1415
- endIndex: 0
1416
- },
1417
- // 存放纵向 Y 虚拟滚动相关信息
1418
- scrollYStore: {
1419
- preloadSize: 0,
1420
- offsetSize: 0,
1421
- visibleSize: 0,
1422
- visibleStartIndex: 0,
1423
- visibleEndIndex: 0,
1424
- startIndex: 0,
1425
- endIndex: 0
1426
- },
1427
- // 表格宽度
1428
- tableWidth: 0,
1429
- // 表格高度
1430
- tableHeight: 0,
1431
- // 表头高度
1432
- headerHeight: 0,
1433
- // 表尾高度
1434
- footerHeight: 0,
1435
- // 当前 hover 行
1436
- // hoverRow: null,
1437
- // 最后滚动位置
1438
- lastScrollLeft: 0,
1439
- lastScrollTop: 0,
1440
- // 单选框属性,已选中保留的行
1441
- radioReserveRow: null,
1442
- // 复选框属性,已选中保留的行集合
1443
- checkboxReserveRowMap: {},
1444
- // 行数据,已展开保留的行集合
1445
- rowExpandedReserveRowMap: {},
1446
- // 树结构数据,已展开保留的行集合
1447
- treeExpandedReserveRowMap: {},
1448
- // 树结构数据,不确定状态的集合
1449
- treeIndeterminateRowMaps: {},
1450
- // 列表完整数据、条件处理后
1451
- tableFullData: [],
1452
- afterFullData: [],
1453
- afterTreeFullData: [],
1454
- afterGroupFullData: [],
1455
- // 列表条件处理后数据集合
1456
- afterFullRowMaps: {},
1457
- // 树结构完整数据、条件处理后
1458
- tableFullTreeData: [],
1459
- // 行分组全量数据、条件处理后
1460
- tableFullGroupData: [],
1461
- tableSynchData: [],
1462
- tableSourceData: [],
1463
- // 收集的列配置(带分组)
1464
- collectColumn: [],
1465
- // 完整所有列(不带分组)
1466
- tableFullColumn: [],
1467
- // 渲染所有列
1468
- visibleColumn: [],
1469
- // 全量数据集(包括当前和已删除)
1470
- fullAllDataRowIdData: {},
1471
- // 数据集(仅当前)
1472
- fullDataRowIdData: {},
1473
- // 数据集(仅可视)
1474
- visibleDataRowIdData: {},
1475
- // 渲染中缓存数据
1476
- sourceDataRowIdData: {},
1477
- fullColumnIdData: {},
1478
- fullColumnFieldData: {},
1479
- // 合并单元格的数据
1480
- mergeBodyList: [],
1481
- mergeBodyMaps: {},
1482
- // 合并表尾的数据
1483
- mergeFooterList: [],
1484
- mergeFooterMaps: {},
1485
- // 已合并单元格数据集合
1486
- mergeBodyCellMaps: {},
1487
- // 已合并表尾数据集合
1488
- mergeFooterCellMaps: {},
1489
- // 已展开的行集合
1490
- rowExpandedMaps: {},
1491
- // 懒加载中的展开行的集合
1492
- rowExpandLazyLoadedMaps: {},
1493
- // 已展开的分组行
1494
- rowGroupExpandedMaps: {},
1495
- // 已展开树节点集合
1496
- treeExpandedMaps: {},
1497
- // 懒加载中的树节点的集合
1498
- treeExpandLazyLoadedMaps: {},
1499
- // 复选框属性,已选中的行集合
1500
- selectCheckboxMaps: {},
1501
- // 已标记的对象集
1502
- pendingRowMaps: {},
1503
- // 已新增的临时行
1504
- insertRowMaps: {},
1505
- // 已删除行
1506
- removeRowMaps: {},
1507
- cvCacheMaps: {},
1508
- swYSize: 0,
1509
- swYInterval: 0,
1510
- swYTotal: 0
1511
- });
1402
+ XEUtils.assign(internalData, createInternalData());
1512
1403
  handleKeyField($xeTable);
1513
1404
  const { data, exportConfig, importConfig, treeConfig, showOverflow, highlightCurrentRow, highlightCurrentColumn } = props;
1514
1405
  const { scrollXStore, scrollYStore } = internalData;
@@ -1843,23 +1734,15 @@ export default {
1843
1734
  },
1844
1735
  beforeDestroy() {
1845
1736
  const $xeTable = this;
1846
- const internalData = $xeTable;
1847
1737
  const tableViewportEl = $xeTable.$refs.refTableViewportElem;
1848
1738
  if (tableViewportEl) {
1849
1739
  tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent);
1850
1740
  }
1851
- internalData.cvCacheMaps = {};
1852
- internalData.prevDragRow = null;
1853
- internalData.prevDragCol = null;
1854
1741
  if (this.$resize) {
1855
1742
  this.$resize.disconnect();
1856
1743
  }
1857
1744
  this.closeFilter();
1858
1745
  this.closeMenu();
1859
- this.preventEvent(null, 'beforeDestroy');
1860
- },
1861
- destroyed() {
1862
- const $xeTable = this;
1863
1746
  globalEvents.off($xeTable, 'paste');
1864
1747
  globalEvents.off($xeTable, 'copy');
1865
1748
  globalEvents.off($xeTable, 'cut');
@@ -1869,7 +1752,13 @@ export default {
1869
1752
  globalEvents.off($xeTable, 'keydown');
1870
1753
  globalEvents.off($xeTable, 'resize');
1871
1754
  globalEvents.off($xeTable, 'contextmenu');
1755
+ this.preventEvent(null, 'beforeDestroy');
1756
+ },
1757
+ destroyed() {
1758
+ const $xeTable = this;
1759
+ const internalData = $xeTable;
1872
1760
  this.preventEvent(null, 'destroyed');
1761
+ XEUtils.assign(internalData, createInternalData());
1873
1762
  },
1874
1763
  render(h) {
1875
1764
  // 使用已安装的组件,如果未安装则不渲染
@@ -3,6 +3,122 @@ import { ColumnInfo } from './columnInfo';
3
3
  import { isScale, isPx, queryElement } from '../../ui/src/dom';
4
4
  import { warnLog, errLog } from '../../ui/src/log';
5
5
  import { eqEmptyValue } from '../../ui/src/utils';
6
+ export function createInternalData() {
7
+ return {
8
+ tZindex: 0,
9
+ currKeyField: '',
10
+ isCurrDeepKey: false,
11
+ elemStore: {},
12
+ // 存放横向 X 虚拟滚动相关的信息
13
+ scrollXStore: {
14
+ preloadSize: 0,
15
+ offsetSize: 0,
16
+ visibleSize: 0,
17
+ visibleStartIndex: 0,
18
+ visibleEndIndex: 0,
19
+ startIndex: 0,
20
+ endIndex: 0
21
+ },
22
+ // 存放纵向 Y 虚拟滚动相关信息
23
+ scrollYStore: {
24
+ preloadSize: 0,
25
+ offsetSize: 0,
26
+ visibleSize: 0,
27
+ visibleStartIndex: 0,
28
+ visibleEndIndex: 0,
29
+ startIndex: 0,
30
+ endIndex: 0
31
+ },
32
+ // 表格宽度
33
+ tableWidth: 0,
34
+ // 表格高度
35
+ tableHeight: 0,
36
+ // 表头高度
37
+ headerHeight: 0,
38
+ // 表尾高度
39
+ footerHeight: 0,
40
+ customHeight: 0,
41
+ customMinHeight: 0,
42
+ customMaxHeight: 0,
43
+ // 当前 hover 行
44
+ hoverRow: null,
45
+ // 最后滚动位置
46
+ lastScrollLeft: 0,
47
+ lastScrollTop: 0,
48
+ // 单选框属性,已选中保留的行
49
+ radioReserveRow: null,
50
+ // 复选框属性,已选中保留的行集合
51
+ checkboxReserveRowMap: {},
52
+ // 行数据,已展开保留的行集合
53
+ rowExpandedReserveRowMap: {},
54
+ // 树结构数据,已展开保留的行集合
55
+ treeExpandedReserveRowMap: {},
56
+ // 树结构数据,不确定状态的集合
57
+ treeIndeterminateRowMaps: {},
58
+ // 列表完整数据、条件处理后
59
+ tableFullData: [],
60
+ afterFullData: [],
61
+ afterTreeFullData: [],
62
+ afterGroupFullData: [],
63
+ // 列表条件处理后数据集合
64
+ afterFullRowMaps: {},
65
+ // 树结构完整数据、条件处理后
66
+ tableFullTreeData: [],
67
+ // 行分组全量数据、条件处理后
68
+ tableFullGroupData: [],
69
+ tableSynchData: [],
70
+ tableSourceData: [],
71
+ // 收集的列配置(带分组)
72
+ collectColumn: [],
73
+ // 完整所有列(不带分组)
74
+ tableFullColumn: [],
75
+ // 渲染所有列
76
+ visibleColumn: [],
77
+ // 全量数据集(包括当前和已删除)
78
+ fullAllDataRowIdData: {},
79
+ // 数据集(仅当前)
80
+ fullDataRowIdData: {},
81
+ // 数据集(仅可视)
82
+ visibleDataRowIdData: {},
83
+ // 渲染中缓存数据
84
+ sourceDataRowIdData: {},
85
+ fullColumnIdData: {},
86
+ fullColumnFieldData: {},
87
+ // 合并单元格的数据
88
+ mergeBodyList: [],
89
+ mergeBodyMaps: {},
90
+ // 合并表尾的数据
91
+ mergeFooterList: [],
92
+ mergeFooterMaps: {},
93
+ // 已合并单元格数据集合
94
+ mergeBodyCellMaps: {},
95
+ // 已合并表尾数据集合
96
+ mergeFooterCellMaps: {},
97
+ // 已展开的行集合
98
+ rowExpandedMaps: {},
99
+ // 懒加载中的展开行的集合
100
+ rowExpandLazyLoadedMaps: {},
101
+ // 已展开的分组行
102
+ rowGroupExpandedMaps: {},
103
+ // 已展开树节点集合
104
+ treeExpandedMaps: {},
105
+ // 懒加载中的树节点的集合
106
+ treeExpandLazyLoadedMaps: {},
107
+ // 复选框属性,已选中的行集合
108
+ selectCheckboxMaps: {},
109
+ // 已标记的对象集
110
+ pendingRowMaps: {},
111
+ // 已新增的临时行
112
+ insertRowMaps: {},
113
+ // 已删除行
114
+ removeRowMaps: {},
115
+ cvCacheMaps: {},
116
+ inited: false,
117
+ tooltipTimeout: null,
118
+ initStatus: false,
119
+ isActivated: false
120
+ };
121
+ }
6
122
  const getAllConvertColumns = (columns, parentColumn) => {
7
123
  const result = [];
8
124
  columns.forEach((column) => {
@@ -4,6 +4,11 @@ import { VxeUI } from '../../ui';
4
4
  import { getSlotVNs } from '../../ui/src/vn';
5
5
  import { warnLog, errLog } from '../../ui/src/log';
6
6
  const { getConfig, getIcon, getI18n, renderer, commands, createEvent, globalMixins, renderEmptyElement } = VxeUI;
7
+ function createInternalData() {
8
+ return {
9
+ connectTable: null
10
+ };
11
+ }
7
12
  export default {
8
13
  name: 'VxeToolbar',
9
14
  mixins: [
@@ -53,9 +58,7 @@ export default {
53
58
  connectFlag: 0,
54
59
  columns: []
55
60
  };
56
- const internalData = {
57
- connectTable: null
58
- };
61
+ const internalData = createInternalData();
59
62
  return {
60
63
  xID,
61
64
  reactData,
@@ -787,6 +790,11 @@ export default {
787
790
  }
788
791
  }
789
792
  },
793
+ destroyed() {
794
+ const $xeToolbar = this;
795
+ const internalData = $xeToolbar.internalData;
796
+ XEUtils.assign(internalData, createInternalData());
797
+ },
790
798
  render(h) {
791
799
  return this.renderVN(h);
792
800
  }
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.16.11";
3
+ export const version = "3.16.13";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"3.16.11"}`;
3
+ const version = `table v${"3.16.13"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);