ele-admin-plus 1.1.9 → 1.2.0-beta.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.
Files changed (149) hide show
  1. package/es/core-export.d.ts +1 -0
  2. package/es/core-export.js +1 -0
  3. package/es/ele-alert/index.d.ts +2 -2
  4. package/es/ele-alert/props.d.ts +1 -1
  5. package/es/ele-app/components/message-body.d.ts +39 -0
  6. package/es/ele-app/components/message-body.js +92 -0
  7. package/es/ele-app/el.d.ts +2 -0
  8. package/es/ele-app/style/message/css-var.scss +0 -4
  9. package/es/ele-app/style/message/index.scss +199 -77
  10. package/es/ele-app/style/overwrite/input/index.scss +2 -0
  11. package/es/ele-app/style/overwrite/message-box/index.scss +31 -0
  12. package/es/ele-app/style/overwrite/tag/css-var.scss +0 -16
  13. package/es/ele-app/style/overwrite/tag/index.scss +57 -14
  14. package/es/ele-app/types.d.ts +6 -1
  15. package/es/ele-config-provider/components/receiver-view.js +3 -3
  16. package/es/ele-config-provider/index.d.ts +8 -4
  17. package/es/ele-config-provider/index.js +19 -5
  18. package/es/ele-config-provider/props.d.ts +9 -4
  19. package/es/ele-config-provider/props.js +9 -5
  20. package/es/ele-config-provider/receiver.js +2 -2
  21. package/es/ele-config-provider/types.d.ts +22 -1
  22. package/es/ele-data-table/types.d.ts +2 -0
  23. package/es/ele-drawer/index.d.ts +2 -2
  24. package/es/ele-edit-tag/index.d.ts +9 -4
  25. package/es/ele-edit-tag/index.js +4 -2
  26. package/es/ele-edit-tag/props.d.ts +3 -1
  27. package/es/ele-edit-tag/props.js +2 -0
  28. package/es/ele-edit-tag/style/index.scss +11 -4
  29. package/es/ele-icon-select/index.d.ts +10 -12
  30. package/es/ele-icon-select/props.d.ts +1 -1
  31. package/es/ele-map-picker/index.d.ts +1 -1
  32. package/es/ele-menus/index.d.ts +2 -2
  33. package/es/ele-menus/index.js +11 -0
  34. package/es/ele-modal/index.d.ts +3 -3
  35. package/es/ele-modal/style/index.scss +2 -0
  36. package/es/ele-modal/util.d.ts +1 -1
  37. package/es/ele-modal/util.js +2 -4
  38. package/es/ele-popconfirm/index.d.ts +3 -3
  39. package/es/ele-popconfirm/props.d.ts +1 -1
  40. package/es/ele-popover/index.d.ts +2 -2
  41. package/es/ele-pro-layout/components/pro-header.d.ts +1 -1
  42. package/es/ele-pro-layout/components/pro-sidebar.d.ts +1 -1
  43. package/es/ele-pro-layout/index.js +1 -1
  44. package/es/ele-pro-layout/types.d.ts +4 -4
  45. package/es/ele-pro-table/components/table-tools.d.ts +11 -2
  46. package/es/ele-pro-table/components/table-tools.js +14 -26
  47. package/es/ele-pro-table/components/tool-column.d.ts +1 -0
  48. package/es/ele-pro-table/components/tool-export.d.ts +29 -56
  49. package/es/ele-pro-table/components/tool-export.js +100 -52
  50. package/es/ele-pro-table/components/tool-print-body-cell.js +50 -6
  51. package/es/ele-pro-table/components/tool-print-header-cell.js +4 -1
  52. package/es/ele-pro-table/components/tool-print.d.ts +29 -50
  53. package/es/ele-pro-table/components/tool-print.js +174 -69
  54. package/es/ele-pro-table/index.js +59 -50
  55. package/es/ele-pro-table/style/index.scss +9 -0
  56. package/es/ele-pro-table/types.d.ts +32 -0
  57. package/es/ele-pro-table/util.d.ts +18 -3
  58. package/es/ele-pro-table/util.js +160 -28
  59. package/es/ele-table/style/index.scss +16 -0
  60. package/es/ele-tooltip/index.d.ts +3 -3
  61. package/es/ele-virtual-table/util.d.ts +3 -1
  62. package/es/ele-virtual-table/util.js +7 -2
  63. package/es/icons/LoadingOutlined.js +1 -1
  64. package/es/lang/en_US.js +7 -1
  65. package/es/lang/zh_CN.js +7 -1
  66. package/es/lang/zh_TW.js +7 -1
  67. package/es/style/themes/default.scss +82 -85
  68. package/es/style/themes/rounded.scss +11 -15
  69. package/es/utils/core.d.ts +7 -0
  70. package/es/utils/core.js +16 -2
  71. package/es/utils/message-box.d.ts +25 -0
  72. package/es/utils/message-box.js +71 -0
  73. package/es/utils/message.d.ts +44 -20
  74. package/es/utils/message.js +220 -37
  75. package/lib/core-export.cjs +8 -0
  76. package/lib/core-export.d.ts +1 -0
  77. package/lib/ele-alert/index.d.ts +2 -2
  78. package/lib/ele-alert/props.d.ts +1 -1
  79. package/lib/ele-app/components/message-body.cjs +91 -0
  80. package/lib/ele-app/components/message-body.d.ts +39 -0
  81. package/lib/ele-app/el.d.ts +2 -0
  82. package/lib/ele-app/style/message/css-var.scss +0 -4
  83. package/lib/ele-app/style/message/index.scss +199 -77
  84. package/lib/ele-app/style/overwrite/input/index.scss +2 -0
  85. package/lib/ele-app/style/overwrite/message-box/index.scss +31 -0
  86. package/lib/ele-app/style/overwrite/tag/css-var.scss +0 -16
  87. package/lib/ele-app/style/overwrite/tag/index.scss +57 -14
  88. package/lib/ele-app/types.d.ts +6 -1
  89. package/lib/ele-config-provider/components/receiver-view.cjs +1 -1
  90. package/lib/ele-config-provider/index.cjs +18 -4
  91. package/lib/ele-config-provider/index.d.ts +8 -4
  92. package/lib/ele-config-provider/props.cjs +9 -5
  93. package/lib/ele-config-provider/props.d.ts +9 -4
  94. package/lib/ele-config-provider/receiver.cjs +1 -1
  95. package/lib/ele-config-provider/types.d.ts +22 -1
  96. package/lib/ele-data-table/types.d.ts +2 -0
  97. package/lib/ele-drawer/index.d.ts +2 -2
  98. package/lib/ele-edit-tag/index.cjs +4 -2
  99. package/lib/ele-edit-tag/index.d.ts +9 -4
  100. package/lib/ele-edit-tag/props.cjs +2 -0
  101. package/lib/ele-edit-tag/props.d.ts +3 -1
  102. package/lib/ele-edit-tag/style/index.scss +11 -4
  103. package/lib/ele-icon-select/index.d.ts +10 -12
  104. package/lib/ele-icon-select/props.d.ts +1 -1
  105. package/lib/ele-map-picker/index.d.ts +1 -1
  106. package/lib/ele-menus/index.cjs +11 -0
  107. package/lib/ele-menus/index.d.ts +2 -2
  108. package/lib/ele-modal/index.d.ts +3 -3
  109. package/lib/ele-modal/style/index.scss +2 -0
  110. package/lib/ele-modal/util.cjs +1 -3
  111. package/lib/ele-modal/util.d.ts +1 -1
  112. package/lib/ele-popconfirm/index.d.ts +3 -3
  113. package/lib/ele-popconfirm/props.d.ts +1 -1
  114. package/lib/ele-popover/index.d.ts +2 -2
  115. package/lib/ele-pro-layout/components/pro-header.d.ts +1 -1
  116. package/lib/ele-pro-layout/components/pro-sidebar.d.ts +1 -1
  117. package/lib/ele-pro-layout/index.cjs +1 -1
  118. package/lib/ele-pro-layout/types.d.ts +4 -4
  119. package/lib/ele-pro-table/components/table-tools.cjs +14 -26
  120. package/lib/ele-pro-table/components/table-tools.d.ts +11 -2
  121. package/lib/ele-pro-table/components/tool-column.d.ts +1 -0
  122. package/lib/ele-pro-table/components/tool-export.cjs +99 -51
  123. package/lib/ele-pro-table/components/tool-export.d.ts +29 -56
  124. package/lib/ele-pro-table/components/tool-print-body-cell.cjs +49 -5
  125. package/lib/ele-pro-table/components/tool-print-header-cell.cjs +4 -1
  126. package/lib/ele-pro-table/components/tool-print.cjs +172 -67
  127. package/lib/ele-pro-table/components/tool-print.d.ts +29 -50
  128. package/lib/ele-pro-table/index.cjs +59 -50
  129. package/lib/ele-pro-table/style/index.scss +9 -0
  130. package/lib/ele-pro-table/types.d.ts +32 -0
  131. package/lib/ele-pro-table/util.cjs +160 -28
  132. package/lib/ele-pro-table/util.d.ts +18 -3
  133. package/lib/ele-table/style/index.scss +16 -0
  134. package/lib/ele-tooltip/index.d.ts +3 -3
  135. package/lib/ele-virtual-table/util.cjs +7 -2
  136. package/lib/ele-virtual-table/util.d.ts +3 -1
  137. package/lib/icons/LoadingOutlined.cjs +1 -1
  138. package/lib/lang/en_US.cjs +7 -1
  139. package/lib/lang/zh_CN.cjs +7 -1
  140. package/lib/lang/zh_TW.cjs +7 -1
  141. package/lib/style/themes/default.scss +82 -85
  142. package/lib/style/themes/rounded.scss +11 -15
  143. package/lib/utils/core.cjs +16 -2
  144. package/lib/utils/core.d.ts +7 -0
  145. package/lib/utils/message-box.cjs +71 -0
  146. package/lib/utils/message-box.d.ts +25 -0
  147. package/lib/utils/message.cjs +216 -33
  148. package/lib/utils/message.d.ts +44 -20
  149. package/package.json +14 -14
@@ -227,6 +227,8 @@ export interface ColItem {
227
227
  fixed?: boolean | string;
228
228
  /** 子级数据 */
229
229
  children?: ColItem[];
230
+ /** 列类型 */
231
+ type?: string;
230
232
  }
231
233
 
232
234
  /**
@@ -291,6 +293,20 @@ export type TableViewInstance =
291
293
  */
292
294
  export type ExportDataType = 'selections' | 'pageData' | 'data';
293
295
 
296
+ /**
297
+ * 导出主体数据节点
298
+ */
299
+ export interface ExportBodyNode {
300
+ /** 数据 */
301
+ row: DataItem;
302
+ /** 索引 */
303
+ index: number;
304
+ /** 所处深度 */
305
+ level: number;
306
+ /** 子级数量 */
307
+ childSize: number;
308
+ }
309
+
294
310
  /**
295
311
  * 导出的数据每一项
296
312
  */
@@ -309,6 +325,16 @@ export interface ExportDataItem {
309
325
  colspan?: number;
310
326
  /** 所占行数 */
311
327
  rowspan?: number;
328
+ /** 是否是展开行的单元格 */
329
+ isExpandCell?: boolean;
330
+ /** 是否是层级序号 */
331
+ isTreeIndex?: boolean;
332
+ /** 是否显示树展开图标 */
333
+ isTreeCell?: boolean;
334
+ /** 是否是树叶子节点 */
335
+ isTreeLeaf?: boolean;
336
+ /** 树层级缩进 */
337
+ indent?: number;
312
338
  }
313
339
 
314
340
  /**
@@ -418,6 +444,8 @@ export interface TableLocale {
418
444
  columnTitle: string;
419
445
  columnReset: string;
420
446
  columnUntitled: string;
447
+ columnIndex: string;
448
+ columnExpand: string;
421
449
  columnFixedLeft: string;
422
450
  columnFixedRight: string;
423
451
  exportOk: string;
@@ -429,4 +457,8 @@ export interface TableLocale {
429
457
  exportDataTypePage: string;
430
458
  exportDataTypeSelected: string;
431
459
  exportDataTypeAll: string;
460
+ exportOther: string;
461
+ exportOtherHeader: string;
462
+ exportOtherFooter: string;
463
+ exportOtherTreeIndex: string;
432
464
  }
@@ -1,4 +1,4 @@
1
- import { Pages, Orders, Filters, OrderItem, RequestOption, ResponseOption, TablePagination, DatasourceResult, ResponseResult, ReloadDataResult, ColItem, ProProps, ExportDataItem, ExportDataResult } from './types';
1
+ import { Pages, Orders, Filters, OrderItem, RequestOption, ResponseOption, TablePagination, DatasourceResult, ResponseResult, ReloadDataResult, ColItem, ProProps, ExportBodyNode, ExportDataItem, ExportDataResult } from './types';
2
2
  import { DataItem, Column, Columns, Sorter, Filter, TableSize, TreeProps, RowKey, SpanMethod, SummaryMethod } from '../ele-data-table/types';
3
3
  import { ElePaginationProps } from '../ele-app/plus';
4
4
 
@@ -141,11 +141,13 @@ export declare function getCheckedColumns(columns: Columns | undefined, cols: Co
141
141
  * 获取列展示列表数据
142
142
  * @param columns 列配置
143
143
  * @param untitledText 未命名列文字
144
+ * @param indexText 序号列文字
145
+ * @param expandText 展开列文字
144
146
  * @param filter 过滤列的方法
145
147
  * @param sortFixed 是否对固定列排序
146
148
  * @param cancelFixed 是否取消固定列
147
149
  */
148
- export declare function getColItems(columns?: Columns, untitledText?: string, filter?: (item: Column) => boolean, sortFixed?: boolean, cancelFixed?: boolean): ColItem[];
150
+ export declare function getColItems(columns?: Columns, untitledText?: string, indexText?: string, expandText?: string, filter?: (item: Column) => boolean, sortFixed?: boolean, cancelFixed?: boolean): ColItem[];
149
151
  /**
150
152
  * 获取列配置
151
153
  * @param columns 列数据
@@ -190,6 +192,17 @@ export declare function getCellText(column: Column | undefined, row: DataItem, i
190
192
  * @param index 行索引
191
193
  */
192
194
  export declare function getHeaderCellText(column: Column | undefined, index: number): string;
195
+ /**
196
+ * 获取主体数据封装节点
197
+ * @param data 数据
198
+ * @param childrenField 子级字段名
199
+ * @param level 树形所处深度
200
+ * @param parents 父级节点
201
+ */
202
+ export declare function getExportBodyNode(data: DataItem[], childrenField?: string, level?: number, parents?: ExportBodyNode[]): {
203
+ depth: number;
204
+ nodes: ExportBodyNode[];
205
+ };
193
206
  /**
194
207
  * 获取导出的数据
195
208
  * @param data 元数据
@@ -199,8 +212,10 @@ export declare function getHeaderCellText(column: Column | undefined, index: num
199
212
  * @param showSummary 是否显示合计行
200
213
  * @param sumText 合计行文本
201
214
  * @param summaryMethod 合计行自定义方法
215
+ * @param childrenField 子级字段名
216
+ * @param showTreeIndex 是否显示层级序号
202
217
  */
203
- export declare function getExportData(data: DataItem[], columns: Columns, spanMethod?: SpanMethod, pageIndex?: number, showSummary?: boolean, sumText?: string, summaryMethod?: SummaryMethod): ExportDataResult;
218
+ export declare function getExportData(data: DataItem[], columns: Columns, spanMethod?: SpanMethod, pageIndex?: number, showSummary?: boolean, sumText?: string, summaryMethod?: SummaryMethod, childrenField?: string, showTreeIndex?: boolean, showHeader?: boolean): ExportDataResult;
204
219
  /**
205
220
  * 导出csv文件
206
221
  * @param fileName 文件名
@@ -318,7 +318,7 @@ function getCheckedColumns(columns, cols, sortable, filter) {
318
318
  });
319
319
  return data;
320
320
  }
321
- function getColItems(columns, untitledText, filter, sortFixed, cancelFixed) {
321
+ function getColItems(columns, untitledText, indexText, expandText, filter, sortFixed, cancelFixed) {
322
322
  const temp = columns == null ? [] : [...columns];
323
323
  if (sortFixed) {
324
324
  temp.sort((a, b) => {
@@ -334,9 +334,10 @@ function getColItems(columns, untitledText, filter, sortFixed, cancelFixed) {
334
334
  uid: colId,
335
335
  //prop: d.prop,
336
336
  //columnKey: d.columnKey,
337
- label: d.label || untitledText,
337
+ label: d.label || (d.type === "index" ? indexText : d.type === "expand" ? expandText : untitledText),
338
338
  checked: !d.hideInTable,
339
- fixed: cancelFixed ? false : parent == null ? d.fixed : false
339
+ fixed: cancelFixed ? false : parent == null ? d.fixed : false,
340
+ type: d.type
340
341
  };
341
342
  });
342
343
  }
@@ -424,56 +425,186 @@ function getHeaderCellText(column, index) {
424
425
  }
425
426
  return column.label == null ? "" : String(column.label);
426
427
  }
427
- function getExportData(data, columns, spanMethod, pageIndex, showSummary, sumText, summaryMethod) {
428
+ function getExportBodyNode(data, childrenField = "children", level = 0, parents = []) {
429
+ const bodyDodes = [];
430
+ let maxDepth = 0;
431
+ data.forEach((row, index) => {
432
+ const node = { row, index, level, childSize: 0 };
433
+ bodyDodes.push(node);
434
+ parents.forEach((parent) => {
435
+ parent.childSize++;
436
+ });
437
+ const children = row[childrenField];
438
+ if (children && children.length) {
439
+ const { depth, nodes } = getExportBodyNode(
440
+ children,
441
+ childrenField,
442
+ level + 1,
443
+ [...parents, node]
444
+ );
445
+ maxDepth = Math.max(maxDepth, depth);
446
+ nodes.forEach((n) => {
447
+ bodyDodes.push(n);
448
+ });
449
+ }
450
+ });
451
+ return { depth: maxDepth + 1, nodes: bodyDodes };
452
+ }
453
+ function getExportData(data, columns, spanMethod, pageIndex, showSummary, sumText, summaryMethod, childrenField, showTreeIndex, showHeader) {
454
+ const { nodes, depth } = getExportBodyNode(data, childrenField);
428
455
  const { rows: headerRows, cols: bodyCols } = analyseColumns(columns);
456
+ const showExpandIndex = bodyCols.some((c) => {
457
+ var _a;
458
+ return ((_a = c.originalCol) == null ? void 0 : _a.type) === "expand";
459
+ }) ? showTreeIndex : false;
460
+ if (depth <= 1 || showExpandIndex) {
461
+ showTreeIndex = false;
462
+ }
463
+ const treeIconIndex = showTreeIndex ? void 0 : bodyCols.findIndex(
464
+ (c) => {
465
+ var _a;
466
+ return !((_a = c.originalCol) == null ? void 0 : _a.type) || !["index", "expand", "selection"].includes(c.originalCol.type);
467
+ }
468
+ );
429
469
  const bodyData = [];
430
- data.forEach((row, index) => {
470
+ nodes.forEach((node, index) => {
471
+ const row = node.row;
431
472
  const bodyRowData = [];
473
+ const expandRowData = [];
432
474
  bodyCols.forEach((col, columnIndex) => {
433
- const { key, originalCol: column } = col;
475
+ const { key: colKey, originalCol: column } = col;
476
+ const key = `${index}-${columnIndex}-${colKey}`;
434
477
  const { colspan, rowspan } = getCellSpan(
435
478
  { column, columnIndex, row, rowIndex: index },
436
479
  spanMethod
437
480
  );
438
481
  const isNone = colspan == 0 || rowspan == 0;
439
482
  const text = isNone ? "" : getCellText(column, row, index, pageIndex);
440
- bodyRowData.push({ key, row, index, column, text, colspan, rowspan });
483
+ const dataItem = {
484
+ key,
485
+ row,
486
+ index,
487
+ column,
488
+ text,
489
+ colspan,
490
+ rowspan,
491
+ isTreeCell: depth > 1 ? columnIndex === treeIconIndex : false,
492
+ isTreeLeaf: !node.childSize,
493
+ indent: node.level
494
+ };
495
+ if (column.type === "expand") {
496
+ dataItem.text = showExpandIndex ? String(node.index + 1) : "";
497
+ if (showExpandIndex && !expandRowData.length) {
498
+ dataItem.rowspan = 2;
499
+ }
500
+ const expandDataItem = {
501
+ key: "_expand_" + key,
502
+ row,
503
+ index,
504
+ column,
505
+ text,
506
+ colspan: showExpandIndex ? bodyCols.length - 1 : bodyCols.length,
507
+ isExpandCell: true
508
+ };
509
+ if (showExpandIndex) {
510
+ expandRowData[0] = {
511
+ key: "_expand_0-" + key,
512
+ row,
513
+ index,
514
+ rowspan: 0,
515
+ colspan: 0,
516
+ isExpandCell: true
517
+ };
518
+ expandRowData[1] = expandDataItem;
519
+ } else {
520
+ expandRowData[0] = expandDataItem;
521
+ }
522
+ }
523
+ bodyRowData.push(dataItem);
441
524
  });
442
525
  bodyData.push(bodyRowData);
526
+ if (expandRowData.length) {
527
+ bodyData.push(expandRowData);
528
+ }
529
+ if (showTreeIndex) {
530
+ for (let i = depth - 1; i >= 0; i--) {
531
+ const colspan = i < node.level ? 0 : 1;
532
+ bodyRowData.unshift({
533
+ key: `_index_${index}-${i}`,
534
+ index,
535
+ text: i === node.level ? String(node.index + 1) : void 0,
536
+ colspan,
537
+ rowspan: i === node.level ? node.childSize + 1 : colspan,
538
+ isTreeIndex: true
539
+ });
540
+ }
541
+ }
443
542
  });
444
543
  const headerData = [];
445
- headerRows.forEach((headerCols, index) => {
446
- const headerRowData = [];
447
- headerCols.forEach((col) => {
448
- const { key, colspan, rowspan, originalCol: column } = col;
449
- const isNone = colspan == 0 || rowspan == 0;
450
- const text = isNone ? "" : getHeaderCellText(column, index);
451
- headerRowData.push({ key, index, column, text, colspan, rowspan });
544
+ if (showHeader) {
545
+ headerRows.forEach((headerCols, index) => {
546
+ const headerRowData = [];
547
+ headerCols.forEach((col) => {
548
+ const { key, colspan, rowspan, originalCol: column } = col;
549
+ const isNone = colspan == 0 || rowspan == 0;
550
+ const text = isNone ? "" : getHeaderCellText(column, index);
551
+ headerRowData.push({ key, index, column, text, colspan, rowspan });
552
+ });
553
+ headerData.push(headerRowData);
554
+ if (showTreeIndex) {
555
+ for (let i = depth - 1; i >= 0; i--) {
556
+ headerRowData.unshift({
557
+ key: `_index_th_${index}-${i}`,
558
+ index,
559
+ colspan: i === 0 ? index === 0 ? depth : 0 : 0,
560
+ rowspan: i === 0 ? index === 0 ? headerRows.length : 0 : 0,
561
+ isTreeIndex: true
562
+ });
563
+ }
564
+ }
452
565
  });
453
- headerData.push(headerRowData);
454
- });
566
+ }
455
567
  const footerData = [];
456
568
  if (showSummary && data.length) {
457
569
  const footerRowData = [];
458
- const userSums = getUserSums(summaryMethod, bodyCols, data);
570
+ const uSum = getUserSums(summaryMethod, bodyCols, data);
459
571
  bodyCols.forEach((col, i) => {
460
- const { key, dataKey, originalCol: column } = col;
461
- const sumValue = getSumValue(data, dataKey);
462
- footerRowData.push({
463
- key,
464
- column,
465
- text: userSums == null ? i === 0 ? sumText : sumValue : userSums[i],
466
- index: 0
467
- });
572
+ const { key, dataKey: dKey, originalCol: column } = col;
573
+ const text = uSum == null ? getSumValue(data, dKey, i, sumText) : uSum[i];
574
+ footerRowData.push({ key, column, text, index: 0 });
468
575
  });
469
576
  footerData.push(footerRowData);
577
+ if (showTreeIndex) {
578
+ for (let i = depth - 1; i >= 0; i--) {
579
+ footerRowData.unshift({
580
+ key: `_index_tf-${i}`,
581
+ index: 0,
582
+ colspan: i === 0 ? depth : 0,
583
+ rowspan: i === 0 ? headerRows.length : 0,
584
+ isTreeIndex: true
585
+ });
586
+ }
587
+ }
588
+ }
589
+ if (showTreeIndex) {
590
+ for (let i = depth - 1; i >= 0; i--) {
591
+ bodyCols.unshift({ key: `_index_${i}`, width: 26 });
592
+ }
470
593
  }
471
594
  return { headerData, bodyData, footerData, bodyCols };
472
595
  }
473
596
  function exportCSV(fileName, headerData, bodyData, footerData) {
474
597
  const csvRows = [];
475
598
  [...headerData, ...bodyData, ...footerData].forEach((item) => {
476
- csvRows.push(item.map((d) => d.text ?? "").join(","));
599
+ const cells = item.map((d) => {
600
+ const text = (d.text ?? "").replace(/,/g, ",").replace(/\n/g, " ");
601
+ if (!d.isTreeCell || !d.indent) {
602
+ return text;
603
+ }
604
+ const indent = Array.from({ length: d.indent }).fill(" ").join("");
605
+ return indent + text;
606
+ });
607
+ csvRows.push(cells.join(","));
477
608
  });
478
609
  const content = encodeURIComponent(csvRows.join("\n"));
479
610
  const a = document.createElement("a");
@@ -488,13 +619,13 @@ function columnsExportFilter(item) {
488
619
  if (item.hideInExport) {
489
620
  return false;
490
621
  }
491
- return !item.type || !["selection", "expand"].includes(item.type);
622
+ return !item.type || !["selection"].includes(item.type);
492
623
  }
493
624
  function columnsPrintFilter(item) {
494
625
  if (item.hideInPrint) {
495
626
  return false;
496
627
  }
497
- return !item.type || !["selection", "expand"].includes(item.type);
628
+ return !item.type || !["selection"].includes(item.type);
498
629
  }
499
630
  export {
500
631
  columnsExportFilter,
@@ -508,6 +639,7 @@ export {
508
639
  getColItems,
509
640
  getColsCacheKey,
510
641
  getDefaultFilter,
642
+ getExportBodyNode,
511
643
  getExportData,
512
644
  getHeaderCellText,
513
645
  getInitCacheColumns,
@@ -185,6 +185,22 @@
185
185
  table-layout: fixed;
186
186
  border-collapse: collapse;
187
187
  word-break: break-all;
188
+
189
+ &.is-border {
190
+ border-left: none;
191
+ border-right: 1px solid eleVar('table', 'border-color');
192
+
193
+ & > tr,
194
+ & > thead > tr,
195
+ & > tbody > tr,
196
+ & > tfoot > tr {
197
+ & > th,
198
+ & > td {
199
+ border-right-width: 0;
200
+ border-left-width: 1px;
201
+ }
202
+ }
203
+ }
188
204
  }
189
205
  }
190
206
 
@@ -7,6 +7,7 @@ declare const _default: import('vue').DefineComponent<{
7
7
  width: (StringConstructor | NumberConstructor)[];
8
8
  isPopover: BooleanConstructor;
9
9
  offset: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 12, boolean>;
10
+ zIndex: NumberConstructor;
10
11
  trigger: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => "hover" | "focus" | "click" | "contextmenu" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils/typescript').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "hover" | "focus" | "click" | "contextmenu" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils/typescript').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown, "hover", boolean>;
11
12
  effect: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "dark", boolean>;
12
13
  placement: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, import('element-plus').Placement, unknown, "bottom", boolean>;
@@ -36,7 +37,6 @@ declare const _default: import('vue').DefineComponent<{
36
37
  visible: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown, null, boolean>;
37
38
  transition: StringConstructor;
38
39
  enterable: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
39
- zIndex: NumberConstructor;
40
40
  gpuAcceleration: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
41
41
  showAfter: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
42
42
  hideAfter: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
@@ -68,6 +68,7 @@ declare const _default: import('vue').DefineComponent<{
68
68
  width: (StringConstructor | NumberConstructor)[];
69
69
  isPopover: BooleanConstructor;
70
70
  offset: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 12, boolean>;
71
+ zIndex: NumberConstructor;
71
72
  trigger: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => "hover" | "focus" | "click" | "contextmenu" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils/typescript').Arrayable<import('element-plus').TooltipTriggerType>) | ((new (...args: any[]) => "hover" | "focus" | "click" | "contextmenu" | import('element-plus').TooltipTriggerType[]) | (() => import('element-plus/es/utils/typescript').Arrayable<import('element-plus').TooltipTriggerType>))[], unknown, unknown, "hover", boolean>;
72
73
  effect: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, unknown, unknown, "dark", boolean>;
73
74
  placement: import('element-plus/es/utils/index').EpPropFinalized<StringConstructor, import('element-plus').Placement, unknown, "bottom", boolean>;
@@ -97,7 +98,6 @@ declare const _default: import('vue').DefineComponent<{
97
98
  visible: import('element-plus/es/utils/index').EpPropFinalized<(new (...args: any[]) => boolean) | (() => boolean | null) | ((new (...args: any[]) => boolean) | (() => boolean | null))[], unknown, unknown, null, boolean>;
98
99
  transition: StringConstructor;
99
100
  enterable: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
100
- zIndex: NumberConstructor;
101
101
  gpuAcceleration: import('element-plus/es/utils/index').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
102
102
  showAfter: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 0, boolean>;
103
103
  hideAfter: import('element-plus/es/utils/index').EpPropFinalized<NumberConstructor, unknown, unknown, 200, boolean>;
@@ -106,10 +106,10 @@ declare const _default: import('vue').DefineComponent<{
106
106
  popperClass: StringConstructor;
107
107
  popperStyle: import('vue').PropType<Partial<import('vue').CSSProperties>>;
108
108
  }>> & {
109
+ onClose?: ((e: any) => any) | undefined;
109
110
  "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
110
111
  onHide?: ((e: Event) => any) | undefined;
111
112
  onOpen?: ((e: any) => any) | undefined;
112
- onClose?: ((e: any) => any) | undefined;
113
113
  onShow?: ((e: Event) => any) | undefined;
114
114
  "onBefore-show"?: ((e: Event) => any) | undefined;
115
115
  "onBefore-hide"?: ((e: Event) => any) | undefined;
@@ -197,8 +197,10 @@ export declare function getUserSums(summaryMethod?: SummaryMethod, bodyCols?: Bo
197
197
  * 计算列合计值
198
198
  * @param data 表格数据
199
199
  * @param prop 列字段名称
200
+ * @param index 列索引
201
+ * @param sumText 第一列文本
200
202
  */
201
- export declare function getSumValue(data?: DataItem[], prop?: string): string;
203
+ export declare function getSumValue(data?: DataItem[], prop?: string, index?: number, sumText?: string): string;
202
204
  /**
203
205
  * 获取原始列配置
204
206
  * @param columns 列配置
@@ -423,8 +423,10 @@ function getIndexValue(rowIndex, index, pageIndex) {
423
423
  return String(index + rowIndex);
424
424
  }
425
425
  function getCellSpan(params, spanMethod) {
426
+ var _a;
426
427
  const span = { rowspan: 1, colspan: 1 };
427
- if (typeof spanMethod === "function") {
428
+ const type = (_a = params.column) == null ? void 0 : _a.type;
429
+ if ((!type || !["index", "selection", "expand"].includes(type)) && typeof spanMethod === "function") {
428
430
  const result = spanMethod(params);
429
431
  if (result != null) {
430
432
  if (Array.isArray(result)) {
@@ -456,7 +458,10 @@ function getUserSums(summaryMethod, bodyCols, data) {
456
458
  });
457
459
  return summaryMethod({ columns, data });
458
460
  }
459
- function getSumValue(data, prop) {
461
+ function getSumValue(data, prop, index, sumText) {
462
+ if (index === 0) {
463
+ return sumText ?? "Sum";
464
+ }
460
465
  if (!data || !prop) {
461
466
  return "";
462
467
  }
@@ -16,7 +16,7 @@ const _hoisted_1 = {
16
16
  "stroke-width": "4",
17
17
  "stroke-linecap": "round"
18
18
  };
19
- const _hoisted_2 = /* @__PURE__ */ createElementVNode("path", { d: "M24 2C36 2 46 12 46 24" }, null, -1);
19
+ const _hoisted_2 = /* @__PURE__ */ createElementVNode("path", { d: "M 22 6 C 34 6 42 14 42 26" }, null, -1);
20
20
  const _hoisted_3 = [
21
21
  _hoisted_2
22
22
  ];
package/es/lang/en_US.js CHANGED
@@ -42,6 +42,8 @@ const localeValues = {
42
42
  columnTitle: "Check all",
43
43
  columnReset: "Reset",
44
44
  columnUntitled: "Untitled",
45
+ columnIndex: "Index",
46
+ columnExpand: "Expand",
45
47
  columnFixedLeft: "Pin to left",
46
48
  columnFixedRight: "Pin to right",
47
49
  exportOk: "Ok",
@@ -52,7 +54,11 @@ const localeValues = {
52
54
  exportSelectColumn: "Columns",
53
55
  exportDataTypePage: "Current",
54
56
  exportDataTypeSelected: "Selected",
55
- exportDataTypeAll: "All"
57
+ exportDataTypeAll: "All",
58
+ exportOther: "Options",
59
+ exportOtherHeader: "Header",
60
+ exportOtherFooter: "Footer",
61
+ exportOtherTreeIndex: "Tree index"
56
62
  },
57
63
  copyable: {
58
64
  copy: "Copy",
package/es/lang/zh_CN.js CHANGED
@@ -42,6 +42,8 @@ const localeValues = {
42
42
  columnTitle: "全选",
43
43
  columnReset: "重置",
44
44
  columnUntitled: "无标题",
45
+ columnIndex: "序号列",
46
+ columnExpand: "展开列",
45
47
  columnFixedLeft: "固定在左侧",
46
48
  columnFixedRight: "固定在右侧",
47
49
  exportOk: "确定",
@@ -52,7 +54,11 @@ const localeValues = {
52
54
  exportSelectColumn: "选择字段",
53
55
  exportDataTypePage: "当前页数据",
54
56
  exportDataTypeSelected: "选中数据",
55
- exportDataTypeAll: "全部数据"
57
+ exportDataTypeAll: "全部数据",
58
+ exportOther: "其它选项",
59
+ exportOtherHeader: "表头",
60
+ exportOtherFooter: "表尾",
61
+ exportOtherTreeIndex: "层级序号"
56
62
  },
57
63
  copyable: {
58
64
  copy: "复制",
package/es/lang/zh_TW.js CHANGED
@@ -42,6 +42,8 @@ const localeValues = {
42
42
  columnTitle: "列展示",
43
43
  columnReset: "重置",
44
44
  columnUntitled: "無標題",
45
+ columnIndex: "序號列",
46
+ columnExpand: "展開列",
45
47
  columnFixedLeft: "固定在左側",
46
48
  columnFixedRight: "固定在右側",
47
49
  exportOk: "確認",
@@ -52,7 +54,11 @@ const localeValues = {
52
54
  exportSelectColumn: "選擇字段",
53
55
  exportDataTypePage: "當前頁數據",
54
56
  exportDataTypeSelected: "選中數據",
55
- exportDataTypeAll: "全部數據"
57
+ exportDataTypeAll: "全部數據",
58
+ exportOther: "更多選項",
59
+ exportOtherHeader: "表頭",
60
+ exportOtherFooter: "表尾",
61
+ exportOtherTreeIndex: "層級序號"
56
62
  },
57
63
  copyable: {
58
64
  copy: "複製",