zmdms-webui 2.0.0 → 2.0.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.
- package/dist/es/table/utils.js +21 -14
- package/package.json +1 -1
package/dist/es/table/utils.js
CHANGED
|
@@ -461,10 +461,9 @@ function flattenRecordsOptimized(records, mergeKeys, dimensionSummaryKeys, summa
|
|
|
461
461
|
var result = isDimensionDynamic
|
|
462
462
|
? sortByDimensions(__spreadArray([], records, true), mergeKeys)
|
|
463
463
|
: __spreadArray([], records, true);
|
|
464
|
-
// 1.
|
|
464
|
+
// 1. 如果开启了维度合并,按所有 mergeKeys 的组合来计算合计值
|
|
465
465
|
if (isDimensionDynamic && mergeKeys.length > 0) {
|
|
466
|
-
var
|
|
467
|
-
var groupedResult = groupByLastMergeKey(result, lastMergeKey, summaryKeys);
|
|
466
|
+
var groupedResult = groupByLastMergeKey(result, mergeKeys, summaryKeys);
|
|
468
467
|
result = groupedResult;
|
|
469
468
|
}
|
|
470
469
|
// 2. 首先插入维度合计行
|
|
@@ -711,19 +710,24 @@ function hasParentGroupChanged(records, currentIndex, mergeKeys, currentKeyIndex
|
|
|
711
710
|
return false;
|
|
712
711
|
}
|
|
713
712
|
/**
|
|
714
|
-
*
|
|
713
|
+
* 按所有合并键的组合进行分组并计算合计值
|
|
714
|
+
* 确保相同维度组合的记录被正确分组
|
|
715
715
|
*/
|
|
716
|
-
function groupByLastMergeKey(records,
|
|
716
|
+
function groupByLastMergeKey(records, mergeKeys, // 改为传入所有合并键
|
|
717
|
+
summaryKeys) {
|
|
717
718
|
var groups = new Map();
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
var
|
|
721
|
-
var key = record[lastMergeKey];
|
|
722
|
-
var keyStr = String(key);
|
|
719
|
+
var _loop_6 = function (record) {
|
|
720
|
+
var key = mergeKeys.map(function (k) { return record[k]; });
|
|
721
|
+
var keyStr = JSON.stringify(key);
|
|
723
722
|
if (!groups.has(keyStr)) {
|
|
724
723
|
groups.set(keyStr, []);
|
|
725
724
|
}
|
|
726
725
|
groups.get(keyStr).push(record);
|
|
726
|
+
};
|
|
727
|
+
// 按所有合并键的组合进行分组
|
|
728
|
+
for (var _i = 0, records_2 = records; _i < records_2.length; _i++) {
|
|
729
|
+
var record = records_2[_i];
|
|
730
|
+
_loop_6(record);
|
|
727
731
|
}
|
|
728
732
|
// 为每个分组创建合计行
|
|
729
733
|
var result = [];
|
|
@@ -734,9 +738,12 @@ function groupByLastMergeKey(records, lastMergeKey, summaryKeys) {
|
|
|
734
738
|
if (items.length > 0) {
|
|
735
739
|
Object.assign(summaryRow, items[0]);
|
|
736
740
|
}
|
|
737
|
-
//
|
|
738
|
-
|
|
739
|
-
var
|
|
741
|
+
// 设置所有合并键的值
|
|
742
|
+
var keyValues = JSON.parse(keyStr);
|
|
743
|
+
for (var i = 0; i < mergeKeys.length; i++) {
|
|
744
|
+
summaryRow[mergeKeys[i]] = keyValues[i];
|
|
745
|
+
}
|
|
746
|
+
var _loop_7 = function (summaryKey) {
|
|
740
747
|
summaryRow[summaryKey] = items
|
|
741
748
|
.filter(function (item) { return !isSummaryRow(item); }) // 排除已有的合计行
|
|
742
749
|
.reduce(function (sum, item) {
|
|
@@ -747,7 +754,7 @@ function groupByLastMergeKey(records, lastMergeKey, summaryKeys) {
|
|
|
747
754
|
// 计算合计值
|
|
748
755
|
for (var _d = 0, summaryKeys_2 = summaryKeys; _d < summaryKeys_2.length; _d++) {
|
|
749
756
|
var summaryKey = summaryKeys_2[_d];
|
|
750
|
-
|
|
757
|
+
_loop_7(summaryKey);
|
|
751
758
|
}
|
|
752
759
|
result.push(summaryRow);
|
|
753
760
|
}
|