vxe-table 4.15.0-beta.1 → 4.15.0-beta.10
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/es/grid/src/grid.js +88 -1
- package/es/locale/lang/ar-EG.js +2 -1
- package/es/locale/lang/de-DE.js +2 -1
- package/es/locale/lang/en-US.js +2 -1
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/fr-FR.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/hy-AM.js +2 -1
- package/es/locale/lang/id-ID.js +2 -1
- package/es/locale/lang/it-IT.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/ms-MY.js +2 -1
- package/es/locale/lang/nb-NO.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +2 -1
- package/es/locale/lang/th-TH.js +2 -1
- package/es/locale/lang/ug-CN.js +2 -1
- package/es/locale/lang/uk-UA.js +2 -1
- package/es/locale/lang/uz-UZ.js +2 -1
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/table/module/filter/hook.js +9 -22
- package/es/table/module/keyboard/hook.js +2 -2
- package/es/table/src/body.js +2 -2
- package/es/table/src/cell.js +5 -5
- package/es/table/src/footer.js +2 -3
- package/es/table/src/header.js +2 -2
- package/es/table/src/table.js +158 -37
- package/es/ui/index.js +2 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +96 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +142 -67
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +2 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/ar-EG.umd.js +2 -1
- package/lib/locale/lang/de-DE.js +2 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +2 -1
- package/lib/locale/lang/en-US.js +2 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -1
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +2 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/hy-AM.js +2 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/hy-AM.umd.js +2 -1
- package/lib/locale/lang/id-ID.js +2 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/id-ID.umd.js +2 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/it-IT.umd.js +2 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/ms-MY.js +2 -1
- package/lib/locale/lang/ms-MY.min.js +1 -1
- package/lib/locale/lang/ms-MY.umd.js +2 -1
- package/lib/locale/lang/nb-NO.js +2 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/nb-NO.umd.js +2 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +2 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +2 -1
- package/lib/locale/lang/th-TH.js +2 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/th-TH.umd.js +2 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/ug-CN.umd.js +2 -1
- package/lib/locale/lang/uk-UA.js +2 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +2 -1
- package/lib/locale/lang/uz-UZ.js +2 -1
- package/lib/locale/lang/uz-UZ.min.js +1 -1
- package/lib/locale/lang/uz-UZ.umd.js +2 -1
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/vi-VN.umd.js +2 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +2 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/table/module/filter/hook.js +10 -33
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +2 -2
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +2 -2
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +5 -4
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/footer.js +2 -3
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +2 -2
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +18 -17
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +2 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +90 -1
- package/packages/locale/lang/ar-EG.ts +2 -1
- package/packages/locale/lang/de-DE.ts +2 -1
- package/packages/locale/lang/en-US.ts +2 -1
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/fr-FR.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/hy-AM.ts +2 -1
- package/packages/locale/lang/id-ID.ts +2 -1
- package/packages/locale/lang/it-IT.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/ms-MY.ts +2 -1
- package/packages/locale/lang/nb-NO.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +2 -1
- package/packages/locale/lang/th-TH.ts +2 -1
- package/packages/locale/lang/ug-CN.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +2 -1
- package/packages/locale/lang/uz-UZ.ts +2 -1
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/filter/hook.ts +10 -24
- package/packages/table/module/keyboard/hook.ts +2 -2
- package/packages/table/src/body.ts +2 -2
- package/packages/table/src/cell.ts +5 -5
- package/packages/table/src/footer.ts +2 -3
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/table.ts +168 -37
- package/packages/ui/index.ts +1 -0
- /package/es/{iconfont.1753080055966.ttf → iconfont.1753519951433.ttf} +0 -0
- /package/es/{iconfont.1753080055966.woff → iconfont.1753519951433.woff} +0 -0
- /package/es/{iconfont.1753080055966.woff2 → iconfont.1753519951433.woff2} +0 -0
- /package/lib/{iconfont.1753080055966.ttf → iconfont.1753519951433.ttf} +0 -0
- /package/lib/{iconfont.1753080055966.woff → iconfont.1753519951433.woff} +0 -0
- /package/lib/{iconfont.1753080055966.woff2 → iconfont.1753519951433.woff2} +0 -0
|
@@ -75,27 +75,9 @@ hooks.add('tableFilterModule', {
|
|
|
75
75
|
const { transfer } = filterOpts;
|
|
76
76
|
const tableRect = el.getBoundingClientRect();
|
|
77
77
|
const btnElem = evnt.currentTarget;
|
|
78
|
-
|
|
79
|
-
const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
|
|
80
|
-
const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
|
|
78
|
+
$xeTable.handleFilterOptions(column);
|
|
81
79
|
internalData._currFilterParams = params;
|
|
82
|
-
|
|
83
|
-
multiple: filterMultiple,
|
|
84
|
-
options: filters,
|
|
85
|
-
column,
|
|
86
|
-
style: null
|
|
87
|
-
});
|
|
88
|
-
// 复原状态
|
|
89
|
-
filterStore.options.forEach((option) => {
|
|
90
|
-
const { _checked, checked } = option;
|
|
91
|
-
option._checked = checked;
|
|
92
|
-
if (!checked && _checked !== checked) {
|
|
93
|
-
if (frMethod) {
|
|
94
|
-
frMethod({ option, column, $table: $xeTable });
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
this.checkFilterOptions();
|
|
80
|
+
filterStore.style = null;
|
|
99
81
|
filterStore.visible = true;
|
|
100
82
|
initStore.filter = true;
|
|
101
83
|
nextTick(() => {
|
|
@@ -265,12 +247,17 @@ hooks.add('tableFilterModule', {
|
|
|
265
247
|
* @param {Array} options 选项
|
|
266
248
|
*/
|
|
267
249
|
setFilter(fieldOrColumn, options, isUpdate) {
|
|
250
|
+
const { filterStore } = reactData;
|
|
268
251
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
269
252
|
if (column && column.filters) {
|
|
270
253
|
column.filters = toFilters(options || []);
|
|
271
254
|
if (isUpdate) {
|
|
272
|
-
|
|
273
|
-
|
|
255
|
+
return $xeTable.handleColumnConfirmFilter(column, null);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
if (filterStore.visible) {
|
|
259
|
+
$xeTable.handleFilterOptions(column);
|
|
260
|
+
}
|
|
274
261
|
}
|
|
275
262
|
}
|
|
276
263
|
return nextTick();
|
|
@@ -272,8 +272,8 @@ hooks.add('tableKeyboardModule', {
|
|
|
272
272
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
273
273
|
const mouseOpts = computeMouseOpts.value;
|
|
274
274
|
const editOpts = computeEditOpts.value;
|
|
275
|
-
if (mouseConfig && mouseOpts.area && $xeTable.
|
|
276
|
-
return $xeTable.
|
|
275
|
+
if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaModownEvent) {
|
|
276
|
+
return $xeTable.triggerCellAreaModownEvent(evnt, params);
|
|
277
277
|
}
|
|
278
278
|
else {
|
|
279
279
|
if (checkboxConfig && checkboxOpts.range) {
|
package/es/table/src/body.js
CHANGED
|
@@ -115,7 +115,7 @@ export default defineVxeComponent({
|
|
|
115
115
|
const _columnIndex = colRest._index;
|
|
116
116
|
const isEdit = isEnableConf(editRender);
|
|
117
117
|
const resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
|
|
118
|
-
let fixedHiddenColumn = fixedType ? column.fixed !== fixedType : column.fixed
|
|
118
|
+
let fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
|
|
119
119
|
const isCellPadding = XEUtils.eqNull(padding) ? (allPadding === null ? cellOpts.padding : allPadding) : padding;
|
|
120
120
|
const cellOverflow = XEUtils.eqNull(showOverflow) ? allShowOverflow : showOverflow;
|
|
121
121
|
const showEllipsis = cellOverflow === 'ellipsis';
|
|
@@ -263,7 +263,7 @@ export default defineVxeComponent({
|
|
|
263
263
|
const isLastColumn = $columnIndex === columns.length - 1;
|
|
264
264
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
265
265
|
let isVNPreEmptyStatus = false;
|
|
266
|
-
if (!isMergeCell) {
|
|
266
|
+
if (overflowX && !isMergeCell) {
|
|
267
267
|
if (!dragRow || getRowid($xeTable, dragRow) !== rowid) {
|
|
268
268
|
if (scrollYLoad && !treeConfig && !virtualYOpts.immediate && (_rowIndex < scrollYStore.visibleStartIndex - scrollYStore.preloadSize || _rowIndex > scrollYStore.visibleEndIndex + scrollYStore.preloadSize)) {
|
|
269
269
|
isVNPreEmptyStatus = true;
|
package/es/table/src/cell.js
CHANGED
|
@@ -389,7 +389,7 @@ export const Cell = {
|
|
|
389
389
|
const { computeAggregateOpts } = $table.getComputeMaps();
|
|
390
390
|
const aggregateOpts = computeAggregateOpts.value;
|
|
391
391
|
const { mode, showTotal, totalMethod, countFields, contentMethod, mapChildrenField } = aggregateOpts;
|
|
392
|
-
const
|
|
392
|
+
const aggCalcMethod = aggregateOpts.calcValuesMethod || aggregateOpts.countMethod || aggregateOpts.aggregateMethod;
|
|
393
393
|
const groupField = aggRow.groupField;
|
|
394
394
|
const groupContent = aggRow.groupContent;
|
|
395
395
|
const childList = mapChildrenField ? (aggRow[mapChildrenField] || []) : [];
|
|
@@ -423,9 +423,9 @@ export const Cell = {
|
|
|
423
423
|
cellValue = $table.getPivotTableAggregateCellAggValue(params);
|
|
424
424
|
}
|
|
425
425
|
else if (aggFunc === true || (countFields && countFields.includes(field))) {
|
|
426
|
-
if (
|
|
426
|
+
if (aggCalcMethod) {
|
|
427
427
|
ctParams.aggValue = childCount;
|
|
428
|
-
cellValue = `${
|
|
428
|
+
cellValue = `${aggCalcMethod(ctParams)}`;
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
431
|
}
|
|
@@ -478,14 +478,14 @@ export const Cell = {
|
|
|
478
478
|
const { rowGroupExpandedFlag } = tableReactData;
|
|
479
479
|
const { rowGroupExpandedMaps } = tableInternalData;
|
|
480
480
|
const aggregateOpts = computeAggregateOpts.value;
|
|
481
|
-
const { padding, indent } = aggregateOpts;
|
|
481
|
+
const { mode, padding, indent } = aggregateOpts;
|
|
482
482
|
const rowid = getRowid($table, row);
|
|
483
483
|
const isExpand = !!rowGroupExpandedFlag && !!rowGroupExpandedMaps[rowid];
|
|
484
484
|
return h('div', {
|
|
485
485
|
class: ['vxe-row-group--tree-node', {
|
|
486
486
|
'is--expanded': isExpand
|
|
487
487
|
}],
|
|
488
|
-
style: padding && indent
|
|
488
|
+
style: mode !== 'column' && padding && indent
|
|
489
489
|
? {
|
|
490
490
|
paddingLeft: `${level * indent}px`
|
|
491
491
|
}
|
package/es/table/src/footer.js
CHANGED
|
@@ -58,8 +58,7 @@ export default defineVxeComponent({
|
|
|
58
58
|
const renderOpts = editRender || cellRender;
|
|
59
59
|
const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
|
|
60
60
|
const showAllTip = tooltipOpts.showAll;
|
|
61
|
-
const
|
|
62
|
-
const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX;
|
|
61
|
+
const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
|
|
63
62
|
const isPadding = XEUtils.isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding;
|
|
64
63
|
const footOverflow = XEUtils.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
|
|
65
64
|
const footAlign = footerAlign || (compConf ? compConf.tableFooterCellAlign : '') || allFooterAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
@@ -148,7 +147,7 @@ export default defineVxeComponent({
|
|
|
148
147
|
const isLastColumn = $columnIndex === tableColumn.length - 1;
|
|
149
148
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
150
149
|
let isVNPreEmptyStatus = false;
|
|
151
|
-
if (isOptimizeMode && !isMergeCell) {
|
|
150
|
+
if (isOptimizeMode && overflowX && !isMergeCell) {
|
|
152
151
|
if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
153
152
|
isVNPreEmptyStatus = true;
|
|
154
153
|
}
|
package/es/table/src/header.js
CHANGED
|
@@ -54,7 +54,7 @@ export default defineVxeComponent({
|
|
|
54
54
|
const renderOpts = editRender || cellRender;
|
|
55
55
|
const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
|
|
56
56
|
const isColGroup = column.children && column.children.length;
|
|
57
|
-
const fixedHiddenColumn = fixedType ?
|
|
57
|
+
const fixedHiddenColumn = overflowX && !isColGroup && (fixedType ? column.fixed !== fixedType : !!column.fixed);
|
|
58
58
|
const isPadding = XEUtils.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding;
|
|
59
59
|
const headOverflow = XEUtils.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
60
60
|
const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
@@ -115,7 +115,7 @@ export default defineVxeComponent({
|
|
|
115
115
|
const showResizable = (XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || allResizable));
|
|
116
116
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
117
117
|
let isVNPreEmptyStatus = false;
|
|
118
|
-
if (isOptimizeMode && !isGroup) {
|
|
118
|
+
if (isOptimizeMode && overflowX && !isGroup) {
|
|
119
119
|
if (!dragCol || dragCol.id !== colid) {
|
|
120
120
|
if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
121
121
|
isVNPreEmptyStatus = true;
|
package/es/table/src/table.js
CHANGED
|
@@ -1327,16 +1327,23 @@ export default defineVxeComponent({
|
|
|
1327
1327
|
return rest;
|
|
1328
1328
|
};
|
|
1329
1329
|
const handleSortEvent = (evnt, sortConfs, isUpdate) => {
|
|
1330
|
+
const { tableFullColumn } = internalData;
|
|
1330
1331
|
const sortOpts = computeSortOpts.value;
|
|
1331
1332
|
const { multiple, remote, orders } = sortOpts;
|
|
1332
1333
|
if (!XEUtils.isArray(sortConfs)) {
|
|
1333
1334
|
sortConfs = [sortConfs];
|
|
1334
1335
|
}
|
|
1335
1336
|
if (sortConfs && sortConfs.length) {
|
|
1337
|
+
const orderActiveMaps = {};
|
|
1336
1338
|
if (!multiple) {
|
|
1337
1339
|
sortConfs = [sortConfs[0]];
|
|
1338
|
-
|
|
1340
|
+
tableFullColumn.forEach((column) => {
|
|
1341
|
+
if (column.order) {
|
|
1342
|
+
orderActiveMaps[column.id] = column;
|
|
1343
|
+
}
|
|
1344
|
+
});
|
|
1339
1345
|
}
|
|
1346
|
+
const sortColMpps = {};
|
|
1340
1347
|
let firstColumn = null;
|
|
1341
1348
|
sortConfs.forEach((confs, index) => {
|
|
1342
1349
|
let { field, order } = confs;
|
|
@@ -1355,8 +1362,16 @@ export default defineVxeComponent({
|
|
|
1355
1362
|
column.order = order;
|
|
1356
1363
|
}
|
|
1357
1364
|
column.sortTime = Date.now() + index;
|
|
1365
|
+
sortColMpps[column.id] = column;
|
|
1358
1366
|
}
|
|
1359
1367
|
});
|
|
1368
|
+
if (!multiple) {
|
|
1369
|
+
XEUtils.each(orderActiveMaps, (oaCol, oaId) => {
|
|
1370
|
+
if (!sortColMpps[oaId]) {
|
|
1371
|
+
oaCol.order = null;
|
|
1372
|
+
}
|
|
1373
|
+
});
|
|
1374
|
+
}
|
|
1360
1375
|
if (isUpdate) {
|
|
1361
1376
|
if (!remote) {
|
|
1362
1377
|
$xeTable.handleTableData(true);
|
|
@@ -2767,20 +2782,18 @@ export default defineVxeComponent({
|
|
|
2767
2782
|
const handleDefaultTreeExpand = () => {
|
|
2768
2783
|
const { treeConfig } = props;
|
|
2769
2784
|
if (treeConfig) {
|
|
2770
|
-
const {
|
|
2785
|
+
const { fullAllDataRowIdData } = internalData;
|
|
2771
2786
|
const treeOpts = computeTreeOpts.value;
|
|
2772
2787
|
const { expandAll, expandRowKeys } = treeOpts;
|
|
2773
|
-
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2774
2788
|
if (expandAll) {
|
|
2775
2789
|
$xeTable.setAllTreeExpand(true);
|
|
2776
2790
|
}
|
|
2777
2791
|
else if (expandRowKeys) {
|
|
2778
2792
|
const defExpandeds = [];
|
|
2779
|
-
const rowkey = getRowkey($xeTable);
|
|
2780
2793
|
expandRowKeys.forEach((rowid) => {
|
|
2781
|
-
const
|
|
2782
|
-
if (
|
|
2783
|
-
defExpandeds.push(
|
|
2794
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
2795
|
+
if (rowRest) {
|
|
2796
|
+
defExpandeds.push(rowRest.row);
|
|
2784
2797
|
}
|
|
2785
2798
|
});
|
|
2786
2799
|
$xeTable.setTreeExpand(defExpandeds, true);
|
|
@@ -3367,6 +3380,13 @@ export default defineVxeComponent({
|
|
|
3367
3380
|
}
|
|
3368
3381
|
reactData.isRowLoading = false;
|
|
3369
3382
|
handleRecalculateStyle(false, false, false);
|
|
3383
|
+
// 如果是自动行高,特殊情况需调用 recalculate 手动刷新
|
|
3384
|
+
if (!props.showOverflow) {
|
|
3385
|
+
setTimeout(() => {
|
|
3386
|
+
handleLazyRecalculate(false, true, true);
|
|
3387
|
+
setTimeout(() => handleLazyRecalculate(false, true, true), 3000);
|
|
3388
|
+
}, 2000);
|
|
3389
|
+
}
|
|
3370
3390
|
// 是否变更虚拟滚动
|
|
3371
3391
|
if (oldScrollYLoad === sYLoad) {
|
|
3372
3392
|
restoreScrollLocation($xeTable, targetScrollLeft, targetScrollTop)
|
|
@@ -3399,6 +3419,7 @@ export default defineVxeComponent({
|
|
|
3399
3419
|
handleDefaultRadioChecked();
|
|
3400
3420
|
handleDefaultRowExpand();
|
|
3401
3421
|
handleDefaultTreeExpand();
|
|
3422
|
+
handleDefaultRowGroupExpand();
|
|
3402
3423
|
handleDefaultMergeCells();
|
|
3403
3424
|
handleDefaultMergeFooterItems();
|
|
3404
3425
|
nextTick(() => setTimeout(() => $xeTable.recalculate()));
|
|
@@ -3814,6 +3835,22 @@ export default defineVxeComponent({
|
|
|
3814
3835
|
}, 30);
|
|
3815
3836
|
});
|
|
3816
3837
|
};
|
|
3838
|
+
/**
|
|
3839
|
+
* 处理默认展开分组行
|
|
3840
|
+
*/
|
|
3841
|
+
const handleDefaultRowGroupExpand = () => {
|
|
3842
|
+
const { isRowGroupStatus } = reactData;
|
|
3843
|
+
if (isRowGroupStatus) {
|
|
3844
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
3845
|
+
const { expandAll, expandGroupFields } = aggregateOpts;
|
|
3846
|
+
if (expandAll) {
|
|
3847
|
+
$xeTable.setAllRowGroupExpand(true);
|
|
3848
|
+
}
|
|
3849
|
+
else if (expandGroupFields && expandGroupFields.length) {
|
|
3850
|
+
$xeTable.setRowGroupExpandByField(expandGroupFields, true);
|
|
3851
|
+
}
|
|
3852
|
+
}
|
|
3853
|
+
};
|
|
3817
3854
|
const handleCheckAllEvent = (evnt, value) => {
|
|
3818
3855
|
handleCheckedAllCheckboxRow(value);
|
|
3819
3856
|
if (evnt) {
|
|
@@ -5772,11 +5809,10 @@ export default defineVxeComponent({
|
|
|
5772
5809
|
return nextTick();
|
|
5773
5810
|
},
|
|
5774
5811
|
setSort(sortConfs, isUpdate) {
|
|
5775
|
-
|
|
5776
|
-
return handleSortEvent(new Event('click'), sortConfs, isUpdate);
|
|
5812
|
+
return handleSortEvent(null, sortConfs, isUpdate);
|
|
5777
5813
|
},
|
|
5778
|
-
setSortByEvent(evnt, sortConfs
|
|
5779
|
-
return handleSortEvent(evnt, sortConfs,
|
|
5814
|
+
setSortByEvent(evnt, sortConfs) {
|
|
5815
|
+
return handleSortEvent(evnt, sortConfs, true);
|
|
5780
5816
|
},
|
|
5781
5817
|
/**
|
|
5782
5818
|
* 清空指定列的排序条件
|
|
@@ -5805,6 +5841,7 @@ export default defineVxeComponent({
|
|
|
5805
5841
|
clearSortByEvent(evnt, fieldOrColumn) {
|
|
5806
5842
|
const { tableFullColumn } = internalData;
|
|
5807
5843
|
const sortOpts = computeSortOpts.value;
|
|
5844
|
+
const { multiple } = sortOpts;
|
|
5808
5845
|
const sortCols = [];
|
|
5809
5846
|
let column = null;
|
|
5810
5847
|
if (evnt) {
|
|
@@ -5825,13 +5862,16 @@ export default defineVxeComponent({
|
|
|
5825
5862
|
if (!sortOpts.remote) {
|
|
5826
5863
|
$xeTable.handleTableData(true);
|
|
5827
5864
|
}
|
|
5828
|
-
if (
|
|
5829
|
-
|
|
5830
|
-
dispatchEvent('clear-all-sort', params, evnt);
|
|
5865
|
+
if (!multiple) {
|
|
5866
|
+
column = sortCols[0];
|
|
5831
5867
|
}
|
|
5832
|
-
|
|
5868
|
+
if (column) {
|
|
5833
5869
|
$xeTable.handleColumnSortEvent(evnt, column);
|
|
5834
5870
|
}
|
|
5871
|
+
if (multiple && sortCols.length) {
|
|
5872
|
+
const params = { $table: $xeTable, $event: evnt, cols: sortCols, sortList: [] };
|
|
5873
|
+
dispatchEvent('clear-all-sort', params, evnt);
|
|
5874
|
+
}
|
|
5835
5875
|
}
|
|
5836
5876
|
return nextTick().then(() => {
|
|
5837
5877
|
updateRowOffsetTop();
|
|
@@ -5861,13 +5901,11 @@ export default defineVxeComponent({
|
|
|
5861
5901
|
}
|
|
5862
5902
|
return sortList;
|
|
5863
5903
|
},
|
|
5864
|
-
setFilterByEvent(evnt, fieldOrColumn, options
|
|
5904
|
+
setFilterByEvent(evnt, fieldOrColumn, options) {
|
|
5865
5905
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn);
|
|
5866
5906
|
if (column && column.filters) {
|
|
5867
5907
|
column.filters = toFilters(options || []);
|
|
5868
|
-
|
|
5869
|
-
return $xeTable.handleColumnConfirmFilter(column, evnt);
|
|
5870
|
-
}
|
|
5908
|
+
return $xeTable.handleColumnConfirmFilter(column, evnt);
|
|
5871
5909
|
}
|
|
5872
5910
|
return nextTick();
|
|
5873
5911
|
},
|
|
@@ -5911,6 +5949,7 @@ export default defineVxeComponent({
|
|
|
5911
5949
|
const { filterStore } = reactData;
|
|
5912
5950
|
const { tableFullColumn } = internalData;
|
|
5913
5951
|
const filterOpts = computeFilterOpts.value;
|
|
5952
|
+
const { multiple } = filterOpts;
|
|
5914
5953
|
const filterCols = [];
|
|
5915
5954
|
let column = null;
|
|
5916
5955
|
if (fieldOrColumn) {
|
|
@@ -5941,13 +5980,37 @@ export default defineVxeComponent({
|
|
|
5941
5980
|
if (!filterOpts.remote) {
|
|
5942
5981
|
$xeTable.updateData();
|
|
5943
5982
|
}
|
|
5944
|
-
if (
|
|
5983
|
+
if (!multiple) {
|
|
5984
|
+
column = filterCols[0];
|
|
5985
|
+
}
|
|
5986
|
+
if (column) {
|
|
5987
|
+
const filterList = () => $xeTable.getCheckedFilters();
|
|
5988
|
+
const values = [];
|
|
5989
|
+
const datas = [];
|
|
5990
|
+
column.filters.forEach((item) => {
|
|
5991
|
+
if (item.checked) {
|
|
5992
|
+
values.push(item.value);
|
|
5993
|
+
datas.push(item.data);
|
|
5994
|
+
}
|
|
5995
|
+
});
|
|
5996
|
+
const params = {
|
|
5997
|
+
$table: $xeTable,
|
|
5998
|
+
$event: evnt,
|
|
5999
|
+
column,
|
|
6000
|
+
field: column.field,
|
|
6001
|
+
property: column.field,
|
|
6002
|
+
values,
|
|
6003
|
+
datas,
|
|
6004
|
+
filters: filterList,
|
|
6005
|
+
filterList
|
|
6006
|
+
};
|
|
6007
|
+
$xeTable.dispatchEvent('filter-change', params, evnt);
|
|
6008
|
+
$xeTable.dispatchEvent('clear-filter', params, evnt);
|
|
6009
|
+
}
|
|
6010
|
+
if (multiple && filterCols.length) {
|
|
5945
6011
|
const params = { $table: $xeTable, $event: evnt, cols: filterCols, filterList: [] };
|
|
5946
6012
|
dispatchEvent('clear-all-filter', params, evnt);
|
|
5947
6013
|
}
|
|
5948
|
-
else if (column) {
|
|
5949
|
-
$xeTable.dispatchEvent('clear-filter', { filterList: () => $xeTable.getCheckedFilters() }, evnt);
|
|
5950
|
-
}
|
|
5951
6014
|
return nextTick();
|
|
5952
6015
|
},
|
|
5953
6016
|
/**
|
|
@@ -6207,6 +6270,32 @@ export default defineVxeComponent({
|
|
|
6207
6270
|
}
|
|
6208
6271
|
return nextTick();
|
|
6209
6272
|
},
|
|
6273
|
+
setRowGroupExpandByField(groupFields, expanded) {
|
|
6274
|
+
const { isRowGroupStatus } = reactData;
|
|
6275
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
6276
|
+
const { childrenField } = aggregateOpts;
|
|
6277
|
+
if (groupFields) {
|
|
6278
|
+
if (!XEUtils.isArray(groupFields)) {
|
|
6279
|
+
groupFields = [groupFields];
|
|
6280
|
+
}
|
|
6281
|
+
if (isRowGroupStatus) {
|
|
6282
|
+
const rows = [];
|
|
6283
|
+
const gfKeys = {};
|
|
6284
|
+
groupFields.forEach(groupField => {
|
|
6285
|
+
gfKeys[groupField] = true;
|
|
6286
|
+
});
|
|
6287
|
+
XEUtils.eachTree(internalData.afterGroupFullData, (row) => {
|
|
6288
|
+
if (row.isAggregate && gfKeys[row.groupField]) {
|
|
6289
|
+
rows.push(row);
|
|
6290
|
+
}
|
|
6291
|
+
}, { children: childrenField });
|
|
6292
|
+
if (rows.length) {
|
|
6293
|
+
return handleRowGroupVirtualExpand(rows, expanded);
|
|
6294
|
+
}
|
|
6295
|
+
}
|
|
6296
|
+
}
|
|
6297
|
+
return nextTick();
|
|
6298
|
+
},
|
|
6210
6299
|
setAllRowGroupExpand(expanded) {
|
|
6211
6300
|
const { tableFullGroupData } = internalData;
|
|
6212
6301
|
const aggregateOpts = computeAggregateOpts.value;
|
|
@@ -6424,8 +6513,6 @@ export default defineVxeComponent({
|
|
|
6424
6513
|
},
|
|
6425
6514
|
/**
|
|
6426
6515
|
* 如果有滚动条,则滚动到对应的位置
|
|
6427
|
-
* @param {Number} scrollLeft 左距离
|
|
6428
|
-
* @param {Number} scrollTop 上距离
|
|
6429
6516
|
*/
|
|
6430
6517
|
scrollTo(scrollLeft, scrollTop) {
|
|
6431
6518
|
const { elemStore } = internalData;
|
|
@@ -6437,6 +6524,12 @@ export default defineVxeComponent({
|
|
|
6437
6524
|
const xHandleEl = refScrollXHandleElem.value;
|
|
6438
6525
|
const yHandleEl = refScrollYHandleElem.value;
|
|
6439
6526
|
internalData.intoRunScroll = true;
|
|
6527
|
+
if (scrollLeft) {
|
|
6528
|
+
if (!XEUtils.isNumber(scrollLeft)) {
|
|
6529
|
+
scrollTop = scrollLeft.top;
|
|
6530
|
+
scrollLeft = scrollLeft.left;
|
|
6531
|
+
}
|
|
6532
|
+
}
|
|
6440
6533
|
if (XEUtils.isNumber(scrollLeft)) {
|
|
6441
6534
|
setScrollLeft(xHandleEl, scrollLeft);
|
|
6442
6535
|
setScrollLeft(bodyScrollElem, scrollLeft);
|
|
@@ -7865,7 +7958,7 @@ export default defineVxeComponent({
|
|
|
7865
7958
|
evnt.preventDefault();
|
|
7866
7959
|
const { column } = params;
|
|
7867
7960
|
const { columnStore, overflowX, scrollbarHeight } = reactData;
|
|
7868
|
-
const {
|
|
7961
|
+
const { visibleColumn } = internalData;
|
|
7869
7962
|
const { leftList, rightList } = columnStore;
|
|
7870
7963
|
const resizableOpts = computeResizableOpts.value;
|
|
7871
7964
|
const osbHeight = overflowX ? scrollbarHeight : 0;
|
|
@@ -7883,24 +7976,29 @@ export default defineVxeComponent({
|
|
|
7883
7976
|
const { clientX: dragClientX } = evnt;
|
|
7884
7977
|
const dragBtnElem = evnt.target;
|
|
7885
7978
|
let resizeColumn = column;
|
|
7886
|
-
|
|
7979
|
+
const isDragGroupCol = column.children && column.children.length;
|
|
7980
|
+
if (isDragGroupCol) {
|
|
7887
7981
|
XEUtils.eachTree(column.children, childColumn => {
|
|
7888
7982
|
resizeColumn = childColumn;
|
|
7889
7983
|
});
|
|
7890
7984
|
}
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7985
|
+
let cell = dragBtnElem.parentElement;
|
|
7986
|
+
if (isDragGroupCol) {
|
|
7987
|
+
const trEl = cell ? cell.parentElement : null;
|
|
7988
|
+
const theadEl = trEl ? trEl.parentElement : null;
|
|
7989
|
+
cell = theadEl ? theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`) : null;
|
|
7990
|
+
}
|
|
7991
|
+
if (!cell) {
|
|
7896
7992
|
return;
|
|
7897
7993
|
}
|
|
7994
|
+
const cellParams = XEUtils.assign(params, { cell });
|
|
7995
|
+
let dragLeft = 0;
|
|
7898
7996
|
const tableRect = tableEl.getBoundingClientRect();
|
|
7899
7997
|
const rightContainerRect = rightContainerElem ? rightContainerElem.getBoundingClientRect() : null;
|
|
7900
7998
|
const cellRect = cell.getBoundingClientRect();
|
|
7901
7999
|
const dragBtnRect = dragBtnElem.getBoundingClientRect();
|
|
7902
8000
|
const dragBtnWidth = dragBtnElem.clientWidth;
|
|
7903
|
-
const dragBtnOffsetWidth =
|
|
8001
|
+
const dragBtnOffsetWidth = XEUtils.floor(dragBtnWidth / 2);
|
|
7904
8002
|
const dragPosLeft = dragBtnRect.x - tableRect.x + dragBtnOffsetWidth;
|
|
7905
8003
|
const minInterval = getColReMinWidth(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
|
|
7906
8004
|
const dragMinLeft = isRightFixed ? 0 : (cellRect.x - tableRect.x + dragBtnWidth + minInterval);
|
|
@@ -8248,6 +8346,26 @@ export default defineVxeComponent({
|
|
|
8248
8346
|
handleRefreshColumnQueue() {
|
|
8249
8347
|
reactData.reColumnFlag++;
|
|
8250
8348
|
},
|
|
8349
|
+
handleFilterOptions(column) {
|
|
8350
|
+
const { filterStore } = reactData;
|
|
8351
|
+
const { filters, filterMultiple, filterRender } = column;
|
|
8352
|
+
const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
|
|
8353
|
+
const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
|
|
8354
|
+
filterStore.multiple = filterMultiple;
|
|
8355
|
+
filterStore.options = filters;
|
|
8356
|
+
filterStore.column = column;
|
|
8357
|
+
// 复原状态
|
|
8358
|
+
filterStore.options.forEach((option) => {
|
|
8359
|
+
const { _checked, checked } = option;
|
|
8360
|
+
option._checked = checked;
|
|
8361
|
+
if (!checked && _checked !== checked) {
|
|
8362
|
+
if (frMethod) {
|
|
8363
|
+
frMethod({ option, column, $table: $xeTable });
|
|
8364
|
+
}
|
|
8365
|
+
}
|
|
8366
|
+
});
|
|
8367
|
+
$xeTable.checkFilterOptions();
|
|
8368
|
+
},
|
|
8251
8369
|
preventEvent(evnt, type, args, next, end) {
|
|
8252
8370
|
let evntList = interceptor.get(type);
|
|
8253
8371
|
// 兼容老版本
|
|
@@ -9215,8 +9333,8 @@ export default defineVxeComponent({
|
|
|
9215
9333
|
$xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
|
|
9216
9334
|
}
|
|
9217
9335
|
}
|
|
9218
|
-
if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.
|
|
9219
|
-
$xeTable.
|
|
9336
|
+
if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaModownEvent) {
|
|
9337
|
+
$xeTable.handleHeaderCellAreaModownEvent(evnt, Object.assign({ cell, triggerSort, triggerFilter }, params));
|
|
9220
9338
|
}
|
|
9221
9339
|
$xeTable.focus();
|
|
9222
9340
|
if ($xeTable.closeMenu) {
|
|
@@ -11697,7 +11815,7 @@ export default defineVxeComponent({
|
|
|
11697
11815
|
if (rowOpts.height && !props.showOverflow) {
|
|
11698
11816
|
warnLog('vxe.error.notProp', ['table.show-overflow']);
|
|
11699
11817
|
}
|
|
11700
|
-
if (!$xeTable.
|
|
11818
|
+
if (!$xeTable.triggerCellAreaModownEvent) {
|
|
11701
11819
|
if (props.areaConfig) {
|
|
11702
11820
|
warnLog('vxe.error.notProp', ['area-config']);
|
|
11703
11821
|
}
|
|
@@ -11735,7 +11853,10 @@ export default defineVxeComponent({
|
|
|
11735
11853
|
warnLog('vxe.error.delProp', ['row-group-config.countFields', 'column.agg-func']);
|
|
11736
11854
|
}
|
|
11737
11855
|
if (aggregateOpts.aggregateMethod) {
|
|
11738
|
-
warnLog('vxe.error.delProp', ['row-group-config.aggregateMethod', 'aggregate-config.
|
|
11856
|
+
warnLog('vxe.error.delProp', ['row-group-config.aggregateMethod', 'aggregate-config.calcValuesMethod']);
|
|
11857
|
+
}
|
|
11858
|
+
if (aggregateOpts.countMethod) {
|
|
11859
|
+
warnLog('vxe.error.delProp', ['aggregate-config.countMethod', 'aggregate-config.calcValuesMethod']);
|
|
11739
11860
|
}
|
|
11740
11861
|
if (props.treeConfig && treeOpts.children) {
|
|
11741
11862
|
warnLog('vxe.error.delProp', ['tree-config.children', 'tree-config.childrenField']);
|
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 = "4.15.0-beta.
|
|
3
|
+
export const version = "4.15.0-beta.10";
|
|
4
4
|
VxeUI.version = version;
|
|
5
5
|
VxeUI.tableVersion = version;
|
|
6
6
|
VxeUI.setConfig({
|
|
@@ -138,6 +138,7 @@ VxeUI.setConfig({
|
|
|
138
138
|
// filterMethod: null,
|
|
139
139
|
// destroyOnClose: false,
|
|
140
140
|
// isEvery: false,
|
|
141
|
+
multiple: true,
|
|
141
142
|
showIcon: true
|
|
142
143
|
},
|
|
143
144
|
aggregateConfig: {
|
package/es/ui/src/log.js
CHANGED