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.
@@ -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. 如果开启了维度合并,按 mergeKeys 的最后一位来计算合计值
464
+ // 1. 如果开启了维度合并,按所有 mergeKeys 的组合来计算合计值
465
465
  if (isDimensionDynamic && mergeKeys.length > 0) {
466
- var lastMergeKey = mergeKeys[mergeKeys.length - 1];
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, lastMergeKey, summaryKeys) {
716
+ function groupByLastMergeKey(records, mergeKeys, // 改为传入所有合并键
717
+ summaryKeys) {
717
718
  var groups = new Map();
718
- // 按最后一个合并键分组
719
- for (var _i = 0, records_2 = records; _i < records_2.length; _i++) {
720
- var record = records_2[_i];
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
- summaryRow[lastMergeKey] = keyStr;
739
- var _loop_6 = function (summaryKey) {
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
- _loop_6(summaryKey);
757
+ _loop_7(summaryKey);
751
758
  }
752
759
  result.push(summaryRow);
753
760
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zmdms-webui",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "private": false,
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",