ele-admin-plus 1.4.1-beta.1 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/es/core-components.d.ts +2 -0
  2. package/es/core-components.js +104 -100
  3. package/es/ele-app/plus.d.ts +9 -1
  4. package/es/ele-app/plusx.d.ts +26 -13
  5. package/es/ele-backtop/index.js +7 -1
  6. package/es/ele-basic-select/components/select-view.d.ts +53 -22
  7. package/es/ele-basic-select/components/select-view.js +57 -20
  8. package/es/ele-basic-select/index.d.ts +39 -19
  9. package/es/ele-basic-select/index.js +62 -13
  10. package/es/ele-basic-select/props.d.ts +33 -21
  11. package/es/ele-basic-select/props.js +33 -21
  12. package/es/ele-basic-select/style/index.js +2 -0
  13. package/es/ele-basic-select/types.d.ts +1 -1
  14. package/es/ele-config-provider/components/receiver-view.d.ts +2 -0
  15. package/es/ele-config-provider/components/receiver-view.js +74 -72
  16. package/es/ele-config-provider/receiver.d.ts +2 -2
  17. package/es/ele-config-provider/receiver.js +5 -1
  18. package/es/ele-config-provider/types.d.ts +10 -1
  19. package/es/ele-copyable/index.d.ts +2 -4
  20. package/es/ele-cron-builder/index.d.ts +24 -0
  21. package/es/ele-cron-builder/index.js +81 -0
  22. package/es/ele-cron-builder/props.d.ts +31 -0
  23. package/es/ele-cron-builder/props.js +24 -0
  24. package/es/ele-cron-builder/style/index.d.ts +1 -0
  25. package/es/ele-cron-builder/style/index.js +4 -0
  26. package/es/ele-cron-builder/style/index.scss +6 -0
  27. package/es/ele-cron-builder/types.d.ts +8 -0
  28. package/es/ele-cron-panel/components/cron-day.d.ts +25 -0
  29. package/es/ele-cron-panel/components/cron-day.js +232 -0
  30. package/es/ele-cron-panel/components/cron-hour.d.ts +25 -0
  31. package/es/ele-cron-panel/components/cron-hour.js +174 -0
  32. package/es/ele-cron-panel/components/cron-minute.d.ts +25 -0
  33. package/es/ele-cron-panel/components/cron-minute.js +174 -0
  34. package/es/ele-cron-panel/components/cron-month.d.ts +25 -0
  35. package/es/ele-cron-panel/components/cron-month.js +174 -0
  36. package/es/ele-cron-panel/components/cron-second.d.ts +25 -0
  37. package/es/ele-cron-panel/components/cron-second.js +174 -0
  38. package/es/ele-cron-panel/components/cron-week.d.ts +25 -0
  39. package/es/ele-cron-panel/components/cron-week.js +229 -0
  40. package/es/ele-cron-panel/components/cron-year.d.ts +25 -0
  41. package/es/ele-cron-panel/components/cron-year.js +186 -0
  42. package/es/ele-cron-panel/index.d.ts +14 -0
  43. package/es/ele-cron-panel/index.js +348 -0
  44. package/es/ele-cron-panel/props.d.ts +20 -0
  45. package/es/ele-cron-panel/props.js +14 -0
  46. package/es/ele-cron-panel/style/index.d.ts +1 -0
  47. package/es/ele-cron-panel/style/index.js +7 -0
  48. package/es/ele-cron-panel/style/index.scss +282 -0
  49. package/es/ele-cron-panel/types.d.ts +118 -0
  50. package/es/ele-cron-panel/util.d.ts +23 -0
  51. package/es/ele-cron-panel/util.js +542 -0
  52. package/es/ele-cropper/components/cropper-tools.d.ts +2 -2
  53. package/es/ele-cropper-modal/index.d.ts +2 -4
  54. package/es/ele-crud/index.d.ts +3 -3
  55. package/es/ele-drawer/index.d.ts +9 -0
  56. package/es/ele-drawer/index.js +5 -1
  57. package/es/ele-drawer/props.d.ts +5 -0
  58. package/es/ele-drawer/props.js +6 -1
  59. package/es/ele-drawer/style/index.scss +11 -0
  60. package/es/ele-file-list/index.d.ts +3 -3
  61. package/es/ele-icon-select/components/icon-grid.d.ts +8 -3
  62. package/es/ele-icon-select/components/icon-grid.js +20 -12
  63. package/es/ele-icon-select/index.d.ts +58 -59
  64. package/es/ele-icon-select/index.js +92 -86
  65. package/es/ele-icon-select/props.d.ts +35 -35
  66. package/es/ele-icon-select/props.js +34 -34
  67. package/es/ele-icon-select/style/css-var.scss +1 -1
  68. package/es/ele-icon-select/style/index.scss +50 -18
  69. package/es/ele-icon-select/types.d.ts +13 -0
  70. package/es/ele-map-picker/index.d.ts +3 -3
  71. package/es/ele-modal/index.d.ts +4 -2
  72. package/es/ele-modal/index.js +9 -3
  73. package/es/ele-modal/props.d.ts +2 -0
  74. package/es/ele-modal/props.js +2 -0
  75. package/es/ele-modal/style/index.scss +16 -0
  76. package/es/ele-pro-form/components/item-type-data.js +39 -64
  77. package/es/ele-pro-form/index.d.ts +3 -3
  78. package/es/ele-pro-table/components/table-tools.d.ts +12 -97
  79. package/es/ele-pro-table/components/table-tools.js +118 -248
  80. package/es/ele-pro-table/components/tool-export.d.ts +5 -1
  81. package/es/ele-pro-table/components/tool-export.js +32 -20
  82. package/es/ele-pro-table/components/tool-print.d.ts +5 -1
  83. package/es/ele-pro-table/components/tool-print.js +37 -25
  84. package/es/ele-pro-table/exceljs-plugin.d.ts +12 -0
  85. package/es/ele-pro-table/exceljs-plugin.js +81 -0
  86. package/es/ele-pro-table/index.d.ts +6 -7
  87. package/es/ele-pro-table/index.js +117 -46
  88. package/es/ele-pro-table/types.d.ts +11 -0
  89. package/es/ele-split-panel/style/index.scss +1 -1
  90. package/es/ele-table-select/index.d.ts +2 -0
  91. package/es/ele-table-select/props.d.ts +2 -0
  92. package/es/ele-table-select/props.js +3 -1
  93. package/es/ele-tour/index.d.ts +3 -3
  94. package/es/ele-tree-select/index.d.ts +2 -0
  95. package/es/ele-upload-list/index.d.ts +3 -3
  96. package/es/ele-upload-list/index.js +25 -8
  97. package/es/ele-virtual-table/components/body-cell.d.ts +1 -1
  98. package/es/ele-watermark/index.d.ts +20 -7
  99. package/es/ele-watermark/index.js +253 -94
  100. package/es/ele-watermark/props.d.ts +10 -3
  101. package/es/ele-watermark/props.js +10 -3
  102. package/es/ele-watermark/types.d.ts +12 -0
  103. package/es/ele-watermark/util.d.ts +2 -9
  104. package/es/ele-watermark/util.js +10 -19
  105. package/es/lang/en_US.js +116 -0
  106. package/es/lang/zh_CN.js +116 -0
  107. package/es/lang/zh_TW.js +116 -0
  108. package/es/style/plus.scss +3 -1
  109. package/es/style/themes/default.scss +12 -3
  110. package/es/style/themes/rounded.scss +2 -1
  111. package/es/utils/theme-util.d.ts +1 -1
  112. package/lib/core-components.cjs +104 -100
  113. package/lib/core-components.d.ts +2 -0
  114. package/lib/ele-app/plus.d.ts +9 -1
  115. package/lib/ele-app/plusx.d.ts +26 -13
  116. package/lib/ele-backtop/index.cjs +6 -0
  117. package/lib/ele-basic-select/components/select-view.cjs +56 -19
  118. package/lib/ele-basic-select/components/select-view.d.ts +53 -22
  119. package/lib/ele-basic-select/index.cjs +61 -12
  120. package/lib/ele-basic-select/index.d.ts +39 -19
  121. package/lib/ele-basic-select/props.cjs +33 -21
  122. package/lib/ele-basic-select/props.d.ts +33 -21
  123. package/lib/ele-basic-select/style/index.cjs +2 -0
  124. package/lib/ele-basic-select/types.d.ts +1 -1
  125. package/lib/ele-config-provider/components/receiver-view.cjs +2 -2
  126. package/lib/ele-config-provider/components/receiver-view.d.ts +2 -0
  127. package/lib/ele-config-provider/receiver.cjs +5 -1
  128. package/lib/ele-config-provider/receiver.d.ts +2 -2
  129. package/lib/ele-config-provider/types.d.ts +10 -1
  130. package/lib/ele-copyable/index.d.ts +2 -4
  131. package/lib/ele-cron-builder/index.cjs +80 -0
  132. package/lib/ele-cron-builder/index.d.ts +24 -0
  133. package/lib/ele-cron-builder/props.cjs +24 -0
  134. package/lib/ele-cron-builder/props.d.ts +31 -0
  135. package/lib/ele-cron-builder/style/index.cjs +5 -0
  136. package/lib/ele-cron-builder/style/index.d.ts +1 -0
  137. package/lib/ele-cron-builder/style/index.scss +6 -0
  138. package/lib/ele-cron-builder/types.d.ts +8 -0
  139. package/lib/ele-cron-panel/components/cron-day.cjs +231 -0
  140. package/lib/ele-cron-panel/components/cron-day.d.ts +25 -0
  141. package/lib/ele-cron-panel/components/cron-hour.cjs +173 -0
  142. package/lib/ele-cron-panel/components/cron-hour.d.ts +25 -0
  143. package/lib/ele-cron-panel/components/cron-minute.cjs +173 -0
  144. package/lib/ele-cron-panel/components/cron-minute.d.ts +25 -0
  145. package/lib/ele-cron-panel/components/cron-month.cjs +173 -0
  146. package/lib/ele-cron-panel/components/cron-month.d.ts +25 -0
  147. package/lib/ele-cron-panel/components/cron-second.cjs +173 -0
  148. package/lib/ele-cron-panel/components/cron-second.d.ts +25 -0
  149. package/lib/ele-cron-panel/components/cron-week.cjs +228 -0
  150. package/lib/ele-cron-panel/components/cron-week.d.ts +25 -0
  151. package/lib/ele-cron-panel/components/cron-year.cjs +185 -0
  152. package/lib/ele-cron-panel/components/cron-year.d.ts +25 -0
  153. package/lib/ele-cron-panel/index.cjs +347 -0
  154. package/lib/ele-cron-panel/index.d.ts +14 -0
  155. package/lib/ele-cron-panel/props.cjs +14 -0
  156. package/lib/ele-cron-panel/props.d.ts +20 -0
  157. package/lib/ele-cron-panel/style/index.cjs +8 -0
  158. package/lib/ele-cron-panel/style/index.d.ts +1 -0
  159. package/lib/ele-cron-panel/style/index.scss +282 -0
  160. package/lib/ele-cron-panel/types.d.ts +118 -0
  161. package/lib/ele-cron-panel/util.cjs +542 -0
  162. package/lib/ele-cron-panel/util.d.ts +23 -0
  163. package/lib/ele-cropper/components/cropper-tools.d.ts +2 -2
  164. package/lib/ele-cropper-modal/index.d.ts +2 -4
  165. package/lib/ele-crud/index.d.ts +3 -3
  166. package/lib/ele-drawer/index.cjs +4 -0
  167. package/lib/ele-drawer/index.d.ts +9 -0
  168. package/lib/ele-drawer/props.cjs +6 -1
  169. package/lib/ele-drawer/props.d.ts +5 -0
  170. package/lib/ele-drawer/style/index.scss +11 -0
  171. package/lib/ele-file-list/index.d.ts +3 -3
  172. package/lib/ele-icon-select/components/icon-grid.cjs +19 -11
  173. package/lib/ele-icon-select/components/icon-grid.d.ts +8 -3
  174. package/lib/ele-icon-select/index.cjs +91 -85
  175. package/lib/ele-icon-select/index.d.ts +58 -59
  176. package/lib/ele-icon-select/props.cjs +34 -34
  177. package/lib/ele-icon-select/props.d.ts +35 -35
  178. package/lib/ele-icon-select/style/css-var.scss +1 -1
  179. package/lib/ele-icon-select/style/index.scss +50 -18
  180. package/lib/ele-icon-select/types.d.ts +13 -0
  181. package/lib/ele-map-picker/index.d.ts +3 -3
  182. package/lib/ele-modal/index.cjs +9 -3
  183. package/lib/ele-modal/index.d.ts +4 -2
  184. package/lib/ele-modal/props.cjs +2 -0
  185. package/lib/ele-modal/props.d.ts +2 -0
  186. package/lib/ele-modal/style/index.scss +16 -0
  187. package/lib/ele-pro-form/components/item-type-data.cjs +39 -64
  188. package/lib/ele-pro-form/index.d.ts +3 -3
  189. package/lib/ele-pro-table/components/table-tools.cjs +117 -247
  190. package/lib/ele-pro-table/components/table-tools.d.ts +12 -97
  191. package/lib/ele-pro-table/components/tool-export.cjs +32 -20
  192. package/lib/ele-pro-table/components/tool-export.d.ts +5 -1
  193. package/lib/ele-pro-table/components/tool-print.cjs +37 -25
  194. package/lib/ele-pro-table/components/tool-print.d.ts +5 -1
  195. package/lib/ele-pro-table/exceljs-plugin.cjs +81 -0
  196. package/lib/ele-pro-table/exceljs-plugin.d.ts +12 -0
  197. package/lib/ele-pro-table/index.cjs +143 -72
  198. package/lib/ele-pro-table/index.d.ts +6 -7
  199. package/lib/ele-pro-table/types.d.ts +11 -0
  200. package/lib/ele-split-panel/style/index.scss +1 -1
  201. package/lib/ele-table-select/index.d.ts +2 -0
  202. package/lib/ele-table-select/props.cjs +3 -1
  203. package/lib/ele-table-select/props.d.ts +2 -0
  204. package/lib/ele-tour/index.d.ts +3 -3
  205. package/lib/ele-tree-select/index.d.ts +2 -0
  206. package/lib/ele-upload-list/index.cjs +25 -8
  207. package/lib/ele-upload-list/index.d.ts +3 -3
  208. package/lib/ele-virtual-table/components/body-cell.d.ts +1 -1
  209. package/lib/ele-watermark/index.cjs +251 -92
  210. package/lib/ele-watermark/index.d.ts +20 -7
  211. package/lib/ele-watermark/props.cjs +10 -3
  212. package/lib/ele-watermark/props.d.ts +10 -3
  213. package/lib/ele-watermark/types.d.ts +12 -0
  214. package/lib/ele-watermark/util.cjs +10 -19
  215. package/lib/ele-watermark/util.d.ts +2 -9
  216. package/lib/lang/en_US.cjs +116 -0
  217. package/lib/lang/zh_CN.cjs +116 -0
  218. package/lib/lang/zh_TW.cjs +116 -0
  219. package/lib/style/plus.scss +3 -1
  220. package/lib/style/themes/default.scss +12 -3
  221. package/lib/style/themes/rounded.scss +2 -1
  222. package/lib/utils/theme-util.d.ts +1 -1
  223. package/package.json +1 -1
  224. package/typings/global.d.ts +2 -0
@@ -1,13 +1,10 @@
1
- import { defineComponent, ref, computed, markRaw, createElementBlock, openBlock, Fragment, createVNode, unref, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createBlock, createCommentVNode } from "vue";
1
+ import { defineComponent, computed, markRaw, createElementBlock, openBlock, Fragment, renderList, createBlock, renderSlot, createCommentVNode, withCtx, createVNode, unref } from "vue";
2
2
  import { ElIcon } from "element-plus";
3
3
  import { SizeSlackOutlined, SizeMiddleOutlined, SizeCompactOutlined, ReloadOutlined, DownloadOutlined, PrinterOutlined, ColumnHeightOutlined, FullscreenExitOutlined, FullscreenOutlined } from "../../icons/index";
4
4
  import EleDropdown from "../../ele-dropdown/index";
5
- import { useLocale } from "../../ele-config-provider/receiver";
6
5
  import { getSizeCacheKey } from "../util";
7
6
  import EleTool from "../../ele-tool/index";
8
7
  import ToolColumn from "./tool-column";
9
- import ToolExport from "./tool-export";
10
- import ToolPrint from "./tool-print";
11
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
12
9
  __name: "table-tools",
13
10
  props: {
@@ -29,44 +26,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
26
  /** 本地缓存的名称 */
30
27
  cacheKey: String,
31
28
  /** 国际化 */
32
- locale: Object,
33
- /** 表格选中数据 */
34
- selections: Array,
35
- /** 表格当前页数据 */
36
- pageData: Array,
37
- /** 单元格合并行列方法 */
38
- spanMethod: Function,
39
- /** 表格是否有表头 */
40
- tableHeader: Boolean,
41
- /** 是否显示合计行 */
42
- showSummary: Boolean,
43
- /** 合计行文本 */
44
- sumText: String,
45
- /** 合计行自定义方法 */
46
- summaryMethod: Function,
47
- /** 自定义表格样式 */
48
- tableStyle: Object,
49
- /** 单元格样式 */
50
- cellStyle: [Object, Function],
51
- /** 单元格类名自定义 */
52
- cellClassName: [String, Function],
53
- /** 单元格样式 */
54
- headerCellStyle: [Object, Function],
55
- /** 单元格类名自定义 */
56
- headerCellClassName: [String, Function],
57
- /** 序号列起始索引 */
58
- pageIndex: Number,
59
- /** 树表字段名 */
60
- treeProps: Object,
61
- /** 表格请求数据方法 */
62
- fetch: Function,
63
- /** 导出配置 */
64
- exportConfig: {
65
- type: Object,
66
- required: true
67
- },
68
- /** 打印配置 */
69
- printConfig: {
29
+ lang: {
70
30
  type: Object,
71
31
  required: true
72
32
  }
@@ -75,30 +35,29 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
75
35
  reload: () => true,
76
36
  "update:size": (_size) => true,
77
37
  "update:columns": (_columns, _tableColumns, _isReset) => true,
78
- "update:maximized": (_maximized) => true
38
+ "update:maximized": (_maximized) => true,
39
+ openExportModal: () => true,
40
+ openPrintModal: () => true
79
41
  },
80
- setup(__props, { expose: __expose, emit: __emit }) {
42
+ setup(__props, { emit: __emit }) {
81
43
  const ownSlots = ["default", "printTop", "printBottom"];
82
44
  const props = __props;
83
45
  const emit = __emit;
84
- const { lang } = useLocale("table", props);
85
- const toolExportRef = ref(null);
86
- const toolPrintRef = ref(null);
87
46
  const placement = computed(() => props.maximized ? "bottom" : "top");
88
47
  const sizeDropdownItems = computed(() => {
89
48
  return [
90
49
  {
91
- title: lang.value.sizeLarge,
50
+ title: props.lang.sizeLarge,
92
51
  command: "large",
93
52
  icon: markRaw(SizeSlackOutlined)
94
53
  },
95
54
  {
96
- title: lang.value.sizeDefault,
55
+ title: props.lang.sizeDefault,
97
56
  command: "default",
98
57
  icon: markRaw(SizeMiddleOutlined)
99
58
  },
100
59
  {
101
- title: lang.value.sizeSmall,
60
+ title: props.lang.sizeSmall,
102
61
  command: "small",
103
62
  icon: markRaw(SizeCompactOutlined)
104
63
  }
@@ -120,208 +79,119 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
120
79
  emit("update:maximized", !props.maximized);
121
80
  };
122
81
  const openExportModal = () => {
123
- if (toolExportRef.value) {
124
- toolExportRef.value.openModal();
125
- }
82
+ emit("openExportModal");
126
83
  };
127
84
  const openPrintModal = () => {
128
- if (toolPrintRef.value) {
129
- toolPrintRef.value.openModal();
130
- }
85
+ emit("openPrintModal");
131
86
  };
132
- const printData = (params) => {
133
- if (toolPrintRef.value) {
134
- toolPrintRef.value.printData(params);
135
- }
136
- };
137
- const exportData = (params) => {
138
- if (toolExportRef.value) {
139
- toolExportRef.value.exportData(params);
140
- }
141
- };
142
- __expose({
143
- openPrintModal,
144
- printData,
145
- openExportModal,
146
- exportData
147
- });
148
87
  return (_ctx, _cache) => {
149
- return openBlock(), createElementBlock(Fragment, null, [
150
- createVNode(ToolExport, {
151
- ref_key: "toolExportRef",
152
- ref: toolExportRef,
153
- locale: unref(lang),
154
- cacheKey: __props.cacheKey,
155
- modalProps: __props.exportConfig.modalProps,
156
- columns: __props.exportConfig.columns || __props.columns,
157
- selections: __props.selections,
158
- pageData: __props.pageData,
159
- datasource: __props.exportConfig.datasource,
160
- spanMethod: __props.spanMethod,
161
- tableHeader: __props.exportConfig.showHeader ?? __props.tableHeader,
162
- showSummary: __props.showSummary,
163
- sumText: __props.sumText,
164
- summaryMethod: __props.summaryMethod,
165
- pageIndex: __props.pageIndex,
166
- treeProps: __props.treeProps,
167
- fetch: __props.fetch,
168
- defaultFileName: __props.exportConfig.fileName,
169
- defaultDataType: __props.exportConfig.dataType,
170
- defaultShowFooter: __props.exportConfig.showFooter,
171
- defaultShowTreeIndex: __props.exportConfig.showTreeIndex,
172
- beforeExport: __props.exportConfig.beforeExport
173
- }, null, 8, ["locale", "cacheKey", "modalProps", "columns", "selections", "pageData", "datasource", "spanMethod", "tableHeader", "showSummary", "sumText", "summaryMethod", "pageIndex", "treeProps", "fetch", "defaultFileName", "defaultDataType", "defaultShowFooter", "defaultShowTreeIndex", "beforeExport"]),
174
- createVNode(ToolPrint, {
175
- ref_key: "toolPrintRef",
176
- ref: toolPrintRef,
177
- locale: unref(lang),
178
- cacheKey: __props.cacheKey,
179
- modalProps: __props.printConfig.modalProps,
180
- printerProps: __props.printConfig.printerProps,
181
- tableProps: __props.printConfig.tableProps,
182
- columns: __props.printConfig.columns || __props.columns,
183
- selections: __props.selections,
184
- pageData: __props.pageData,
185
- datasource: __props.printConfig.datasource,
186
- spanMethod: __props.spanMethod,
187
- tableHeader: __props.printConfig.showHeader ?? __props.tableHeader,
188
- showSummary: __props.showSummary,
189
- sumText: __props.sumText,
190
- summaryMethod: __props.summaryMethod,
191
- tableStyle: __props.tableStyle,
192
- cellStyle: __props.cellStyle,
193
- cellClassName: __props.cellClassName,
194
- headerCellStyle: __props.headerCellStyle,
195
- headerCellClassName: __props.headerCellClassName,
196
- pageIndex: __props.pageIndex,
197
- treeProps: __props.treeProps,
198
- fetch: __props.fetch,
199
- defaultDataType: __props.printConfig.dataType,
200
- defaultShowFooter: __props.printConfig.showFooter,
201
- defaultShowTreeIndex: __props.printConfig.showTreeIndex,
202
- beforePrint: __props.printConfig.beforePrint
203
- }, createSlots({ _: 2 }, [
204
- renderList(Object.keys(_ctx.$slots), (name) => {
205
- return {
206
- name,
207
- fn: withCtx((slotProps) => [
208
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps || {})))
209
- ])
210
- };
211
- })
212
- ]), 1032, ["locale", "cacheKey", "modalProps", "printerProps", "tableProps", "columns", "selections", "pageData", "datasource", "spanMethod", "tableHeader", "showSummary", "sumText", "summaryMethod", "tableStyle", "cellStyle", "cellClassName", "headerCellStyle", "headerCellClassName", "pageIndex", "treeProps", "fetch", "defaultDataType", "defaultShowFooter", "defaultShowTreeIndex", "beforePrint"]),
213
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tools, (tool, index) => {
214
- return openBlock(), createElementBlock(Fragment, null, [
215
- tool === "reload" ? (openBlock(), createBlock(EleTool, {
216
- key: index + "-reload",
217
- placement: placement.value,
218
- title: unref(lang).refresh,
219
- onClick: reload
220
- }, {
221
- default: withCtx(() => [
222
- createVNode(unref(ElIcon), null, {
223
- default: withCtx(() => [
224
- createVNode(unref(ReloadOutlined))
225
- ]),
226
- _: 1
227
- })
228
- ]),
229
- _: 2
230
- }, 1032, ["placement", "title"])) : tool === "export" ? (openBlock(), createBlock(EleTool, {
231
- key: index + "-export",
232
- title: unref(lang).export,
233
- placement: placement.value,
234
- clickHideTooltip: true,
235
- onClick: openExportModal
236
- }, {
237
- default: withCtx(() => [
238
- createVNode(unref(ElIcon), { style: { "transform": "scale(1.1)", "transform-origin": "bottom" } }, {
239
- default: withCtx(() => [
240
- createVNode(unref(DownloadOutlined))
241
- ]),
242
- _: 1
243
- })
244
- ]),
245
- _: 2
246
- }, 1032, ["title", "placement"])) : tool === "print" ? (openBlock(), createBlock(EleTool, {
247
- key: index + "-print",
248
- title: unref(lang).print,
249
- placement: placement.value,
250
- clickHideTooltip: true,
251
- onClick: openPrintModal
252
- }, {
253
- default: withCtx(() => [
254
- createVNode(unref(ElIcon), null, {
255
- default: withCtx(() => [
256
- createVNode(unref(PrinterOutlined))
257
- ]),
258
- _: 1
259
- })
260
- ]),
261
- _: 2
262
- }, 1032, ["title", "placement"])) : tool === "size" ? (openBlock(), createBlock(EleTool, {
263
- key: index + "-size",
264
- placement: placement.value,
265
- title: unref(lang).sizes
266
- }, {
267
- default: withCtx(() => [
268
- createVNode(EleDropdown, {
269
- trigger: "click",
270
- placement: "bottom",
271
- validateEvent: false,
272
- popperClass: "ele-tool-size-popper",
273
- modelValue: __props.size,
274
- items: sizeDropdownItems.value,
275
- popperOptions: {
276
- modifiers: [{ name: "offset", options: { offset: [0, 10] } }]
277
- },
278
- onCommand: updateSize
279
- }, {
280
- default: withCtx(() => [
281
- createVNode(unref(ElIcon), null, {
282
- default: withCtx(() => [
283
- createVNode(unref(ColumnHeightOutlined))
284
- ]),
285
- _: 1
286
- })
287
- ]),
288
- _: 1
289
- }, 8, ["modelValue", "items"])
290
- ]),
291
- _: 2
292
- }, 1032, ["placement", "title"])) : tool === "columns" ? (openBlock(), createBlock(ToolColumn, {
293
- key: index + "-columns",
294
- placement: placement.value,
295
- locale: unref(lang),
296
- columns: __props.columns,
297
- sortable: __props.columnSortable,
298
- allowFixed: __props.columnFixed,
299
- cacheKey: __props.cacheKey,
300
- "onUpdate:columns": updateColumns
301
- }, null, 8, ["placement", "locale", "columns", "sortable", "allowFixed", "cacheKey"])) : tool === "maximized" ? (openBlock(), createBlock(EleTool, {
302
- key: index + "-maximized",
303
- placement: placement.value,
304
- title: unref(lang).maximized,
305
- clickHideTooltip: true,
306
- onClick: toggleMaximized
307
- }, {
308
- default: withCtx(() => [
309
- createVNode(unref(ElIcon), null, {
310
- default: withCtx(() => [
311
- __props.maximized ? (openBlock(), createBlock(unref(FullscreenExitOutlined), { key: 0 })) : (openBlock(), createBlock(unref(FullscreenOutlined), { key: 1 }))
312
- ]),
313
- _: 1
314
- })
315
- ]),
316
- _: 2
317
- }, 1032, ["placement", "title"])) : tool && !ownSlots.includes(tool) && _ctx.$slots[tool] ? renderSlot(_ctx.$slots, tool, {
318
- key: 6,
319
- pageIndex: __props.pageIndex,
320
- fetch: __props.fetch
321
- }) : createCommentVNode("", true)
322
- ], 64);
323
- }), 256))
324
- ], 64);
88
+ return openBlock(true), createElementBlock(Fragment, null, renderList(__props.tools, (tool, index) => {
89
+ return openBlock(), createElementBlock(Fragment, null, [
90
+ tool === "reload" ? (openBlock(), createBlock(EleTool, {
91
+ key: index + "-reload",
92
+ placement: placement.value,
93
+ title: __props.lang.refresh,
94
+ onClick: reload
95
+ }, {
96
+ default: withCtx(() => [
97
+ createVNode(unref(ElIcon), null, {
98
+ default: withCtx(() => [
99
+ createVNode(unref(ReloadOutlined))
100
+ ]),
101
+ _: 1
102
+ })
103
+ ]),
104
+ _: 2
105
+ }, 1032, ["placement", "title"])) : tool === "export" ? (openBlock(), createBlock(EleTool, {
106
+ key: index + "-export",
107
+ title: __props.lang.export,
108
+ placement: placement.value,
109
+ clickHideTooltip: true,
110
+ onClick: openExportModal
111
+ }, {
112
+ default: withCtx(() => [
113
+ createVNode(unref(ElIcon), { style: { "transform": "scale(1.1)", "transform-origin": "bottom" } }, {
114
+ default: withCtx(() => [
115
+ createVNode(unref(DownloadOutlined))
116
+ ]),
117
+ _: 1
118
+ })
119
+ ]),
120
+ _: 2
121
+ }, 1032, ["title", "placement"])) : tool === "print" ? (openBlock(), createBlock(EleTool, {
122
+ key: index + "-print",
123
+ title: __props.lang.print,
124
+ placement: placement.value,
125
+ clickHideTooltip: true,
126
+ onClick: openPrintModal
127
+ }, {
128
+ default: withCtx(() => [
129
+ createVNode(unref(ElIcon), null, {
130
+ default: withCtx(() => [
131
+ createVNode(unref(PrinterOutlined))
132
+ ]),
133
+ _: 1
134
+ })
135
+ ]),
136
+ _: 2
137
+ }, 1032, ["title", "placement"])) : tool === "size" ? (openBlock(), createBlock(EleTool, {
138
+ key: index + "-size",
139
+ placement: placement.value,
140
+ title: __props.lang.sizes
141
+ }, {
142
+ default: withCtx(() => [
143
+ createVNode(EleDropdown, {
144
+ trigger: "click",
145
+ placement: "bottom",
146
+ validateEvent: false,
147
+ popperClass: "ele-tool-size-popper",
148
+ modelValue: __props.size,
149
+ items: sizeDropdownItems.value,
150
+ popperOptions: {
151
+ modifiers: [{ name: "offset", options: { offset: [0, 10] } }]
152
+ },
153
+ onCommand: updateSize
154
+ }, {
155
+ default: withCtx(() => [
156
+ createVNode(unref(ElIcon), null, {
157
+ default: withCtx(() => [
158
+ createVNode(unref(ColumnHeightOutlined))
159
+ ]),
160
+ _: 1
161
+ })
162
+ ]),
163
+ _: 1
164
+ }, 8, ["modelValue", "items"])
165
+ ]),
166
+ _: 2
167
+ }, 1032, ["placement", "title"])) : tool === "columns" ? (openBlock(), createBlock(ToolColumn, {
168
+ key: index + "-columns",
169
+ placement: placement.value,
170
+ locale: __props.lang,
171
+ columns: __props.columns,
172
+ sortable: __props.columnSortable,
173
+ allowFixed: __props.columnFixed,
174
+ cacheKey: __props.cacheKey,
175
+ "onUpdate:columns": updateColumns
176
+ }, null, 8, ["placement", "locale", "columns", "sortable", "allowFixed", "cacheKey"])) : tool === "maximized" ? (openBlock(), createBlock(EleTool, {
177
+ key: index + "-maximized",
178
+ placement: placement.value,
179
+ title: __props.lang.maximized,
180
+ clickHideTooltip: true,
181
+ onClick: toggleMaximized
182
+ }, {
183
+ default: withCtx(() => [
184
+ createVNode(unref(ElIcon), null, {
185
+ default: withCtx(() => [
186
+ __props.maximized ? (openBlock(), createBlock(unref(FullscreenExitOutlined), { key: 0 })) : (openBlock(), createBlock(unref(FullscreenOutlined), { key: 1 }))
187
+ ]),
188
+ _: 1
189
+ })
190
+ ]),
191
+ _: 2
192
+ }, 1032, ["placement", "title"])) : tool && !ownSlots.includes(tool) && _ctx.$slots[tool] ? renderSlot(_ctx.$slots, tool, { key: 6 }) : createCommentVNode("", true)
193
+ ], 64);
194
+ }), 256);
325
195
  };
326
196
  }
327
197
  });
@@ -1,7 +1,7 @@
1
1
  import { PropType } from 'vue';
2
2
  import { EleModalProps } from '../../ele-app/plus';
3
3
  import { Columns, DataItem, SpanMethod, SummaryMethod, TreeProps } from '../../ele-data-table/types';
4
- import { TableLocale, ExportDataType, BeforeExport, Datasource, FetchFunction, TableExportParams } from '../types';
4
+ import { TableLocale, ExportDataType, BeforeExport, ExportPlugin, Datasource, FetchFunction, TableExportParams } from '../types';
5
5
 
6
6
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
7
7
  /** 表格国际化 */
@@ -56,6 +56,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
56
56
  defaultShowTreeIndex: BooleanConstructor;
57
57
  /** 导出前的钩子函数 */
58
58
  beforeExport: PropType<BeforeExport>;
59
+ /** 导出插件 */
60
+ exportPlugin: PropType<ExportPlugin>;
59
61
  }>, {
60
62
  openModal: () => void;
61
63
  closeModal: () => void;
@@ -113,6 +115,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
113
115
  defaultShowTreeIndex: BooleanConstructor;
114
116
  /** 导出前的钩子函数 */
115
117
  beforeExport: PropType<BeforeExport>;
118
+ /** 导出插件 */
119
+ exportPlugin: PropType<ExportPlugin>;
116
120
  }>> & Readonly<{}>, {
117
121
  showSummary: boolean;
118
122
  tableHeader: boolean;
@@ -62,7 +62,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
62
62
  /** 默认是否勾选层级序号 */
63
63
  defaultShowTreeIndex: Boolean,
64
64
  /** 导出前的钩子函数 */
65
- beforeExport: Function
65
+ beforeExport: Function,
66
+ /** 导出插件 */
67
+ exportPlugin: Function
66
68
  },
67
69
  setup(__props, { expose: __expose }) {
68
70
  const props = __props;
@@ -139,30 +141,40 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
139
141
  isShowTreeIndex,
140
142
  isShowHeader
141
143
  );
144
+ const exportParams = {
145
+ data: exportDataValue,
146
+ columns: exportColumns,
147
+ headerData,
148
+ bodyData,
149
+ footerData,
150
+ bodyCols,
151
+ fileName: exportFileName,
152
+ dataType: exportDataType,
153
+ hideLoading,
154
+ closeModal,
155
+ showHeader: isShowHeader,
156
+ showFooter: isShowFooter,
157
+ showTreeIndex: isShowTreeIndex,
158
+ tableColumns
159
+ };
142
160
  if (typeof props.beforeExport === "function") {
143
- const flag = props.beforeExport({
144
- data: exportDataValue,
145
- columns: exportColumns,
146
- headerData,
147
- bodyData,
148
- footerData,
149
- bodyCols,
150
- fileName: exportFileName,
151
- dataType: exportDataType,
152
- hideLoading,
153
- closeModal,
154
- showHeader: isShowHeader,
155
- showFooter: isShowFooter,
156
- showTreeIndex: isShowTreeIndex,
157
- tableColumns
158
- });
161
+ const flag = props.beforeExport(exportParams);
159
162
  if (flag === false) {
160
163
  return;
161
164
  }
162
165
  }
163
- exportCSV(exportFileName, headerData, bodyData, footerData);
164
- hideLoading();
165
- closeModal();
166
+ if (props.exportPlugin == null) {
167
+ exportCSV(exportFileName, headerData, bodyData, footerData);
168
+ hideLoading();
169
+ closeModal();
170
+ return;
171
+ }
172
+ props.exportPlugin(exportParams).then(() => {
173
+ hideLoading();
174
+ closeModal();
175
+ }).catch(() => {
176
+ hideLoading();
177
+ });
166
178
  };
167
179
  const handleExport = () => {
168
180
  var _a, _b;
@@ -2,7 +2,7 @@ import { PropType } from 'vue';
2
2
  import { StyleValue } from '../../ele-app/types';
3
3
  import { EleModalProps, ElePrinterProps, EleTableProps } from '../../ele-app/plus';
4
4
  import { Columns, DataItem, SpanMethod, SummaryMethod, CellStyle, CellClass, HeaderCellStyle, HeaderCellClass, TreeProps } from '../../ele-data-table/types';
5
- import { TableLocale, ExportDataType, BeforeExport, Datasource, FetchFunction, TableExportParams } from '../types';
5
+ import { TableLocale, ExportDataType, BeforeExport, ExportPlugin, Datasource, FetchFunction, TableExportParams } from '../types';
6
6
 
7
7
  declare function __VLS_template(): Partial<Record<string, (_: any) => any>> & Partial<Record<string, (_: {
8
8
  row: DataItem | undefined;
@@ -78,6 +78,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
78
78
  defaultShowTreeIndex: BooleanConstructor;
79
79
  /** 打印前的钩子函数 */
80
80
  beforePrint: PropType<BeforeExport>;
81
+ /** 打印插件 */
82
+ printPlugin: PropType<ExportPlugin>;
81
83
  }>, {
82
84
  openModal: () => void;
83
85
  closeModal: () => void;
@@ -144,6 +146,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
144
146
  defaultShowTreeIndex: BooleanConstructor;
145
147
  /** 打印前的钩子函数 */
146
148
  beforePrint: PropType<BeforeExport>;
149
+ /** 打印插件 */
150
+ printPlugin: PropType<ExportPlugin>;
147
151
  }>> & Readonly<{}>, {
148
152
  showSummary: boolean;
149
153
  tableHeader: boolean;
@@ -84,7 +84,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
84
84
  /** 默认是否勾选层级序号 */
85
85
  defaultShowTreeIndex: Boolean,
86
86
  /** 打印前的钩子函数 */
87
- beforePrint: Function
87
+ beforePrint: Function,
88
+ /** 打印插件 */
89
+ printPlugin: Function
88
90
  },
89
91
  setup(__props, { expose: __expose }) {
90
92
  const ownSlots = ["printTop", "printBottom"];
@@ -163,35 +165,45 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
163
165
  isShowTreeIndex,
164
166
  isShowHeader
165
167
  );
168
+ const printParams = {
169
+ data: printDataValue,
170
+ columns: printColumns,
171
+ headerData,
172
+ bodyData,
173
+ footerData,
174
+ bodyCols,
175
+ dataType: printDataType,
176
+ hideLoading,
177
+ closeModal,
178
+ showHeader: isShowHeader,
179
+ showFooter: isShowFooter,
180
+ showTreeIndex: isShowTreeIndex,
181
+ tableColumns
182
+ };
166
183
  if (typeof props.beforePrint === "function") {
167
- const flag = props.beforePrint({
168
- data: printDataValue,
169
- columns: printColumns,
170
- headerData,
171
- bodyData,
172
- footerData,
173
- bodyCols,
174
- dataType: printDataType,
175
- hideLoading,
176
- closeModal,
177
- showHeader: isShowHeader,
178
- showFooter: isShowFooter,
179
- showTreeIndex: isShowTreeIndex,
180
- tableColumns
181
- });
184
+ const flag = props.beforePrint(printParams);
182
185
  if (flag === false) {
183
186
  return;
184
187
  }
185
188
  }
186
- printOptions.data = printDataValue;
187
- printOptions.headerData = headerData;
188
- printOptions.bodyData = bodyData;
189
- printOptions.footerData = footerData;
190
- printOptions.hasHeader = !!printOptions.headerData.length;
191
- printOptions.hasFooter = !!printOptions.footerData.length;
192
- printOptions.bodyCols = bodyCols;
193
- nextTick(() => {
194
- printOptions.printing = true;
189
+ if (props.printPlugin == null) {
190
+ printOptions.data = printDataValue;
191
+ printOptions.headerData = headerData;
192
+ printOptions.bodyData = bodyData;
193
+ printOptions.footerData = footerData;
194
+ printOptions.hasHeader = !!printOptions.headerData.length;
195
+ printOptions.hasFooter = !!printOptions.footerData.length;
196
+ printOptions.bodyCols = bodyCols;
197
+ nextTick(() => {
198
+ printOptions.printing = true;
199
+ });
200
+ return;
201
+ }
202
+ props.printPlugin(printParams).then(() => {
203
+ hideLoading();
204
+ closeModal();
205
+ }).catch(() => {
206
+ hideLoading();
195
207
  });
196
208
  };
197
209
  const handlePrint = () => {
@@ -0,0 +1,12 @@
1
+ import { default as ExcelJS } from 'exceljs';
2
+ import { ExportPlugin, BeforeExportParams } from './types';
3
+
4
+ /**
5
+ * 导出生成 ExcelJS Workbook
6
+ * @param params 参数
7
+ */
8
+ export declare function getExportWorkbook(params: BeforeExportParams): ExcelJS.Workbook;
9
+ /**
10
+ * 使用 ExcelJS 进行导出的插件
11
+ */
12
+ export declare const exceljsPlugin: ExportPlugin;