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.
- package/es/core-export.d.ts +1 -0
- package/es/core-export.js +1 -0
- package/es/ele-alert/index.d.ts +2 -2
- package/es/ele-alert/props.d.ts +1 -1
- package/es/ele-app/components/message-body.d.ts +39 -0
- package/es/ele-app/components/message-body.js +92 -0
- package/es/ele-app/el.d.ts +2 -0
- package/es/ele-app/style/message/css-var.scss +0 -4
- package/es/ele-app/style/message/index.scss +199 -77
- package/es/ele-app/style/overwrite/input/index.scss +2 -0
- package/es/ele-app/style/overwrite/message-box/index.scss +31 -0
- package/es/ele-app/style/overwrite/tag/css-var.scss +0 -16
- package/es/ele-app/style/overwrite/tag/index.scss +57 -14
- package/es/ele-app/types.d.ts +6 -1
- package/es/ele-config-provider/components/receiver-view.js +3 -3
- package/es/ele-config-provider/index.d.ts +8 -4
- package/es/ele-config-provider/index.js +19 -5
- package/es/ele-config-provider/props.d.ts +9 -4
- package/es/ele-config-provider/props.js +9 -5
- package/es/ele-config-provider/receiver.js +2 -2
- package/es/ele-config-provider/types.d.ts +22 -1
- package/es/ele-data-table/types.d.ts +2 -0
- package/es/ele-drawer/index.d.ts +2 -2
- package/es/ele-edit-tag/index.d.ts +9 -4
- package/es/ele-edit-tag/index.js +4 -2
- package/es/ele-edit-tag/props.d.ts +3 -1
- package/es/ele-edit-tag/props.js +2 -0
- package/es/ele-edit-tag/style/index.scss +11 -4
- package/es/ele-icon-select/index.d.ts +10 -12
- package/es/ele-icon-select/props.d.ts +1 -1
- package/es/ele-map-picker/index.d.ts +1 -1
- package/es/ele-menus/index.d.ts +2 -2
- package/es/ele-menus/index.js +11 -0
- package/es/ele-modal/index.d.ts +3 -3
- package/es/ele-modal/style/index.scss +2 -0
- package/es/ele-modal/util.d.ts +1 -1
- package/es/ele-modal/util.js +2 -4
- package/es/ele-popconfirm/index.d.ts +3 -3
- package/es/ele-popconfirm/props.d.ts +1 -1
- package/es/ele-popover/index.d.ts +2 -2
- package/es/ele-pro-layout/components/pro-header.d.ts +1 -1
- package/es/ele-pro-layout/components/pro-sidebar.d.ts +1 -1
- package/es/ele-pro-layout/index.js +1 -1
- package/es/ele-pro-layout/types.d.ts +4 -4
- package/es/ele-pro-table/components/table-tools.d.ts +11 -2
- package/es/ele-pro-table/components/table-tools.js +14 -26
- package/es/ele-pro-table/components/tool-column.d.ts +1 -0
- package/es/ele-pro-table/components/tool-export.d.ts +29 -56
- package/es/ele-pro-table/components/tool-export.js +100 -52
- package/es/ele-pro-table/components/tool-print-body-cell.js +50 -6
- package/es/ele-pro-table/components/tool-print-header-cell.js +4 -1
- package/es/ele-pro-table/components/tool-print.d.ts +29 -50
- package/es/ele-pro-table/components/tool-print.js +174 -69
- package/es/ele-pro-table/index.js +59 -50
- package/es/ele-pro-table/style/index.scss +9 -0
- package/es/ele-pro-table/types.d.ts +32 -0
- package/es/ele-pro-table/util.d.ts +18 -3
- package/es/ele-pro-table/util.js +160 -28
- package/es/ele-table/style/index.scss +16 -0
- package/es/ele-tooltip/index.d.ts +3 -3
- package/es/ele-virtual-table/util.d.ts +3 -1
- package/es/ele-virtual-table/util.js +7 -2
- package/es/icons/LoadingOutlined.js +1 -1
- package/es/lang/en_US.js +7 -1
- package/es/lang/zh_CN.js +7 -1
- package/es/lang/zh_TW.js +7 -1
- package/es/style/themes/default.scss +82 -85
- package/es/style/themes/rounded.scss +11 -15
- package/es/utils/core.d.ts +7 -0
- package/es/utils/core.js +16 -2
- package/es/utils/message-box.d.ts +25 -0
- package/es/utils/message-box.js +71 -0
- package/es/utils/message.d.ts +44 -20
- package/es/utils/message.js +220 -37
- package/lib/core-export.cjs +8 -0
- package/lib/core-export.d.ts +1 -0
- package/lib/ele-alert/index.d.ts +2 -2
- package/lib/ele-alert/props.d.ts +1 -1
- package/lib/ele-app/components/message-body.cjs +91 -0
- package/lib/ele-app/components/message-body.d.ts +39 -0
- package/lib/ele-app/el.d.ts +2 -0
- package/lib/ele-app/style/message/css-var.scss +0 -4
- package/lib/ele-app/style/message/index.scss +199 -77
- package/lib/ele-app/style/overwrite/input/index.scss +2 -0
- package/lib/ele-app/style/overwrite/message-box/index.scss +31 -0
- package/lib/ele-app/style/overwrite/tag/css-var.scss +0 -16
- package/lib/ele-app/style/overwrite/tag/index.scss +57 -14
- package/lib/ele-app/types.d.ts +6 -1
- package/lib/ele-config-provider/components/receiver-view.cjs +1 -1
- package/lib/ele-config-provider/index.cjs +18 -4
- package/lib/ele-config-provider/index.d.ts +8 -4
- package/lib/ele-config-provider/props.cjs +9 -5
- package/lib/ele-config-provider/props.d.ts +9 -4
- package/lib/ele-config-provider/receiver.cjs +1 -1
- package/lib/ele-config-provider/types.d.ts +22 -1
- package/lib/ele-data-table/types.d.ts +2 -0
- package/lib/ele-drawer/index.d.ts +2 -2
- package/lib/ele-edit-tag/index.cjs +4 -2
- package/lib/ele-edit-tag/index.d.ts +9 -4
- package/lib/ele-edit-tag/props.cjs +2 -0
- package/lib/ele-edit-tag/props.d.ts +3 -1
- package/lib/ele-edit-tag/style/index.scss +11 -4
- package/lib/ele-icon-select/index.d.ts +10 -12
- package/lib/ele-icon-select/props.d.ts +1 -1
- package/lib/ele-map-picker/index.d.ts +1 -1
- package/lib/ele-menus/index.cjs +11 -0
- package/lib/ele-menus/index.d.ts +2 -2
- package/lib/ele-modal/index.d.ts +3 -3
- package/lib/ele-modal/style/index.scss +2 -0
- package/lib/ele-modal/util.cjs +1 -3
- package/lib/ele-modal/util.d.ts +1 -1
- package/lib/ele-popconfirm/index.d.ts +3 -3
- package/lib/ele-popconfirm/props.d.ts +1 -1
- package/lib/ele-popover/index.d.ts +2 -2
- package/lib/ele-pro-layout/components/pro-header.d.ts +1 -1
- package/lib/ele-pro-layout/components/pro-sidebar.d.ts +1 -1
- package/lib/ele-pro-layout/index.cjs +1 -1
- package/lib/ele-pro-layout/types.d.ts +4 -4
- package/lib/ele-pro-table/components/table-tools.cjs +14 -26
- package/lib/ele-pro-table/components/table-tools.d.ts +11 -2
- package/lib/ele-pro-table/components/tool-column.d.ts +1 -0
- package/lib/ele-pro-table/components/tool-export.cjs +99 -51
- package/lib/ele-pro-table/components/tool-export.d.ts +29 -56
- package/lib/ele-pro-table/components/tool-print-body-cell.cjs +49 -5
- package/lib/ele-pro-table/components/tool-print-header-cell.cjs +4 -1
- package/lib/ele-pro-table/components/tool-print.cjs +172 -67
- package/lib/ele-pro-table/components/tool-print.d.ts +29 -50
- package/lib/ele-pro-table/index.cjs +59 -50
- package/lib/ele-pro-table/style/index.scss +9 -0
- package/lib/ele-pro-table/types.d.ts +32 -0
- package/lib/ele-pro-table/util.cjs +160 -28
- package/lib/ele-pro-table/util.d.ts +18 -3
- package/lib/ele-table/style/index.scss +16 -0
- package/lib/ele-tooltip/index.d.ts +3 -3
- package/lib/ele-virtual-table/util.cjs +7 -2
- package/lib/ele-virtual-table/util.d.ts +3 -1
- package/lib/icons/LoadingOutlined.cjs +1 -1
- package/lib/lang/en_US.cjs +7 -1
- package/lib/lang/zh_CN.cjs +7 -1
- package/lib/lang/zh_TW.cjs +7 -1
- package/lib/style/themes/default.scss +82 -85
- package/lib/style/themes/rounded.scss +11 -15
- package/lib/utils/core.cjs +16 -2
- package/lib/utils/core.d.ts +7 -0
- package/lib/utils/message-box.cjs +71 -0
- package/lib/utils/message-box.d.ts +25 -0
- package/lib/utils/message.cjs +216 -33
- package/lib/utils/message.d.ts +44 -20
- 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 文件名
|
package/es/ele-pro-table/util.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
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
|
-
|
|
454
|
-
});
|
|
566
|
+
}
|
|
455
567
|
const footerData = [];
|
|
456
568
|
if (showSummary && data.length) {
|
|
457
569
|
const footerRowData = [];
|
|
458
|
-
const
|
|
570
|
+
const uSum = getUserSums(summaryMethod, bodyCols, data);
|
|
459
571
|
bodyCols.forEach((col, i) => {
|
|
460
|
-
const { key, dataKey, originalCol: column } = col;
|
|
461
|
-
const
|
|
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
|
-
|
|
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"
|
|
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"
|
|
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
|
-
|
|
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: "
|
|
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: "複製",
|