zmdms-webui 3.3.7 → 3.3.8

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.
@@ -87,7 +87,7 @@ function getSummaryData(summaryConfig, dataSource, options) {
87
87
  return;
88
88
  }
89
89
  // 拿到统计数据
90
- var _a = getSubtotalObj(fields, dataSource), summaryTotalObj = _a.summaryTotalObj, summaryTotalConfigObj = _a.summaryTotalConfigObj;
90
+ var _a = getSubtotalObj(fields, dataSource, columns), summaryTotalObj = _a.summaryTotalObj, summaryTotalConfigObj = _a.summaryTotalConfigObj;
91
91
  var subtotalResult = [];
92
92
  var columnResult = [];
93
93
  recursionColumns(columns, {
@@ -135,8 +135,37 @@ function getSummaryData(summaryConfig, dataSource, options) {
135
135
  }
136
136
  return _summaryData;
137
137
  }
138
+ /**
139
+ * 从 columns 中查找字段的 mergeKey 配置
140
+ * @param fieldName 字段名
141
+ * @param columns 列配置
142
+ * @returns 合并字段名(如果有 mergeKey 则返回 mergeKey,否则返回字段名本身)
143
+ */
144
+ function getFieldMergeKey(fieldName, columns) {
145
+ // 递归查找字段配置
146
+ function findFieldMergeKey(cols, targetField) {
147
+ if (!Array.isArray(cols))
148
+ return null;
149
+ for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {
150
+ var col = cols_1[_i];
151
+ // 检查当前列
152
+ if (col.key === targetField || col.dataIndex === targetField) {
153
+ return col.mergeKey || null;
154
+ }
155
+ // 如果有子列,递归查找
156
+ if (col.children && Array.isArray(col.children)) {
157
+ var result = findFieldMergeKey(col.children, targetField);
158
+ if (result !== null)
159
+ return result;
160
+ }
161
+ }
162
+ return null;
163
+ }
164
+ var mergeKey = findFieldMergeKey(columns, fieldName);
165
+ return mergeKey || fieldName; // 如果有 mergeKey 返回 mergeKey,否则返回字段名本身
166
+ }
138
167
  // 为 getSubtotalObj 编写测试用例 TODO:
139
- function getSubtotalObj(fields, dataSource) {
168
+ function getSubtotalObj(fields, dataSource, columns) {
140
169
  if (!Array.isArray(dataSource)) {
141
170
  return {
142
171
  summaryTotalObj: null,
@@ -152,8 +181,10 @@ function getSubtotalObj(fields, dataSource) {
152
181
  fields.forEach(function (field) {
153
182
  if (typeof field === "string") {
154
183
  // 检查该字段是否被合并(rowSpan为0)
184
+ // 优先使用 mergeKey,如果没有则使用字段名本身
185
+ var mergeKey = getFieldMergeKey(field, columns);
155
186
  var mergeSpans = item[MERGE_ROW_SPANS];
156
- var fieldRowSpan = mergeSpans === null || mergeSpans === void 0 ? void 0 : mergeSpans[field];
187
+ var fieldRowSpan = mergeSpans === null || mergeSpans === void 0 ? void 0 : mergeSpans[mergeKey];
157
188
  if (fieldRowSpan === 0)
158
189
  return; // 该字段被合并,跳过统计
159
190
  var dataItem = Number(item === null || item === void 0 ? void 0 : item[field]);
@@ -169,20 +200,26 @@ function getSubtotalObj(fields, dataSource) {
169
200
  var mergeSpans_1 = item[MERGE_ROW_SPANS];
170
201
  if (showKey) {
171
202
  if (typeof showKey === "string") {
172
- var fieldRowSpan = mergeSpans_1 === null || mergeSpans_1 === void 0 ? void 0 : mergeSpans_1[showKey];
203
+ // 使用 mergeKey 来判断合并状态
204
+ var mergeKey = getFieldMergeKey(showKey, columns);
205
+ var fieldRowSpan = mergeSpans_1 === null || mergeSpans_1 === void 0 ? void 0 : mergeSpans_1[mergeKey];
173
206
  if (fieldRowSpan === 0)
174
207
  return; // 该字段被合并,跳过统计
175
208
  }
176
209
  else if (Array.isArray(showKey)) {
177
210
  // 如果 showKey 是数组,检查是否所有字段都被合并
178
- var allMerged = showKey.every(function (sk) { return (mergeSpans_1 === null || mergeSpans_1 === void 0 ? void 0 : mergeSpans_1[sk]) === 0; });
211
+ var allMerged = showKey.every(function (sk) {
212
+ var mergeKey = getFieldMergeKey(sk, columns);
213
+ return (mergeSpans_1 === null || mergeSpans_1 === void 0 ? void 0 : mergeSpans_1[mergeKey]) === 0;
214
+ });
179
215
  if (allMerged)
180
216
  return; // 所有字段都被合并,跳过统计
181
217
  }
182
218
  }
183
219
  else {
184
220
  // 如果没有 showKey,检查 key 字段
185
- var fieldRowSpan = mergeSpans_1 === null || mergeSpans_1 === void 0 ? void 0 : mergeSpans_1[key];
221
+ var mergeKey = getFieldMergeKey(key, columns);
222
+ var fieldRowSpan = mergeSpans_1 === null || mergeSpans_1 === void 0 ? void 0 : mergeSpans_1[mergeKey];
186
223
  if (fieldRowSpan === 0)
187
224
  return; // 该字段被合并,跳过统计
188
225
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zmdms-webui",
3
- "version": "3.3.7",
3
+ "version": "3.3.8",
4
4
  "private": false,
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",