ele-admin-plus 1.1.9-beta.8 → 1.1.9-beta.9

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 (135) hide show
  1. package/es/ele-app/el.d.ts +6 -1
  2. package/es/ele-app/plus.d.ts +9 -0
  3. package/es/ele-config-provider/index.d.ts +2 -2
  4. package/es/ele-config-provider/props.d.ts +3 -3
  5. package/es/ele-config-provider/props.js +2 -2
  6. package/es/ele-config-provider/types.d.ts +2 -0
  7. package/es/ele-data-table/index.d.ts +2 -2
  8. package/es/ele-data-table/index.js +8 -0
  9. package/es/ele-data-table/style/index.scss +4 -0
  10. package/es/ele-data-table/types.d.ts +10 -0
  11. package/es/ele-data-table/util.d.ts +5 -0
  12. package/es/ele-data-table/util.js +14 -0
  13. package/es/ele-modal/style/index.scss +18 -29
  14. package/es/ele-pagination/index.d.ts +4 -2
  15. package/es/ele-pagination/index.js +17 -5
  16. package/es/ele-pagination/props.d.ts +3 -2
  17. package/es/ele-pagination/props.js +2 -0
  18. package/es/ele-pagination/style/index.scss +9 -0
  19. package/es/ele-pagination/types.d.ts +6 -1
  20. package/es/ele-printer/util.js +1 -1
  21. package/es/ele-pro-table/components/table-tools.d.ts +99 -8
  22. package/es/ele-pro-table/components/table-tools.js +125 -8
  23. package/es/ele-pro-table/components/tool-column-list.js +1 -0
  24. package/es/ele-pro-table/components/tool-column.js +6 -2
  25. package/es/ele-pro-table/components/tool-export.d.ts +457 -0
  26. package/es/ele-pro-table/components/tool-export.js +451 -0
  27. package/es/ele-pro-table/components/tool-print-body-cell.d.ts +34 -0
  28. package/es/ele-pro-table/components/tool-print-body-cell.js +88 -0
  29. package/es/ele-pro-table/components/tool-print-header-cell.d.ts +34 -0
  30. package/es/ele-pro-table/components/tool-print-header-cell.js +88 -0
  31. package/es/ele-pro-table/components/tool-print.d.ts +899 -0
  32. package/es/ele-pro-table/components/tool-print.js +547 -0
  33. package/es/ele-pro-table/index.d.ts +28 -9
  34. package/es/ele-pro-table/index.js +56 -8
  35. package/es/ele-pro-table/props.d.ts +11 -5
  36. package/es/ele-pro-table/props.js +6 -2
  37. package/es/ele-pro-table/style/index.js +9 -0
  38. package/es/ele-pro-table/style/index.scss +33 -5
  39. package/es/ele-pro-table/types.d.ts +147 -5
  40. package/es/ele-pro-table/util.d.ts +47 -3
  41. package/es/ele-pro-table/util.js +119 -13
  42. package/es/ele-table/index.d.ts +3 -0
  43. package/es/ele-table/index.js +2 -1
  44. package/es/ele-table/props.d.ts +2 -0
  45. package/es/ele-table/props.js +3 -1
  46. package/es/ele-table/style/index.scss +35 -0
  47. package/es/ele-tool/index.d.ts +1 -1
  48. package/es/ele-tool/index.js +2 -4
  49. package/es/ele-tool/props.d.ts +7 -0
  50. package/es/ele-tool/props.js +5 -0
  51. package/es/ele-virtual-table/components/body-cell.d.ts +0 -1
  52. package/es/ele-virtual-table/components/body-cell.js +32 -47
  53. package/es/ele-virtual-table/components/footer-row.d.ts +2 -2
  54. package/es/ele-virtual-table/components/footer-row.js +15 -10
  55. package/es/ele-virtual-table/types.d.ts +15 -1
  56. package/es/ele-virtual-table/util.d.ts +26 -3
  57. package/es/ele-virtual-table/util.js +44 -0
  58. package/es/icons/PrinterOutlined.d.ts +2 -0
  59. package/es/icons/PrinterOutlined.js +29 -0
  60. package/es/icons/VerticalLeftOutlined.js +2 -2
  61. package/es/icons/VerticalRightOutlined.js +2 -2
  62. package/es/icons/index.d.ts +1 -0
  63. package/es/icons/index.js +58 -56
  64. package/es/lang/en_US.js +13 -2
  65. package/es/lang/zh_CN.js +13 -2
  66. package/es/lang/zh_TW.js +12 -1
  67. package/es/utils/resolvers.js +2 -2
  68. package/lib/ele-app/el.d.ts +6 -1
  69. package/lib/ele-app/plus.d.ts +9 -0
  70. package/lib/ele-config-provider/index.d.ts +2 -2
  71. package/lib/ele-config-provider/props.cjs +2 -2
  72. package/lib/ele-config-provider/props.d.ts +3 -3
  73. package/lib/ele-config-provider/types.d.ts +2 -0
  74. package/lib/ele-data-table/index.cjs +8 -0
  75. package/lib/ele-data-table/index.d.ts +2 -2
  76. package/lib/ele-data-table/style/index.scss +4 -0
  77. package/lib/ele-data-table/types.d.ts +10 -0
  78. package/lib/ele-data-table/util.cjs +14 -0
  79. package/lib/ele-data-table/util.d.ts +5 -0
  80. package/lib/ele-modal/style/index.scss +18 -29
  81. package/lib/ele-pagination/index.cjs +16 -4
  82. package/lib/ele-pagination/index.d.ts +4 -2
  83. package/lib/ele-pagination/props.cjs +2 -0
  84. package/lib/ele-pagination/props.d.ts +3 -2
  85. package/lib/ele-pagination/style/index.scss +9 -0
  86. package/lib/ele-pagination/types.d.ts +6 -1
  87. package/lib/ele-printer/util.cjs +1 -1
  88. package/lib/ele-pro-table/components/table-tools.cjs +124 -7
  89. package/lib/ele-pro-table/components/table-tools.d.ts +99 -8
  90. package/lib/ele-pro-table/components/tool-column-list.cjs +1 -0
  91. package/lib/ele-pro-table/components/tool-column.cjs +6 -2
  92. package/lib/ele-pro-table/components/tool-export.cjs +450 -0
  93. package/lib/ele-pro-table/components/tool-export.d.ts +457 -0
  94. package/lib/ele-pro-table/components/tool-print-body-cell.cjs +87 -0
  95. package/lib/ele-pro-table/components/tool-print-body-cell.d.ts +34 -0
  96. package/lib/ele-pro-table/components/tool-print-header-cell.cjs +87 -0
  97. package/lib/ele-pro-table/components/tool-print-header-cell.d.ts +34 -0
  98. package/lib/ele-pro-table/components/tool-print.cjs +546 -0
  99. package/lib/ele-pro-table/components/tool-print.d.ts +899 -0
  100. package/lib/ele-pro-table/index.cjs +56 -8
  101. package/lib/ele-pro-table/index.d.ts +28 -9
  102. package/lib/ele-pro-table/props.cjs +6 -2
  103. package/lib/ele-pro-table/props.d.ts +11 -5
  104. package/lib/ele-pro-table/style/index.cjs +9 -0
  105. package/lib/ele-pro-table/style/index.scss +33 -5
  106. package/lib/ele-pro-table/types.d.ts +147 -5
  107. package/lib/ele-pro-table/util.cjs +119 -13
  108. package/lib/ele-pro-table/util.d.ts +47 -3
  109. package/lib/ele-table/index.cjs +2 -1
  110. package/lib/ele-table/index.d.ts +3 -0
  111. package/lib/ele-table/props.cjs +3 -1
  112. package/lib/ele-table/props.d.ts +2 -0
  113. package/lib/ele-table/style/index.scss +35 -0
  114. package/lib/ele-tool/index.cjs +1 -3
  115. package/lib/ele-tool/index.d.ts +1 -1
  116. package/lib/ele-tool/props.cjs +5 -0
  117. package/lib/ele-tool/props.d.ts +7 -0
  118. package/lib/ele-virtual-table/components/body-cell.cjs +31 -46
  119. package/lib/ele-virtual-table/components/body-cell.d.ts +0 -1
  120. package/lib/ele-virtual-table/components/footer-row.cjs +13 -8
  121. package/lib/ele-virtual-table/components/footer-row.d.ts +2 -2
  122. package/lib/ele-virtual-table/types.d.ts +15 -1
  123. package/lib/ele-virtual-table/util.cjs +44 -0
  124. package/lib/ele-virtual-table/util.d.ts +26 -3
  125. package/lib/icons/PrinterOutlined.cjs +28 -0
  126. package/lib/icons/PrinterOutlined.d.ts +2 -0
  127. package/lib/icons/VerticalLeftOutlined.cjs +2 -2
  128. package/lib/icons/VerticalRightOutlined.cjs +2 -2
  129. package/lib/icons/index.cjs +2 -0
  130. package/lib/icons/index.d.ts +1 -0
  131. package/lib/lang/en_US.cjs +13 -2
  132. package/lib/lang/zh_CN.cjs +13 -2
  133. package/lib/lang/zh_TW.cjs +12 -1
  134. package/lib/utils/resolvers.cjs +2 -2
  135. package/package.json +1 -1
@@ -107,9 +107,41 @@ const _sfc_main = vue.defineComponent({
107
107
  }
108
108
  return tools || [];
109
109
  });
110
- const rootProps = vue.computed(() => {
110
+ const toolExportConfig = vue.computed(() => {
111
+ const globalExportConfig = globalProps.value.exportConfig || {};
112
+ const userExportConfig = props2.exportConfig || {};
113
+ return {
114
+ ...globalExportConfig,
115
+ ...userExportConfig,
116
+ modalProps: {
117
+ ...globalExportConfig.modalProps || {},
118
+ ...userExportConfig.modalProps || {}
119
+ }
120
+ };
121
+ });
122
+ const toolPrintConfig = vue.computed(() => {
123
+ const globalPrintConfig = globalProps.value.printConfig || {};
124
+ const userPrintConfig = props2.printConfig || {};
125
+ return {
126
+ ...globalPrintConfig,
127
+ ...userPrintConfig,
128
+ modalProps: {
129
+ ...globalPrintConfig.modalProps || {},
130
+ ...userPrintConfig.modalProps || {}
131
+ },
132
+ printerProps: {
133
+ ...globalPrintConfig.printerProps || {},
134
+ ...userPrintConfig.printerProps || {}
135
+ },
136
+ tableProps: {
137
+ ...globalPrintConfig.tableProps || {},
138
+ ...userPrintConfig.tableProps || {}
139
+ }
140
+ };
141
+ });
142
+ const loadingProps = vue.computed(() => {
111
143
  const zIndex = props2.maximizedIndex ?? globalProps.value.maximizedIndex;
112
- const option = {
144
+ return {
113
145
  ...props2.loadingProps || {},
114
146
  loading: tableLoading.value,
115
147
  class: [
@@ -119,7 +151,6 @@ const _sfc_main = vue.defineComponent({
119
151
  ],
120
152
  style: tableMaximized.value ? { zIndex } : void 0
121
153
  };
122
- return option;
123
154
  });
124
155
  const reload = (option, parent, resolve) => {
125
156
  if (option) {
@@ -213,7 +244,7 @@ const _sfc_main = vue.defineComponent({
213
244
  if (resolve) {
214
245
  resolve(data);
215
246
  } else {
216
- if (util$1.isAutoAmend(props2.pagination, globalProps.value.pagination) && !data.length && total && tablePage.value && tableLimit.value) {
247
+ if (util$1.isAutoAmend(props2.pagination, globalProps.value.pagination) && !data.length && total && "*" !== total && tablePage.value && tableLimit.value) {
217
248
  const maxPage = Math.ceil(total / tableLimit.value);
218
249
  if (maxPage && tablePage.value > maxPage) {
219
250
  tablePage.value = maxPage;
@@ -433,13 +464,16 @@ const _sfc_main = vue.defineComponent({
433
464
  return {
434
465
  ...methods,
435
466
  tableViewRef,
467
+ tableData,
436
468
  tableSize,
437
469
  tableMaximized,
438
470
  tableIndex,
439
471
  paginationProps,
440
472
  tableProps,
441
473
  toolNames,
442
- rootProps,
474
+ toolExportConfig,
475
+ toolPrintConfig,
476
+ loadingProps,
443
477
  onRefresh,
444
478
  onSizeChange,
445
479
  onColumnsChange,
@@ -470,21 +504,35 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
470
504
  const _component_EleDataTable = vue.resolveComponent("EleDataTable");
471
505
  const _component_ElePagination = vue.resolveComponent("ElePagination");
472
506
  const _component_EleLoading = vue.resolveComponent("EleLoading");
473
- return vue.openBlock(), vue.createBlock(_component_EleLoading, vue.normalizeProps(vue.guardReactiveProps(_ctx.rootProps)), {
507
+ return vue.openBlock(), vue.createBlock(_component_EleLoading, vue.normalizeProps(vue.guardReactiveProps(_ctx.loadingProps)), {
474
508
  default: vue.withCtx(() => [
475
509
  _ctx.toolbar ? (vue.openBlock(), vue.createBlock(_component_EleToolbar, vue.normalizeProps(vue.mergeProps({ key: 0 }, _ctx.toolbar === true ? {} : _ctx.toolbar)), {
476
510
  tools: vue.withCtx(() => [
477
511
  vue.renderSlot(_ctx.$slots, "tools"),
478
512
  _ctx.toolNames && _ctx.toolNames.length ? (vue.openBlock(), vue.createBlock(_component_TableTools, {
479
513
  key: 0,
514
+ tools: _ctx.toolNames,
480
515
  size: _ctx.tableSize,
481
516
  columns: _ctx.columns,
482
- tools: _ctx.toolNames,
483
517
  columnSortable: _ctx.columnSortable,
484
518
  columnFixed: _ctx.columnFixed,
485
519
  maximized: _ctx.tableMaximized,
486
520
  cacheKey: _ctx.cacheKey,
487
521
  locale: _ctx.locale,
522
+ selections: _ctx.selections,
523
+ pageData: _ctx.tableData,
524
+ spanMethod: _ctx.spanMethod,
525
+ showSummary: _ctx.showSummary,
526
+ sumText: _ctx.sumText,
527
+ summaryMethod: _ctx.summaryMethod,
528
+ cellStyle: _ctx.cellStyle,
529
+ cellClassName: _ctx.cellClassName,
530
+ headerCellStyle: _ctx.headerCellStyle,
531
+ headerCellClassName: _ctx.headerCellClassName,
532
+ pageIndex: _ctx.tableIndex,
533
+ fetch: _ctx.fetch,
534
+ exportConfig: _ctx.toolExportConfig,
535
+ printConfig: _ctx.toolPrintConfig,
488
536
  onReload: _ctx.onRefresh,
489
537
  "onUpdate:size": _ctx.onSizeChange,
490
538
  "onUpdate:columns": _ctx.onColumnsChange,
@@ -507,7 +555,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
507
555
  ])
508
556
  };
509
557
  })
510
- ]), 1032, ["size", "columns", "tools", "columnSortable", "columnFixed", "maximized", "cacheKey", "locale", "onReload", "onUpdate:size", "onUpdate:columns", "onUpdate:maximized"])) : vue.createCommentVNode("", true)
558
+ ]), 1032, ["tools", "size", "columns", "columnSortable", "columnFixed", "maximized", "cacheKey", "locale", "selections", "pageData", "spanMethod", "showSummary", "sumText", "summaryMethod", "cellStyle", "cellClassName", "headerCellStyle", "headerCellClassName", "pageIndex", "fetch", "exportConfig", "printConfig", "onReload", "onUpdate:size", "onUpdate:columns", "onUpdate:maximized"])) : vue.createCommentVNode("", true)
511
559
  ]),
512
560
  default: vue.withCtx(() => [
513
561
  vue.renderSlot(_ctx.$slots, "toolbar")
@@ -1,7 +1,7 @@
1
1
  import type { Ref } from 'vue';
2
2
  import type { EleLoadingProps, ElePaginationProps, EleDataTableProps } from '../ele-app/plus';
3
3
  import type { DataItem, Columns, Sorter, Filter, TableSize } from '../ele-data-table/types';
4
- import type { ReloadFunction, DoneParams, FetchCallback, TableViewInstance } from './types';
4
+ import type { ReloadFunction, DoneParams, FetchFunction, TableViewInstance, ExportConfig, PrintConfig } from './types';
5
5
  declare const _default: import("vue").DefineComponent<{
6
6
  rowKey: {
7
7
  type: import("vue").PropType<string | ((row: DataItem) => string) | undefined>;
@@ -54,7 +54,9 @@ declare const _default: import("vue").DefineComponent<{
54
54
  cacheKey: StringConstructor;
55
55
  virtual: BooleanConstructor;
56
56
  rowHeight: NumberConstructor;
57
- locale: import("vue").PropType<Partial<import("./types").TableLocale>>; /** 表格组件 */
57
+ locale: import("vue").PropType<Partial<import("./types").TableLocale>>;
58
+ exportConfig: import("vue").PropType<ExportConfig>; /** 表格组件 */
59
+ printConfig: import("vue").PropType<PrintConfig>;
58
60
  width: (StringConstructor | NumberConstructor)[];
59
61
  height: (StringConstructor | NumberConstructor)[];
60
62
  size: {
@@ -168,13 +170,28 @@ declare const _default: import("vue").DefineComponent<{
168
170
  selectedRowKeys: import("vue").PropType<import("../ele-data-table/types").DataKey[]>;
169
171
  }, {
170
172
  tableViewRef: Ref<TableViewInstance>;
173
+ tableData: Ref<{
174
+ [x: string]: any;
175
+ [x: number]: any;
176
+ [x: symbol]: any;
177
+ children?: any[] | undefined;
178
+ _isMock?: boolean | undefined;
179
+ _rowKey?: import("../ele-data-table/types").DataKey | null | undefined;
180
+ _rowIndex?: number | undefined;
181
+ _rowDisabled?: boolean | undefined;
182
+ _isExpandRow?: boolean | undefined;
183
+ _expandParent?: any | undefined;
184
+ _expandParantIndex?: number | undefined;
185
+ }[]>;
171
186
  tableSize: Ref<"" | "default" | "small" | "large" | undefined>;
172
187
  tableMaximized: Ref<boolean>;
173
188
  tableIndex: import("vue").ComputedRef<number>;
174
189
  paginationProps: import("vue").ComputedRef<ElePaginationProps | null>;
175
190
  tableProps: import("vue").ComputedRef<EleDataTableProps>;
176
191
  toolNames: import("vue").ComputedRef<string[]>;
177
- rootProps: import("vue").ComputedRef<EleLoadingProps>;
192
+ toolExportConfig: import("vue").ComputedRef<ExportConfig>;
193
+ toolPrintConfig: import("vue").ComputedRef<PrintConfig>;
194
+ loadingProps: import("vue").ComputedRef<EleLoadingProps>;
178
195
  onRefresh: () => void;
179
196
  onSizeChange: (size: TableSize) => void;
180
197
  onColumnsChange: (columns: Columns) => void;
@@ -187,7 +204,7 @@ declare const _default: import("vue").DefineComponent<{
187
204
  getData: () => DataItem[];
188
205
  setData: (data: DataItem[]) => void;
189
206
  goPageByRowKey: (key: unknown) => void;
190
- fetch: (callback: FetchCallback) => void;
207
+ fetch: FetchFunction;
191
208
  clearSelection: () => void;
192
209
  getSelectionRows: () => DataItem[] | undefined;
193
210
  toggleRowSelection: (row: DataItem, selected?: boolean | undefined) => void;
@@ -200,12 +217,12 @@ declare const _default: import("vue").DefineComponent<{
200
217
  sort: (prop: string, order: string) => void;
201
218
  scrollTo: (options: number | ScrollToOptions, yCoord?: number | undefined) => void;
202
219
  setScrollTop: (top?: number | undefined) => void;
203
- setScrollLeft: (left?: number | undefined) => void;
220
+ setScrollLeft: (left?: number | undefined) => void; /** 表格组件 */
204
221
  setCurrentRowKey: (key?: import("../ele-data-table/types").DataKey | null | undefined) => void;
205
222
  getCurrentRow: () => DataItem | undefined;
206
223
  setSelectedRows: (rows?: DataItem[] | undefined) => void;
207
224
  setSelectedRowKeys: (keys?: import("../ele-data-table/types").DataKey[] | undefined, rows?: DataItem[] | undefined) => void;
208
- toggleRowExpansionAll: (expanded?: boolean | undefined) => void; /** 数据请求状态 */
225
+ toggleRowExpansionAll: (expanded?: boolean | undefined) => void;
209
226
  updateSelectedAndChecked: () => void;
210
227
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
211
228
  done: (_result: DoneParams<DataItem>, _parent?: DataItem | undefined) => boolean;
@@ -230,9 +247,9 @@ declare const _default: import("vue").DefineComponent<{
230
247
  headerContextmenu: (_column: import("./types").Column, _e: MouseEvent) => boolean;
231
248
  sortChange: (_sorter: Sorter) => boolean;
232
249
  filterChange: (_filter: Filter) => boolean;
233
- currentChange: (_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => boolean; /** 数据总数量 */
250
+ currentChange: (_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => boolean;
234
251
  headerDragend: (_width: number, _old: number, _column: import("./types").Column, _e: MouseEvent) => boolean;
235
- expandChange: (_row: DataItem, _expanded: boolean) => boolean;
252
+ expandChange: (_row: DataItem, _expanded: boolean) => boolean; /** 数据请求状态 */
236
253
  'update:currentRowKey': (_currentRowKey?: import("../ele-data-table/types").DataKey | undefined) => boolean;
237
254
  'update:selectedRowKeys': (_selectedRowKeys?: import("../ele-data-table/types").DataKey[] | undefined) => boolean;
238
255
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -287,7 +304,9 @@ declare const _default: import("vue").DefineComponent<{
287
304
  cacheKey: StringConstructor;
288
305
  virtual: BooleanConstructor;
289
306
  rowHeight: NumberConstructor;
290
- locale: import("vue").PropType<Partial<import("./types").TableLocale>>; /** 表格组件 */
307
+ locale: import("vue").PropType<Partial<import("./types").TableLocale>>;
308
+ exportConfig: import("vue").PropType<ExportConfig>; /** 表格组件 */
309
+ printConfig: import("vue").PropType<PrintConfig>;
291
310
  width: (StringConstructor | NumberConstructor)[];
292
311
  height: (StringConstructor | NumberConstructor)[];
293
312
  size: {
@@ -80,10 +80,14 @@ const proTableProps = {
80
80
  cacheKey: String,
81
81
  /** 是否虚拟滚动 */
82
82
  virtual: Boolean,
83
- /** 行高 */
83
+ /** 虚拟滚动表格行高 */
84
84
  rowHeight: Number,
85
85
  /** 国际化 */
86
- locale: Object
86
+ locale: Object,
87
+ /** 导出配置 */
88
+ exportConfig: Object,
89
+ /** 打印配置 */
90
+ printConfig: Object
87
91
  };
88
92
  const proTableEmits = {
89
93
  ...props.dataTableEmits,
@@ -1,7 +1,7 @@
1
1
  import type { PropType, ExtractPropTypes } from 'vue';
2
2
  import type { EleLoadingProps, EleToolbarProps } from '../ele-app/plus';
3
3
  import type { DataItem, Columns, TableSize } from '../ele-data-table/types';
4
- import type { Where, Datasource, RequestOption, ResponseOption, ParseData, DoneParams, TablePagination, TableLocale } from './types';
4
+ import type { Where, Datasource, RequestOption, ResponseOption, ParseData, DoneParams, TablePagination, TableLocale, ExportConfig, PrintConfig } from './types';
5
5
  /**
6
6
  * 属性
7
7
  */
@@ -78,10 +78,14 @@ export declare const proTableProps: {
78
78
  cacheKey: StringConstructor;
79
79
  /** 是否虚拟滚动 */
80
80
  virtual: BooleanConstructor;
81
- /** 行高 */
81
+ /** 虚拟滚动表格行高 */
82
82
  rowHeight: NumberConstructor;
83
83
  /** 国际化 */
84
84
  locale: PropType<Partial<TableLocale>>;
85
+ /** 导出配置 */
86
+ exportConfig: PropType<ExportConfig>;
87
+ /** 打印配置 */
88
+ printConfig: PropType<PrintConfig>;
85
89
  width: (StringConstructor | NumberConstructor)[];
86
90
  height: (StringConstructor | NumberConstructor)[];
87
91
  size: {
@@ -180,10 +184,11 @@ export declare const proTableProps: {
180
184
  };
181
185
  slotNormalize: {
182
186
  type: BooleanConstructor;
183
- default: boolean; /** 自定义请求参数名称 */
187
+ default: boolean;
184
188
  };
185
189
  bottomLine: {
186
190
  type: BooleanConstructor;
191
+ /** 自定义响应参数名称 */
187
192
  default: boolean;
188
193
  };
189
194
  emptyProps: {
@@ -223,14 +228,15 @@ export declare const proTableEmits: {
223
228
  cellContextmenu: (_row: DataItem, _column: import("./types").Column, _cell: HTMLTableCellElement, _e: MouseEvent) => boolean;
224
229
  rowClick: (_row: DataItem, _column: import("./types").Column, _e: MouseEvent) => boolean;
225
230
  rowContextmenu: (_row: DataItem, _column: import("./types").Column, _e: MouseEvent) => boolean;
231
+ /** 导出配置 */
226
232
  rowDblclick: (_row: DataItem, _column: import("./types").Column, _e: MouseEvent) => boolean;
227
233
  headerClick: (_column: import("./types").Column, _e: MouseEvent) => boolean;
228
234
  headerContextmenu: (_column: import("./types").Column, _e: MouseEvent) => boolean;
229
235
  sortChange: (_sorter: import("./types").Sorter) => boolean;
230
236
  filterChange: (_filter: import("./types").Filter) => boolean;
231
237
  currentChange: (_current?: DataItem | null | undefined, _old?: DataItem | null | undefined) => boolean;
232
- headerDragend: (_width: number, _old: number, _column: import("./types").Column, _e: MouseEvent) => boolean; /** 表格最大化切换事件 */
238
+ headerDragend: (_width: number, _old: number, _column: import("./types").Column, _e: MouseEvent) => boolean;
233
239
  expandChange: (_row: DataItem, _expanded: boolean) => boolean;
234
240
  'update:currentRowKey': (_currentRowKey?: import("../ele-data-table/types").DataKey | undefined) => boolean;
235
- 'update:selectedRowKeys': (_selectedRowKeys?: import("../ele-data-table/types").DataKey[] | undefined) => boolean;
241
+ 'update:selectedRowKeys': (_selectedRowKeys?: import("../ele-data-table/types").DataKey[] | undefined) => boolean; /** 数组数据源时刷新按钮点击事件 */
236
242
  };
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
  require("element-plus/lib/components/checkbox/style/index");
3
3
  require("element-plus/lib/components/icon/style/index");
4
+ require("element-plus/lib/components/form/style/index");
5
+ require("element-plus/lib/components/form-item/style/index");
6
+ require("element-plus/lib/components/input/style/index");
7
+ require("element-plus/lib/components/select/style/index");
8
+ require("element-plus/lib/components/option/style/index");
9
+ require("element-plus/lib/components/button/style/index");
4
10
  require("../../ele-tooltip/style/index");
5
11
  require("../../ele-dropdown/style/index");
6
12
  require("../../ele-tool/style/index");
@@ -9,4 +15,7 @@ require("../../ele-loading/style/index");
9
15
  require("../../ele-pagination/style/index");
10
16
  require("../../ele-data-table/style/index");
11
17
  require("../../ele-virtual-table/style/index");
18
+ require("../../ele-modal/style/index");
19
+ require("../../ele-printer/style/index");
20
+ require("../../ele-table/style/index");
12
21
  require("./index.scss");
@@ -107,7 +107,12 @@
107
107
  }
108
108
 
109
109
  /* 列配置 */
110
- .ele-tool-column.ele-popover {
110
+ .ele-tool-column-popover.ele-popover {
111
+ width: eleVar('tool-column', 'width');
112
+ max-width: 100%;
113
+ }
114
+
115
+ .ele-tool-column {
111
116
  width: eleVar('tool-column', 'width');
112
117
  max-width: 100%;
113
118
  }
@@ -131,7 +136,8 @@
131
136
  }
132
137
  }
133
138
 
134
- .ele-tool-column.ele-popover.ele-popper.el-popper {
139
+ .ele-tool-column .ele-tool-column-item .ele-tool-column-item-body,
140
+ .ele-tool-column .ele-tool-column-header .ele-tool-column-label {
135
141
  .el-checkbox {
136
142
  height: eleVar('tool-column', 'item-height');
137
143
  line-height: eleVar('tool-column', 'item-height');
@@ -153,7 +159,7 @@
153
159
  box-sizing: border-box;
154
160
  }
155
161
 
156
- .ele-popover-body > .ele-tool-column-list {
162
+ .ele-tool-column > .ele-tool-column-list {
157
163
  padding: eleVar('tool-column', 'body-padding');
158
164
  max-height: eleVar('tool-column', 'max-height');
159
165
  box-sizing: border-box;
@@ -182,6 +188,7 @@
182
188
 
183
189
  &.sortable-chosen {
184
190
  background: eleVar('tool-column', 'item-hover-bg');
191
+ opacity: 1 !important;
185
192
 
186
193
  & > .ele-tool-column-item-body {
187
194
  background: none;
@@ -189,7 +196,7 @@
189
196
  }
190
197
 
191
198
  &.sortable-ghost {
192
- opacity: 0;
199
+ opacity: 0 !important;
193
200
  }
194
201
 
195
202
  & > .ele-tool-column-list {
@@ -230,9 +237,13 @@
230
237
  color: eleVar('tool-column', 'btn-active-color');
231
238
  background: eleVar('tool-column', 'btn-active-bg');
232
239
  }
240
+
241
+ & > .el-icon > svg {
242
+ stroke-width: 5;
243
+ }
233
244
  }
234
245
 
235
- .ele-popover-body.is-sortable {
246
+ .ele-tool-column.is-sortable {
236
247
  .ele-tool-column-item-body {
237
248
  padding-left: 6px;
238
249
  }
@@ -241,3 +252,20 @@
241
252
  padding-left: calc(22px - #{eleVar('tool-column', 'item-padding')});
242
253
  }
243
254
  }
255
+
256
+ /* 导出和打印的列选择 */
257
+ .ele-tool-export-form,
258
+ .ele-tool-print-form {
259
+ .ele-tool-column {
260
+ border: 1px solid elVar('border-color', 'light');
261
+ border-radius: elVar('border-radius', 'base');
262
+ line-height: normal;
263
+ width: 100%;
264
+ }
265
+
266
+ .ele-tool-column-header {
267
+ background: elVar('fill-color', 'lighter');
268
+ border-top-left-radius: elVar('border-radius', 'base');
269
+ border-top-right-radius: elVar('border-radius', 'base');
270
+ }
271
+ }
@@ -1,8 +1,12 @@
1
1
  import type {
2
2
  EleDataTableInstance,
3
3
  EleVirtualTableInstance,
4
- ElePaginationProps
4
+ ElePaginationProps,
5
+ EleModalProps,
6
+ ElePrinterProps,
7
+ EleTableProps
5
8
  } from '../ele-app/plus';
9
+ import type { PaginationTotal } from '../ele-pagination/types';
6
10
  import type {
7
11
  DataItem,
8
12
  Column,
@@ -13,6 +17,7 @@ import type {
13
17
  TableSize,
14
18
  ResolveFunction
15
19
  } from '../ele-data-table/types';
20
+ import type { BodyColumns } from '../ele-virtual-table/types';
16
21
  export type {
17
22
  DataItem,
18
23
  Column,
@@ -137,7 +142,7 @@ export interface ResponseOption {
137
142
  }
138
143
 
139
144
  /**
140
- * 响应数据解析
145
+ * 响应数据解析方法
141
146
  */
142
147
  export type ParseData = (data: unknown) => DatasourceResult;
143
148
 
@@ -159,10 +164,10 @@ export interface OrderItem {
159
164
  export interface DoneParams<T> {
160
165
  /** 当前页数据 */
161
166
  data: T[];
167
+ /** 总数量 */
168
+ total?: PaginationTotal;
162
169
  /** 当前页码 */
163
170
  page?: number;
164
- /** 总数量 */
165
- total?: number;
166
171
  /** 数据源原始数据 */
167
172
  response?: any;
168
173
  }
@@ -188,7 +193,14 @@ export interface TablePagination extends ElePaginationProps {
188
193
  /**
189
194
  * 内置工具按钮
190
195
  */
191
- export type TableTool = 'reload' | 'size' | 'columns' | 'maximized' | string;
196
+ export type TableTool =
197
+ | 'reload'
198
+ | 'size'
199
+ | 'columns'
200
+ | 'maximized'
201
+ | 'export'
202
+ | 'print'
203
+ | string;
192
204
 
193
205
  /**
194
206
  * 列配置
@@ -211,6 +223,11 @@ export interface ColItem {
211
223
  */
212
224
  export type FetchCallback = (options: DatasourceParams) => void;
213
225
 
226
+ /**
227
+ * 请求方法
228
+ */
229
+ export type FetchFunction = (callback: FetchCallback) => void;
230
+
214
231
  /**
215
232
  * 前端分页排序方法返回结果
216
233
  */
@@ -258,6 +275,120 @@ export type TableViewInstance =
258
275
  | EleVirtualTableInstance
259
276
  | null;
260
277
 
278
+ /**
279
+ * 导出的数据来源类型
280
+ */
281
+ export type ExportDataType = 'selections' | 'pageData' | 'data';
282
+
283
+ /**
284
+ * 导出的数据每一项
285
+ */
286
+ export interface ExportDataItem {
287
+ /** 唯一值 */
288
+ key?: string;
289
+ /** 行数据 */
290
+ row?: DataItem;
291
+ /** 行索引 */
292
+ index: number;
293
+ /** 列配置 */
294
+ column?: Column;
295
+ /** 文本 */
296
+ text?: string;
297
+ /** 所占列数 */
298
+ colspan?: number;
299
+ /** 所占行数 */
300
+ rowspan?: number;
301
+ }
302
+
303
+ /**
304
+ * 导出数据封装返回结果
305
+ */
306
+ export interface ExportDataResult {
307
+ /** 表头数据 */
308
+ headerData: ExportDataItem[][];
309
+ /** 主体数据 */
310
+ bodyData: ExportDataItem[][];
311
+ /** 表尾数据 */
312
+ footerData: ExportDataItem[][];
313
+ /** 主体列配置 */
314
+ bodyCols: BodyColumns;
315
+ }
316
+
317
+ /**
318
+ * 导出数据前的钩子函数的参数
319
+ */
320
+ export interface BeforeExportParams {
321
+ /** 导出的数据 */
322
+ data: DataItem[];
323
+ /** 导出的列配置 */
324
+ columns?: Columns;
325
+ /** 导出的表头数据封装 */
326
+ headerData: ExportDataItem[][];
327
+ /** 导出的主体数据封装 */
328
+ bodyData: ExportDataItem[][];
329
+ /** 导出的页脚数据封装 */
330
+ footerData: ExportDataItem[][];
331
+ /** 主体列配置 */
332
+ bodyCols: BodyColumns;
333
+ /** 文件名 */
334
+ fileName?: string;
335
+ /** 关闭确定按钮的加载状态 */
336
+ hideLoading: () => void;
337
+ /** 关闭弹窗 */
338
+ closeModal: () => void;
339
+ }
340
+
341
+ /**
342
+ * 导出数据前的钩子函数
343
+ */
344
+ export type BeforeExport = (params: BeforeExportParams) => boolean | void;
345
+
346
+ /**
347
+ * 导出配置
348
+ */
349
+ export interface ExportConfig {
350
+ /** 弹窗参数 */
351
+ modalProps?: EleModalProps;
352
+ /** 表格全部数据 */
353
+ datasource?: Datasource;
354
+ /** 导出前的钩子函数 */
355
+ beforeExport?: BeforeExport;
356
+ /** 默认数据类型 */
357
+ dataType?: ExportDataType;
358
+ /** 默认文件名 */
359
+ fileName?: string;
360
+ }
361
+
362
+ /**
363
+ * 打印配置
364
+ */
365
+ export interface PrintConfig {
366
+ /** 弹窗参数 */
367
+ modalProps?: EleModalProps;
368
+ /** 打印组件参数 */
369
+ printerProps?: ElePrinterProps;
370
+ /** 打印表格参数 */
371
+ tableProps?: EleTableProps;
372
+ /** 表格全部数据 */
373
+ datasource?: Datasource;
374
+ /** 打印前的钩子函数 */
375
+ beforePrint?: BeforeExport;
376
+ /** 默认数据类型 */
377
+ dataType?: ExportDataType;
378
+ }
379
+
380
+ /**
381
+ * 打印参数
382
+ */
383
+ export interface TablePrintOptions extends ExportDataResult {
384
+ /** 是否开始打印 */
385
+ printing: boolean;
386
+ /** 是否有表头 */
387
+ hasHeader: boolean;
388
+ /** 是否有表尾 */
389
+ hasFooter: boolean;
390
+ }
391
+
261
392
  /**
262
393
  * 国际化
263
394
  */
@@ -266,6 +397,8 @@ export interface TableLocale {
266
397
  sizes: string;
267
398
  columns: string;
268
399
  maximized: string;
400
+ export: string;
401
+ print: string;
269
402
  sizeLarge: string;
270
403
  sizeDefault: string;
271
404
  sizeSmall: string;
@@ -274,4 +407,13 @@ export interface TableLocale {
274
407
  columnUntitled: string;
275
408
  columnFixedLeft: string;
276
409
  columnFixedRight: string;
410
+ exportOk: string;
411
+ exportCancel: string;
412
+ exportFileName: string;
413
+ exportFileNamePlaceholder: string;
414
+ exportSelectData: string;
415
+ exportSelectColumn: string;
416
+ exportDataTypePage: string;
417
+ exportDataTypeSelected: string;
418
+ exportDataTypeAll: string;
277
419
  }