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
@@ -0,0 +1,34 @@
1
+ import type { PropType } from 'vue';
2
+ import { StyleValues } from '../../ele-app/types';
3
+ import type { CustomRenderProps } from '../../ele-virtual-table/types';
4
+ import type { ExportDataItem } from '../types';
5
+ declare const _default: import("vue").DefineComponent<{
6
+ /** 列数据 */
7
+ col: {
8
+ type: PropType<ExportDataItem>;
9
+ required: true;
10
+ };
11
+ /** 列索引 */
12
+ columnIndex: NumberConstructor;
13
+ /** 单元格样式 */
14
+ headerCellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<import("../types").DataItem> | undefined>;
15
+ /** 单元格类名自定义 */
16
+ headerCellClass: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<import("../types").DataItem> | undefined>;
17
+ }, {
18
+ renderOpt: import("vue").ComputedRef<CustomRenderProps>;
19
+ cellStyle: import("vue").ComputedRef<StyleValues | undefined>;
20
+ cellClass: import("vue").ComputedRef<string>;
21
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
22
+ /** 列数据 */
23
+ col: {
24
+ type: PropType<ExportDataItem>;
25
+ required: true;
26
+ };
27
+ /** 列索引 */
28
+ columnIndex: NumberConstructor;
29
+ /** 单元格样式 */
30
+ headerCellStyle: PropType<import("element-plus/es/components/table/src/table/defaults").CellStyle<import("../types").DataItem> | undefined>;
31
+ /** 单元格类名自定义 */
32
+ headerCellClass: PropType<import("element-plus/es/components/table/src/table/defaults").CellCls<import("../types").DataItem> | undefined>;
33
+ }>>, {}, {}>;
34
+ export default _default;
@@ -0,0 +1,546 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const elementPlus = require("element-plus");
4
+ const icons = require("../../icons");
5
+ const core = require("../../utils/core");
6
+ const EleTool = require("../../ele-tool/index");
7
+ const EleModal = require("../../ele-modal/index");
8
+ const ElePrinter = require("../../ele-printer/index");
9
+ const EleTable = require("../../ele-table/index");
10
+ const util = require("../../ele-virtual-table/util");
11
+ const util$1 = require("../util");
12
+ const ToolColumnList = require("./tool-column-list");
13
+ const ToolPrintBodyCell = require("./tool-print-body-cell");
14
+ const ToolPrintHeaderCell = require("./tool-print-header-cell");
15
+ const _sfc_main = vue.defineComponent({
16
+ name: "ToolPrint",
17
+ components: {
18
+ ElForm: elementPlus.ElForm,
19
+ ElFormItem: elementPlus.ElFormItem,
20
+ ElSelect: elementPlus.ElSelect,
21
+ ElOption: elementPlus.ElOption,
22
+ ElCheckbox: elementPlus.ElCheckbox,
23
+ ElButton: elementPlus.ElButton,
24
+ ElIcon: elementPlus.ElIcon,
25
+ PrinterOutlined: icons.PrinterOutlined,
26
+ EleTool,
27
+ EleModal,
28
+ ElePrinter,
29
+ EleTable,
30
+ CellRender: util.CellRender,
31
+ ToolColumnList,
32
+ ToolPrintBodyCell,
33
+ ToolPrintHeaderCell
34
+ },
35
+ props: {
36
+ /** 提示文字 */
37
+ title: String,
38
+ /** 提示位置 */
39
+ placement: String,
40
+ /** 全选文字 */
41
+ checkAllText: String,
42
+ /** 重置文字 */
43
+ resetText: String,
44
+ /** 无标题列文字 */
45
+ untitledText: String,
46
+ /** 选择数据文字 */
47
+ selectDataText: String,
48
+ /** 选择字段文字 */
49
+ selectColumnText: String,
50
+ /** 当前页数据文字 */
51
+ dataTypePageText: String,
52
+ /** 选中数据文字 */
53
+ dataTypeSelectedText: String,
54
+ /** 全部数据文字 */
55
+ dataTypeAllText: String,
56
+ /** 取消文字 */
57
+ cancelText: String,
58
+ /** 确定文字 */
59
+ okText: String,
60
+ /** 弹窗参数 */
61
+ modalProps: Object,
62
+ /** 打印组件参数 */
63
+ printerProps: Object,
64
+ /** 打印表格参数 */
65
+ tableProps: Object,
66
+ /** 列数据 */
67
+ columns: Array,
68
+ /** 表格选中数据 */
69
+ selections: Array,
70
+ /** 表格当前页数据 */
71
+ pageData: Array,
72
+ /** 表格全部数据 */
73
+ datasource: Array,
74
+ /** 单元格合并行列方法 */
75
+ spanMethod: Function,
76
+ /** 是否显示合计行 */
77
+ showSummary: Boolean,
78
+ /** 合计行文本 */
79
+ sumText: String,
80
+ /** 合计行自定义方法 */
81
+ summaryMethod: Function,
82
+ /** 单元格样式 */
83
+ cellStyle: [Object, Function],
84
+ /** 单元格类名自定义 */
85
+ cellClassName: [String, Function],
86
+ /** 单元格样式 */
87
+ headerCellStyle: [Object, Function],
88
+ /** 单元格类名自定义 */
89
+ headerCellClassName: [String, Function],
90
+ /** 序号列起始索引 */
91
+ pageIndex: Number,
92
+ /** 表格请求数据方法 */
93
+ fetch: Function,
94
+ /** 默认数据类型 */
95
+ defaultDataType: {
96
+ type: String,
97
+ default: "pageData"
98
+ },
99
+ /** 打印前的钩子函数 */
100
+ beforePrint: Function
101
+ },
102
+ setup(props) {
103
+ const visible = vue.ref(false);
104
+ const loading = vue.ref(false);
105
+ const dataType = vue.ref(props.defaultDataType);
106
+ const colItems = vue.ref([]);
107
+ const isCheckAll = vue.ref(false);
108
+ const isIndeterminate = vue.ref(false);
109
+ const printOptions = vue.reactive({
110
+ printing: false,
111
+ headerData: [],
112
+ bodyData: [],
113
+ footerData: [],
114
+ hasHeader: false,
115
+ hasFooter: false,
116
+ bodyCols: []
117
+ });
118
+ const openModal = () => {
119
+ visible.value = true;
120
+ };
121
+ const closeModal = () => {
122
+ visible.value = false;
123
+ };
124
+ const showLoading = () => {
125
+ loading.value = true;
126
+ };
127
+ const hideLoading = () => {
128
+ loading.value = false;
129
+ };
130
+ const onPrintDone = () => {
131
+ hideLoading();
132
+ if (props.printerProps != null && typeof props.printerProps.onDone === "function") {
133
+ props.printerProps.onDone();
134
+ }
135
+ };
136
+ const printData = (data) => {
137
+ showLoading();
138
+ const columns = util$1.getCheckedColumns(
139
+ props.columns,
140
+ colItems.value,
141
+ true,
142
+ util$1.exportColumnsfilter
143
+ );
144
+ const { headerData, bodyData, footerData, bodyCols } = util$1.getExportData(
145
+ data,
146
+ columns,
147
+ props.spanMethod,
148
+ props.pageIndex,
149
+ props.showSummary,
150
+ props.sumText,
151
+ props.summaryMethod
152
+ );
153
+ if (typeof props.beforePrint === "function") {
154
+ const flag = props.beforePrint({
155
+ data,
156
+ columns,
157
+ headerData,
158
+ bodyData,
159
+ footerData,
160
+ bodyCols,
161
+ hideLoading,
162
+ closeModal
163
+ });
164
+ if (flag === false) {
165
+ return;
166
+ }
167
+ }
168
+ printOptions.headerData = headerData;
169
+ printOptions.bodyData = bodyData;
170
+ printOptions.footerData = footerData;
171
+ printOptions.hasHeader = !!printOptions.headerData.length;
172
+ printOptions.hasFooter = !!printOptions.footerData.length;
173
+ printOptions.bodyCols = bodyCols;
174
+ vue.nextTick(() => {
175
+ printOptions.printing = true;
176
+ });
177
+ };
178
+ const handlePrint = () => {
179
+ if (dataType.value === "selections") {
180
+ printData([...props.selections || []]);
181
+ return;
182
+ }
183
+ if (dataType.value !== "data") {
184
+ printData([...props.pageData || []]);
185
+ return;
186
+ }
187
+ if (props.datasource == null || typeof props.datasource !== "function" || typeof props.fetch !== "function") {
188
+ return;
189
+ }
190
+ showLoading();
191
+ props.fetch((params) => {
192
+ props.datasource(params).then((result) => {
193
+ if (result == null) {
194
+ hideLoading();
195
+ return;
196
+ }
197
+ printData(result);
198
+ }).catch(() => {
199
+ hideLoading();
200
+ });
201
+ });
202
+ };
203
+ const initColItems = () => {
204
+ colItems.value = util$1.getColItems(
205
+ props.columns,
206
+ props.untitledText,
207
+ util$1.exportColumnsfilter
208
+ );
209
+ let checkAll = true;
210
+ let indeterminate = false;
211
+ core.eachTree(colItems.value, (d) => {
212
+ if (!d.checked && checkAll) {
213
+ checkAll = false;
214
+ }
215
+ if (d.checked && !indeterminate) {
216
+ indeterminate = true;
217
+ }
218
+ if (!checkAll && indeterminate) {
219
+ return false;
220
+ }
221
+ });
222
+ isCheckAll.value = colItems.value.length > 0 && checkAll;
223
+ isIndeterminate.value = !checkAll && indeterminate;
224
+ };
225
+ const onCheckedChange = (item, checked) => {
226
+ let checkAll = true;
227
+ let indeterminate = false;
228
+ core.eachTree(colItems.value, (d) => {
229
+ if (d.uid === item.uid) {
230
+ d.checked = checked;
231
+ }
232
+ if (!d.checked && checkAll) {
233
+ checkAll = false;
234
+ }
235
+ if (d.checked && !indeterminate) {
236
+ indeterminate = true;
237
+ }
238
+ if (d.uid === item.uid && !checkAll && indeterminate) {
239
+ return false;
240
+ }
241
+ });
242
+ isCheckAll.value = colItems.value.length > 0 && checkAll;
243
+ isIndeterminate.value = !checkAll && indeterminate;
244
+ };
245
+ const onSortChange = (items, parent) => {
246
+ if (!parent) {
247
+ colItems.value = items;
248
+ } else {
249
+ core.eachTree(colItems.value, (d) => {
250
+ if (d.uid === parent.uid) {
251
+ d.children = items;
252
+ return false;
253
+ }
254
+ });
255
+ }
256
+ };
257
+ const onCheckAllChange = (checked) => {
258
+ isCheckAll.value = checked;
259
+ isIndeterminate.value = false;
260
+ core.eachTree(colItems.value, (d) => {
261
+ if (d.checked !== checked) {
262
+ d.checked = checked;
263
+ }
264
+ });
265
+ };
266
+ const onReset = () => {
267
+ initColItems();
268
+ };
269
+ vue.watch(visible, (visible2) => {
270
+ if (visible2) {
271
+ dataType.value = props.defaultDataType;
272
+ initColItems();
273
+ return;
274
+ }
275
+ printOptions.headerData = [];
276
+ printOptions.bodyData = [];
277
+ printOptions.footerData = [];
278
+ printOptions.bodyCols = [];
279
+ printOptions.hasHeader = false;
280
+ printOptions.hasFooter = false;
281
+ printOptions.printing = false;
282
+ loading.value = false;
283
+ });
284
+ return {
285
+ visible,
286
+ loading,
287
+ dataType,
288
+ colItems,
289
+ isCheckAll,
290
+ isIndeterminate,
291
+ printOptions,
292
+ openModal,
293
+ closeModal,
294
+ onPrintDone,
295
+ handlePrint,
296
+ onCheckedChange,
297
+ onSortChange,
298
+ onCheckAllChange,
299
+ onReset
300
+ };
301
+ }
302
+ });
303
+ const _export_sfc = (sfc, props) => {
304
+ const target = sfc.__vccOpts || sfc;
305
+ for (const [key, val] of props) {
306
+ target[key] = val;
307
+ }
308
+ return target;
309
+ };
310
+ const _hoisted_1 = { class: "ele-tool-column is-sortable" };
311
+ const _hoisted_2 = { class: "ele-tool-column-header" };
312
+ const _hoisted_3 = { class: "ele-tool-column-label" };
313
+ const _hoisted_4 = ["width"];
314
+ const _hoisted_5 = { key: 0 };
315
+ const _hoisted_6 = { key: 1 };
316
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
317
+ const _component_PrinterOutlined = vue.resolveComponent("PrinterOutlined");
318
+ const _component_ElIcon = vue.resolveComponent("ElIcon");
319
+ const _component_ElOption = vue.resolveComponent("ElOption");
320
+ const _component_ElSelect = vue.resolveComponent("ElSelect");
321
+ const _component_ElFormItem = vue.resolveComponent("ElFormItem");
322
+ const _component_ElCheckbox = vue.resolveComponent("ElCheckbox");
323
+ const _component_ToolColumnList = vue.resolveComponent("ToolColumnList");
324
+ const _component_ElForm = vue.resolveComponent("ElForm");
325
+ const _component_ElButton = vue.resolveComponent("ElButton");
326
+ const _component_EleModal = vue.resolveComponent("EleModal");
327
+ const _component_ToolPrintHeaderCell = vue.resolveComponent("ToolPrintHeaderCell");
328
+ const _component_ToolPrintBodyCell = vue.resolveComponent("ToolPrintBodyCell");
329
+ const _component_CellRender = vue.resolveComponent("CellRender");
330
+ const _component_EleTable = vue.resolveComponent("EleTable");
331
+ const _component_ElePrinter = vue.resolveComponent("ElePrinter");
332
+ const _component_EleTool = vue.resolveComponent("EleTool");
333
+ return vue.openBlock(), vue.createBlock(_component_EleTool, {
334
+ title: _ctx.title,
335
+ placement: _ctx.placement,
336
+ onClick: _ctx.openModal
337
+ }, {
338
+ default: vue.withCtx(() => [
339
+ vue.createVNode(_component_ElIcon, null, {
340
+ default: vue.withCtx(() => [
341
+ vue.createVNode(_component_PrinterOutlined)
342
+ ]),
343
+ _: 1
344
+ }),
345
+ vue.createVNode(_component_EleModal, vue.mergeProps({
346
+ form: true,
347
+ width: "460px",
348
+ title: _ctx.title,
349
+ position: "center"
350
+ }, _ctx.modalProps || {}, {
351
+ modelValue: _ctx.visible,
352
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.visible = $event)
353
+ }), {
354
+ footer: vue.withCtx(() => [
355
+ vue.createVNode(_component_ElButton, { onClick: _ctx.closeModal }, {
356
+ default: vue.withCtx(() => [
357
+ vue.createTextVNode(vue.toDisplayString(_ctx.cancelText), 1)
358
+ ]),
359
+ _: 1
360
+ }, 8, ["onClick"]),
361
+ vue.createVNode(_component_ElButton, {
362
+ loading: _ctx.loading,
363
+ type: "primary",
364
+ onClick: _ctx.handlePrint
365
+ }, {
366
+ default: vue.withCtx(() => [
367
+ vue.createTextVNode(vue.toDisplayString(_ctx.okText), 1)
368
+ ]),
369
+ _: 1
370
+ }, 8, ["loading", "onClick"])
371
+ ]),
372
+ default: vue.withCtx(() => [
373
+ vue.createVNode(_component_ElForm, {
374
+ labelWidth: "80px",
375
+ onSubmit: _cache[2] || (_cache[2] = vue.withModifiers(() => {
376
+ }, ["prevent"])),
377
+ class: "ele-tool-print-form"
378
+ }, {
379
+ default: vue.withCtx(() => [
380
+ vue.createVNode(_component_ElFormItem, { label: _ctx.selectDataText }, {
381
+ default: vue.withCtx(() => [
382
+ vue.createVNode(_component_ElSelect, {
383
+ modelValue: _ctx.dataType,
384
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.dataType = $event),
385
+ placeholder: _ctx.selectDataText
386
+ }, {
387
+ default: vue.withCtx(() => [
388
+ _ctx.pageData != null ? (vue.openBlock(), vue.createBlock(_component_ElOption, {
389
+ key: 0,
390
+ value: "pageData",
391
+ label: _ctx.dataTypePageText
392
+ }, null, 8, ["label"])) : vue.createCommentVNode("", true),
393
+ _ctx.selections != null ? (vue.openBlock(), vue.createBlock(_component_ElOption, {
394
+ key: 1,
395
+ value: "selections",
396
+ label: _ctx.dataTypeSelectedText
397
+ }, null, 8, ["label"])) : vue.createCommentVNode("", true),
398
+ _ctx.datasource != null ? (vue.openBlock(), vue.createBlock(_component_ElOption, {
399
+ key: 2,
400
+ value: "data",
401
+ label: _ctx.dataTypeAllText
402
+ }, null, 8, ["label"])) : vue.createCommentVNode("", true)
403
+ ]),
404
+ _: 1
405
+ }, 8, ["modelValue", "placeholder"])
406
+ ]),
407
+ _: 1
408
+ }, 8, ["label"]),
409
+ vue.createVNode(_component_ElFormItem, { label: _ctx.selectColumnText }, {
410
+ default: vue.withCtx(() => [
411
+ vue.createElementVNode("div", _hoisted_1, [
412
+ vue.createElementVNode("div", _hoisted_2, [
413
+ vue.createElementVNode("div", _hoisted_3, [
414
+ vue.createVNode(_component_ElCheckbox, {
415
+ modelValue: _ctx.isCheckAll,
416
+ indeterminate: _ctx.isIndeterminate,
417
+ "onUpdate:modelValue": _ctx.onCheckAllChange
418
+ }, {
419
+ default: vue.withCtx(() => [
420
+ vue.createTextVNode(vue.toDisplayString(_ctx.checkAllText), 1)
421
+ ]),
422
+ _: 1
423
+ }, 8, ["modelValue", "indeterminate", "onUpdate:modelValue"])
424
+ ]),
425
+ vue.createElementVNode("div", {
426
+ class: "ele-tool-column-link",
427
+ onClick: _cache[1] || (_cache[1] = (...args) => _ctx.onReset && _ctx.onReset(...args))
428
+ }, vue.toDisplayString(_ctx.resetText), 1)
429
+ ]),
430
+ vue.createVNode(_component_ToolColumnList, {
431
+ data: _ctx.colItems,
432
+ sortable: true,
433
+ onSortChange: _ctx.onSortChange,
434
+ onCheckedChange: _ctx.onCheckedChange
435
+ }, null, 8, ["data", "onSortChange", "onCheckedChange"])
436
+ ])
437
+ ]),
438
+ _: 1
439
+ }, 8, ["label"])
440
+ ]),
441
+ _: 1
442
+ })
443
+ ]),
444
+ _: 1
445
+ }, 16, ["title", "modelValue"]),
446
+ vue.createVNode(_component_ElePrinter, vue.mergeProps({ target: "_iframe" }, _ctx.printerProps || {}, {
447
+ modelValue: _ctx.printOptions.printing,
448
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.printOptions.printing = $event),
449
+ onDone: _ctx.onPrintDone
450
+ }), {
451
+ default: vue.withCtx(() => [
452
+ vue.createVNode(_component_EleTable, vue.mergeProps({
453
+ border: true,
454
+ printSkin: true,
455
+ hasHeader: _ctx.printOptions.hasHeader,
456
+ hasFooter: _ctx.printOptions.hasFooter
457
+ }, _ctx.tableProps || {}), {
458
+ default: vue.withCtx(() => [
459
+ vue.createElementVNode("colgroup", null, [
460
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.printOptions.bodyCols, (col) => {
461
+ return vue.openBlock(), vue.createElementBlock("col", {
462
+ key: col.key,
463
+ width: col.width
464
+ }, null, 8, _hoisted_4);
465
+ }), 128))
466
+ ]),
467
+ _ctx.printOptions.hasHeader ? (vue.openBlock(), vue.createElementBlock("thead", _hoisted_5, [
468
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.printOptions.headerData, (item, index) => {
469
+ return vue.openBlock(), vue.createElementBlock("tr", { key: index }, [
470
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item, (col, columnIndex) => {
471
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
472
+ col.rowspan != 0 && col.colspan != 0 ? (vue.openBlock(), vue.createBlock(_component_ToolPrintHeaderCell, {
473
+ key: col.key,
474
+ col,
475
+ columnIndex,
476
+ headerCellStyle: _ctx.headerCellStyle,
477
+ headerCellClass: _ctx.headerCellClassName
478
+ }, vue.createSlots({ _: 2 }, [
479
+ vue.renderList(Object.keys(_ctx.$slots), (name) => {
480
+ return {
481
+ name,
482
+ fn: vue.withCtx((slotProps) => [
483
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(slotProps || {})))
484
+ ])
485
+ };
486
+ })
487
+ ]), 1032, ["col", "columnIndex", "headerCellStyle", "headerCellClass"])) : vue.createCommentVNode("", true)
488
+ ], 64);
489
+ }), 256))
490
+ ]);
491
+ }), 128))
492
+ ])) : vue.createCommentVNode("", true),
493
+ vue.createElementVNode("tbody", null, [
494
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.printOptions.bodyData, (item, index) => {
495
+ return vue.openBlock(), vue.createElementBlock("tr", { key: index }, [
496
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item, (col, columnIndex) => {
497
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
498
+ col.rowspan != 0 && col.colspan != 0 ? (vue.openBlock(), vue.createBlock(_component_ToolPrintBodyCell, {
499
+ key: col.key,
500
+ col,
501
+ columnIndex,
502
+ bodyCellStyle: _ctx.cellStyle,
503
+ bodyCellClass: _ctx.cellClassName
504
+ }, vue.createSlots({ _: 2 }, [
505
+ vue.renderList(Object.keys(_ctx.$slots), (name) => {
506
+ return {
507
+ name,
508
+ fn: vue.withCtx((slotProps) => [
509
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(slotProps || {})))
510
+ ])
511
+ };
512
+ })
513
+ ]), 1032, ["col", "columnIndex", "bodyCellStyle", "bodyCellClass"])) : vue.createCommentVNode("", true)
514
+ ], 64);
515
+ }), 256))
516
+ ]);
517
+ }), 128))
518
+ ]),
519
+ _ctx.printOptions.hasFooter ? (vue.openBlock(), vue.createElementBlock("tfoot", _hoisted_6, [
520
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.printOptions.footerData, (item, index) => {
521
+ return vue.openBlock(), vue.createElementBlock("tr", { key: index }, [
522
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(item, (col) => {
523
+ return vue.openBlock(), vue.createElementBlock("td", {
524
+ key: col.key
525
+ }, [
526
+ vue.createVNode(_component_CellRender, {
527
+ render: () => col.text,
528
+ params: []
529
+ }, null, 8, ["render"])
530
+ ]);
531
+ }), 128))
532
+ ]);
533
+ }), 128))
534
+ ])) : vue.createCommentVNode("", true)
535
+ ]),
536
+ _: 3
537
+ }, 16, ["hasHeader", "hasFooter"])
538
+ ]),
539
+ _: 3
540
+ }, 16, ["modelValue", "onDone"])
541
+ ]),
542
+ _: 3
543
+ }, 8, ["title", "placement", "onClick"]);
544
+ }
545
+ const toolPrint = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
546
+ module.exports = toolPrint;