vxe-table 3.17.0-beta.9 → 3.17.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 (55) hide show
  1. package/es/grid/src/grid.js +88 -23
  2. package/es/style.css +1 -1
  3. package/es/table/module/custom/mixin.js +32 -14
  4. package/es/table/module/custom/panel.js +1 -1
  5. package/es/table/module/edit/mixin.js +5 -5
  6. package/es/table/src/body.js +7 -6
  7. package/es/table/src/columnInfo.js +5 -0
  8. package/es/table/src/methods.js +223 -85
  9. package/es/table/src/table.js +17 -8
  10. package/es/table/src/util.js +9 -0
  11. package/es/ui/index.js +3 -1
  12. package/es/ui/src/log.js +1 -1
  13. package/lib/grid/src/grid.js +104 -29
  14. package/lib/grid/src/grid.min.js +1 -1
  15. package/lib/index.umd.js +465 -139
  16. package/lib/index.umd.min.js +1 -1
  17. package/lib/style.css +1 -1
  18. package/lib/table/module/custom/mixin.js +37 -13
  19. package/lib/table/module/custom/mixin.min.js +1 -1
  20. package/lib/table/module/custom/panel.js +1 -1
  21. package/lib/table/module/custom/panel.min.js +1 -1
  22. package/lib/table/module/edit/mixin.js +5 -0
  23. package/lib/table/module/edit/mixin.min.js +1 -1
  24. package/lib/table/src/body.js +7 -6
  25. package/lib/table/src/body.min.js +1 -1
  26. package/lib/table/src/columnInfo.js +5 -0
  27. package/lib/table/src/columnInfo.min.js +1 -1
  28. package/lib/table/src/methods.js +273 -82
  29. package/lib/table/src/methods.min.js +1 -1
  30. package/lib/table/src/table.js +21 -8
  31. package/lib/table/src/table.min.js +1 -1
  32. package/lib/table/src/util.js +10 -0
  33. package/lib/table/src/util.min.js +1 -1
  34. package/lib/ui/index.js +3 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/package.json +2 -2
  39. package/packages/grid/src/grid.ts +101 -25
  40. package/packages/table/module/custom/mixin.ts +32 -13
  41. package/packages/table/module/custom/panel.ts +1 -1
  42. package/packages/table/module/edit/mixin.ts +5 -5
  43. package/packages/table/src/body.ts +7 -6
  44. package/packages/table/src/columnInfo.ts +7 -0
  45. package/packages/table/src/methods.ts +237 -85
  46. package/packages/table/src/props.ts +1 -1
  47. package/packages/table/src/table.ts +18 -9
  48. package/packages/table/src/util.ts +10 -0
  49. package/packages/ui/index.ts +2 -0
  50. /package/es/{iconfont.1753497303145.ttf → iconfont.1754358049869.ttf} +0 -0
  51. /package/es/{iconfont.1753497303145.woff → iconfont.1754358049869.woff} +0 -0
  52. /package/es/{iconfont.1753497303145.woff2 → iconfont.1754358049869.woff2} +0 -0
  53. /package/lib/{iconfont.1753497303145.ttf → iconfont.1754358049869.ttf} +0 -0
  54. /package/lib/{iconfont.1753497303145.woff → iconfont.1754358049869.woff} +0 -0
  55. /package/lib/{iconfont.1753497303145.woff2 → iconfont.1754358049869.woff2} +0 -0
@@ -1,4 +1,5 @@
1
1
  import XEUtils from 'xe-utils';
2
+ import { getColumnList } from '../../src/util';
2
3
  function calcMaxHeight($xeTable) {
3
4
  const reactData = $xeTable;
4
5
  const { customStore } = reactData;
@@ -17,6 +18,12 @@ function emitCustomEvent($xeTable, type, evnt) {
17
18
  }
18
19
  export default {
19
20
  methods: {
21
+ _getCustomVisible() {
22
+ const $xeTable = this;
23
+ const reactData = $xeTable;
24
+ const { customStore } = reactData;
25
+ return customStore.visible;
26
+ },
20
27
  _openCustom() {
21
28
  const $xeTable = this;
22
29
  const reactData = $xeTable;
@@ -53,6 +60,7 @@ export default {
53
60
  _saveCustom() {
54
61
  const $xeTable = this;
55
62
  const reactData = $xeTable;
63
+ const internalData = $xeTable;
56
64
  const { customColumnList, aggHandleFields, rowGroupList } = reactData;
57
65
  const customOpts = $xeTable.computeCustomOpts;
58
66
  const { allowVisible, allowSort, allowFixed, allowResizable, allowGroup, allowValues } = customOpts;
@@ -86,23 +94,25 @@ export default {
86
94
  }
87
95
  });
88
96
  reactData.isCustomStatus = true;
89
- return $xeTable.saveCustomStore('confirm').then(() => {
90
- if (allowGroup && allowValues && $xeTable.handlePivotTableAggregateData) {
91
- if (rowGroupList.length !== aggHandleFields.length || rowGroupList.some((conf, i) => conf.field !== aggHandleFields[i])) {
92
- // 更新数据分组
93
- if (aggHandleFields.length) {
94
- $xeTable.setRowGroups(aggHandleFields);
95
- }
96
- else {
97
- $xeTable.clearRowGroups();
98
- }
97
+ if (allowGroup && allowValues && !!$xeTable.handlePivotTableAggregateData) {
98
+ if (rowGroupList.length !== aggHandleFields.length || rowGroupList.some((conf, i) => conf.field !== aggHandleFields[i])) {
99
+ // 更新数据分组
100
+ if (aggHandleFields.length) {
101
+ $xeTable.setRowGroups(aggHandleFields);
99
102
  }
100
103
  else {
101
- // 更新聚合函数
102
- $xeTable.handleUpdateAggData();
104
+ $xeTable.clearRowGroups();
103
105
  }
104
106
  }
105
- });
107
+ else if (allowValues) {
108
+ // 更新聚合函数
109
+ $xeTable.handleUpdateAggData();
110
+ }
111
+ }
112
+ if (allowSort) {
113
+ internalData.collectColumn = customColumnList;
114
+ }
115
+ return $xeTable.saveCustomStore('confirm');
106
116
  },
107
117
  _cancelCustom() {
108
118
  const $xeTable = this;
@@ -147,6 +157,7 @@ export default {
147
157
  sort: options === true,
148
158
  aggFunc: options === true
149
159
  }, options);
160
+ const allCols = [];
150
161
  XEUtils.eachTree(collectColumn, (column) => {
151
162
  if (opts.resizable) {
152
163
  column.resizeWidth = 0;
@@ -156,6 +167,7 @@ export default {
156
167
  }
157
168
  if (opts.sort) {
158
169
  column.renderSortNumber = column.sortNumber;
170
+ column.parentId = column.defaultParentId;
159
171
  }
160
172
  if (!checkMethod || checkMethod({ $table: $xeTable, column })) {
161
173
  column.visible = column.defaultVisible;
@@ -165,9 +177,14 @@ export default {
165
177
  column.renderAggFn = column.defaultAggFunc;
166
178
  }
167
179
  column.renderResizeWidth = column.renderWidth;
180
+ allCols.push(column);
168
181
  });
182
+ if (opts.sort) {
183
+ const newCollectCols = XEUtils.toArrayTree(XEUtils.orderBy(allCols, 'renderSortNumber'), { key: 'id', parentKey: 'parentId', children: 'children' });
184
+ internalData.collectColumn = newCollectCols;
185
+ internalData.tableFullColumn = getColumnList(newCollectCols);
186
+ }
169
187
  reactData.isCustomStatus = false;
170
- $xeTable.saveCustomStore('reset');
171
188
  return $xeTable.handleCustom().then(() => {
172
189
  if (opts.aggFunc && $xeTable.handlePivotTableAggregateData) {
173
190
  const rowGroupFields = $xeTable.computeRowGroupFields;
@@ -183,6 +200,7 @@ export default {
183
200
  $xeTable.handleUpdateAggData();
184
201
  }
185
202
  }
203
+ $xeTable.saveCustomStore('reset');
186
204
  });
187
205
  },
188
206
  _toggleCustomAllCheckbox() {
@@ -1085,7 +1085,7 @@ export default {
1085
1085
  }
1086
1086
  }
1087
1087
  }
1088
- if (!targetFixed !== null) {
1088
+ if (targetFixed !== null) {
1089
1089
  $xeTable.dispatchEvent('custom-fixed-change', { column, fixed: targetFixed }, evnt);
1090
1090
  }
1091
1091
  },
@@ -70,7 +70,7 @@ function insertTreeRow($xeTable, newRecords, isAppend) {
70
70
  }
71
71
  parentChilds[funcName](item);
72
72
  mapChilds[funcName](item);
73
- const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, items: parentChilds, parent: parentRow, level: parentLevel + 1, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
73
+ const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items: parentChilds, parent: parentRow, level: parentLevel + 1, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
74
74
  fullDataRowIdData[rowid] = rest;
75
75
  fullAllDataRowIdData[rowid] = rest;
76
76
  }
@@ -80,7 +80,7 @@ function insertTreeRow($xeTable, newRecords, isAppend) {
80
80
  }
81
81
  afterFullData[funcName](item);
82
82
  tableFullTreeData[funcName](item);
83
- const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, items: tableFullTreeData, parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
83
+ const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items: tableFullTreeData, parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
84
84
  fullDataRowIdData[rowid] = rest;
85
85
  fullAllDataRowIdData[rowid] = rest;
86
86
  }
@@ -118,7 +118,7 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
118
118
  else {
119
119
  newRecords.forEach(item => {
120
120
  const rowid = getRowid($xeTable, item);
121
- const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, items: afterFullData, parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
121
+ const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items: afterFullData, parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
122
122
  fullDataRowIdData[rowid] = rest;
123
123
  fullAllDataRowIdData[rowid] = rest;
124
124
  afterFullData.unshift(item);
@@ -150,7 +150,7 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
150
150
  else {
151
151
  newRecords.forEach(item => {
152
152
  const rowid = getRowid($xeTable, item);
153
- const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, items: afterFullData, parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
153
+ const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items: afterFullData, parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
154
154
  fullDataRowIdData[rowid] = rest;
155
155
  fullAllDataRowIdData[rowid] = rest;
156
156
  afterFullData.push(item);
@@ -182,7 +182,7 @@ function handleInsertRowAt($xeTable, records, targetRow, isInsertNextRow) {
182
182
  targetIndex = targetIndex + 1;
183
183
  }
184
184
  parentMapChilds.splice(targetIndex, 0, item);
185
- const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, items: parentMapChilds, parent: parentRow, level: parentLevel + 1, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
185
+ const rest = { row: item, rowid, seq: -1, index: -1, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items: parentMapChilds, parent: parentRow, level: parentLevel + 1, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
186
186
  fullDataRowIdData[rowid] = rest;
187
187
  fullAllDataRowIdData[rowid] = rest;
188
188
  });
@@ -239,7 +239,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
239
239
  if (!fixedHiddenColumn && editConfig && (editRender || cellRender) && (editOpts.showStatus || editOpts.showUpdateStatus)) {
240
240
  isDirty = $xeTable.isUpdateByRow(row, column.field);
241
241
  }
242
- const isVNAutoHeight = scrollYLoad && !hasEllipsis;
242
+ const isVNAutoHeight = !hasEllipsis && (scrollYLoad || scrollXLoad);
243
243
  let cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
244
244
  const isLastColumn = $columnIndex === columns.length - 1;
245
245
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
@@ -276,7 +276,7 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
276
276
  }
277
277
  tcStyle.width = `${column.renderWidth + mergeColWidth - cellOffsetWidth}px`;
278
278
  }
279
- if (scrollYLoad || hasEllipsis || isCsHeight || isRsHeight) {
279
+ if (scrollYLoad || scrollXLoad || hasEllipsis || isCsHeight || isRsHeight) {
280
280
  tcStyle.height = `${cellHeight}px`;
281
281
  }
282
282
  else {
@@ -456,15 +456,16 @@ function renderRows(h, _vm, fixedType, isOptimizeMode, tableData, tableColumn) {
456
456
  };
457
457
  }
458
458
  if (rowRest) {
459
+ rowIndex = rowRest.index;
460
+ _rowIndex = rowRest._index;
459
461
  rowLevel = rowRest.level;
462
+ seq = rowRest.seq;
460
463
  if (hasRowGroupAggregate || (treeConfig && transform && seqMode === 'increasing')) {
461
464
  seq = rowRest._index + 1;
462
465
  }
463
- else {
464
- seq = rowRest.seq;
466
+ else if ((treeConfig && seqMode === 'fixed')) {
467
+ seq = rowRest._tIndex + 1;
465
468
  }
466
- rowIndex = rowRest.index;
467
- _rowIndex = rowRest._index;
468
469
  }
469
470
  const params = { $table: $xeTable, seq, rowid, fixed: fixedType, type: renderType, level: rowLevel, row, rowIndex, $rowIndex, _rowIndex };
470
471
  // 行是否被展开
@@ -119,15 +119,20 @@ export class ColumnInfo {
119
119
  parentId: null,
120
120
  visible,
121
121
  // 内部属性(一旦被使用,将导致不可升级版本)
122
+ defaultParentId: null,
122
123
  halfVisible: false,
123
124
  defaultVisible: visible,
124
125
  defaultFixed: _vm.fixed,
126
+ defaultAggGroup: _vm.aggGroup,
125
127
  defaultAggFunc: _vm.aggFunc,
126
128
  checked: false,
127
129
  halfChecked: false,
128
130
  disabled: false,
131
+ // 分组层级
129
132
  level: 1,
133
+ // 跨行
130
134
  rowSpan: 1,
135
+ // 跨列
131
136
  colSpan: 1,
132
137
  // 数据排序
133
138
  order: null,