vxe-table 4.13.39 → 4.13.41

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 (222) hide show
  1. package/README.en.md +2 -0
  2. package/README.ja-JP.md +2 -0
  3. package/README.md +3 -0
  4. package/README.zh-TW.md +3 -1
  5. package/es/grid/src/grid.js +21 -6
  6. package/es/{iconfont.1749800539928.ttf → iconfont.1750153812846.ttf} +0 -0
  7. package/es/iconfont.1750153812846.woff +0 -0
  8. package/es/iconfont.1750153812846.woff2 +0 -0
  9. package/es/index.css +1 -1
  10. package/es/index.min.css +1 -1
  11. package/es/locale/lang/ar-EG.js +6 -0
  12. package/es/locale/lang/de-DE.js +6 -0
  13. package/es/locale/lang/en-US.js +6 -0
  14. package/es/locale/lang/es-ES.js +6 -0
  15. package/es/locale/lang/fr-FR.js +6 -0
  16. package/es/locale/lang/hu-HU.js +6 -0
  17. package/es/locale/lang/hy-AM.js +6 -0
  18. package/es/locale/lang/id-ID.js +6 -0
  19. package/es/locale/lang/it-IT.js +6 -0
  20. package/es/locale/lang/ja-JP.js +6 -0
  21. package/es/locale/lang/ko-KR.js +6 -0
  22. package/es/locale/lang/ms-MY.js +6 -0
  23. package/es/locale/lang/nb-NO.js +6 -0
  24. package/es/locale/lang/pt-BR.js +6 -0
  25. package/es/locale/lang/ru-RU.js +6 -0
  26. package/es/locale/lang/th-TH.js +6 -0
  27. package/es/locale/lang/ug-CN.js +6 -0
  28. package/es/locale/lang/uk-UA.js +6 -0
  29. package/es/locale/lang/uz-UZ.js +6 -0
  30. package/es/locale/lang/vi-VN.js +6 -0
  31. package/es/locale/lang/zh-CHT.js +6 -0
  32. package/es/locale/lang/zh-CN.js +6 -0
  33. package/es/style.css +1 -1
  34. package/es/style.min.css +1 -1
  35. package/es/table/module/custom/hook.js +29 -4
  36. package/es/table/module/custom/panel.js +105 -93
  37. package/es/table/module/export/export-panel.js +3 -2
  38. package/es/table/module/export/import-panel.js +3 -2
  39. package/es/table/module/filter/panel.js +3 -2
  40. package/es/table/module/menu/panel.js +3 -2
  41. package/es/table/src/body.js +7 -5
  42. package/es/table/src/cell.js +14 -14
  43. package/es/table/src/column.js +3 -2
  44. package/es/table/src/footer.js +3 -2
  45. package/es/table/src/group.js +3 -2
  46. package/es/table/src/header.js +3 -2
  47. package/es/table/src/props.js +28 -7
  48. package/es/table/src/table.js +64 -47
  49. package/es/table/style.css +22 -3
  50. package/es/table/style.min.css +1 -1
  51. package/es/toolbar/src/toolbar.js +155 -61
  52. package/es/ui/index.js +12 -1
  53. package/es/ui/src/comp.js +2 -0
  54. package/es/ui/src/log.js +1 -1
  55. package/es/vxe-table/style.css +22 -3
  56. package/es/vxe-table/style.min.css +1 -1
  57. package/lib/grid/src/grid.js +20 -5
  58. package/lib/grid/src/grid.min.js +1 -1
  59. package/lib/{iconfont.1749800539928.ttf → iconfont.1750153812846.ttf} +0 -0
  60. package/lib/iconfont.1750153812846.woff +0 -0
  61. package/lib/iconfont.1750153812846.woff2 +0 -0
  62. package/lib/index.css +1 -1
  63. package/lib/index.min.css +1 -1
  64. package/lib/index.umd.js +350 -150
  65. package/lib/index.umd.min.js +1 -1
  66. package/lib/locale/lang/ar-EG.js +6 -0
  67. package/lib/locale/lang/ar-EG.min.js +1 -1
  68. package/lib/locale/lang/ar-EG.umd.js +6 -0
  69. package/lib/locale/lang/de-DE.js +6 -0
  70. package/lib/locale/lang/de-DE.min.js +1 -1
  71. package/lib/locale/lang/de-DE.umd.js +6 -0
  72. package/lib/locale/lang/en-US.js +6 -0
  73. package/lib/locale/lang/en-US.min.js +1 -1
  74. package/lib/locale/lang/en-US.umd.js +6 -0
  75. package/lib/locale/lang/es-ES.js +6 -0
  76. package/lib/locale/lang/es-ES.min.js +1 -1
  77. package/lib/locale/lang/es-ES.umd.js +6 -0
  78. package/lib/locale/lang/fr-FR.js +6 -0
  79. package/lib/locale/lang/fr-FR.min.js +1 -1
  80. package/lib/locale/lang/fr-FR.umd.js +6 -0
  81. package/lib/locale/lang/hu-HU.js +6 -0
  82. package/lib/locale/lang/hu-HU.min.js +1 -1
  83. package/lib/locale/lang/hu-HU.umd.js +6 -0
  84. package/lib/locale/lang/hy-AM.js +6 -0
  85. package/lib/locale/lang/hy-AM.min.js +1 -1
  86. package/lib/locale/lang/hy-AM.umd.js +6 -0
  87. package/lib/locale/lang/id-ID.js +6 -0
  88. package/lib/locale/lang/id-ID.min.js +1 -1
  89. package/lib/locale/lang/id-ID.umd.js +6 -0
  90. package/lib/locale/lang/it-IT.js +6 -0
  91. package/lib/locale/lang/it-IT.min.js +1 -1
  92. package/lib/locale/lang/it-IT.umd.js +6 -0
  93. package/lib/locale/lang/ja-JP.js +6 -0
  94. package/lib/locale/lang/ja-JP.min.js +1 -1
  95. package/lib/locale/lang/ja-JP.umd.js +6 -0
  96. package/lib/locale/lang/ko-KR.js +6 -0
  97. package/lib/locale/lang/ko-KR.min.js +1 -1
  98. package/lib/locale/lang/ko-KR.umd.js +6 -0
  99. package/lib/locale/lang/ms-MY.js +6 -0
  100. package/lib/locale/lang/ms-MY.min.js +1 -1
  101. package/lib/locale/lang/ms-MY.umd.js +6 -0
  102. package/lib/locale/lang/nb-NO.js +6 -0
  103. package/lib/locale/lang/nb-NO.min.js +1 -1
  104. package/lib/locale/lang/nb-NO.umd.js +6 -0
  105. package/lib/locale/lang/pt-BR.js +6 -0
  106. package/lib/locale/lang/pt-BR.min.js +1 -1
  107. package/lib/locale/lang/pt-BR.umd.js +6 -0
  108. package/lib/locale/lang/ru-RU.js +6 -0
  109. package/lib/locale/lang/ru-RU.min.js +1 -1
  110. package/lib/locale/lang/ru-RU.umd.js +6 -0
  111. package/lib/locale/lang/th-TH.js +6 -0
  112. package/lib/locale/lang/th-TH.min.js +1 -1
  113. package/lib/locale/lang/th-TH.umd.js +6 -0
  114. package/lib/locale/lang/ug-CN.js +6 -0
  115. package/lib/locale/lang/ug-CN.min.js +1 -1
  116. package/lib/locale/lang/ug-CN.umd.js +6 -0
  117. package/lib/locale/lang/uk-UA.js +6 -0
  118. package/lib/locale/lang/uk-UA.min.js +1 -1
  119. package/lib/locale/lang/uk-UA.umd.js +6 -0
  120. package/lib/locale/lang/uz-UZ.js +6 -0
  121. package/lib/locale/lang/uz-UZ.min.js +1 -1
  122. package/lib/locale/lang/uz-UZ.umd.js +6 -0
  123. package/lib/locale/lang/vi-VN.js +6 -0
  124. package/lib/locale/lang/vi-VN.min.js +1 -1
  125. package/lib/locale/lang/vi-VN.umd.js +6 -0
  126. package/lib/locale/lang/zh-CHT.js +6 -0
  127. package/lib/locale/lang/zh-CHT.min.js +1 -1
  128. package/lib/locale/lang/zh-CHT.umd.js +6 -0
  129. package/lib/locale/lang/zh-CN.js +6 -0
  130. package/lib/locale/lang/zh-CN.min.js +1 -1
  131. package/lib/locale/lang/zh-CN.umd.js +6 -0
  132. package/lib/style.css +1 -1
  133. package/lib/style.min.css +1 -1
  134. package/lib/table/module/custom/hook.js +32 -4
  135. package/lib/table/module/custom/hook.min.js +1 -1
  136. package/lib/table/module/custom/panel.js +14 -3
  137. package/lib/table/module/custom/panel.min.js +1 -1
  138. package/lib/table/module/export/export-panel.js +2 -1
  139. package/lib/table/module/export/export-panel.min.js +1 -1
  140. package/lib/table/module/export/import-panel.js +2 -1
  141. package/lib/table/module/export/import-panel.min.js +1 -1
  142. package/lib/table/module/filter/panel.js +2 -1
  143. package/lib/table/module/filter/panel.min.js +1 -1
  144. package/lib/table/module/menu/panel.js +2 -1
  145. package/lib/table/module/menu/panel.min.js +1 -1
  146. package/lib/table/src/body.js +9 -9
  147. package/lib/table/src/body.min.js +1 -1
  148. package/lib/table/src/cell.js +16 -16
  149. package/lib/table/src/cell.min.js +1 -1
  150. package/lib/table/src/column.js +2 -1
  151. package/lib/table/src/column.min.js +1 -1
  152. package/lib/table/src/footer.js +2 -1
  153. package/lib/table/src/footer.min.js +1 -1
  154. package/lib/table/src/group.js +2 -1
  155. package/lib/table/src/group.min.js +1 -1
  156. package/lib/table/src/header.js +2 -1
  157. package/lib/table/src/header.min.js +1 -1
  158. package/lib/table/src/props.js +28 -7
  159. package/lib/table/src/table.js +13 -11
  160. package/lib/table/src/table.min.js +1 -1
  161. package/lib/table/style/style.css +22 -3
  162. package/lib/table/style/style.min.css +1 -1
  163. package/lib/toolbar/src/toolbar.js +180 -85
  164. package/lib/toolbar/src/toolbar.min.js +1 -1
  165. package/lib/ui/index.js +12 -1
  166. package/lib/ui/index.min.js +1 -1
  167. package/lib/ui/src/comp.js +8 -0
  168. package/lib/ui/src/comp.min.js +1 -0
  169. package/lib/ui/src/log.js +1 -1
  170. package/lib/ui/src/log.min.js +1 -1
  171. package/lib/vxe-table/style/style.css +22 -3
  172. package/lib/vxe-table/style/style.min.css +1 -1
  173. package/package.json +1 -1
  174. package/packages/grid/src/grid.ts +29 -7
  175. package/packages/locale/lang/ar-EG.ts +6 -0
  176. package/packages/locale/lang/de-DE.ts +6 -0
  177. package/packages/locale/lang/en-US.ts +6 -0
  178. package/packages/locale/lang/es-ES.ts +6 -0
  179. package/packages/locale/lang/fr-FR.ts +6 -0
  180. package/packages/locale/lang/hu-HU.ts +6 -0
  181. package/packages/locale/lang/hy-AM.ts +6 -0
  182. package/packages/locale/lang/id-ID.ts +6 -0
  183. package/packages/locale/lang/it-IT.ts +6 -0
  184. package/packages/locale/lang/ja-JP.ts +6 -0
  185. package/packages/locale/lang/ko-KR.ts +6 -0
  186. package/packages/locale/lang/ms-MY.ts +6 -0
  187. package/packages/locale/lang/nb-NO.ts +6 -0
  188. package/packages/locale/lang/pt-BR.ts +6 -0
  189. package/packages/locale/lang/ru-RU.ts +6 -0
  190. package/packages/locale/lang/th-TH.ts +6 -0
  191. package/packages/locale/lang/ug-CN.ts +6 -0
  192. package/packages/locale/lang/uk-UA.ts +6 -0
  193. package/packages/locale/lang/uz-UZ.ts +6 -0
  194. package/packages/locale/lang/vi-VN.ts +6 -0
  195. package/packages/locale/lang/zh-CHT.ts +6 -0
  196. package/packages/locale/lang/zh-CN.ts +6 -0
  197. package/packages/table/module/custom/hook.ts +27 -4
  198. package/packages/table/module/custom/panel.ts +114 -102
  199. package/packages/table/module/export/export-panel.ts +3 -2
  200. package/packages/table/module/export/import-panel.ts +3 -2
  201. package/packages/table/module/filter/panel.ts +3 -2
  202. package/packages/table/module/menu/panel.ts +3 -2
  203. package/packages/table/src/body.ts +10 -8
  204. package/packages/table/src/cell.ts +14 -14
  205. package/packages/table/src/column.ts +3 -2
  206. package/packages/table/src/footer.ts +3 -2
  207. package/packages/table/src/group.ts +3 -2
  208. package/packages/table/src/header.ts +3 -2
  209. package/packages/table/src/props.ts +28 -7
  210. package/packages/table/src/table.ts +66 -46
  211. package/packages/toolbar/src/toolbar.ts +157 -58
  212. package/packages/ui/index.ts +11 -0
  213. package/packages/ui/src/comp.ts +3 -0
  214. package/styles/components/icon.scss +13 -1
  215. package/styles/components/table-module/custom.scss +9 -2
  216. package/styles/icon/iconfont.ttf +0 -0
  217. package/styles/icon/iconfont.woff +0 -0
  218. package/styles/icon/iconfont.woff2 +0 -0
  219. package/es/iconfont.1749800539928.woff +0 -0
  220. package/es/iconfont.1749800539928.woff2 +0 -0
  221. package/lib/iconfont.1749800539928.woff +0 -0
  222. package/lib/iconfont.1749800539928.woff2 +0 -0
@@ -1,19 +1,26 @@
1
- import { defineComponent, h, ref, computed, inject, createCommentVNode, reactive, nextTick } from 'vue';
1
+ import { h, ref, computed, inject, createCommentVNode, reactive, nextTick } from 'vue';
2
+ import { defineVxeComponent } from '../../ui/src/comp';
2
3
  import XEUtils from 'xe-utils';
3
4
  import { VxeUI } from '../../ui';
4
5
  import { getSlotVNs } from '../../ui/src/vn';
5
6
  import { warnLog, errLog } from '../../ui/src/log';
6
7
  const { getConfig, getIcon, getI18n, renderer, commands, createEvent, useFns } = VxeUI;
7
- export default defineComponent({
8
+ export default defineVxeComponent({
8
9
  name: 'VxeToolbar',
9
10
  props: {
10
11
  loading: Boolean,
11
12
  refresh: [Boolean, Object],
13
+ refreshOptions: Object,
12
14
  import: [Boolean, Object],
15
+ importOptions: Object,
13
16
  export: [Boolean, Object],
17
+ exportOptions: Object,
14
18
  print: [Boolean, Object],
19
+ printOptions: Object,
15
20
  zoom: [Boolean, Object],
21
+ zoomOptions: Object,
16
22
  custom: [Boolean, Object],
23
+ customOptions: Object,
17
24
  buttons: {
18
25
  type: Array,
19
26
  default: () => getConfig().toolbar.buttons
@@ -65,22 +72,22 @@ export default defineComponent({
65
72
  let toolbarMethods = {};
66
73
  const $xeGrid = inject('$xeGrid', null);
67
74
  const computeRefreshOpts = computed(() => {
68
- return Object.assign({}, XEUtils.clone(getConfig().toolbar.refresh, true), props.refresh);
75
+ return Object.assign({}, XEUtils.clone(getConfig().toolbar.refresh, true), props.refreshOptions, props.refresh);
69
76
  });
70
77
  const computeImportOpts = computed(() => {
71
- return Object.assign({}, XEUtils.clone(getConfig().toolbar.import, true), props.import);
78
+ return Object.assign({}, XEUtils.clone(getConfig().toolbar.import, true), props.importOptions, props.import);
72
79
  });
73
80
  const computeExportOpts = computed(() => {
74
- return Object.assign({}, XEUtils.clone(getConfig().toolbar.export, true), props.export);
81
+ return Object.assign({}, XEUtils.clone(getConfig().toolbar.export, true), props.exportOptions, props.export);
75
82
  });
76
83
  const computePrintOpts = computed(() => {
77
- return Object.assign({}, XEUtils.clone(getConfig().toolbar.print, true), props.print);
84
+ return Object.assign({}, XEUtils.clone(getConfig().toolbar.print, true), props.printOptions, props.print);
78
85
  });
79
86
  const computeZoomOpts = computed(() => {
80
- return Object.assign({}, XEUtils.clone(getConfig().toolbar.zoom, true), props.zoom);
87
+ return Object.assign({}, XEUtils.clone(getConfig().toolbar.zoom, true), props.zoomOptions, props.zoom);
81
88
  });
82
89
  const computeCustomOpts = computed(() => {
83
- return Object.assign({}, XEUtils.clone(getConfig().toolbar.custom, true), props.custom);
90
+ return Object.assign({}, XEUtils.clone(getConfig().toolbar.custom, true), props.customOptions, props.custom);
84
91
  });
85
92
  const computeTableCustomOpts = computed(() => {
86
93
  const { connectTable } = internalData;
@@ -162,56 +169,20 @@ export default defineComponent({
162
169
  if ($xeGrid) {
163
170
  $xeGrid.triggerZoomEvent($event);
164
171
  }
165
- };
166
- const btnEvent = (evnt, item) => {
167
- const { connectTable } = internalData;
168
- const $table = connectTable;
169
- const { code } = item;
170
- if (code) {
171
- if ($xeGrid) {
172
- $xeGrid.triggerToolbarBtnEvent(item, evnt);
173
- }
174
- else {
175
- const gCommandOpts = commands.get(code);
176
- const params = { code, button: item, $table: $table, $grid: $xeGrid, $event: evnt };
177
- if (gCommandOpts) {
178
- const tCommandMethod = gCommandOpts.tableCommandMethod || gCommandOpts.commandMethod;
179
- if (tCommandMethod) {
180
- tCommandMethod(params);
181
- }
182
- else {
183
- errLog('vxe.error.notCommands', [code]);
184
- }
185
- }
186
- $xeToolbar.dispatchEvent('button-click', params, evnt);
187
- }
172
+ else {
173
+ warnLog('vxe.error.notProp', ['zoom']);
188
174
  }
189
175
  };
190
- const tolEvent = (evnt, item) => {
191
- const { connectTable } = internalData;
192
- const $table = connectTable;
193
- const { code } = item;
194
- if (code) {
195
- if ($xeGrid) {
196
- $xeGrid.triggerToolbarTolEvent(item, evnt);
197
- }
198
- else {
199
- const gCommandOpts = commands.get(code);
200
- const params = { code, button: null, tool: item, $table: $table, $grid: $xeGrid, $event: evnt };
201
- if (gCommandOpts) {
202
- const tCommandMethod = gCommandOpts.tableCommandMethod || gCommandOpts.commandMethod;
203
- if (tCommandMethod) {
204
- tCommandMethod(params);
205
- }
206
- else {
207
- errLog('vxe.error.notCommands', [code]);
208
- }
209
- }
210
- $xeToolbar.dispatchEvent('tool-click', params, evnt);
176
+ const importEvent = () => {
177
+ if (checkTable()) {
178
+ const { connectTable } = internalData;
179
+ const $table = connectTable;
180
+ if ($table) {
181
+ $table.importData();
211
182
  }
212
183
  }
213
184
  };
214
- const importEvent = () => {
185
+ const openImportEvent = () => {
215
186
  if (checkTable()) {
216
187
  const { connectTable } = internalData;
217
188
  const $table = connectTable;
@@ -221,6 +192,15 @@ export default defineComponent({
221
192
  }
222
193
  };
223
194
  const exportEvent = () => {
195
+ if (checkTable()) {
196
+ const { connectTable } = internalData;
197
+ const $table = connectTable;
198
+ if ($table) {
199
+ $table.exportData();
200
+ }
201
+ }
202
+ };
203
+ const openExportEvent = () => {
224
204
  if (checkTable()) {
225
205
  const { connectTable } = internalData;
226
206
  const $table = connectTable;
@@ -230,6 +210,15 @@ export default defineComponent({
230
210
  }
231
211
  };
232
212
  const printEvent = () => {
213
+ if (checkTable()) {
214
+ const { connectTable } = internalData;
215
+ const $table = connectTable;
216
+ if ($table) {
217
+ $table.print();
218
+ }
219
+ }
220
+ };
221
+ const openPrintEvent = () => {
233
222
  if (checkTable()) {
234
223
  const { connectTable } = internalData;
235
224
  const $table = connectTable;
@@ -238,6 +227,94 @@ export default defineComponent({
238
227
  }
239
228
  }
240
229
  };
230
+ const handleDefaultCodeEvent = (eventParams, item, cb) => {
231
+ switch (item.code) {
232
+ case 'print':
233
+ printEvent();
234
+ break;
235
+ case 'open_print':
236
+ openPrintEvent();
237
+ break;
238
+ case 'custom':
239
+ handleClickSettingEvent(eventParams);
240
+ break;
241
+ case 'export':
242
+ exportEvent();
243
+ break;
244
+ case 'open_export':
245
+ openExportEvent();
246
+ break;
247
+ case 'import':
248
+ importEvent();
249
+ break;
250
+ case 'open_import':
251
+ openImportEvent();
252
+ break;
253
+ case 'zoom':
254
+ zoomEvent(eventParams);
255
+ break;
256
+ case 'refresh':
257
+ refreshEvent(eventParams);
258
+ break;
259
+ default:
260
+ cb();
261
+ break;
262
+ }
263
+ };
264
+ const btnEvent = (eventParams, item) => {
265
+ const { $event } = eventParams;
266
+ const { connectTable } = internalData;
267
+ const $table = connectTable;
268
+ const { code } = item;
269
+ if (code) {
270
+ handleDefaultCodeEvent(eventParams, item, () => {
271
+ if ($xeGrid) {
272
+ $xeGrid.triggerToolbarBtnEvent(item, $event);
273
+ }
274
+ else {
275
+ const gCommandOpts = commands.get(code);
276
+ const params = { code, button: item, $table: $table, $grid: $xeGrid, $event };
277
+ if (gCommandOpts) {
278
+ const tCommandMethod = gCommandOpts.tableCommandMethod || gCommandOpts.commandMethod;
279
+ if (tCommandMethod) {
280
+ tCommandMethod(params);
281
+ }
282
+ else {
283
+ errLog('vxe.error.notCommands', [code]);
284
+ }
285
+ }
286
+ $xeToolbar.dispatchEvent('button-click', params, $event);
287
+ }
288
+ });
289
+ }
290
+ };
291
+ const tolEvent = (eventParams, item) => {
292
+ const { $event } = eventParams;
293
+ const { connectTable } = internalData;
294
+ const $table = connectTable;
295
+ const { code } = item;
296
+ if (code) {
297
+ handleDefaultCodeEvent(eventParams, item, () => {
298
+ if ($xeGrid) {
299
+ $xeGrid.triggerToolbarTolEvent(item, $event);
300
+ }
301
+ else {
302
+ const gCommandOpts = commands.get(code);
303
+ const params = { code, button: null, tool: item, $table: $table, $grid: $xeGrid, $event };
304
+ if (gCommandOpts) {
305
+ const tCommandMethod = gCommandOpts.tableCommandMethod || gCommandOpts.commandMethod;
306
+ if (tCommandMethod) {
307
+ tCommandMethod(params);
308
+ }
309
+ else {
310
+ errLog('vxe.error.notCommands', [code]);
311
+ }
312
+ }
313
+ $xeToolbar.dispatchEvent('tool-click', params, $event);
314
+ }
315
+ });
316
+ }
317
+ };
241
318
  const dispatchEvent = (type, params, evnt) => {
242
319
  emit(type, createEvent(evnt, { $toolbar: $xeToolbar }, params));
243
320
  };
@@ -275,7 +352,7 @@ export default defineComponent({
275
352
  permissionCode: child.permissionCode,
276
353
  prefixTooltip: child.prefixTooltip,
277
354
  suffixTooltip: child.suffixTooltip,
278
- onClick: ({ $event }) => isBtn ? btnEvent($event, child) : tolEvent($event, child)
355
+ onClick: (eventParams) => isBtn ? btnEvent(eventParams, child) : tolEvent(eventParams, child)
279
356
  })
280
357
  : createCommentVNode();
281
358
  });
@@ -329,7 +406,7 @@ export default defineComponent({
329
406
  destroyOnClose: item.destroyOnClose,
330
407
  placement: item.placement,
331
408
  transfer: item.transfer,
332
- onClick: ({ $event }) => btnEvent($event, item)
409
+ onClick: (eventParams) => btnEvent(eventParams, item)
333
410
  }, dropdowns && dropdowns.length
334
411
  ? {
335
412
  dropdowns: () => renderDropdowns(item, true)
@@ -393,7 +470,7 @@ export default defineComponent({
393
470
  destroyOnClose: item.destroyOnClose,
394
471
  placement: item.placement,
395
472
  transfer: item.transfer,
396
- onClick: ({ $event }) => tolEvent($event, item)
473
+ onClick: (eventParams) => tolEvent(eventParams, item)
397
474
  }, dropdowns && dropdowns.length
398
475
  ? {
399
476
  dropdowns: () => renderDropdowns(item, false)
@@ -417,7 +494,7 @@ export default defineComponent({
417
494
  circle: true,
418
495
  icon: importOpts.icon || getIcon().TOOLBAR_TOOLS_IMPORT,
419
496
  title: getI18n('vxe.toolbar.import'),
420
- onClick: importEvent
497
+ onClick: openImportEvent
421
498
  })
422
499
  : createCommentVNode();
423
500
  };
@@ -429,7 +506,7 @@ export default defineComponent({
429
506
  circle: true,
430
507
  icon: exportOpts.icon || getIcon().TOOLBAR_TOOLS_EXPORT,
431
508
  title: getI18n('vxe.toolbar.export'),
432
- onClick: exportEvent
509
+ onClick: openExportEvent
433
510
  })
434
511
  : createCommentVNode();
435
512
  };
@@ -441,7 +518,7 @@ export default defineComponent({
441
518
  circle: true,
442
519
  icon: printOpts.icon || getIcon().TOOLBAR_TOOLS_PRINT,
443
520
  title: getI18n('vxe.toolbar.print'),
444
- onClick: printEvent
521
+ onClick: openPrintEvent
445
522
  })
446
523
  : createCommentVNode();
447
524
  };
@@ -524,12 +601,29 @@ export default defineComponent({
524
601
  };
525
602
  $xeToolbar.renderVN = renderVN;
526
603
  nextTick(() => {
527
- const { refresh } = props;
528
604
  const refreshOpts = computeRefreshOpts.value;
529
605
  const queryMethod = refreshOpts.queryMethod || refreshOpts.query;
530
- if (refresh && !$xeGrid && !queryMethod) {
606
+ if (props.refresh && !$xeGrid && !queryMethod) {
531
607
  warnLog('vxe.error.notFunc', ['queryMethod']);
532
608
  }
609
+ if (XEUtils.isPlainObject(props.custom)) {
610
+ warnLog('vxe.error.delProp', ['custom={...}', 'custom=boolean & custom-options={...}']);
611
+ }
612
+ if (XEUtils.isPlainObject(props.print)) {
613
+ warnLog('vxe.error.delProp', ['print={...}', 'print=boolean & print-options={...}']);
614
+ }
615
+ if (XEUtils.isPlainObject(props.export)) {
616
+ warnLog('vxe.error.delProp', ['export={...}', 'export=boolean & export-options={...}']);
617
+ }
618
+ if (XEUtils.isPlainObject(props.import)) {
619
+ warnLog('vxe.error.delProp', ['import={...}', 'import=boolean & import-options={...}']);
620
+ }
621
+ if (XEUtils.isPlainObject(props.refresh)) {
622
+ warnLog('vxe.error.delProp', ['refresh={...}', 'refresh=boolean & refresh-options={...}']);
623
+ }
624
+ if (XEUtils.isPlainObject(props.refresh)) {
625
+ warnLog('vxe.error.delProp', ['zoom={...}', 'zoom=boolean & zoom-options={...}']);
626
+ }
533
627
  const customOpts = computeCustomOpts.value;
534
628
  if (customOpts.isFooter) {
535
629
  warnLog('vxe.error.delProp', ['toolbar.custom.isFooter', 'table.custom-config.showFooter']);
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "4.13.39";
3
+ export const version = "4.13.41";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -94,6 +94,14 @@ VxeUI.setConfig({
94
94
  showFooter: true,
95
95
  placement: 'top-right',
96
96
  // storage: false,
97
+ storeOptions: {
98
+ visible: true,
99
+ resizable: true,
100
+ sort: true,
101
+ fixed: true
102
+ // rowGroup: false,
103
+ // aggFunc: false
104
+ },
97
105
  // checkMethod () {},
98
106
  modalOptions: {
99
107
  showMaximize: true,
@@ -299,6 +307,9 @@ VxeUI.setIcon({
299
307
  TABLE_DRAG_DISABLED: iconPrefix + 'no-drop',
300
308
  TABLE_ROW_GROUP_OPEN: iconPrefix + 'arrow-right rotate90',
301
309
  TABLE_ROW_GROUP_CLOSE: iconPrefix + 'arrow-right',
310
+ TABLE_AGGREGATION_GROUPING: iconPrefix + 'grouping',
311
+ TABLE_AGGREGATION_VALUES: iconPrefix + 'values',
312
+ TABLE_AGGREGATION_DELETE: iconPrefix + 'close',
302
313
  // toolbar
303
314
  TOOLBAR_TOOLS_REFRESH: iconPrefix + 'repeat',
304
315
  TOOLBAR_TOOLS_REFRESH_LOADING: iconPrefix + 'repeat roll',
@@ -0,0 +1,2 @@
1
+ import { defineComponent } from 'vue';
2
+ export const defineVxeComponent = defineComponent;
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"4.13.39"}`;
3
+ const version = `table v${"4.13.41"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -543,7 +543,7 @@
543
543
 
544
544
  @font-face {
545
545
  font-family: "vxetableiconfont";
546
- src: url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2");
546
+ src: url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2");
547
547
  }
548
548
  @keyframes rollCircle {
549
549
  0% {
@@ -599,6 +599,18 @@
599
599
  color: var(--vxe-ui-status-error-color);
600
600
  }
601
601
 
602
+ .vxe-table-icon-close:before {
603
+ content: "\e6e9";
604
+ }
605
+
606
+ .vxe-table-icon-grouping:before {
607
+ content: "\e66c";
608
+ }
609
+
610
+ .vxe-table-icon-values:before {
611
+ content: "\e66f";
612
+ }
613
+
602
614
  .vxe-table-icon-add-sub:before {
603
615
  content: "\e6bc";
604
616
  }
@@ -759,9 +771,14 @@
759
771
  width: 100%;
760
772
  }
761
773
 
774
+ .vxe-table-custom--handle-wrapper {
775
+ display: flex;
776
+ flex-direction: column;
777
+ }
778
+
762
779
  .vxe-table-custom-wrapper {
763
780
  display: none;
764
- flex-direction: column;
781
+ flex-direction: row;
765
782
  position: absolute;
766
783
  text-align: left;
767
784
  background-color: var(--vxe-ui-layout-background-color);
@@ -841,8 +858,10 @@
841
858
  }
842
859
 
843
860
  .vxe-table-custom--header {
861
+ display: flex;
862
+ align-items: center;
844
863
  flex-shrink: 0;
845
- padding: 0.28em 0;
864
+ height: 2.4em;
846
865
  font-weight: 700;
847
866
  border-bottom: 1px solid var(--vxe-ui-base-popup-border-color);
848
867
  -webkit-user-select: none;