super-page-runtime 2.1.48 → 2.1.50-temp1

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.
Files changed (31) hide show
  1. package/dist/es/components/runtime/utils/api/api-util.d.ts +1 -18
  2. package/dist/es/components/runtime/utils/api/api-util.js +2 -306
  3. package/dist/es/components/runtime/utils/api/page-expose-util.js +8 -1
  4. package/dist/es/components/runtime/utils/charts/chart-columnline-util.js +5 -1
  5. package/dist/es/components/runtime/utils/events/standard-event.d.ts +11 -1
  6. package/dist/es/components/runtime/utils/events/standard-event.js +333 -36
  7. package/dist/es/components/runtime/utils/events/validator-util.js +5 -25
  8. package/dist/es/components/runtime/utils/page-helper-util.d.ts +3 -1
  9. package/dist/es/components/runtime/utils/page-helper-util.js +22 -4
  10. package/dist/es/components/runtime/utils/page-init-util.js +1 -2
  11. package/dist/es/components/runtime/views/assemblys/button/button/button-runtime.vue2.js +4 -1
  12. package/dist/es/components/runtime/views/assemblys/chart/column-line/column-line-runtime.vue2.js +3 -2
  13. package/dist/es/components/runtime/views/assemblys/chart/table/chart-table-util.js +491 -0
  14. package/dist/es/components/runtime/views/assemblys/chart/table/group-column-item.vue.js +44 -0
  15. package/dist/es/components/runtime/views/assemblys/chart/table/group-column-item.vue2.js +4 -0
  16. package/dist/es/components/runtime/views/assemblys/chart/table/group-column.vue.js +64 -0
  17. package/dist/es/components/runtime/views/assemblys/chart/table/group-column.vue2.js +4 -0
  18. package/dist/es/components/runtime/views/assemblys/chart/table/normal-column.vue.js +247 -0
  19. package/dist/es/components/runtime/views/assemblys/chart/table/normal-column.vue2.js +4 -0
  20. package/dist/es/components/runtime/views/assemblys/chart/table/table-runtime.vue2.js +318 -34
  21. package/dist/es/components/runtime/views/assemblys/container/tools/tools-runtime.vue2.js +1 -0
  22. package/dist/es/components/runtime/views/assemblys/data/table/main-table-runtime.vue.js +46 -14
  23. package/dist/es/components/runtime/views/assemblys/data/table/sub-table-runtime.vue.js +28 -4
  24. package/dist/es/components/runtime/views/assemblys/form/input-text/inputtext-runtime.vue2.js +3 -1
  25. package/dist/es/components/runtime/views/assemblys/form/placeholder/placeholder-runtime.vue.js +1 -1
  26. package/dist/es/components/runtime/views/assemblys/form/select/select-runtime.vue2.js +4 -1
  27. package/dist/es/components/runtime/views/super-page-dialog.vue.d.ts +4 -0
  28. package/dist/es/components/runtime/views/super-page-dialog.vue.js +5 -1
  29. package/dist/es/components/runtime/views/super-page.vue.js +4 -4
  30. package/package.json +2 -2
  31. package/dist/es/components/runtime/views/assemblys/form/placeholder/placeholder-runtime.vue3.js +0 -1
@@ -138,8 +138,7 @@ function getRequestObject(pageRequest) {
138
138
  requestObj[paramStrs[0]] = paramStrs.length > 1 ? paramStrs[1] : "";
139
139
  }
140
140
  }
141
- if (requestObj["_t_"])
142
- ;
141
+ if (requestObj["_t_"]) ;
143
142
  return requestObj;
144
143
  }
145
144
  function packageAdditionalMapWithRoute(route, requestObj) {
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, resolveComponent, openBlock, createElementBlock, createVNode, normalizeClass, unref, normalizeStyle, withCtx, Fragment, createTextVNode, toDisplayString, createCommentVNode, createBlock } from "vue";
1
+ import { defineComponent, ref, onMounted, resolveComponent, openBlock, createElementBlock, createVNode, normalizeClass, unref, normalizeStyle, withCtx, Fragment, createTextVNode, toDisplayString, createCommentVNode, createBlock } from "vue";
2
2
  import { SuperIcon } from "agilebuilder-ui";
3
3
  import { handleEvent } from "../../../../utils/events/event-util.js";
4
4
  import { $t } from "../../../../utils/i18n-util.js";
@@ -21,6 +21,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  function isButtongLoading() {
22
22
  return props.pageContext.canClick !== void 0 && props.pageContext.clickUuid !== void 0 ? !props.pageContext.canClick && props.pageContext.clickUuid === props.configure.uuid : false;
23
23
  }
24
+ onMounted(() => {
25
+ console.log("select-runtime onMounted");
26
+ });
24
27
  return (_ctx, _cache) => {
25
28
  const _component_el_button = resolveComponent("el-button");
26
29
  return openBlock(), createElementBlock("span", _hoisted_1, [
@@ -29,7 +29,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
29
  ]);
30
30
  const props = __props;
31
31
  const thisRef = ref(null);
32
- const chartRef = ref(null);
32
+ const chartRef = ref();
33
33
  const headerRef = ref(null);
34
34
  const enableDrill = props.configure.props ? props.configure.props.enableDrill : null;
35
35
  const drillEndTrigger = props.configure.props ? props.configure.props.drillEndTrigger : null;
@@ -123,6 +123,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
123
123
  refresh(true);
124
124
  });
125
125
  function updateChartDatas(resultData) {
126
+ var _a;
126
127
  if (!resultData) {
127
128
  resultData = [];
128
129
  }
@@ -144,7 +145,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
144
145
  headerInfo.groupValue = hisGroupValue;
145
146
  }
146
147
  if (!dataConfig.autoRefresh || !enableDrill) {
147
- clearChartSelected(props.pageContext, props.configure, chartRef.value.chart);
148
+ clearChartSelected(props.pageContext, props.configure, (_a = chartRef.value) == null ? void 0 : _a.chart);
148
149
  }
149
150
  dataConfig.autoRefresh = false;
150
151
  updateChartOption(props.pageContext, props.configure, chartOption, resultData);
@@ -0,0 +1,491 @@
1
+ import { getValueFromVariable } from "../../../../utils/page-helper-util.js";
2
+ import { getCustomFunc } from "../../../../utils/events/event-util.js";
3
+ class ExpressionEvaluator {
4
+ static evaluate(pageContext, conditions, data) {
5
+ const expressions = conditions.map(
6
+ (condition) => this.createExpression(pageContext, condition, data)
7
+ );
8
+ const joinedExpression = expressions.join(" ");
9
+ return this.evaluateExpression(joinedExpression);
10
+ }
11
+ static createExpression(pageContext, condition, data) {
12
+ const { propName, operator, propValue, leftBracket, rightBracket, joinSign, dataType } = condition;
13
+ if (!propName || propName === "") {
14
+ return "";
15
+ }
16
+ const value = getValueFromVariable(pageContext.entity, propName, data);
17
+ let expression2 = `${leftBracket} ${this.getComparisonExpression(value, operator, getValueFromVariable(pageContext.entity, propValue, data), dataType)} ${rightBracket}`;
18
+ if (joinSign) {
19
+ if (joinSign === "and" || joinSign === "AND") {
20
+ expression2 += "&&";
21
+ } else if (joinSign === "or" || joinSign === "OR") {
22
+ expression2 += "||";
23
+ }
24
+ }
25
+ return expression2.trim();
26
+ }
27
+ static getComparisonExpression(value, operator, propValue, dataType) {
28
+ if (!operator) {
29
+ operator = "EQ";
30
+ }
31
+ const parsedValue = this.parseValue(value, dataType);
32
+ const parsedPropValue = this.parseValue(propValue, dataType);
33
+ switch (operator) {
34
+ case "EQ":
35
+ return `${parsedValue} === ${parsedPropValue}`;
36
+ case "GT":
37
+ return `${parsedValue} > ${parsedPropValue}`;
38
+ case "LT":
39
+ return `${parsedValue} < ${parsedPropValue}`;
40
+ case "GET":
41
+ return `${parsedValue} >= ${parsedPropValue}`;
42
+ case "LET":
43
+ return `${parsedValue} <= ${parsedPropValue}`;
44
+ case "NET":
45
+ return `${parsedValue} !== ${parsedPropValue}`;
46
+ case "CONTAIN":
47
+ return `${parsedValue}.includes(${parsedPropValue})`;
48
+ case "NOT_CONTAIN":
49
+ return `!${parsedValue}.includes(${parsedPropValue})`;
50
+ case "IS_NULL":
51
+ return `${parsedValue} === null`;
52
+ case "IS_NOT_NULL":
53
+ return `${parsedValue} !== null`;
54
+ default:
55
+ throw new Error(`比较符号不匹配: ${operator}`);
56
+ }
57
+ }
58
+ static changeDataType(dataType) {
59
+ let resultDataType = dataType;
60
+ if (dataType) {
61
+ if (dataType === "TEXT") {
62
+ resultDataType = "string";
63
+ } else if (dataType === "DATE" || dataType === "TIME") {
64
+ resultDataType = "date";
65
+ } else if (dataType === "DOUBLE" || dataType === "FLOAT" || dataType === "INTEGER" || dataType === "LONG" || dataType === "BOOLEAN") {
66
+ resultDataType = "number";
67
+ }
68
+ }
69
+ return resultDataType;
70
+ }
71
+ static parseValue(value, dataType) {
72
+ dataType = this.changeDataType(dataType);
73
+ switch (dataType) {
74
+ case "number":
75
+ return Number(value);
76
+ case "date":
77
+ return new Date(value).getTime();
78
+ case "string":
79
+ return `"${value}"`;
80
+ default:
81
+ throw new Error(`数据类型解析错误: ${dataType}`);
82
+ }
83
+ }
84
+ static evaluateExpression(expression) {
85
+ try {
86
+ return eval(expression);
87
+ } catch (error) {
88
+ console.error("表达式错误:", expression, error);
89
+ return false;
90
+ }
91
+ }
92
+ }
93
+ function getSummaryTitleColumn(configure) {
94
+ const result = {};
95
+ if (configure.props.summaries.titleColumn && configure.props.summaries.titleColumn.length > 0) {
96
+ configure.props.summaries.titleColumn.forEach((item) => {
97
+ result[item.prop] = item;
98
+ });
99
+ }
100
+ return result;
101
+ }
102
+ function getSummaryDataColumn(configure, type) {
103
+ const result = {};
104
+ if (configure.props.summaries.dataColumn && configure.props.summaries.dataColumn.length > 0) {
105
+ configure.props.summaries.dataColumn.forEach((item) => {
106
+ var _a;
107
+ const columnConfigs = (_a = configure.items) == null ? void 0 : _a.find(
108
+ (columnItem) => item.prop === columnItem.props.base.prop
109
+ );
110
+ if (columnConfigs) {
111
+ if (type === "table" && columnConfigs.props.base.tableSummary) {
112
+ result[item.prop] = item;
113
+ } else if (type === "group" && columnConfigs.props.base.groupSummary) {
114
+ result[item.prop] = item;
115
+ }
116
+ }
117
+ });
118
+ }
119
+ return result;
120
+ }
121
+ function summaryStatistics(summaryColumn, data, prop, pageContext) {
122
+ let sumsIndex = "";
123
+ const summaryMode = summaryColumn.summaryMode;
124
+ const values = data.map((item) => Number(item[prop])).filter((value) => !Number.isNaN(value));
125
+ if (values.length > 0) {
126
+ if (summaryMode === "custom") {
127
+ const func = getCustomFunc(pageContext, summaryColumn.customFunc);
128
+ if (func) {
129
+ const resultValue = func.apply(func, [{ data, prop }]);
130
+ if (resultValue) {
131
+ sumsIndex = ` ${resultValue}`;
132
+ } else {
133
+ sumsIndex = " N/A";
134
+ }
135
+ } else {
136
+ sumsIndex = " N/A";
137
+ }
138
+ } else {
139
+ switch (summaryMode) {
140
+ case "sum":
141
+ sumsIndex = ` ${values.reduce((prev, curr) => prev + curr, 0)}`;
142
+ break;
143
+ case "avg":
144
+ sumsIndex = ` ${values.reduce((prev, curr) => prev + curr, 0) / values.length}`;
145
+ break;
146
+ case "min":
147
+ sumsIndex = ` ${Math.min(...values)}`;
148
+ break;
149
+ case "max":
150
+ sumsIndex = ` ${Math.max(...values)}`;
151
+ break;
152
+ default:
153
+ sumsIndex = " N/A";
154
+ }
155
+ }
156
+ } else {
157
+ sumsIndex = " N/A";
158
+ }
159
+ return sumsIndex;
160
+ }
161
+ function replacePlaceholders(template, data) {
162
+ if (template) {
163
+ return template.replace(/\$\{row\.(\w+)\}/g, (match, p1) => {
164
+ return Object.prototype.hasOwnProperty.call(data, p1) ? data[p1] : "";
165
+ });
166
+ }
167
+ }
168
+ function getHeaderCellStyleUtil(data, runtimeStyle, props) {
169
+ var _a;
170
+ const headerStyle = {};
171
+ if (data.column.property) {
172
+ (_a = runtimeStyle.titleStyle) == null ? void 0 : _a.forEach((item) => {
173
+ if (item.field && item.field.includes(data.column.property)) {
174
+ if (item.scopeFunc) {
175
+ const func = getCustomFunc(props.pageContext, item.scopeFunc);
176
+ if (func) {
177
+ const funcResult = func.apply(func, [{ item, data }]);
178
+ if (funcResult !== false) {
179
+ copyStyle(headerStyle, item);
180
+ }
181
+ }
182
+ } else {
183
+ copyStyle(headerStyle, item);
184
+ }
185
+ }
186
+ });
187
+ }
188
+ const cellTitleStytle = getCellStyleUtil(data, runtimeStyle.cellTitleStyle, props);
189
+ if (cellTitleStytle) {
190
+ Object.assign(headerStyle, cellTitleStytle);
191
+ }
192
+ return headerStyle;
193
+ }
194
+ function getRowStyleUtil(data, groupSummaryDataRowIndex, props) {
195
+ const returnStyle = {};
196
+ if (props.configure.style.rowStyle) {
197
+ for (let i = 0; i < props.configure.style.rowStyle.length; i++) {
198
+ const rowStyle = props.configure.style.rowStyle[i];
199
+ if (rowStyle.scopeFunc) {
200
+ const func = getCustomFunc(props.pageContext, rowStyle.scopeFunc);
201
+ if (func) {
202
+ const funcResult = func.apply(func, [{ data }]);
203
+ if (funcResult !== void 0 && funcResult !== null && funcResult !== false) {
204
+ copyStyle(returnStyle, rowStyle);
205
+ }
206
+ }
207
+ } else if (rowStyle.matchingCondition) {
208
+ const result = ExpressionEvaluator.evaluate(
209
+ props.pageContext,
210
+ rowStyle.matchingCondition,
211
+ data.row
212
+ );
213
+ if (result || result === void 0) {
214
+ copyStyle(returnStyle, rowStyle);
215
+ }
216
+ } else {
217
+ copyStyle(returnStyle, rowStyle);
218
+ }
219
+ }
220
+ }
221
+ if (groupSummaryDataRowIndex && groupSummaryDataRowIndex.length > 0 && groupSummaryDataRowIndex.indexOf(data.rowIndex) !== -1) {
222
+ const result = {};
223
+ if (props.configure.style.collectStyle && props.configure.style.collectStyle.length > 0) {
224
+ for (let i = 0; i < props.configure.style.collectStyle.length; i++) {
225
+ const collectStyle = props.configure.style.collectStyle[i];
226
+ copyStyle(result, collectStyle);
227
+ }
228
+ }
229
+ if (Object.keys(result).length === 0) {
230
+ result["background-color"] = "var(--el-table-row-hover-bg-color)";
231
+ }
232
+ return result;
233
+ }
234
+ return returnStyle;
235
+ }
236
+ function getCellStyleUtil(data, cellStyles, props) {
237
+ const cellStyle = {};
238
+ if (cellStyles) {
239
+ for (let i = 0; i < cellStyles.length; i++) {
240
+ const columnsStyleSetting = cellStyles[i];
241
+ if (columnsStyleSetting.scopeFunc) {
242
+ const func = getCustomFunc(props.pageContext, columnsStyleSetting.scopeFunc);
243
+ if (func) {
244
+ const funcResult = func.apply(func, [{ data }]);
245
+ if (funcResult !== false) {
246
+ copyStyle(cellStyle, columnsStyleSetting);
247
+ }
248
+ }
249
+ } else if (columnsStyleSetting.matchingCondition) {
250
+ const result = ExpressionEvaluator.evaluate(
251
+ props.pageContext,
252
+ columnsStyleSetting.matchingCondition,
253
+ data.row
254
+ );
255
+ if (result || result === void 0) {
256
+ copyStyle(cellStyle, columnsStyleSetting);
257
+ }
258
+ } else {
259
+ copyStyle(cellStyle, columnsStyleSetting);
260
+ }
261
+ }
262
+ }
263
+ return cellStyle;
264
+ }
265
+ function copyStyle(target, source) {
266
+ Object.assign(target, source.style);
267
+ if (source.customStyle) {
268
+ Object.assign(target, JSON.parse(source.customStyle));
269
+ }
270
+ }
271
+ function rowDataToColumn(data, configure) {
272
+ const groupByFields = configure.props.dataOrigin.groupField;
273
+ const titleColumns = configure.props.dataOrigin.rowToColumn.titleColumns;
274
+ const dataColumns = configure.props.dataOrigin.rowToColumn.dataColumns;
275
+ const result = [];
276
+ const groupedData = {};
277
+ data.forEach((item) => {
278
+ const key = groupByFields.map((field) => item[field]).join("|");
279
+ if (!groupedData[key]) {
280
+ const group = {};
281
+ groupByFields.forEach((field) => group[field] = item[field]);
282
+ groupedData[key] = group;
283
+ result.push(group);
284
+ }
285
+ dataColumns.forEach((valueField) => {
286
+ const columnNameParts = titleColumns.map((field) => item[field]);
287
+ const columnName = `${columnNameParts.join("")}${valueField}`;
288
+ groupedData[key][columnName] = item[valueField];
289
+ });
290
+ });
291
+ return result;
292
+ }
293
+ function colDataToRow(data, configure) {
294
+ const groupByFields = configure.props.dataOrigin.groupField;
295
+ const titleColumns = configure.props.dataOrigin.columnToRow.titleColumns;
296
+ const dataColumns = configure.props.dataOrigin.columnToRow.dataColumns;
297
+ const transColumns = configure.props.dataOrigin.columnToRow.transColumns;
298
+ const dataColumnsMapping = configure.props.dataOrigin.columnToRow.dataColumnsMapping;
299
+ if (data.length === 0) {
300
+ return data;
301
+ }
302
+ const result = [];
303
+ const newData = groupBy(data, groupByFields);
304
+ const dataColumnsConfig = dataColumns.reduce((max, current) => {
305
+ return current.columns.length > max.columns.length ? current : max;
306
+ }, dataColumns[0]);
307
+ const dataColumnsAndNewColumnMapping = dataColumns.reduce((acc, item) => {
308
+ item.columns.forEach((column) => {
309
+ acc[column] = item.prop;
310
+ });
311
+ return acc;
312
+ }, {});
313
+ newData.forEach((item) => {
314
+ dataColumnsConfig.columns.forEach((col) => {
315
+ const newColumnsProp = dataColumnsConfig.prop;
316
+ const dataRow = {};
317
+ groupByFields.forEach((field) => {
318
+ dataRow[field] = item[field];
319
+ });
320
+ dataRow[newColumnsProp] = item[col];
321
+ if (dataColumns.length > 1) {
322
+ const columnMapping = dataColumnsMapping.find((item2) => item2.props.includes(col));
323
+ if (columnMapping && columnMapping.props.length > 1) {
324
+ columnMapping.props.forEach((prop) => {
325
+ if (prop !== col && dataColumnsAndNewColumnMapping[prop]) {
326
+ dataRow[dataColumnsAndNewColumnMapping[prop]] = item[prop];
327
+ }
328
+ });
329
+ }
330
+ }
331
+ titleColumns.forEach((titleCol) => {
332
+ const sourceTitleRenameConfigs = transColumns.filter(
333
+ (transCol) => transCol.relatedTitle === titleCol.prop
334
+ );
335
+ let rename = false;
336
+ if (sourceTitleRenameConfigs && sourceTitleRenameConfigs.length > 0) {
337
+ sourceTitleRenameConfigs.forEach((item2) => {
338
+ if (item2.columns.includes(col)) {
339
+ dataRow[titleCol.prop] = item2.label;
340
+ rename = true;
341
+ return;
342
+ }
343
+ });
344
+ }
345
+ if (!rename) {
346
+ dataRow[titleCol.prop] = col;
347
+ }
348
+ });
349
+ result.push(dataRow);
350
+ });
351
+ });
352
+ return result;
353
+ }
354
+ function getColumnToRowTableConfig(configure) {
355
+ const sourceConfig = configure.items;
356
+ const groupField = configure.props.dataOrigin.groupField;
357
+ const titleColumns = configure.props.dataOrigin.columnToRow.titleColumns;
358
+ const dataColumns = configure.props.dataOrigin.columnToRow.dataColumns;
359
+ const newTableColumns = [];
360
+ groupField.forEach((field) => {
361
+ if (sourceConfig) {
362
+ const column = sourceConfig.find((item) => item.props.base.prop === field);
363
+ if (column) {
364
+ newTableColumns.push(column);
365
+ }
366
+ }
367
+ });
368
+ const newCols = [...titleColumns, ...dataColumns];
369
+ newCols.forEach((field) => {
370
+ if (sourceConfig) {
371
+ const column = sourceConfig.find((item) => item.props.base.prop === field);
372
+ if (column) {
373
+ newTableColumns.push(column);
374
+ } else {
375
+ newTableColumns.push({
376
+ uuid: (/* @__PURE__ */ new Date()).getTime(),
377
+ // 生成新的UUID
378
+ name: "",
379
+ props: {
380
+ base: {
381
+ prop: field.prop,
382
+ name: field.title,
383
+ sortable: true,
384
+ headerAlign: "center",
385
+ align: "center",
386
+ fixed: false,
387
+ visible: true,
388
+ dataType: "string"
389
+ },
390
+ format: {},
391
+ size: {
392
+ pc: {}
393
+ }
394
+ },
395
+ style: {},
396
+ componentIndex: 0,
397
+ // 根据实际情况设置
398
+ runtime: {
399
+ common: {
400
+ class: "",
401
+ style: {
402
+ pc_style: {},
403
+ pc_class: ""
404
+ }
405
+ }
406
+ }
407
+ });
408
+ }
409
+ }
410
+ });
411
+ return newTableColumns;
412
+ }
413
+ function groupBy(data, groupFields) {
414
+ const grouped = {};
415
+ data.forEach((item) => {
416
+ const key = groupFields.map((field) => item[field]).join("|");
417
+ if (!grouped[key]) {
418
+ grouped[key] = {
419
+ ...item,
420
+ // 复制所有字段
421
+ records: []
422
+ // 初始化记录数组
423
+ };
424
+ groupFields.forEach((field, index) => {
425
+ grouped[key][field] = item[field];
426
+ });
427
+ }
428
+ grouped[key].records.push(item);
429
+ });
430
+ return Object.values(grouped).map((group) => ({
431
+ ...group,
432
+ // 复制所有分组信息
433
+ records: void 0
434
+ // 移除records字段,因为不需要展示
435
+ }));
436
+ }
437
+ function getIndexColumn() {
438
+ return {
439
+ props: {
440
+ base: {
441
+ name: "序号",
442
+ prop: "$index",
443
+ columnWidth: 80,
444
+ sortable: true,
445
+ visible: true,
446
+ displayOrder: 1,
447
+ alignTitle: "center",
448
+ alignContent: "center"
449
+ }
450
+ },
451
+ events: [],
452
+ style: {
453
+ titleFont: {},
454
+ contentFont: {},
455
+ width: {},
456
+ background: {},
457
+ tableCell: [{ type: "", model: "" }],
458
+ conentPadding: {},
459
+ tittlePadding: {},
460
+ border: {},
461
+ shadow: {},
462
+ tittleClass: ""
463
+ }
464
+ };
465
+ }
466
+ function computeFormula(row, formula) {
467
+ try {
468
+ return new Function(
469
+ "row",
470
+ `return ${formula.replace(/\$\{row\.(\w+)\}/g, (_, key) => `row.${key}`)}`
471
+ )(row);
472
+ } catch (error) {
473
+ console.error("数据公式解析错误:", error);
474
+ return 0;
475
+ }
476
+ }
477
+ export {
478
+ ExpressionEvaluator,
479
+ colDataToRow,
480
+ computeFormula,
481
+ getCellStyleUtil,
482
+ getColumnToRowTableConfig,
483
+ getHeaderCellStyleUtil,
484
+ getIndexColumn,
485
+ getRowStyleUtil,
486
+ getSummaryDataColumn,
487
+ getSummaryTitleColumn,
488
+ replacePlaceholders,
489
+ rowDataToColumn,
490
+ summaryStatistics
491
+ };
@@ -0,0 +1,44 @@
1
+ import { defineComponent, openBlock, createBlock } from "vue";
2
+ import _sfc_main$1 from "./group-column.vue.js";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "group-column-item",
5
+ props: {
6
+ configure: {
7
+ type: Object,
8
+ default: () => {
9
+ return {};
10
+ }
11
+ },
12
+ pageContext: {
13
+ type: Object,
14
+ default: () => {
15
+ return {};
16
+ }
17
+ },
18
+ groupColumnItem: {
19
+ type: Object,
20
+ default: () => {
21
+ return {};
22
+ }
23
+ },
24
+ columnsConfigKeyValues: {
25
+ type: Object,
26
+ default: () => {
27
+ return {};
28
+ }
29
+ }
30
+ },
31
+ setup(__props) {
32
+ return (_ctx, _cache) => {
33
+ return openBlock(), createBlock(_sfc_main$1, {
34
+ configure: __props.configure,
35
+ pageContext: __props.pageContext,
36
+ groupColumn: __props.groupColumnItem,
37
+ columnsConfigKeyValues: __props.columnsConfigKeyValues
38
+ }, null, 8, ["configure", "pageContext", "groupColumn", "columnsConfigKeyValues"]);
39
+ };
40
+ }
41
+ });
42
+ export {
43
+ _sfc_main as default
44
+ };
@@ -0,0 +1,4 @@
1
+ import _sfc_main from "./group-column-item.vue.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
@@ -0,0 +1,64 @@
1
+ import { defineComponent, resolveComponent, openBlock, createBlock, withCtx, createTextVNode, toDisplayString, createElementBlock, Fragment, renderList, createCommentVNode } from "vue";
2
+ import _sfc_main$2 from "./normal-column.vue.js";
3
+ import _sfc_main$1 from "./group-column-item.vue.js";
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "group-column",
6
+ props: {
7
+ configure: {
8
+ type: Object,
9
+ default: () => {
10
+ return {};
11
+ }
12
+ },
13
+ pageContext: {
14
+ type: Object,
15
+ default: () => {
16
+ return {};
17
+ }
18
+ },
19
+ groupColumn: {
20
+ type: Object,
21
+ default: () => {
22
+ return {};
23
+ }
24
+ },
25
+ columnsConfigKeyValues: {
26
+ type: Object,
27
+ default: () => {
28
+ return {};
29
+ }
30
+ }
31
+ },
32
+ setup(__props) {
33
+ return (_ctx, _cache) => {
34
+ const _component_el_table_column = resolveComponent("el-table-column");
35
+ return openBlock(), createBlock(_component_el_table_column, { "header-align": "center" }, {
36
+ header: withCtx(() => [
37
+ createTextVNode(toDisplayString(__props.groupColumn.titleText), 1)
38
+ ]),
39
+ default: withCtx(() => [
40
+ __props.groupColumn.children && __props.groupColumn.children.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.groupColumn.children, (item, index) => {
41
+ return openBlock(), createElementBlock(Fragment, { key: index }, [
42
+ item.children && item.children.length > 0 ? (openBlock(), createBlock(_sfc_main$1, {
43
+ key: index,
44
+ configure: __props.configure,
45
+ pageContext: __props.pageContext,
46
+ groupColumnItem: item,
47
+ columnsConfigKeyValues: __props.columnsConfigKeyValues
48
+ }, null, 8, ["configure", "pageContext", "groupColumnItem", "columnsConfigKeyValues"])) : (openBlock(), createBlock(_sfc_main$2, {
49
+ key: 1,
50
+ pageContext: __props.pageContext,
51
+ configure: __props.configure,
52
+ column: __props.columnsConfigKeyValues[item.columnUuid]
53
+ }, null, 8, ["pageContext", "configure", "column"]))
54
+ ], 64);
55
+ }), 128)) : createCommentVNode("", true)
56
+ ]),
57
+ _: 1
58
+ });
59
+ };
60
+ }
61
+ });
62
+ export {
63
+ _sfc_main as default
64
+ };
@@ -0,0 +1,4 @@
1
+ import _sfc_main from "./group-column.vue.js";
2
+ export {
3
+ _sfc_main as default
4
+ };