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
@@ -22,6 +22,7 @@
22
22
  position: relative;
23
23
  background: eleVar('modal', 'bg');
24
24
  border-radius: eleVar('modal', 'radius');
25
+ margin-bottom: eleVar('modal', 'mobile-space');
25
26
 
26
27
  & > .el-dialog__header,
27
28
  & > .el-dialog__footer {
@@ -105,52 +106,40 @@
105
106
  }
106
107
 
107
108
  /* 默认位置 */
108
- .ele-modal-center > .el-overlay-dialog > .el-dialog,
109
- .ele-modal-top > .el-overlay-dialog > .el-dialog,
110
- .ele-modal-bottom > .el-overlay-dialog > .el-dialog,
111
- .ele-modal-left > .el-overlay-dialog > .el-dialog,
112
- .ele-modal-right > .el-overlay-dialog > .el-dialog,
113
- .ele-modal-left-top > .el-overlay-dialog > .el-dialog,
114
- .ele-modal-left-bottom > .el-overlay-dialog > .el-dialog,
115
- .ele-modal-right-top > .el-overlay-dialog > .el-dialog,
116
- .ele-modal-right-bottom > .el-overlay-dialog > .el-dialog {
109
+ .ele-modal-top > .el-overlay-dialog > .el-dialog {
117
110
  margin: 0;
118
111
  }
119
112
 
120
- .ele-modal-center > .el-overlay-dialog {
121
- justify-content: center;
113
+ .ele-modal-center > .el-overlay-dialog > .el-dialog {
114
+ margin: auto;
122
115
  }
123
116
 
124
- .ele-modal-bottom > .el-overlay-dialog {
125
- justify-content: flex-end;
117
+ .ele-modal-bottom > .el-overlay-dialog > .el-dialog {
118
+ margin: auto auto 0 auto;
126
119
  }
127
120
 
128
- .ele-modal-left > .el-overlay-dialog {
129
- justify-content: center;
130
- align-items: flex-start;
121
+ .ele-modal-left > .el-overlay-dialog > .el-dialog {
122
+ margin: auto auto auto 0;
131
123
  }
132
124
 
133
- .ele-modal-right > .el-overlay-dialog {
134
- justify-content: center;
135
- align-items: flex-end;
125
+ .ele-modal-right > .el-overlay-dialog > .el-dialog {
126
+ margin: auto 0 auto auto;
136
127
  }
137
128
 
138
- .ele-modal-left-top > .el-overlay-dialog {
139
- align-items: flex-start;
129
+ .ele-modal-left-top > .el-overlay-dialog > .el-dialog {
130
+ margin: 0 auto 0 0;
140
131
  }
141
132
 
142
- .ele-modal-left-bottom > .el-overlay-dialog {
143
- justify-content: flex-end;
144
- align-items: flex-start;
133
+ .ele-modal-left-bottom > .el-overlay-dialog > .el-dialog {
134
+ margin: auto auto 0 0;
145
135
  }
146
136
 
147
- .ele-modal-right-top > .el-overlay-dialog {
148
- align-items: flex-end;
137
+ .ele-modal-right-top > .el-overlay-dialog > .el-dialog {
138
+ margin: 0 0 0 auto;
149
139
  }
150
140
 
151
- .ele-modal-right-bottom > .el-overlay-dialog {
152
- justify-content: flex-end;
153
- align-items: flex-end;
141
+ .ele-modal-right-bottom > .el-overlay-dialog > .el-dialog {
142
+ margin: auto 0 0 auto;
154
143
  }
155
144
 
156
145
  /* 支持拖拽 */
@@ -7,14 +7,22 @@ const _sfc_main = vue.defineComponent({
7
7
  components: { ElPagination: elementPlus.ElPagination },
8
8
  props: props.paginationProps,
9
9
  emits: props.paginationEmits,
10
- setup(_props, { emit }) {
10
+ setup(props2, { emit }) {
11
+ const isInfinite = vue.computed(() => "*" === props2.total);
12
+ const pageTotal = vue.computed(() => {
13
+ if (isInfinite.value) {
14
+ return Number.MAX_SAFE_INTEGER;
15
+ }
16
+ const num = props2.total == null ? void 0 : Number(props2.total);
17
+ return num == null || isNaN(num) ? void 0 : num;
18
+ });
11
19
  const onUpdateCurrentPage = (currentPage) => {
12
20
  emit("update:currentPage", currentPage);
13
21
  };
14
22
  const onUpdatePageSize = (pageSize) => {
15
23
  emit("update:pageSize", pageSize);
16
24
  };
17
- return { onUpdateCurrentPage, onUpdatePageSize };
25
+ return { isInfinite, pageTotal, onUpdateCurrentPage, onUpdatePageSize };
18
26
  }
19
27
  });
20
28
  const _export_sfc = (sfc, props2) => {
@@ -31,7 +39,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
31
39
  background: _ctx.type === "circle" ? false : _ctx.background,
32
40
  pageSize: _ctx.pageSize,
33
41
  defaultPageSize: _ctx.defaultPageSize,
34
- total: _ctx.total,
42
+ total: _ctx.pageTotal,
35
43
  pageCount: _ctx.pageCount,
36
44
  pagerCount: _ctx.pagerCount,
37
45
  currentPage: _ctx.currentPage,
@@ -46,7 +54,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
46
54
  disabled: _ctx.disabled,
47
55
  teleported: _ctx.teleported,
48
56
  hideOnSinglePage: _ctx.hideOnSinglePage,
49
- class: vue.normalizeClass(["ele-pagination", { "is-circle": _ctx.type === "circle" }]),
57
+ class: vue.normalizeClass([
58
+ "ele-pagination",
59
+ { "is-circle": _ctx.type === "circle" },
60
+ { "is-infinite": _ctx.isInfinite }
61
+ ]),
50
62
  "onUpdate:currentPage": _ctx.onUpdateCurrentPage,
51
63
  "onUpdate:pageSize": _ctx.onUpdatePageSize
52
64
  }, vue.createSlots({ _: 2 }, [
@@ -1,11 +1,11 @@
1
1
  declare const _default: import("vue").DefineComponent<{
2
+ total: import("vue").PropType<import("./types").PaginationTotal>;
2
3
  type: {
3
4
  type: import("vue").PropType<import("./types").PaginationType>;
4
5
  default: string;
5
6
  };
6
7
  pageSize: NumberConstructor;
7
8
  defaultPageSize: NumberConstructor;
8
- total: NumberConstructor;
9
9
  pageCount: NumberConstructor;
10
10
  pagerCount: import("element-plus/es/utils/index").EpPropFinalized<NumberConstructor, unknown, unknown, 7, boolean>;
11
11
  currentPage: NumberConstructor;
@@ -23,19 +23,21 @@ declare const _default: import("vue").DefineComponent<{
23
23
  disabled: BooleanConstructor;
24
24
  hideOnSinglePage: BooleanConstructor;
25
25
  }, {
26
+ isInfinite: import("vue").ComputedRef<boolean>;
27
+ pageTotal: import("vue").ComputedRef<number | undefined>;
26
28
  onUpdateCurrentPage: (currentPage: number) => void;
27
29
  onUpdatePageSize: (pageSize: number) => void;
28
30
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
29
31
  'update:currentPage': (_currentPage: number) => boolean;
30
32
  'update:pageSize': (_pageSize: number) => boolean;
31
33
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
34
+ total: import("vue").PropType<import("./types").PaginationTotal>;
32
35
  type: {
33
36
  type: import("vue").PropType<import("./types").PaginationType>;
34
37
  default: string;
35
38
  };
36
39
  pageSize: NumberConstructor;
37
40
  defaultPageSize: NumberConstructor;
38
- total: NumberConstructor;
39
41
  pageCount: NumberConstructor;
40
42
  pagerCount: import("element-plus/es/utils/index").EpPropFinalized<NumberConstructor, unknown, unknown, 7, boolean>;
41
43
  currentPage: NumberConstructor;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const elementPlus = require("element-plus");
4
4
  const paginationProps = {
5
5
  ...elementPlus.paginationProps,
6
+ /** 总条目数 */
7
+ total: [String, Number],
6
8
  /** 风格 */
7
9
  type: {
8
10
  type: String,
@@ -1,9 +1,11 @@
1
1
  import type { PropType, ExtractPropTypes } from 'vue';
2
- import type { PaginationType } from './types';
2
+ import type { PaginationType, PaginationTotal } from './types';
3
3
  /**
4
4
  * 属性
5
5
  */
6
6
  export declare const paginationProps: {
7
+ /** 总条目数 */
8
+ total: PropType<PaginationTotal>;
7
9
  /** 风格 */
8
10
  type: {
9
11
  type: PropType<PaginationType>;
@@ -11,7 +13,6 @@ export declare const paginationProps: {
11
13
  };
12
14
  pageSize: NumberConstructor;
13
15
  defaultPageSize: NumberConstructor;
14
- total: NumberConstructor;
15
16
  pageCount: NumberConstructor;
16
17
  pagerCount: import("element-plus/es/utils/index").EpPropFinalized<NumberConstructor, unknown, unknown, 7, boolean>;
17
18
  currentPage: NumberConstructor;
@@ -8,6 +8,7 @@
8
8
  flex-wrap: wrap;
9
9
  justify-content: center;
10
10
 
11
+ /* 圆角风格 */
11
12
  &.is-circle {
12
13
  /* 间距 */
13
14
  & > * {
@@ -199,4 +200,12 @@
199
200
  }
200
201
  }
201
202
  }
203
+
204
+ /* 无限页数 */
205
+ &.is-infinite {
206
+ .el-pager li:not(.is-active),
207
+ .el-pagination__total {
208
+ display: none;
209
+ }
210
+ }
202
211
  }
@@ -1,4 +1,9 @@
1
1
  /**
2
- * 分页组件类型
2
+ * 风格
3
3
  */
4
4
  export type PaginationType = 'default' | 'circle';
5
+
6
+ /**
7
+ * 总条目数
8
+ */
9
+ export type PaginationTotal = number | '*';
@@ -122,7 +122,7 @@ function mergeOptions(options, userOptions) {
122
122
  function usePrinter(done) {
123
123
  const printId = core.uuid(8);
124
124
  const onMessage = (e) => {
125
- if (e.data === "elePrintDone_" + printId) {
125
+ if (e.data === `elePrintDone_${printId}`) {
126
126
  removePrintFrame();
127
127
  done && done();
128
128
  }
@@ -2,11 +2,13 @@
2
2
  const vue = require("vue");
3
3
  const elementPlus = require("element-plus");
4
4
  const icons = require("../../icons");
5
- const receiver = require("../../ele-config-provider/receiver");
6
5
  const EleDropdown = require("../../ele-dropdown/index");
6
+ const receiver = require("../../ele-config-provider/receiver");
7
7
  const util = require("../util");
8
8
  const EleTool = require("../../ele-tool/index");
9
9
  const ToolColumn = require("./tool-column");
10
+ const ToolExport = require("./tool-export");
11
+ const ToolPrint = require("./tool-print");
10
12
  const _sfc_main = vue.defineComponent({
11
13
  name: "TableTools",
12
14
  components: {
@@ -17,25 +19,64 @@ const _sfc_main = vue.defineComponent({
17
19
  FullscreenExitOutlined: icons.FullscreenExitOutlined,
18
20
  EleDropdown,
19
21
  EleTool,
20
- ToolColumn
22
+ ToolColumn,
23
+ ToolExport,
24
+ ToolPrint
21
25
  },
22
26
  props: {
27
+ /** 工具按钮布局 */
28
+ tools: {
29
+ type: Array,
30
+ required: true
31
+ },
23
32
  /** 表格尺寸 */
24
33
  size: String,
25
34
  /** 表格列数据 */
26
35
  columns: Array,
27
- /** 工具按钮布局 */
28
- tools: Array,
29
36
  /** 是否开启列拖拽排序 */
30
37
  columnSortable: Boolean,
31
38
  /** 是否开启开关固定列 */
32
39
  columnFixed: Boolean,
33
40
  /** 是否最大化 */
34
41
  maximized: Boolean,
35
- /** 列配置缓存的名称 */
42
+ /** 本地缓存的名称 */
36
43
  cacheKey: String,
37
44
  /** 国际化 */
38
- locale: Object
45
+ locale: Object,
46
+ /** 表格选中数据 */
47
+ selections: Array,
48
+ /** 表格当前页数据 */
49
+ pageData: Array,
50
+ /** 单元格合并行列方法 */
51
+ spanMethod: Function,
52
+ /** 是否显示合计行 */
53
+ showSummary: Boolean,
54
+ /** 合计行文本 */
55
+ sumText: String,
56
+ /** 合计行自定义方法 */
57
+ summaryMethod: Function,
58
+ /** 单元格样式 */
59
+ cellStyle: [Object, Function],
60
+ /** 单元格类名自定义 */
61
+ cellClassName: [String, Function],
62
+ /** 单元格样式 */
63
+ headerCellStyle: [Object, Function],
64
+ /** 单元格类名自定义 */
65
+ headerCellClassName: [String, Function],
66
+ /** 序号列起始索引 */
67
+ pageIndex: Number,
68
+ /** 表格请求数据方法 */
69
+ fetch: Function,
70
+ /** 导出配置 */
71
+ exportConfig: {
72
+ type: Object,
73
+ required: true
74
+ },
75
+ /** 打印配置 */
76
+ printConfig: {
77
+ type: Object,
78
+ required: true
79
+ }
39
80
  },
40
81
  emits: {
41
82
  reload: () => true,
@@ -89,6 +130,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
89
130
  const _component_ToolColumn = vue.resolveComponent("ToolColumn");
90
131
  const _component_FullscreenExitOutlined = vue.resolveComponent("FullscreenExitOutlined");
91
132
  const _component_FullscreenOutlined = vue.resolveComponent("FullscreenOutlined");
133
+ const _component_ToolExport = vue.resolveComponent("ToolExport");
134
+ const _component_ToolPrint = vue.resolveComponent("ToolPrint");
92
135
  return vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tools, (tool, index) => {
93
136
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
94
137
  tool === "reload" ? (vue.openBlock(), vue.createBlock(_component_EleTool, {
@@ -168,7 +211,81 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
168
211
  })
169
212
  ]),
170
213
  _: 2
171
- }, 1032, ["placement", "title", "onClick"])) : _ctx.$slots[tool] ? vue.renderSlot(_ctx.$slots, tool, { key: 4 }) : vue.createCommentVNode("", true)
214
+ }, 1032, ["placement", "title", "onClick"])) : tool === "export" ? (vue.openBlock(), vue.createBlock(_component_ToolExport, {
215
+ key: index + "-export",
216
+ placement: _ctx.placement,
217
+ title: _ctx.lang.export,
218
+ checkAllText: _ctx.lang.columnTitle,
219
+ resetText: _ctx.lang.columnReset,
220
+ untitledText: _ctx.lang.columnUntitled,
221
+ fileNameText: _ctx.lang.exportFileName,
222
+ fileNamePlaceholderText: _ctx.lang.exportFileNamePlaceholder,
223
+ selectDataText: _ctx.lang.exportSelectData,
224
+ selectColumnText: _ctx.lang.exportSelectColumn,
225
+ dataTypePageText: _ctx.lang.exportDataTypePage,
226
+ dataTypeSelectedText: _ctx.lang.exportDataTypeSelected,
227
+ dataTypeAllText: _ctx.lang.exportDataTypeAll,
228
+ cancelText: _ctx.lang.exportCancel,
229
+ okText: _ctx.lang.exportOk,
230
+ modalProps: _ctx.exportConfig.modalProps,
231
+ columns: _ctx.columns,
232
+ selections: _ctx.selections,
233
+ pageData: _ctx.pageData,
234
+ datasource: _ctx.exportConfig.datasource,
235
+ spanMethod: _ctx.spanMethod,
236
+ showSummary: _ctx.showSummary,
237
+ sumText: _ctx.sumText,
238
+ summaryMethod: _ctx.summaryMethod,
239
+ pageIndex: _ctx.pageIndex,
240
+ fetch: _ctx.fetch,
241
+ defaultFileName: _ctx.exportConfig.fileName,
242
+ defaultDataType: _ctx.exportConfig.dataType,
243
+ beforeExport: _ctx.exportConfig.beforeExport
244
+ }, null, 8, ["placement", "title", "checkAllText", "resetText", "untitledText", "fileNameText", "fileNamePlaceholderText", "selectDataText", "selectColumnText", "dataTypePageText", "dataTypeSelectedText", "dataTypeAllText", "cancelText", "okText", "modalProps", "columns", "selections", "pageData", "datasource", "spanMethod", "showSummary", "sumText", "summaryMethod", "pageIndex", "fetch", "defaultFileName", "defaultDataType", "beforeExport"])) : tool === "print" ? (vue.openBlock(), vue.createBlock(_component_ToolPrint, {
245
+ key: index + "-print",
246
+ placement: _ctx.placement,
247
+ title: _ctx.lang.print,
248
+ checkAllText: _ctx.lang.columnTitle,
249
+ resetText: _ctx.lang.columnReset,
250
+ untitledText: _ctx.lang.columnUntitled,
251
+ selectDataText: _ctx.lang.exportSelectData,
252
+ selectColumnText: _ctx.lang.exportSelectColumn,
253
+ dataTypePageText: _ctx.lang.exportDataTypePage,
254
+ dataTypeSelectedText: _ctx.lang.exportDataTypeSelected,
255
+ dataTypeAllText: _ctx.lang.exportDataTypeAll,
256
+ cancelText: _ctx.lang.exportCancel,
257
+ okText: _ctx.lang.exportOk,
258
+ modalProps: _ctx.printConfig.modalProps,
259
+ columns: _ctx.columns,
260
+ selections: _ctx.selections,
261
+ pageData: _ctx.pageData,
262
+ datasource: _ctx.printConfig.datasource,
263
+ spanMethod: _ctx.spanMethod,
264
+ showSummary: _ctx.showSummary,
265
+ sumText: _ctx.sumText,
266
+ summaryMethod: _ctx.summaryMethod,
267
+ cellStyle: _ctx.cellStyle,
268
+ cellClassName: _ctx.cellClassName,
269
+ headerCellStyle: _ctx.headerCellStyle,
270
+ headerCellClassName: _ctx.headerCellClassName,
271
+ pageIndex: _ctx.pageIndex,
272
+ fetch: _ctx.fetch,
273
+ defaultDataType: _ctx.printConfig.dataType,
274
+ beforePrint: _ctx.printConfig.beforePrint
275
+ }, vue.createSlots({ _: 2 }, [
276
+ vue.renderList(Object.keys(_ctx.$slots), (name) => {
277
+ return {
278
+ name,
279
+ fn: vue.withCtx((slotProps) => [
280
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(slotProps || {})))
281
+ ])
282
+ };
283
+ })
284
+ ]), 1032, ["placement", "title", "checkAllText", "resetText", "untitledText", "selectDataText", "selectColumnText", "dataTypePageText", "dataTypeSelectedText", "dataTypeAllText", "cancelText", "okText", "modalProps", "columns", "selections", "pageData", "datasource", "spanMethod", "showSummary", "sumText", "summaryMethod", "cellStyle", "cellClassName", "headerCellStyle", "headerCellClassName", "pageIndex", "fetch", "defaultDataType", "beforePrint"])) : tool && tool !== "default" && _ctx.$slots[tool] ? vue.renderSlot(_ctx.$slots, tool, {
285
+ key: 6,
286
+ pageIndex: _ctx.pageIndex,
287
+ fetch: _ctx.fetch
288
+ }) : vue.createCommentVNode("", true)
172
289
  ], 64);
173
290
  }), 256);
174
291
  }
@@ -1,23 +1,68 @@
1
1
  import type { PropType } from 'vue';
2
- import type { Columns, TableSize } from '../../ele-data-table/types';
3
- import type { TableLocale } from '../types';
2
+ import type { Columns, TableSize, DataItem } from '../../ele-data-table/types';
3
+ import type { TableLocale, FetchFunction, ExportConfig, PrintConfig } from '../types';
4
4
  declare const _default: import("vue").DefineComponent<{
5
+ /** 工具按钮布局 */
6
+ tools: {
7
+ type: PropType<string[]>;
8
+ required: true;
9
+ };
5
10
  /** 表格尺寸 */
6
11
  size: StringConstructor;
7
12
  /** 表格列数据 */
8
13
  columns: PropType<Columns>;
9
- /** 工具按钮布局 */
10
- tools: PropType<string[] | null>;
11
14
  /** 是否开启列拖拽排序 */
12
15
  columnSortable: BooleanConstructor;
13
16
  /** 是否开启开关固定列 */
14
17
  columnFixed: BooleanConstructor;
15
18
  /** 是否最大化 */
16
19
  maximized: BooleanConstructor;
17
- /** 列配置缓存的名称 */
20
+ /** 本地缓存的名称 */
18
21
  cacheKey: StringConstructor;
19
22
  /** 国际化 */
20
23
  locale: PropType<Partial<TableLocale>>;
24
+ /** 表格选中数据 */
25
+ selections: PropType<DataItem[]>;
26
+ /** 表格当前页数据 */
27
+ pageData: PropType<DataItem[]>;
28
+ /** 单元格合并行列方法 */
29
+ spanMethod: PropType<((data: {
30
+ row: DataItem; /** 提示方向 */
31
+ rowIndex: number;
32
+ column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<DataItem>;
33
+ columnIndex: number;
34
+ }) => number[] | {
35
+ rowspan: number;
36
+ colspan: number;
37
+ } | undefined) | undefined>;
38
+ /** 是否显示合计行 */
39
+ showSummary: BooleanConstructor;
40
+ /** 合计行文本 */
41
+ sumText: StringConstructor;
42
+ /** 合计行自定义方法 */
43
+ summaryMethod: PropType<import("element-plus/es/components/table/src/table/defaults").SummaryMethod<DataItem> | undefined>;
44
+ /** 单元格样式 */
45
+ cellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<DataItem> | undefined>;
46
+ /** 单元格类名自定义 */
47
+ cellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<DataItem> | undefined>;
48
+ /** 单元格样式 */
49
+ headerCellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<DataItem> | undefined>;
50
+ /** 单元格类名自定义 */
51
+ headerCellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<DataItem> | undefined>;
52
+ /** 序号列起始索引 */
53
+ pageIndex: NumberConstructor;
54
+ /** 表格请求数据方法 */
55
+ fetch: PropType<FetchFunction>;
56
+ /** 导出配置 */
57
+ exportConfig: {
58
+ type: PropType<ExportConfig>;
59
+ required: true;
60
+ };
61
+ /** 打印配置 */
62
+ printConfig: {
63
+ type: PropType<PrintConfig>;
64
+ required: true;
65
+ };
21
66
  }, {
22
67
  lang: import("vue").ComputedRef<TableLocale>;
23
68
  placement: import("vue").ComputedRef<"top" | "bottom">;
@@ -31,28 +76,74 @@ declare const _default: import("vue").DefineComponent<{
31
76
  'update:columns': (_columns: Columns) => true;
32
77
  'update:maximized': (_maximized: boolean) => true;
33
78
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
79
+ /** 工具按钮布局 */
80
+ tools: {
81
+ type: PropType<string[]>;
82
+ required: true;
83
+ };
34
84
  /** 表格尺寸 */
35
85
  size: StringConstructor;
36
86
  /** 表格列数据 */
37
87
  columns: PropType<Columns>;
38
- /** 工具按钮布局 */
39
- tools: PropType<string[] | null>;
40
88
  /** 是否开启列拖拽排序 */
41
89
  columnSortable: BooleanConstructor;
42
90
  /** 是否开启开关固定列 */
43
91
  columnFixed: BooleanConstructor;
44
92
  /** 是否最大化 */
45
93
  maximized: BooleanConstructor;
46
- /** 列配置缓存的名称 */
94
+ /** 本地缓存的名称 */
47
95
  cacheKey: StringConstructor;
48
96
  /** 国际化 */
49
97
  locale: PropType<Partial<TableLocale>>;
98
+ /** 表格选中数据 */
99
+ selections: PropType<DataItem[]>;
100
+ /** 表格当前页数据 */
101
+ pageData: PropType<DataItem[]>;
102
+ /** 单元格合并行列方法 */
103
+ spanMethod: PropType<((data: {
104
+ row: DataItem; /** 提示方向 */
105
+ rowIndex: number;
106
+ column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<DataItem>;
107
+ columnIndex: number;
108
+ }) => number[] | {
109
+ rowspan: number;
110
+ colspan: number;
111
+ } | undefined) | undefined>;
112
+ /** 是否显示合计行 */
113
+ showSummary: BooleanConstructor;
114
+ /** 合计行文本 */
115
+ sumText: StringConstructor;
116
+ /** 合计行自定义方法 */
117
+ summaryMethod: PropType<import("element-plus/es/components/table/src/table/defaults").SummaryMethod<DataItem> | undefined>;
118
+ /** 单元格样式 */
119
+ cellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<DataItem> | undefined>;
120
+ /** 单元格类名自定义 */
121
+ cellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<DataItem> | undefined>;
122
+ /** 单元格样式 */
123
+ headerCellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<DataItem> | undefined>;
124
+ /** 单元格类名自定义 */
125
+ headerCellClassName: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<DataItem> | undefined>;
126
+ /** 序号列起始索引 */
127
+ pageIndex: NumberConstructor;
128
+ /** 表格请求数据方法 */
129
+ fetch: PropType<FetchFunction>;
130
+ /** 导出配置 */
131
+ exportConfig: {
132
+ type: PropType<ExportConfig>;
133
+ required: true;
134
+ };
135
+ /** 打印配置 */
136
+ printConfig: {
137
+ type: PropType<PrintConfig>;
138
+ required: true;
139
+ };
50
140
  }>> & {
51
141
  "onUpdate:columns"?: ((_columns: Columns) => any) | undefined;
52
142
  onReload?: (() => any) | undefined;
53
143
  "onUpdate:size"?: ((_size: "" | "default" | "small" | "large" | undefined) => any) | undefined;
54
144
  "onUpdate:maximized"?: ((_maximized: boolean) => any) | undefined;
55
145
  }, {
146
+ showSummary: boolean;
56
147
  maximized: boolean;
57
148
  columnSortable: boolean;
58
149
  columnFixed: boolean;
@@ -107,6 +107,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
107
107
  setData: () => void 0,
108
108
  handle: ".ele-tool-column-handle",
109
109
  componentData: { class: "ele-tool-column-list" },
110
+ forceFallback: true,
110
111
  "onUpdate:modelValue": _ctx.onSortChange
111
112
  }, {
112
113
  item: vue.withCtx(({ element: d }) => [
@@ -222,7 +222,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
222
222
  vue.createVNode(_component_EleTooltip, {
223
223
  trigger: "click",
224
224
  placement: "bottom-end",
225
- popperClass: "ele-tool-column",
225
+ popperClass: "ele-tool-column-popover",
226
226
  transition: "el-zoom-in-top",
227
227
  gpuAcceleration: false,
228
228
  effect: "light",
@@ -233,7 +233,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
233
233
  }, {
234
234
  body: vue.withCtx(() => [
235
235
  vue.createElementVNode("div", {
236
- class: vue.normalizeClass(["ele-popover-body", { "is-sortable": _ctx.sortable }])
236
+ class: vue.normalizeClass([
237
+ "ele-popover-body",
238
+ "ele-tool-column",
239
+ { "is-sortable": _ctx.sortable }
240
+ ])
237
241
  }, [
238
242
  vue.createElementVNode("div", _hoisted_1, [
239
243
  vue.createElementVNode("div", _hoisted_2, [