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.
- package/dist/es/table/useSummary.js +43 -6
- package/package.json +1 -1
|
@@ -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[
|
|
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
|
-
|
|
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) {
|
|
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
|
|
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
|
}
|