vxe-table 4.13.33 → 4.13.35
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 +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/body.js +20 -3
- package/es/table/src/cell.js +55 -39
- package/es/table/src/column.js +2 -0
- package/es/table/src/columnInfo.js +2 -0
- package/es/table/src/props.js +3 -1
- package/es/table/src/table.js +130 -74
- package/es/table/src/util.js +7 -4
- package/es/table/style.css +9 -3
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +4 -4
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +9 -3
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +117 -76
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/body.js +19 -2
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +47 -32
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +2 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +2 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/props.js +3 -1
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +31 -31
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +10 -7
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +9 -3
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +4 -4
- 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/lib/vxe-table/style/style.css +9 -3
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/src/body.ts +20 -3
- package/packages/table/src/cell.ts +55 -39
- package/packages/table/src/column.ts +2 -0
- package/packages/table/src/columnInfo.ts +3 -0
- package/packages/table/src/props.ts +3 -1
- package/packages/table/src/table.ts +132 -73
- package/packages/table/src/util.ts +7 -3
- package/packages/ui/index.ts +1 -1
- package/styles/components/table.scss +13 -9
- package/styles/theme/base.scss +0 -2
- package/styles/theme/dark.scss +4 -1
- package/styles/theme/light.scss +3 -0
- package/styles/variable.scss +4 -1
- /package/es/{iconfont.1749019395589.ttf → iconfont.1749202972772.ttf} +0 -0
- /package/es/{iconfont.1749019395589.woff → iconfont.1749202972772.woff} +0 -0
- /package/es/{iconfont.1749019395589.woff2 → iconfont.1749202972772.woff2} +0 -0
- /package/lib/{iconfont.1749019395589.ttf → iconfont.1749202972772.ttf} +0 -0
- /package/lib/{iconfont.1749019395589.woff → iconfont.1749202972772.woff} +0 -0
- /package/lib/{iconfont.1749019395589.woff2 → iconfont.1749202972772.woff2} +0 -0
package/es/table/src/table.js
CHANGED
|
@@ -468,10 +468,10 @@ export default defineComponent({
|
|
|
468
468
|
return virtualYOpts;
|
|
469
469
|
});
|
|
470
470
|
const computeVirtualXOpts = computed(() => {
|
|
471
|
-
return Object.assign({}, getConfig().table.
|
|
471
|
+
return Object.assign({}, getConfig().table.virtualXConfig || getConfig().table.scrollX, props.virtualXConfig || props.scrollX);
|
|
472
472
|
});
|
|
473
473
|
const computeVirtualYOpts = computed(() => {
|
|
474
|
-
return Object.assign({}, getConfig().table.
|
|
474
|
+
return Object.assign({}, getConfig().table.virtualYConfig || getConfig().table.scrollY, props.virtualYConfig || props.scrollY);
|
|
475
475
|
});
|
|
476
476
|
const computeScrollbarOpts = computed(() => {
|
|
477
477
|
return Object.assign({}, getConfig().table.scrollbarConfig, props.scrollbarConfig);
|
|
@@ -528,8 +528,11 @@ export default defineComponent({
|
|
|
528
528
|
const computeRowOpts = computed(() => {
|
|
529
529
|
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig);
|
|
530
530
|
});
|
|
531
|
+
const computeAggregateOpts = computed(() => {
|
|
532
|
+
return Object.assign({}, getConfig().table.aggregateConfig || getConfig().table.rowGroupConfig, props.aggregateConfig || props.rowGroupConfig);
|
|
533
|
+
});
|
|
531
534
|
const computeRowGroupOpts = computed(() => {
|
|
532
|
-
return
|
|
535
|
+
return computeAggregateOpts.value;
|
|
533
536
|
});
|
|
534
537
|
const computeCurrentRowOpts = computed(() => {
|
|
535
538
|
return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig);
|
|
@@ -811,6 +814,7 @@ export default defineComponent({
|
|
|
811
814
|
computeHeaderCellOpts,
|
|
812
815
|
computeFooterCellOpts,
|
|
813
816
|
computeRowOpts,
|
|
817
|
+
computeAggregateOpts,
|
|
814
818
|
computeRowGroupOpts,
|
|
815
819
|
computeCurrentRowOpts,
|
|
816
820
|
computeRowDragOpts,
|
|
@@ -1847,7 +1851,7 @@ export default defineComponent({
|
|
|
1847
1851
|
const { treeConfig } = props;
|
|
1848
1852
|
const { isRowGroupStatus } = reactData;
|
|
1849
1853
|
const { fullAllDataRowIdData, treeExpandedMaps, rowGroupExpandedMaps } = internalData;
|
|
1850
|
-
const
|
|
1854
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
1851
1855
|
const treeOpts = computeTreeOpts.value;
|
|
1852
1856
|
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
1853
1857
|
const fullData = [];
|
|
@@ -1871,7 +1875,7 @@ export default defineComponent({
|
|
|
1871
1875
|
return fullData;
|
|
1872
1876
|
}
|
|
1873
1877
|
else if (isRowGroupStatus) {
|
|
1874
|
-
const { childrenField } =
|
|
1878
|
+
const { childrenField } = aggregateOpts;
|
|
1875
1879
|
XEUtils.eachTree(internalData.afterGroupFullData, (row, index, items, path, parentRow) => {
|
|
1876
1880
|
const rowid = handleGetRowId(row);
|
|
1877
1881
|
const parentRowid = handleGetRowId(parentRow);
|
|
@@ -1900,7 +1904,7 @@ export default defineComponent({
|
|
|
1900
1904
|
const { tableFullColumn, tableFullData, tableFullTreeData, tableFullGroupData } = internalData;
|
|
1901
1905
|
const filterOpts = computeFilterOpts.value;
|
|
1902
1906
|
const sortOpts = computeSortOpts.value;
|
|
1903
|
-
const
|
|
1907
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
1904
1908
|
const treeOpts = computeTreeOpts.value;
|
|
1905
1909
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1906
1910
|
const { transform, rowField, parentField, mapChildrenField } = treeOpts;
|
|
@@ -1964,8 +1968,8 @@ export default defineComponent({
|
|
|
1964
1968
|
tableTree = XEUtils.searchTree(tableFullGroupData, handleFilter, {
|
|
1965
1969
|
original: true,
|
|
1966
1970
|
isEvery: true,
|
|
1967
|
-
children:
|
|
1968
|
-
mapChildren:
|
|
1971
|
+
children: aggregateOpts.mapChildrenField,
|
|
1972
|
+
mapChildren: aggregateOpts.childrenField
|
|
1969
1973
|
});
|
|
1970
1974
|
tableData = tableTree;
|
|
1971
1975
|
}
|
|
@@ -1990,8 +1994,8 @@ export default defineComponent({
|
|
|
1990
1994
|
tableTree = XEUtils.searchTree(tableFullGroupData, () => true, {
|
|
1991
1995
|
original: true,
|
|
1992
1996
|
isEvery: true,
|
|
1993
|
-
children:
|
|
1994
|
-
mapChildren:
|
|
1997
|
+
children: aggregateOpts.mapChildrenField,
|
|
1998
|
+
mapChildren: aggregateOpts.childrenField
|
|
1995
1999
|
});
|
|
1996
2000
|
tableData = tableTree;
|
|
1997
2001
|
}
|
|
@@ -2021,15 +2025,15 @@ export default defineComponent({
|
|
|
2021
2025
|
}
|
|
2022
2026
|
else {
|
|
2023
2027
|
const treeList = XEUtils.toTreeArray(tableTree, {
|
|
2024
|
-
key:
|
|
2025
|
-
parentKey:
|
|
2026
|
-
children:
|
|
2028
|
+
key: aggregateOpts.rowField,
|
|
2029
|
+
parentKey: aggregateOpts.parentField,
|
|
2030
|
+
children: aggregateOpts.mapChildrenField
|
|
2027
2031
|
});
|
|
2028
2032
|
tableTree = XEUtils.toArrayTree(XEUtils.orderBy(treeList, orderColumns.map(({ column, order }) => [getOrderField(column), order])), {
|
|
2029
|
-
key:
|
|
2030
|
-
parentKey:
|
|
2031
|
-
children:
|
|
2032
|
-
mapChildren:
|
|
2033
|
+
key: aggregateOpts.rowField,
|
|
2034
|
+
parentKey: aggregateOpts.parentField,
|
|
2035
|
+
children: aggregateOpts.childrenField,
|
|
2036
|
+
mapChildren: aggregateOpts.mapChildrenField
|
|
2033
2037
|
});
|
|
2034
2038
|
}
|
|
2035
2039
|
tableData = tableTree;
|
|
@@ -2072,8 +2076,8 @@ export default defineComponent({
|
|
|
2072
2076
|
tableTree = XEUtils.searchTree(tableFullGroupData, () => true, {
|
|
2073
2077
|
original: true,
|
|
2074
2078
|
isEvery: true,
|
|
2075
|
-
children:
|
|
2076
|
-
mapChildren:
|
|
2079
|
+
children: aggregateOpts.mapChildrenField,
|
|
2080
|
+
mapChildren: aggregateOpts.childrenField
|
|
2077
2081
|
});
|
|
2078
2082
|
tableData = tableTree;
|
|
2079
2083
|
}
|
|
@@ -2517,7 +2521,7 @@ export default defineComponent({
|
|
|
2517
2521
|
const { isRowGroupStatus } = reactData;
|
|
2518
2522
|
const { afterFullData, afterTreeFullData, afterGroupFullData, checkboxReserveRowMap, selectCheckboxMaps } = internalData;
|
|
2519
2523
|
const treeOpts = computeTreeOpts.value;
|
|
2520
|
-
const
|
|
2524
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
2521
2525
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2522
2526
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
2523
2527
|
const { checkField, reserve, checkMethod } = checkboxOpts;
|
|
@@ -2566,7 +2570,7 @@ export default defineComponent({
|
|
|
2566
2570
|
const rowid = handleGetRowId(row);
|
|
2567
2571
|
selectRowMaps[rowid] = row;
|
|
2568
2572
|
}
|
|
2569
|
-
}, { children:
|
|
2573
|
+
}, { children: aggregateOpts.mapChildrenField });
|
|
2570
2574
|
}
|
|
2571
2575
|
else {
|
|
2572
2576
|
/**
|
|
@@ -2579,7 +2583,7 @@ export default defineComponent({
|
|
|
2579
2583
|
if (checkMethod({ $table: $xeTable, row }) ? false : selectCheckboxMaps[rowid]) {
|
|
2580
2584
|
selectRowMaps[rowid] = row;
|
|
2581
2585
|
}
|
|
2582
|
-
}, { children:
|
|
2586
|
+
}, { children: aggregateOpts.mapChildrenField });
|
|
2583
2587
|
}
|
|
2584
2588
|
}
|
|
2585
2589
|
}
|
|
@@ -2996,12 +3000,49 @@ export default defineComponent({
|
|
|
2996
3000
|
})
|
|
2997
3001
|
: [];
|
|
2998
3002
|
};
|
|
3003
|
+
const handleeGroupSummary = (aggList) => {
|
|
3004
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
3005
|
+
const { mapChildrenField } = aggregateOpts;
|
|
3006
|
+
if (mapChildrenField) {
|
|
3007
|
+
XEUtils.lastEach(aggList, aggRow => {
|
|
3008
|
+
let count = 0;
|
|
3009
|
+
XEUtils.each(aggRow[mapChildrenField], (row) => {
|
|
3010
|
+
if (row.isAggregate) {
|
|
3011
|
+
count += row.childCount || 0;
|
|
3012
|
+
}
|
|
3013
|
+
else {
|
|
3014
|
+
count++;
|
|
3015
|
+
}
|
|
3016
|
+
});
|
|
3017
|
+
aggRow.childCount = count;
|
|
3018
|
+
});
|
|
3019
|
+
if ($xeTable.handlePivotTableAggregateData) {
|
|
3020
|
+
$xeTable.handlePivotTableAggregateData(aggList);
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
};
|
|
3024
|
+
const updateGroupData = () => {
|
|
3025
|
+
const { aggregateConfig, rowGroupConfig } = props;
|
|
3026
|
+
const { isRowGroupStatus } = reactData;
|
|
3027
|
+
const { tableFullGroupData } = internalData;
|
|
3028
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
3029
|
+
const { mapChildrenField } = aggregateOpts;
|
|
3030
|
+
if ((aggregateConfig || rowGroupConfig) && isRowGroupStatus) {
|
|
3031
|
+
const aggList = [];
|
|
3032
|
+
XEUtils.eachTree(tableFullGroupData, row => {
|
|
3033
|
+
if (row.isAggregate) {
|
|
3034
|
+
aggList.push(row);
|
|
3035
|
+
}
|
|
3036
|
+
}, { children: mapChildrenField });
|
|
3037
|
+
handleeGroupSummary(aggList);
|
|
3038
|
+
}
|
|
3039
|
+
};
|
|
2999
3040
|
const handleGroupData = (list, rowGroups) => {
|
|
3000
3041
|
let fullData = list;
|
|
3001
3042
|
let treeData = list;
|
|
3002
3043
|
if (rowGroups) {
|
|
3003
|
-
const
|
|
3004
|
-
const { rowField, parentField, childrenField, mapChildrenField } =
|
|
3044
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
3045
|
+
const { rowField, parentField, childrenField, mapChildrenField } = aggregateOpts;
|
|
3005
3046
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
3006
3047
|
const { checkField } = checkboxOpts;
|
|
3007
3048
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
@@ -3012,7 +3053,7 @@ export default defineComponent({
|
|
|
3012
3053
|
const groupField = rgItem.field;
|
|
3013
3054
|
const groupColumn = $xeTable.getColumnByField(groupField);
|
|
3014
3055
|
const groupMaps = {};
|
|
3015
|
-
const
|
|
3056
|
+
const aggList = [];
|
|
3016
3057
|
const rowkey = getRowkey($xeTable);
|
|
3017
3058
|
list.forEach((row) => {
|
|
3018
3059
|
const cellValue = groupColumn ? $xeTable.getCellLabel(row, groupColumn) : XEUtils.get(row, groupField);
|
|
@@ -3029,12 +3070,12 @@ export default defineComponent({
|
|
|
3029
3070
|
});
|
|
3030
3071
|
XEUtils.objectEach(groupMaps, (childList, groupValue) => {
|
|
3031
3072
|
const { fullData: childFullData, treeData: childTreeData } = handleGroupData(childList, rowGroups.slice(1));
|
|
3032
|
-
const
|
|
3033
|
-
const groupRow = {
|
|
3073
|
+
const aggRow = {
|
|
3034
3074
|
isAggregate: true,
|
|
3035
|
-
|
|
3075
|
+
aggData: {},
|
|
3036
3076
|
groupContent: groupValue,
|
|
3037
3077
|
groupField,
|
|
3078
|
+
childCount: 0,
|
|
3038
3079
|
[rowField]: getRowUniqueId(),
|
|
3039
3080
|
[parentField]: null,
|
|
3040
3081
|
[rowkey]: getRowUniqueId(),
|
|
@@ -3042,30 +3083,19 @@ export default defineComponent({
|
|
|
3042
3083
|
[mapChildrenField]: childTreeData
|
|
3043
3084
|
};
|
|
3044
3085
|
if (checkField) {
|
|
3045
|
-
|
|
3086
|
+
aggRow[checkField] = false;
|
|
3046
3087
|
}
|
|
3047
3088
|
if (indeterminateField) {
|
|
3048
|
-
|
|
3089
|
+
aggRow[indeterminateField] = false;
|
|
3049
3090
|
}
|
|
3050
|
-
|
|
3051
|
-
treeData.push(
|
|
3052
|
-
fullData.push(
|
|
3091
|
+
aggList.push(aggRow);
|
|
3092
|
+
treeData.push(aggRow);
|
|
3093
|
+
fullData.push(aggRow);
|
|
3053
3094
|
if (childFullData.length) {
|
|
3054
3095
|
fullData.push(...childFullData);
|
|
3055
3096
|
}
|
|
3056
3097
|
});
|
|
3057
|
-
|
|
3058
|
-
let count = 0;
|
|
3059
|
-
XEUtils.each(groupItem[childrenField], row => {
|
|
3060
|
-
if (row.isAggregate) {
|
|
3061
|
-
count += row[childrenField] ? row[childrenField].length : 0;
|
|
3062
|
-
}
|
|
3063
|
-
else {
|
|
3064
|
-
count++;
|
|
3065
|
-
}
|
|
3066
|
-
});
|
|
3067
|
-
groupItem.childCount = count;
|
|
3068
|
-
});
|
|
3098
|
+
handleeGroupSummary(aggList);
|
|
3069
3099
|
}
|
|
3070
3100
|
}
|
|
3071
3101
|
return {
|
|
@@ -3078,7 +3108,7 @@ export default defineComponent({
|
|
|
3078
3108
|
* @param {Array} datas 数据
|
|
3079
3109
|
*/
|
|
3080
3110
|
const loadTableData = (datas, isReset) => {
|
|
3081
|
-
const { keepSource, treeConfig, rowGroupConfig } = props;
|
|
3111
|
+
const { keepSource, treeConfig, rowGroupConfig, aggregateConfig } = props;
|
|
3082
3112
|
const { rowGroupList, scrollYLoad: oldScrollYLoad } = reactData;
|
|
3083
3113
|
const { scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData;
|
|
3084
3114
|
const rowOpts = computeRowOpts.value;
|
|
@@ -3092,11 +3122,11 @@ export default defineComponent({
|
|
|
3092
3122
|
errLog('vxe.error.errMaxRow', [supportMaxRow]);
|
|
3093
3123
|
}
|
|
3094
3124
|
if (treeConfig && rowGroupList.length) {
|
|
3095
|
-
errLog('vxe.error.noTree', ['
|
|
3125
|
+
errLog('vxe.error.noTree', ['aggregate-config']);
|
|
3096
3126
|
return nextTick();
|
|
3097
3127
|
}
|
|
3098
3128
|
if (rowOpts.drag && rowGroupList.length) {
|
|
3099
|
-
errLog('vxe.error.errConflicts', ['row-config.drag', '
|
|
3129
|
+
errLog('vxe.error.errConflicts', ['row-config.drag', 'aggregate-config']);
|
|
3100
3130
|
return nextTick();
|
|
3101
3131
|
}
|
|
3102
3132
|
let isRGroup = false;
|
|
@@ -3135,7 +3165,7 @@ export default defineComponent({
|
|
|
3135
3165
|
treeData = fullData.slice(0);
|
|
3136
3166
|
}
|
|
3137
3167
|
}
|
|
3138
|
-
else if (rowGroupConfig && rowGroupList.length) {
|
|
3168
|
+
else if ((aggregateConfig || rowGroupConfig) && rowGroupList.length) {
|
|
3139
3169
|
const groupRest = handleGroupData(fullData, rowGroupList);
|
|
3140
3170
|
treeData = groupRest.treeData;
|
|
3141
3171
|
fullData = groupRest.fullData;
|
|
@@ -3244,6 +3274,8 @@ export default defineComponent({
|
|
|
3244
3274
|
if (oldScrollYLoad === sYLoad) {
|
|
3245
3275
|
restoreScrollLocation($xeTable, targetScrollLeft, targetScrollTop)
|
|
3246
3276
|
.then(() => {
|
|
3277
|
+
calcCellHeight();
|
|
3278
|
+
updateRowOffsetTop();
|
|
3247
3279
|
resolve();
|
|
3248
3280
|
});
|
|
3249
3281
|
}
|
|
@@ -3251,6 +3283,8 @@ export default defineComponent({
|
|
|
3251
3283
|
setTimeout(() => {
|
|
3252
3284
|
restoreScrollLocation($xeTable, targetScrollLeft, targetScrollTop)
|
|
3253
3285
|
.then(() => {
|
|
3286
|
+
calcCellHeight();
|
|
3287
|
+
updateRowOffsetTop();
|
|
3254
3288
|
resolve();
|
|
3255
3289
|
});
|
|
3256
3290
|
});
|
|
@@ -3487,6 +3521,7 @@ export default defineComponent({
|
|
|
3487
3521
|
$xeTable.clearMergeCells();
|
|
3488
3522
|
$xeTable.clearMergeFooterItems();
|
|
3489
3523
|
$xeTable.handleTableData(true);
|
|
3524
|
+
$xeTable.handleAggregateSummaryData();
|
|
3490
3525
|
if ((scrollXLoad || scrollYLoad) && (expandColumn && expandOpts.mode !== 'fixed')) {
|
|
3491
3526
|
warnLog('vxe.error.scrollErrProp', ['column.type=expand']);
|
|
3492
3527
|
}
|
|
@@ -3612,8 +3647,8 @@ export default defineComponent({
|
|
|
3612
3647
|
*/
|
|
3613
3648
|
const handleRowGroupBaseExpand = (rows, expanded) => {
|
|
3614
3649
|
const { fullAllDataRowIdData, tableFullGroupData, rowGroupExpandedMaps } = internalData;
|
|
3615
|
-
const
|
|
3616
|
-
const { mapChildrenField, accordion } =
|
|
3650
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
3651
|
+
const { mapChildrenField, accordion } = aggregateOpts;
|
|
3617
3652
|
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
3618
3653
|
let validRows = rows;
|
|
3619
3654
|
if (mapChildrenField) {
|
|
@@ -6005,9 +6040,9 @@ export default defineComponent({
|
|
|
6005
6040
|
return rest;
|
|
6006
6041
|
},
|
|
6007
6042
|
setRowGroups(fieldOrColumns) {
|
|
6008
|
-
const { rowGroupConfig } = props;
|
|
6009
|
-
if (!rowGroupConfig) {
|
|
6010
|
-
errLog('vxe.error.reqProp', ['
|
|
6043
|
+
const { aggregateConfig, rowGroupConfig } = props;
|
|
6044
|
+
if (!(aggregateConfig || rowGroupConfig)) {
|
|
6045
|
+
errLog('vxe.error.reqProp', ['aggregate-config']);
|
|
6011
6046
|
return nextTick();
|
|
6012
6047
|
}
|
|
6013
6048
|
if (fieldOrColumns) {
|
|
@@ -6019,19 +6054,27 @@ export default defineComponent({
|
|
|
6019
6054
|
return nextTick();
|
|
6020
6055
|
},
|
|
6021
6056
|
clearRowGroups() {
|
|
6022
|
-
const { rowGroupConfig } = props;
|
|
6023
|
-
if (!rowGroupConfig) {
|
|
6024
|
-
errLog('vxe.error.reqProp', ['
|
|
6057
|
+
const { aggregateConfig, rowGroupConfig } = props;
|
|
6058
|
+
if (!(aggregateConfig || rowGroupConfig)) {
|
|
6059
|
+
errLog('vxe.error.reqProp', ['aggregate-config']);
|
|
6025
6060
|
return nextTick();
|
|
6026
6061
|
}
|
|
6027
6062
|
handleUpdateRowGroup([]);
|
|
6028
6063
|
return loadTableData(internalData.tableSynchData, true);
|
|
6029
6064
|
},
|
|
6030
6065
|
isRowGroupRecord(row) {
|
|
6066
|
+
warnLog('vxe.error.delFunc', ['isRowGroupRecord', 'isAggregateRecord']);
|
|
6067
|
+
return $xeTable.isAggregateRecord(row);
|
|
6068
|
+
},
|
|
6069
|
+
isRowGroupExpandByRow(row) {
|
|
6070
|
+
warnLog('vxe.error.delFunc', ['isRowGroupExpandByRow', 'isAggregateExpandByRow']);
|
|
6071
|
+
return $xeTable.isAggregateExpandByRow(row);
|
|
6072
|
+
},
|
|
6073
|
+
isAggregateRecord(row) {
|
|
6031
6074
|
const { isRowGroupStatus } = reactData;
|
|
6032
6075
|
return isRowGroupStatus && row.isAggregate;
|
|
6033
6076
|
},
|
|
6034
|
-
|
|
6077
|
+
isAggregateExpandByRow(row) {
|
|
6035
6078
|
const { rowGroupExpandedFlag } = reactData;
|
|
6036
6079
|
const { rowGroupExpandedMaps } = internalData;
|
|
6037
6080
|
return !!rowGroupExpandedFlag && !!rowGroupExpandedMaps[getRowid($xeTable, row)];
|
|
@@ -6047,8 +6090,8 @@ export default defineComponent({
|
|
|
6047
6090
|
},
|
|
6048
6091
|
setAllRowGroupExpand(expanded) {
|
|
6049
6092
|
const { tableFullGroupData } = internalData;
|
|
6050
|
-
const
|
|
6051
|
-
const { mapChildrenField } =
|
|
6093
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
6094
|
+
const { mapChildrenField } = aggregateOpts;
|
|
6052
6095
|
const rgExpandedMaps = {};
|
|
6053
6096
|
if (expanded && mapChildrenField) {
|
|
6054
6097
|
XEUtils.eachTree(tableFullGroupData, (row) => {
|
|
@@ -7590,8 +7633,8 @@ export default defineComponent({
|
|
|
7590
7633
|
}, { children: childrenField });
|
|
7591
7634
|
}
|
|
7592
7635
|
else if (isRowGroupStatus) {
|
|
7593
|
-
const
|
|
7594
|
-
const { mapChildrenField } =
|
|
7636
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
7637
|
+
const { mapChildrenField } = aggregateOpts;
|
|
7595
7638
|
XEUtils.eachTree(tableFullGroupData, (row, index, items, path, parentRow, nodes) => {
|
|
7596
7639
|
const rowid = handleUpdateRowId(row);
|
|
7597
7640
|
handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, toTreePathSeq(path));
|
|
@@ -8104,7 +8147,7 @@ export default defineComponent({
|
|
|
8104
8147
|
const { treeConfig } = props;
|
|
8105
8148
|
const { isRowGroupStatus } = reactData;
|
|
8106
8149
|
const { afterTreeFullData, afterGroupFullData, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData;
|
|
8107
|
-
const
|
|
8150
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
8108
8151
|
const treeOpts = computeTreeOpts.value;
|
|
8109
8152
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
8110
8153
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
@@ -8118,7 +8161,7 @@ export default defineComponent({
|
|
|
8118
8161
|
const childRowList = [];
|
|
8119
8162
|
if (isRowGroupStatus) {
|
|
8120
8163
|
// 行分组
|
|
8121
|
-
const mapChildrenField =
|
|
8164
|
+
const mapChildrenField = aggregateOpts.mapChildrenField;
|
|
8122
8165
|
if (mapChildrenField) {
|
|
8123
8166
|
XEUtils.eachTree(afterGroupFullData, (row) => {
|
|
8124
8167
|
const rowid = handleGetRowId(row);
|
|
@@ -8279,7 +8322,7 @@ export default defineComponent({
|
|
|
8279
8322
|
const { treeConfig } = props;
|
|
8280
8323
|
const { isRowGroupStatus } = reactData;
|
|
8281
8324
|
const { selectCheckboxMaps } = internalData;
|
|
8282
|
-
const
|
|
8325
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
8283
8326
|
const treeOpts = computeTreeOpts.value;
|
|
8284
8327
|
const { transform, mapChildrenField } = treeOpts;
|
|
8285
8328
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
@@ -8331,7 +8374,7 @@ export default defineComponent({
|
|
|
8331
8374
|
}
|
|
8332
8375
|
handleCheckboxReserveRow(row, checked);
|
|
8333
8376
|
}
|
|
8334
|
-
}, { children:
|
|
8377
|
+
}, { children: aggregateOpts.mapChildrenField });
|
|
8335
8378
|
reactData.updateCheckboxFlag++;
|
|
8336
8379
|
return;
|
|
8337
8380
|
}
|
|
@@ -8394,6 +8437,9 @@ export default defineComponent({
|
|
|
8394
8437
|
internalData.mergeFooterCellMaps = buildMergeData(mergeFooterList);
|
|
8395
8438
|
reactData.mergeFootFlag++;
|
|
8396
8439
|
},
|
|
8440
|
+
handleAggregateSummaryData() {
|
|
8441
|
+
return updateGroupData();
|
|
8442
|
+
},
|
|
8397
8443
|
triggerHeaderTitleEvent(evnt, iconParams, params) {
|
|
8398
8444
|
const tipContent = iconParams.content || iconParams.message;
|
|
8399
8445
|
if (tipContent) {
|
|
@@ -8554,7 +8600,7 @@ export default defineComponent({
|
|
|
8554
8600
|
const radioOpts = computeRadioOpts.value;
|
|
8555
8601
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
8556
8602
|
const keyboardOpts = computeKeyboardOpts.value;
|
|
8557
|
-
const
|
|
8603
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
8558
8604
|
const rowOpts = computeRowOpts.value;
|
|
8559
8605
|
const columnOpts = computeColumnOpts.value;
|
|
8560
8606
|
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
@@ -8581,7 +8627,7 @@ export default defineComponent({
|
|
|
8581
8627
|
$xeTable.triggerTreeExpandEvent(evnt, params);
|
|
8582
8628
|
}
|
|
8583
8629
|
// 如果是行分组
|
|
8584
|
-
if ((
|
|
8630
|
+
if ((aggregateOpts.trigger === 'row' || (rowGroupNode && aggregateOpts.trigger === 'cell'))) {
|
|
8585
8631
|
$xeTable.triggerRowGroupExpandEvent(evnt, params);
|
|
8586
8632
|
}
|
|
8587
8633
|
}
|
|
@@ -8869,9 +8915,9 @@ export default defineComponent({
|
|
|
8869
8915
|
*/
|
|
8870
8916
|
triggerRowGroupExpandEvent(evnt, params) {
|
|
8871
8917
|
const { rowGroupExpandedMaps } = internalData;
|
|
8872
|
-
const
|
|
8918
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
8873
8919
|
const { row, column } = params;
|
|
8874
|
-
const { trigger } =
|
|
8920
|
+
const { trigger } = aggregateOpts;
|
|
8875
8921
|
if (trigger === 'manual') {
|
|
8876
8922
|
return;
|
|
8877
8923
|
}
|
|
@@ -10115,10 +10161,10 @@ export default defineComponent({
|
|
|
10115
10161
|
const { tableFullData } = internalData;
|
|
10116
10162
|
const rests = [];
|
|
10117
10163
|
if (treeConfig || isRowGroupStatus) {
|
|
10118
|
-
const
|
|
10164
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
10119
10165
|
const treeOpts = computeTreeOpts.value;
|
|
10120
10166
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
10121
|
-
const matchObj = XEUtils.findTree(tableFullData, item => $xeTable.eqRow(item, row), { children: isRowGroupStatus ?
|
|
10167
|
+
const matchObj = XEUtils.findTree(tableFullData, item => $xeTable.eqRow(item, row), { children: isRowGroupStatus ? aggregateOpts.mapChildrenField : childrenField });
|
|
10122
10168
|
if (matchObj) {
|
|
10123
10169
|
const nodes = matchObj.nodes;
|
|
10124
10170
|
nodes.forEach((row, index) => {
|
|
@@ -11231,9 +11277,9 @@ export default defineComponent({
|
|
|
11231
11277
|
const columnOpts = computeColumnOpts.value;
|
|
11232
11278
|
const rowOpts = computeRowOpts.value;
|
|
11233
11279
|
const customOpts = computeCustomOpts.value;
|
|
11234
|
-
const
|
|
11280
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
11235
11281
|
const virtualYOpts = computeVirtualYOpts.value;
|
|
11236
|
-
const { groupFields } =
|
|
11282
|
+
const { groupFields } = aggregateOpts;
|
|
11237
11283
|
if (columnOpts.drag || rowOpts.drag || customOpts.allowSort) {
|
|
11238
11284
|
initTpImg();
|
|
11239
11285
|
}
|
|
@@ -11254,6 +11300,7 @@ export default defineComponent({
|
|
|
11254
11300
|
const currentRowOpts = computeCurrentRowOpts.value;
|
|
11255
11301
|
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
11256
11302
|
const keyboardOpts = computeKeyboardOpts.value;
|
|
11303
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
11257
11304
|
if (props.rowId) {
|
|
11258
11305
|
warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField']);
|
|
11259
11306
|
}
|
|
@@ -11341,6 +11388,15 @@ export default defineComponent({
|
|
|
11341
11388
|
if (props.dragConfig) {
|
|
11342
11389
|
warnLog('vxe.error.delProp', ['drag-config', 'row-drag-config']);
|
|
11343
11390
|
}
|
|
11391
|
+
if (props.rowGroupConfig) {
|
|
11392
|
+
warnLog('vxe.error.delProp', ['row-group-config', 'aggregate-config']);
|
|
11393
|
+
}
|
|
11394
|
+
if (aggregateOpts.countFields) {
|
|
11395
|
+
warnLog('vxe.error.delProp', ['row-group-config.countFields', 'column.agg-func']);
|
|
11396
|
+
}
|
|
11397
|
+
if (aggregateOpts.countMethod) {
|
|
11398
|
+
warnLog('vxe.error.delProp', ['row-group-config.countMethod', 'aggregate-config.aggregateMethod']);
|
|
11399
|
+
}
|
|
11344
11400
|
if (props.treeConfig && treeOpts.children) {
|
|
11345
11401
|
warnLog('vxe.error.delProp', ['tree-config.children', 'tree-config.childrenField']);
|
|
11346
11402
|
}
|
package/es/table/src/util.js
CHANGED
|
@@ -145,19 +145,22 @@ export function updateFastRowKey(row, rowKey) {
|
|
|
145
145
|
}
|
|
146
146
|
return rowid;
|
|
147
147
|
}
|
|
148
|
-
export
|
|
148
|
+
export function handleFieldOrColumn($xeTable, fieldOrColumn) {
|
|
149
149
|
if (fieldOrColumn) {
|
|
150
150
|
return XEUtils.isString(fieldOrColumn) || XEUtils.isNumber(fieldOrColumn) ? $xeTable.getColumnByField(`${fieldOrColumn}`) : fieldOrColumn;
|
|
151
151
|
}
|
|
152
152
|
return null;
|
|
153
|
-
}
|
|
154
|
-
export
|
|
153
|
+
}
|
|
154
|
+
export function handleRowidOrRow($xeTable, rowidOrRow) {
|
|
155
155
|
if (rowidOrRow) {
|
|
156
156
|
const rowid = XEUtils.isString(rowidOrRow) || XEUtils.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
|
|
157
157
|
return $xeTable.getRowById(rowid);
|
|
158
158
|
}
|
|
159
159
|
return null;
|
|
160
|
-
}
|
|
160
|
+
}
|
|
161
|
+
export function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
|
|
162
|
+
return rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
|
|
163
|
+
}
|
|
161
164
|
function getPaddingLeftRightSize(elem) {
|
|
162
165
|
if (elem) {
|
|
163
166
|
const computedStyle = getComputedStyle(elem);
|
package/es/table/style.css
CHANGED
|
@@ -2500,9 +2500,6 @@
|
|
|
2500
2500
|
color: var(--vxe-ui-input-disabled-color);
|
|
2501
2501
|
cursor: not-allowed;
|
|
2502
2502
|
}
|
|
2503
|
-
.vxe-table--render-default.column--highlight .vxe-header--column:not(.col--seq):hover {
|
|
2504
|
-
background-color: var(--vxe-ui-table-column-hover-background-color);
|
|
2505
|
-
}
|
|
2506
2503
|
.vxe-table--render-default.header-cell--area .vxe-table--header-wrapper {
|
|
2507
2504
|
-webkit-user-select: none;
|
|
2508
2505
|
-moz-user-select: none;
|
|
@@ -2567,6 +2564,12 @@
|
|
|
2567
2564
|
.vxe-table--render-default .vxe-body--row.row--stripe > .vxe-body--column {
|
|
2568
2565
|
background-color: var(--vxe-ui-table-row-striped-background-color);
|
|
2569
2566
|
}
|
|
2567
|
+
.vxe-table--render-default.column--highlight .vxe-header--column:hover {
|
|
2568
|
+
background-color: var(--vxe-ui-table-column-hover-background-color);
|
|
2569
|
+
}
|
|
2570
|
+
.vxe-table--render-default.column--highlight .vxe-header--column:hover.col--current {
|
|
2571
|
+
background-color: var(--vxe-ui-table-column-hover-current-background-color);
|
|
2572
|
+
}
|
|
2570
2573
|
.vxe-table--render-default .vxe-header--column,
|
|
2571
2574
|
.vxe-table--render-default .vxe-body--column,
|
|
2572
2575
|
.vxe-table--render-default .vxe-footer--column {
|
|
@@ -2591,6 +2594,9 @@
|
|
|
2591
2594
|
.vxe-table--render-default .vxe-body--row.row--hover > .vxe-body--column {
|
|
2592
2595
|
background-color: var(--vxe-ui-table-row-hover-background-color);
|
|
2593
2596
|
}
|
|
2597
|
+
.vxe-table--render-default .vxe-body--row.row--hover > .vxe-body--column.col--current {
|
|
2598
|
+
background-color: var(--vxe-ui-table-column-current-background-color);
|
|
2599
|
+
}
|
|
2594
2600
|
.vxe-table--render-default .vxe-body--row.row--hover.row--stripe > .vxe-body--column {
|
|
2595
2601
|
background-color: var(--vxe-ui-table-row-hover-striped-background-color);
|
|
2596
2602
|
}
|