vxe-table 4.13.44 → 4.13.46

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 (181) hide show
  1. package/README.md +4 -4
  2. package/es/{iconfont.1750301328949.ttf → iconfont.1750660623154.ttf} +0 -0
  3. package/es/iconfont.1750660623154.woff +0 -0
  4. package/es/iconfont.1750660623154.woff2 +0 -0
  5. package/es/index.css +1 -1
  6. package/es/index.min.css +1 -1
  7. package/es/locale/lang/ar-EG.js +5 -1
  8. package/es/locale/lang/de-DE.js +5 -1
  9. package/es/locale/lang/en-US.js +5 -1
  10. package/es/locale/lang/es-ES.js +5 -1
  11. package/es/locale/lang/fr-FR.js +5 -1
  12. package/es/locale/lang/hu-HU.js +5 -1
  13. package/es/locale/lang/hy-AM.js +5 -1
  14. package/es/locale/lang/id-ID.js +5 -1
  15. package/es/locale/lang/it-IT.js +5 -1
  16. package/es/locale/lang/ja-JP.js +5 -1
  17. package/es/locale/lang/ko-KR.js +5 -1
  18. package/es/locale/lang/ms-MY.js +5 -1
  19. package/es/locale/lang/nb-NO.js +5 -1
  20. package/es/locale/lang/pt-BR.js +5 -1
  21. package/es/locale/lang/ru-RU.js +5 -1
  22. package/es/locale/lang/th-TH.js +5 -1
  23. package/es/locale/lang/ug-CN.js +5 -1
  24. package/es/locale/lang/uk-UA.js +5 -1
  25. package/es/locale/lang/uz-UZ.js +5 -1
  26. package/es/locale/lang/vi-VN.js +5 -1
  27. package/es/locale/lang/zh-CHT.js +6 -2
  28. package/es/locale/lang/zh-CN.js +5 -1
  29. package/es/style.css +1 -1
  30. package/es/style.min.css +1 -1
  31. package/es/table/module/custom/hook.js +9 -1
  32. package/es/table/module/custom/panel.js +320 -224
  33. package/es/table/module/edit/hook.js +24 -10
  34. package/es/table/module/export/hook.js +19 -6
  35. package/es/table/src/cell.js +4 -4
  36. package/es/table/src/emits.js +3 -0
  37. package/es/table/src/table.js +40 -7
  38. package/es/table/style.css +37 -9
  39. package/es/table/style.min.css +1 -1
  40. package/es/ui/index.js +8 -2
  41. package/es/ui/src/log.js +1 -1
  42. package/es/vxe-table/style.css +37 -9
  43. package/es/vxe-table/style.min.css +1 -1
  44. package/lib/{iconfont.1750301328949.ttf → iconfont.1750660623154.ttf} +0 -0
  45. package/lib/iconfont.1750660623154.woff +0 -0
  46. package/lib/iconfont.1750660623154.woff2 +0 -0
  47. package/lib/index.css +1 -1
  48. package/lib/index.min.css +1 -1
  49. package/lib/index.umd.js +282 -90
  50. package/lib/index.umd.min.js +1 -1
  51. package/lib/locale/lang/ar-EG.js +5 -1
  52. package/lib/locale/lang/ar-EG.min.js +1 -1
  53. package/lib/locale/lang/ar-EG.umd.js +5 -1
  54. package/lib/locale/lang/de-DE.js +5 -1
  55. package/lib/locale/lang/de-DE.min.js +1 -1
  56. package/lib/locale/lang/de-DE.umd.js +5 -1
  57. package/lib/locale/lang/en-US.js +5 -1
  58. package/lib/locale/lang/en-US.min.js +1 -1
  59. package/lib/locale/lang/en-US.umd.js +5 -1
  60. package/lib/locale/lang/es-ES.js +5 -1
  61. package/lib/locale/lang/es-ES.min.js +1 -1
  62. package/lib/locale/lang/es-ES.umd.js +5 -1
  63. package/lib/locale/lang/fr-FR.js +5 -1
  64. package/lib/locale/lang/fr-FR.min.js +1 -1
  65. package/lib/locale/lang/fr-FR.umd.js +5 -1
  66. package/lib/locale/lang/hu-HU.js +5 -1
  67. package/lib/locale/lang/hu-HU.min.js +1 -1
  68. package/lib/locale/lang/hu-HU.umd.js +5 -1
  69. package/lib/locale/lang/hy-AM.js +5 -1
  70. package/lib/locale/lang/hy-AM.min.js +1 -1
  71. package/lib/locale/lang/hy-AM.umd.js +5 -1
  72. package/lib/locale/lang/id-ID.js +5 -1
  73. package/lib/locale/lang/id-ID.min.js +1 -1
  74. package/lib/locale/lang/id-ID.umd.js +5 -1
  75. package/lib/locale/lang/it-IT.js +5 -1
  76. package/lib/locale/lang/it-IT.min.js +1 -1
  77. package/lib/locale/lang/it-IT.umd.js +5 -1
  78. package/lib/locale/lang/ja-JP.js +5 -1
  79. package/lib/locale/lang/ja-JP.min.js +1 -1
  80. package/lib/locale/lang/ja-JP.umd.js +5 -1
  81. package/lib/locale/lang/ko-KR.js +5 -1
  82. package/lib/locale/lang/ko-KR.min.js +1 -1
  83. package/lib/locale/lang/ko-KR.umd.js +5 -1
  84. package/lib/locale/lang/ms-MY.js +5 -1
  85. package/lib/locale/lang/ms-MY.min.js +1 -1
  86. package/lib/locale/lang/ms-MY.umd.js +5 -1
  87. package/lib/locale/lang/nb-NO.js +5 -1
  88. package/lib/locale/lang/nb-NO.min.js +1 -1
  89. package/lib/locale/lang/nb-NO.umd.js +5 -1
  90. package/lib/locale/lang/pt-BR.js +5 -1
  91. package/lib/locale/lang/pt-BR.min.js +1 -1
  92. package/lib/locale/lang/pt-BR.umd.js +5 -1
  93. package/lib/locale/lang/ru-RU.js +5 -1
  94. package/lib/locale/lang/ru-RU.min.js +1 -1
  95. package/lib/locale/lang/ru-RU.umd.js +5 -1
  96. package/lib/locale/lang/th-TH.js +5 -1
  97. package/lib/locale/lang/th-TH.min.js +1 -1
  98. package/lib/locale/lang/th-TH.umd.js +5 -1
  99. package/lib/locale/lang/ug-CN.js +5 -1
  100. package/lib/locale/lang/ug-CN.min.js +1 -1
  101. package/lib/locale/lang/ug-CN.umd.js +5 -1
  102. package/lib/locale/lang/uk-UA.js +5 -1
  103. package/lib/locale/lang/uk-UA.min.js +1 -1
  104. package/lib/locale/lang/uk-UA.umd.js +5 -1
  105. package/lib/locale/lang/uz-UZ.js +5 -1
  106. package/lib/locale/lang/uz-UZ.min.js +1 -1
  107. package/lib/locale/lang/uz-UZ.umd.js +5 -1
  108. package/lib/locale/lang/vi-VN.js +5 -1
  109. package/lib/locale/lang/vi-VN.min.js +1 -1
  110. package/lib/locale/lang/vi-VN.umd.js +5 -1
  111. package/lib/locale/lang/zh-CHT.js +6 -2
  112. package/lib/locale/lang/zh-CHT.min.js +1 -1
  113. package/lib/locale/lang/zh-CHT.umd.js +6 -2
  114. package/lib/locale/lang/zh-CN.js +5 -1
  115. package/lib/locale/lang/zh-CN.min.js +1 -1
  116. package/lib/locale/lang/zh-CN.umd.js +5 -1
  117. package/lib/style.css +1 -1
  118. package/lib/style.min.css +1 -1
  119. package/lib/table/module/custom/hook.js +11 -1
  120. package/lib/table/module/custom/hook.min.js +1 -1
  121. package/lib/table/module/custom/panel.js +181 -60
  122. package/lib/table/module/custom/panel.min.js +1 -1
  123. package/lib/table/module/edit/hook.js +46 -10
  124. package/lib/table/module/edit/hook.min.js +1 -1
  125. package/lib/table/module/export/hook.js +19 -4
  126. package/lib/table/module/export/hook.min.js +1 -1
  127. package/lib/table/src/cell.js +4 -4
  128. package/lib/table/src/cell.min.js +1 -1
  129. package/lib/table/src/emits.js +1 -1
  130. package/lib/table/src/emits.min.js +1 -1
  131. package/lib/table/src/table.js +6 -6
  132. package/lib/table/src/table.min.js +1 -1
  133. package/lib/table/style/style.css +37 -9
  134. package/lib/table/style/style.min.css +1 -1
  135. package/lib/ui/index.js +8 -2
  136. package/lib/ui/index.min.js +1 -1
  137. package/lib/ui/src/log.js +1 -1
  138. package/lib/ui/src/log.min.js +1 -1
  139. package/lib/vxe-table/style/style.css +37 -9
  140. package/lib/vxe-table/style/style.min.css +1 -1
  141. package/package.json +1 -1
  142. package/packages/locale/lang/ar-EG.ts +5 -1
  143. package/packages/locale/lang/de-DE.ts +5 -1
  144. package/packages/locale/lang/en-US.ts +5 -1
  145. package/packages/locale/lang/es-ES.ts +5 -1
  146. package/packages/locale/lang/fr-FR.ts +5 -1
  147. package/packages/locale/lang/hu-HU.ts +5 -1
  148. package/packages/locale/lang/hy-AM.ts +5 -1
  149. package/packages/locale/lang/id-ID.ts +5 -1
  150. package/packages/locale/lang/it-IT.ts +5 -1
  151. package/packages/locale/lang/ja-JP.ts +5 -1
  152. package/packages/locale/lang/ko-KR.ts +5 -1
  153. package/packages/locale/lang/ms-MY.ts +5 -1
  154. package/packages/locale/lang/nb-NO.ts +5 -1
  155. package/packages/locale/lang/pt-BR.ts +5 -1
  156. package/packages/locale/lang/ru-RU.ts +5 -1
  157. package/packages/locale/lang/th-TH.ts +5 -1
  158. package/packages/locale/lang/ug-CN.ts +5 -1
  159. package/packages/locale/lang/uk-UA.ts +5 -1
  160. package/packages/locale/lang/uz-UZ.ts +5 -1
  161. package/packages/locale/lang/vi-VN.ts +5 -1
  162. package/packages/locale/lang/zh-CHT.ts +6 -2
  163. package/packages/locale/lang/zh-CN.ts +5 -1
  164. package/packages/table/module/custom/hook.ts +10 -1
  165. package/packages/table/module/custom/panel.ts +338 -236
  166. package/packages/table/module/edit/hook.ts +24 -10
  167. package/packages/table/module/export/hook.ts +18 -7
  168. package/packages/table/src/cell.ts +4 -4
  169. package/packages/table/src/emits.ts +3 -0
  170. package/packages/table/src/table.ts +30 -8
  171. package/packages/ui/index.ts +7 -1
  172. package/styles/components/icon.scss +9 -1
  173. package/styles/components/table-module/custom.scss +26 -3
  174. package/styles/helpers/baseMixin.scss +16 -2
  175. package/styles/icon/iconfont.ttf +0 -0
  176. package/styles/icon/iconfont.woff +0 -0
  177. package/styles/icon/iconfont.woff2 +0 -0
  178. package/es/iconfont.1750301328949.woff +0 -0
  179. package/es/iconfont.1750301328949.woff2 +0 -0
  180. package/lib/iconfont.1750301328949.woff +0 -0
  181. package/lib/iconfont.1750301328949.woff2 +0 -0
@@ -1,4 +1,4 @@
1
- import { h, inject, ref, nextTick, TransitionGroup, createCommentVNode } from 'vue';
1
+ import { h, inject, ref, provide, nextTick, TransitionGroup, createCommentVNode, reactive } from 'vue';
2
2
  import { defineVxeComponent } from '../../../ui/src/comp';
3
3
  import { VxeUI } from '../../../ui';
4
4
  import { formatText } from '../../../ui/src/utils';
@@ -14,23 +14,40 @@ export default defineVxeComponent({
14
14
  default: () => ({})
15
15
  }
16
16
  },
17
- setup(props) {
17
+ setup(props, context) {
18
+ const xID = XEUtils.uniqueId();
18
19
  const VxeUIModalComponent = VxeUI.getComponent('VxeModal');
19
20
  const VxeUIDrawerComponent = VxeUI.getComponent('VxeDrawer');
20
21
  const VxeUIButtonComponent = VxeUI.getComponent('VxeButton');
21
22
  const VxeUINumberInputComponent = VxeUI.getComponent('VxeNumberInput');
22
23
  const VxeUIRadioGroupComponent = VxeUI.getComponent('VxeRadioGroup');
23
24
  const $xeTable = inject('$xeTable', {});
24
- const { props: tableProps, reactData, internalData } = $xeTable;
25
+ const { props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable;
25
26
  const { computeCustomOpts, computeColumnDragOpts, computeColumnOpts, computeIsMaxFixedColumn, computeResizableOpts } = $xeTable.getComputeMaps();
26
27
  const refElem = ref();
27
- const bodyElemRef = ref();
28
+ const refBodyWrapperElem = ref();
29
+ const refCustomBodyElem = ref();
28
30
  const refDragLineElem = ref();
29
31
  const refDragTipElem = ref();
30
- const dragColumnRef = ref();
31
- let prevDragCol;
32
- let prevDragToChild = false;
33
- let prevDragPos;
32
+ const customPanelReactData = reactive({
33
+ dragCol: null,
34
+ prevDragGroup: null,
35
+ prevDragValues: null,
36
+ dragTipText: ''
37
+ });
38
+ const customPanelInternalData = {
39
+ // prevDragCol: undefined,
40
+ // prevDragToChild: false,
41
+ // prevDragPos: null
42
+ };
43
+ const refMaps = {
44
+ refElem,
45
+ refBodyWrapperElem,
46
+ refCustomBodyElem,
47
+ refDragLineElem,
48
+ refDragTipElem
49
+ };
50
+ const computeMaps = {};
34
51
  const handleWrapperMouseenterEvent = (evnt) => {
35
52
  const { customStore } = props;
36
53
  customStore.activeWrapper = true;
@@ -46,7 +63,7 @@ export default defineVxeComponent({
46
63
  }, 300);
47
64
  };
48
65
  const confirmCustomEvent = ({ $event }) => {
49
- reactData.isCustomStatus = true;
66
+ tableReactData.isCustomStatus = true;
50
67
  $xeTable.saveCustom();
51
68
  $xeTable.closeCustom();
52
69
  $xeTable.emitCustomEvent('confirm', $event);
@@ -82,7 +99,7 @@ export default defineVxeComponent({
82
99
  }
83
100
  };
84
101
  const handleOptionCheck = (column) => {
85
- const { customColumnList } = reactData;
102
+ const { customColumnList } = tableReactData;
86
103
  const matchObj = XEUtils.findTree(customColumnList, item => item === column);
87
104
  if (matchObj && matchObj.parent) {
88
105
  const { parent } = matchObj;
@@ -93,7 +110,7 @@ export default defineVxeComponent({
93
110
  }
94
111
  }
95
112
  };
96
- const changeCheckboxOption = (column) => {
113
+ const changeCheckboxOption = (column, evnt) => {
97
114
  const isChecked = !column.renderVisible;
98
115
  const customOpts = computeCustomOpts.value;
99
116
  if (customOpts.immediate) {
@@ -102,7 +119,7 @@ export default defineVxeComponent({
102
119
  item.renderVisible = isChecked;
103
120
  item.halfVisible = false;
104
121
  });
105
- reactData.isCustomStatus = true;
122
+ tableReactData.isCustomStatus = true;
106
123
  $xeTable.handleCustom();
107
124
  $xeTable.saveCustomStore('update:visible');
108
125
  }
@@ -114,6 +131,7 @@ export default defineVxeComponent({
114
131
  }
115
132
  handleOptionCheck(column);
116
133
  $xeTable.checkCustomStatus();
134
+ $xeTable.dispatchEvent('custom-visible-change', { column, checked: isChecked }, evnt);
117
135
  };
118
136
  const changeColumnWidth = (column) => {
119
137
  const customOpts = computeCustomOpts.value;
@@ -121,17 +139,19 @@ export default defineVxeComponent({
121
139
  if (column.renderResizeWidth !== column.renderWidth) {
122
140
  column.resizeWidth = column.renderResizeWidth;
123
141
  column.renderWidth = column.renderResizeWidth;
124
- reactData.isCustomStatus = true;
142
+ tableReactData.isCustomStatus = true;
125
143
  $xeTable.handleCustom();
126
144
  $xeTable.saveCustomStore('update:width');
127
145
  }
128
146
  }
129
147
  };
130
- const changeFixedOption = (column, colFixed) => {
148
+ const changeFixedOption = (column, colFixed, evnt) => {
131
149
  const isMaxFixedColumn = computeIsMaxFixedColumn.value;
132
150
  const customOpts = computeCustomOpts.value;
151
+ let targetFixed = null;
133
152
  if (customOpts.immediate) {
134
153
  if (column.renderFixed === colFixed) {
154
+ targetFixed = '';
135
155
  XEUtils.eachTree([column], col => {
136
156
  col.fixed = '';
137
157
  col.renderFixed = '';
@@ -139,47 +159,63 @@ export default defineVxeComponent({
139
159
  }
140
160
  else {
141
161
  if (!isMaxFixedColumn || column.renderFixed) {
162
+ targetFixed = colFixed;
142
163
  XEUtils.eachTree([column], col => {
143
164
  col.fixed = colFixed;
144
165
  col.renderFixed = colFixed;
145
166
  });
146
167
  }
147
168
  }
148
- reactData.isCustomStatus = true;
169
+ tableReactData.isCustomStatus = true;
149
170
  $xeTable.handleCustom();
150
171
  $xeTable.saveCustomStore('update:fixed');
151
172
  }
152
173
  else {
153
174
  if (column.renderFixed === colFixed) {
175
+ targetFixed = '';
154
176
  XEUtils.eachTree([column], col => {
155
177
  col.renderFixed = '';
156
178
  });
157
179
  }
158
180
  else {
159
181
  if (!isMaxFixedColumn || column.renderFixed) {
182
+ targetFixed = colFixed;
160
183
  XEUtils.eachTree([column], col => {
161
184
  col.renderFixed = colFixed;
162
185
  });
163
186
  }
164
187
  }
165
188
  }
189
+ if (!targetFixed !== null) {
190
+ $xeTable.dispatchEvent('custom-fixed-change', { column, fixed: targetFixed }, evnt);
191
+ }
166
192
  };
167
- const allOptionEvent = () => {
193
+ const allOptionEvent = (evnt) => {
194
+ const { customStore } = tableReactData;
195
+ const isAll = !customStore.isAll;
168
196
  $xeTable.toggleCustomAllCheckbox();
197
+ $xeTable.dispatchEvent('custom-visible-all', { checked: isAll }, evnt);
169
198
  };
170
199
  const showDropTip = (evnt, optEl, showLine, dragPos) => {
171
- const el = bodyElemRef.value;
172
- if (!el) {
200
+ const bodyWrapperElem = refBodyWrapperElem.value;
201
+ if (!bodyWrapperElem) {
173
202
  return;
174
203
  }
175
- const wrapperRect = el.getBoundingClientRect();
204
+ const customBodyElem = refCustomBodyElem.value;
205
+ if (!customBodyElem) {
206
+ return;
207
+ }
208
+ const { prevDragToChild } = customPanelInternalData;
209
+ const bodyWrapperRect = bodyWrapperElem.getBoundingClientRect();
210
+ const customBodyRect = customBodyElem.getBoundingClientRect();
176
211
  if (optEl) {
177
212
  const dragLineEl = refDragLineElem.value;
178
213
  if (dragLineEl) {
179
214
  if (showLine) {
180
215
  const optRect = optEl.getBoundingClientRect();
181
216
  dragLineEl.style.display = 'block';
182
- dragLineEl.style.top = `${Math.max(1, optRect.y + el.scrollTop - wrapperRect.y)}px`;
217
+ dragLineEl.style.left = `${Math.max(0, customBodyRect.x - bodyWrapperRect.x)}px`;
218
+ dragLineEl.style.top = `${Math.max(1, optRect.y + bodyWrapperElem.scrollTop - bodyWrapperRect.y)}px`;
183
219
  dragLineEl.style.height = `${optRect.height}px`;
184
220
  dragLineEl.style.width = `${optRect.width}px`;
185
221
  dragLineEl.setAttribute('drag-pos', dragPos);
@@ -193,11 +229,28 @@ export default defineVxeComponent({
193
229
  const dragTipEl = refDragTipElem.value;
194
230
  if (dragTipEl) {
195
231
  dragTipEl.style.display = 'block';
196
- dragTipEl.style.top = `${Math.min(el.clientHeight + el.scrollTop - dragTipEl.clientHeight, evnt.clientY + el.scrollTop - wrapperRect.y)}px`;
197
- dragTipEl.style.left = `${Math.min(el.clientWidth + el.scrollLeft - dragTipEl.clientWidth, evnt.clientX + el.scrollLeft - wrapperRect.x)}px`;
232
+ dragTipEl.style.top = `${Math.min(bodyWrapperElem.clientHeight + bodyWrapperElem.scrollTop - dragTipEl.clientHeight, evnt.clientY + bodyWrapperElem.scrollTop - bodyWrapperRect.y)}px`;
233
+ dragTipEl.style.left = `${Math.min(bodyWrapperElem.clientWidth + bodyWrapperElem.scrollLeft - dragTipEl.clientWidth, evnt.clientX + bodyWrapperElem.scrollLeft - bodyWrapperRect.x)}px`;
198
234
  dragTipEl.setAttribute('drag-status', showLine ? (prevDragToChild ? 'sub' : 'normal') : 'disabled');
199
235
  }
200
236
  };
237
+ const updateColDropTipContent = () => {
238
+ const { dragCol } = customPanelReactData;
239
+ const columnDragOpts = computeColumnDragOpts.value;
240
+ const { tooltipMethod } = columnDragOpts;
241
+ let tipContent = '';
242
+ if (tooltipMethod) {
243
+ const dtParams = {
244
+ $table: $xeTable,
245
+ column: dragCol
246
+ };
247
+ tipContent = `${tooltipMethod(dtParams) || ''}`;
248
+ }
249
+ else {
250
+ tipContent = getI18n('vxe.custom.cstmDragTarget', [dragCol && dragCol.type !== 'html' ? dragCol.getTitle() : '']);
251
+ }
252
+ customPanelReactData.dragTipText = tipContent;
253
+ };
201
254
  const hideDropTip = () => {
202
255
  const dragTipEl = refDragTipElem.value;
203
256
  const dragLineEl = refDragLineElem.value;
@@ -216,7 +269,8 @@ export default defineVxeComponent({
216
269
  const colid = trEl.getAttribute('colid');
217
270
  const column = $xeTable.getColumnById(colid);
218
271
  trEl.draggable = true;
219
- dragColumnRef.value = column;
272
+ customPanelReactData.dragCol = column;
273
+ updateColDropTipContent();
220
274
  addClass(trEl, 'active--drag-origin');
221
275
  };
222
276
  const sortMouseupEvent = (evnt) => {
@@ -226,26 +280,34 @@ export default defineVxeComponent({
226
280
  const trEl = tdEl.parentElement;
227
281
  hideDropTip();
228
282
  trEl.draggable = false;
229
- dragColumnRef.value = null;
283
+ customPanelReactData.dragCol = null;
230
284
  removeClass(trEl, 'active--drag-origin');
231
285
  };
232
286
  const sortDragstartEvent = (evnt) => {
233
287
  if (evnt.dataTransfer) {
234
288
  evnt.dataTransfer.setDragImage(getTpImg(), 0, 0);
235
289
  }
290
+ customPanelInternalData.prevDragGroup = null;
291
+ customPanelInternalData.prevDragValues = null;
236
292
  };
237
293
  const sortDragendEvent = (evnt) => {
238
294
  const { mouseConfig } = tableProps;
239
- const { customColumnList } = reactData;
240
- const { collectColumn } = internalData;
295
+ const { customColumnList } = tableReactData;
296
+ const { collectColumn } = tableInternalData;
241
297
  const customOpts = computeCustomOpts.value;
242
298
  const { immediate } = customOpts;
243
299
  const trEl = evnt.currentTarget;
244
- const dragCol = dragColumnRef.value;
245
300
  const columnDragOpts = computeColumnDragOpts.value;
246
301
  const { isCrossDrag, isSelfToChildDrag, isToChildDrag, dragEndMethod } = columnDragOpts;
302
+ const { dragCol } = customPanelReactData;
303
+ const { prevDragCol, prevDragGroup, prevDragValues, prevDragPos, prevDragToChild } = customPanelInternalData;
247
304
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
248
- if (prevDragCol && dragCol) {
305
+ if (prevDragGroup || prevDragValues) {
306
+ if ($xeTable.handlePivotTableAggregatePanelDragendEvent) {
307
+ $xeTable.handlePivotTableAggregatePanelDragendEvent(evnt);
308
+ }
309
+ }
310
+ else if (prevDragCol && dragCol) {
249
311
  // 判断是否有拖动
250
312
  if (prevDragCol !== dragCol) {
251
313
  const dragColumn = dragCol;
@@ -368,7 +430,7 @@ export default defineVxeComponent({
368
430
  nafIndex = XEUtils.findIndexOf(customColumnList, item => item.id === newColumn.id);
369
431
  customColumnList.splice(nafIndex + dragOffsetIndex, 0, dragColumn);
370
432
  }
371
- reactData.isDragColMove = true;
433
+ tableReactData.isDragColMove = true;
372
434
  if (mouseConfig) {
373
435
  if ($xeTable.clearSelected) {
374
436
  $xeTable.clearSelected();
@@ -390,7 +452,7 @@ export default defineVxeComponent({
390
452
  }
391
453
  }, evnt);
392
454
  if (immediate) {
393
- reactData.customColumnList = collectColumn.slice(0);
455
+ tableReactData.customColumnList = collectColumn.slice(0);
394
456
  $xeTable.handleColDragSwapColumn();
395
457
  }
396
458
  }).catch(() => {
@@ -398,7 +460,9 @@ export default defineVxeComponent({
398
460
  }
399
461
  }
400
462
  hideDropTip();
401
- dragColumnRef.value = null;
463
+ customPanelReactData.dragCol = null;
464
+ customPanelInternalData.prevDragGroup = null;
465
+ customPanelInternalData.prevDragValues = null;
402
466
  trEl.draggable = false;
403
467
  trEl.removeAttribute('drag-pos');
404
468
  removeClass(trEl, 'active--drag-target');
@@ -413,7 +477,9 @@ export default defineVxeComponent({
413
477
  const isControlKey = hasControlKey(evnt);
414
478
  const colid = optEl.getAttribute('colid');
415
479
  const column = $xeTable.getColumnById(colid);
416
- const dragCol = dragColumnRef.value;
480
+ const { dragCol } = customPanelReactData;
481
+ customPanelInternalData.prevDragGroup = null;
482
+ customPanelInternalData.prevDragValues = null;
417
483
  // 是否移入有效列
418
484
  if (column && (isCrossDrag || column.level === 1)) {
419
485
  evnt.preventDefault();
@@ -426,14 +492,14 @@ export default defineVxeComponent({
426
492
  showDropTip(evnt, optEl, false, dragPos);
427
493
  return;
428
494
  }
429
- prevDragToChild = !!((isCrossDrag && isToChildDrag) && isControlKey && immediate);
430
- prevDragCol = column;
431
- prevDragPos = dragPos;
495
+ customPanelInternalData.prevDragToChild = !!((isCrossDrag && isToChildDrag) && isControlKey && immediate);
496
+ customPanelInternalData.prevDragCol = column;
497
+ customPanelInternalData.prevDragPos = dragPos;
432
498
  showDropTip(evnt, optEl, true, dragPos);
433
499
  }
434
500
  };
435
501
  const renderDragTip = () => {
436
- const dragCol = dragColumnRef.value;
502
+ const { dragTipText } = customPanelReactData;
437
503
  const columnDragOpts = computeColumnDragOpts.value;
438
504
  return h('div', {}, [
439
505
  h('div', {
@@ -458,13 +524,19 @@ export default defineVxeComponent({
458
524
  h('span', {
459
525
  class: ['vxe-table-custom-popup--drag-tip-sub-status', getIcon().TABLE_DRAG_STATUS_SUB_ROW]
460
526
  }),
527
+ h('span', {
528
+ class: ['vxe-table-custom-popup--drag-tip-group-status', getIcon().TABLE_DRAG_STATUS_AGG_GROUP]
529
+ }),
530
+ h('span', {
531
+ class: ['vxe-table-custom-popup--drag-tip-values-status', getIcon().TABLE_DRAG_STATUS_AGG_VALUES]
532
+ }),
461
533
  h('span', {
462
534
  class: ['vxe-table-custom-popup--drag-tip-disabled-status', getIcon().TABLE_DRAG_DISABLED]
463
535
  })
464
536
  ]),
465
537
  h('div', {
466
538
  class: 'vxe-table-custom-popup--drag-tip-content'
467
- }, getI18n('vxe.custom.cstmDragTarget', [dragCol && dragCol.type !== 'html' ? dragCol.getTitle() : '']))
539
+ }, `${dragTipText || ''}`)
468
540
  ])
469
541
  ])
470
542
  ]);
@@ -474,7 +546,7 @@ export default defineVxeComponent({
474
546
  const tableProps = $xeTable.props;
475
547
  const { customStore } = props;
476
548
  const { treeConfig, rowGroupConfig, aggregateConfig } = tableProps;
477
- const { isCustomStatus, customColumnList } = reactData;
549
+ const { isCustomStatus, customColumnList } = tableReactData;
478
550
  const customOpts = computeCustomOpts.value;
479
551
  const { immediate } = customOpts;
480
552
  const columnDragOpts = computeColumnDragOpts.value;
@@ -533,9 +605,9 @@ export default defineVxeComponent({
533
605
  'is--disabled': isDisabled
534
606
  }],
535
607
  title: getI18n('vxe.custom.setting.colVisible'),
536
- onClick: () => {
608
+ onClick: (evnt) => {
537
609
  if (!isDisabled) {
538
- changeCheckboxOption(column);
610
+ changeCheckboxOption(column, evnt);
539
611
  }
540
612
  }
541
613
  }, [
@@ -587,8 +659,8 @@ export default defineVxeComponent({
587
659
  status: column.renderFixed === 'left' ? 'primary' : '',
588
660
  disabled: isDisabled || isHidden || (isMaxFixedColumn && !column.renderFixed),
589
661
  title: getI18n(column.renderFixed === 'left' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedLeft'),
590
- onClick: () => {
591
- changeFixedOption(column, 'left');
662
+ onClick: ({ $event }) => {
663
+ changeFixedOption(column, 'left', $event);
592
664
  }
593
665
  })
594
666
  : createCommentVNode(),
@@ -599,8 +671,8 @@ export default defineVxeComponent({
599
671
  status: column.renderFixed === 'right' ? 'primary' : '',
600
672
  disabled: isDisabled || isHidden || (isMaxFixedColumn && !column.renderFixed),
601
673
  title: getI18n(column.renderFixed === 'right' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedRight'),
602
- onClick: () => {
603
- changeFixedOption(column, 'right');
674
+ onClick: ({ $event }) => {
675
+ changeFixedOption(column, 'right', $event);
604
676
  }
605
677
  })
606
678
  : createCommentVNode()
@@ -622,115 +694,120 @@ export default defineVxeComponent({
622
694
  : {}
623
695
  }, customStore.visible
624
696
  ? [
625
- !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregateSimplePanel
626
- ? h($xeTable.getPivotTableAggregateSimplePanel(), {
627
- customStore
628
- })
629
- : renderEmptyElement($xeTable),
630
697
  h('div', {
631
- class: 'vxe-table-custom--handle-wrapper'
698
+ ref: refBodyWrapperElem,
699
+ class: 'vxe-table-custom-simple--body-wrapper'
632
700
  }, [
701
+ !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregateSimplePanel
702
+ ? h($xeTable.getPivotTableAggregateSimplePanel(), {
703
+ customStore
704
+ })
705
+ : renderEmptyElement($xeTable),
633
706
  h('div', {
634
- class: 'vxe-table-custom--header'
635
- }, headerSlot
636
- ? $xeTable.callSlot(headerSlot, params)
637
- : [
638
- h('ul', {
639
- class: 'vxe-table-custom--panel-list'
640
- }, [
641
- h('li', {
642
- class: 'vxe-table-custom--option'
707
+ ref: refCustomBodyElem,
708
+ class: 'vxe-table-custom--handle-wrapper'
709
+ }, [
710
+ h('div', {
711
+ class: 'vxe-table-custom--header'
712
+ }, headerSlot
713
+ ? $xeTable.callSlot(headerSlot, params)
714
+ : [
715
+ h('ul', {
716
+ class: 'vxe-table-custom--panel-list'
643
717
  }, [
644
- allowVisible
645
- ? h('div', {
646
- class: ['vxe-table-custom--checkbox-option', {
647
- 'is--checked': isAllChecked,
648
- 'is--indeterminate': isAllIndeterminate
649
- }],
650
- title: getI18n('vxe.table.allTitle'),
651
- onClick: allOptionEvent
652
- }, [
653
- h('span', {
654
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
655
- }),
656
- h('span', {
718
+ h('li', {
719
+ class: 'vxe-table-custom--option'
720
+ }, [
721
+ allowVisible
722
+ ? h('div', {
723
+ class: ['vxe-table-custom--checkbox-option', {
724
+ 'is--checked': isAllChecked,
725
+ 'is--indeterminate': isAllIndeterminate
726
+ }],
727
+ title: getI18n('vxe.table.allTitle'),
728
+ onClick: allOptionEvent
729
+ }, [
730
+ h('span', {
731
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
732
+ }),
733
+ h('span', {
734
+ class: 'vxe-checkbox--label'
735
+ }, getI18n('vxe.toolbar.customAll'))
736
+ ])
737
+ : h('span', {
657
738
  class: 'vxe-checkbox--label'
658
- }, getI18n('vxe.toolbar.customAll'))
659
- ])
660
- : h('span', {
661
- class: 'vxe-checkbox--label'
662
- }, getI18n('vxe.table.customTitle'))
739
+ }, getI18n('vxe.table.customTitle'))
740
+ ])
663
741
  ])
664
- ])
742
+ ]),
743
+ h('div', {
744
+ class: 'vxe-table-custom--body'
745
+ }, [
746
+ topSlot
747
+ ? h('div', {
748
+ class: 'vxe-table-custom--panel-top'
749
+ }, $xeTable.callSlot(topSlot, params))
750
+ : renderEmptyElement($xeTable),
751
+ defaultSlot
752
+ ? h('div', {
753
+ class: 'vxe-table-custom--panel-body'
754
+ }, $xeTable.callSlot(defaultSlot, params))
755
+ : h(TransitionGroup, Object.assign({ class: 'vxe-table-custom--panel-list', name: 'vxe-table-custom--list', tag: 'ul' }, customWrapperOns), {
756
+ default: () => colVNs
757
+ }),
758
+ bottomSlot
759
+ ? h('div', {
760
+ class: 'vxe-table-custom--panel-bottom'
761
+ }, $xeTable.callSlot(bottomSlot, params))
762
+ : renderEmptyElement($xeTable)
665
763
  ]),
666
- h('div', {
667
- ref: bodyElemRef,
668
- class: 'vxe-table-custom--body'
669
- }, [
670
- topSlot
671
- ? h('div', {
672
- class: 'vxe-table-custom--panel-top'
673
- }, $xeTable.callSlot(topSlot, params))
674
- : renderEmptyElement($xeTable),
675
- defaultSlot
764
+ customOpts.showFooter
676
765
  ? h('div', {
677
- class: 'vxe-table-custom--panel-body'
678
- }, $xeTable.callSlot(defaultSlot, params))
679
- : h(TransitionGroup, Object.assign({ class: 'vxe-table-custom--panel-list', name: 'vxe-table-custom--list', tag: 'ul' }, customWrapperOns), {
680
- default: () => colVNs
681
- }),
682
- bottomSlot
683
- ? h('div', {
684
- class: 'vxe-table-custom--panel-bottom'
685
- }, $xeTable.callSlot(bottomSlot, params))
686
- : renderEmptyElement($xeTable),
687
- renderDragTip()
688
- ]),
689
- customOpts.showFooter
690
- ? h('div', {
691
- class: 'vxe-table-custom--footer'
692
- }, footerSlot
693
- ? $xeTable.callSlot(footerSlot, params)
694
- : [
695
- h('div', {
696
- class: 'vxe-table-custom--footer-buttons'
697
- }, [
698
- VxeUIButtonComponent
699
- ? h(VxeUIButtonComponent, {
700
- mode: 'text',
701
- content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
702
- disabled: !isCustomStatus,
703
- onClick: resetCustomEvent
704
- })
705
- : createCommentVNode(),
706
- immediate
707
- ? (VxeUIButtonComponent
708
- ? h(VxeUIButtonComponent, {
709
- mode: 'text',
710
- content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
711
- onClick: cancelCloseEvent
712
- })
713
- : createCommentVNode())
714
- : (VxeUIButtonComponent
715
- ? h(VxeUIButtonComponent, {
716
- mode: 'text',
717
- content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
718
- onClick: cancelCustomEvent
719
- })
720
- : createCommentVNode()),
721
- immediate
722
- ? createCommentVNode()
723
- : (VxeUIButtonComponent
766
+ class: 'vxe-table-custom--footer'
767
+ }, footerSlot
768
+ ? $xeTable.callSlot(footerSlot, params)
769
+ : [
770
+ h('div', {
771
+ class: 'vxe-table-custom--footer-buttons'
772
+ }, [
773
+ VxeUIButtonComponent
724
774
  ? h(VxeUIButtonComponent, {
725
775
  mode: 'text',
726
- status: 'primary',
727
- content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
728
- onClick: confirmCustomEvent
776
+ content: customOpts.resetButtonText || getI18n('vxe.table.customRestore'),
777
+ disabled: !isCustomStatus,
778
+ onClick: resetCustomEvent
729
779
  })
730
- : createCommentVNode())
780
+ : createCommentVNode(),
781
+ immediate
782
+ ? (VxeUIButtonComponent
783
+ ? h(VxeUIButtonComponent, {
784
+ mode: 'text',
785
+ content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
786
+ onClick: cancelCloseEvent
787
+ })
788
+ : createCommentVNode())
789
+ : (VxeUIButtonComponent
790
+ ? h(VxeUIButtonComponent, {
791
+ mode: 'text',
792
+ content: customOpts.cancelButtonText || getI18n('vxe.table.customCancel'),
793
+ onClick: cancelCustomEvent
794
+ })
795
+ : createCommentVNode()),
796
+ immediate
797
+ ? createCommentVNode()
798
+ : (VxeUIButtonComponent
799
+ ? h(VxeUIButtonComponent, {
800
+ mode: 'text',
801
+ status: 'primary',
802
+ content: customOpts.confirmButtonText || getI18n('vxe.table.customConfirm'),
803
+ onClick: confirmCustomEvent
804
+ })
805
+ : createCommentVNode())
806
+ ])
731
807
  ])
732
- ])
733
- : null
808
+ : null
809
+ ]),
810
+ renderDragTip()
734
811
  ])
735
812
  ]
736
813
  : []);
@@ -739,7 +816,7 @@ export default defineVxeComponent({
739
816
  const $xeGrid = $xeTable.xeGrid;
740
817
  const { customStore } = props;
741
818
  const { resizable: allResizable } = tableProps;
742
- const { isCustomStatus, customColumnList } = reactData;
819
+ const { isCustomStatus, customColumnList } = tableReactData;
743
820
  const customOpts = computeCustomOpts.value;
744
821
  const { immediate } = customOpts;
745
822
  const columnDragOpts = computeColumnDragOpts.value;
@@ -817,9 +894,9 @@ export default defineVxeComponent({
817
894
  'is--disabled': isDisabled
818
895
  }],
819
896
  title: getI18n('vxe.custom.setting.colVisible'),
820
- onClick: () => {
897
+ onClick: (evnt) => {
821
898
  if (!isDisabled) {
822
- changeCheckboxOption(column);
899
+ changeCheckboxOption(column, evnt);
823
900
  }
824
901
  }
825
902
  }, [
@@ -909,8 +986,8 @@ export default defineVxeComponent({
909
986
  { label: getI18n('vxe.custom.setting.fixedUnset'), value: '', disabled: isDisabled || isHidden },
910
987
  { label: getI18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isDisabled || isHidden || isMaxFixedColumn }
911
988
  ],
912
- 'onUpdate:modelValue'(value) {
913
- changeFixedOption(column, value);
989
+ onChange({ label, $event }) {
990
+ changeFixedOption(column, label, $event);
914
991
  }
915
992
  })
916
993
  : createCommentVNode())
@@ -921,88 +998,92 @@ export default defineVxeComponent({
921
998
  });
922
999
  const scopedSlots = {
923
1000
  default: () => {
924
- if (defaultSlot) {
925
- return $xeTable.callSlot(defaultSlot, params);
926
- }
927
1001
  return h('div', {
928
- ref: bodyElemRef,
929
- class: 'vxe-table-custom-popup--body'
930
- }, [
931
- topSlot
932
- ? h('div', {
933
- class: 'vxe-table-custom-popup--table-top'
934
- }, $xeTable.callSlot(topSlot, params))
935
- : renderEmptyElement($xeTable),
936
- h('div', {
937
- class: 'vxe-table-custom-popup--table-wrapper'
938
- }, [
939
- h('table', {}, [
940
- h('colgroup', {}, [
941
- allowVisible
942
- ? h('col', {
943
- class: 'vxe-table-custom-popup--table-col-seq'
944
- })
945
- : createCommentVNode(),
946
- h('col', {
947
- class: 'vxe-table-custom-popup--table-col-title'
948
- }),
949
- allowResizable
950
- ? h('col', {
951
- class: 'vxe-table-custom-popup--table-col-width'
952
- })
953
- : createCommentVNode(),
954
- allowFixed
955
- ? h('col', {
956
- class: 'vxe-table-custom-popup--table-col-fixed'
957
- })
958
- : createCommentVNode()
959
- ]),
960
- h('thead', {}, [
961
- h('tr', {}, [
962
- allowVisible
963
- ? h('th', {}, [
964
- h('div', {
965
- class: ['vxe-table-custom--checkbox-option', {
966
- 'is--checked': isAllChecked,
967
- 'is--indeterminate': isAllIndeterminate
968
- }],
969
- title: getI18n('vxe.table.allTitle'),
970
- onClick: allOptionEvent
971
- }, [
972
- h('span', {
973
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
974
- }),
975
- h('span', {
976
- class: 'vxe-checkbox--label'
977
- }, getI18n('vxe.toolbar.customAll'))
978
- ])
1002
+ ref: refBodyWrapperElem,
1003
+ class: 'vxe-table-custom-popup--body-wrapper'
1004
+ }, defaultSlot
1005
+ ? $xeTable.callSlot(defaultSlot, params)
1006
+ : [
1007
+ h('div', {
1008
+ ref: refCustomBodyElem,
1009
+ class: 'vxe-table-custom-popup--handle-wrapper'
1010
+ }, [
1011
+ topSlot
1012
+ ? h('div', {
1013
+ class: 'vxe-table-custom-popup--table-top'
1014
+ }, $xeTable.callSlot(topSlot, params))
1015
+ : renderEmptyElement($xeTable),
1016
+ h('div', {
1017
+ class: 'vxe-table-custom-popup--table-wrapper'
1018
+ }, [
1019
+ h('table', {}, [
1020
+ h('colgroup', {}, [
1021
+ allowVisible
1022
+ ? h('col', {
1023
+ class: 'vxe-table-custom-popup--table-col-seq'
1024
+ })
1025
+ : createCommentVNode(),
1026
+ h('col', {
1027
+ class: 'vxe-table-custom-popup--table-col-title'
1028
+ }),
1029
+ allowResizable
1030
+ ? h('col', {
1031
+ class: 'vxe-table-custom-popup--table-col-width'
1032
+ })
1033
+ : createCommentVNode(),
1034
+ allowFixed
1035
+ ? h('col', {
1036
+ class: 'vxe-table-custom-popup--table-col-fixed'
1037
+ })
1038
+ : createCommentVNode()
1039
+ ]),
1040
+ h('thead', {}, [
1041
+ h('tr', {}, [
1042
+ allowVisible
1043
+ ? h('th', {}, [
1044
+ h('div', {
1045
+ class: ['vxe-table-custom--checkbox-option', {
1046
+ 'is--checked': isAllChecked,
1047
+ 'is--indeterminate': isAllIndeterminate
1048
+ }],
1049
+ title: getI18n('vxe.table.allTitle'),
1050
+ onClick: allOptionEvent
1051
+ }, [
1052
+ h('span', {
1053
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
1054
+ }),
1055
+ h('span', {
1056
+ class: 'vxe-checkbox--label'
1057
+ }, getI18n('vxe.toolbar.customAll'))
1058
+ ])
1059
+ ])
1060
+ : createCommentVNode(),
1061
+ h('th', {}, getI18n('vxe.custom.setting.colTitle')),
1062
+ allowResizable
1063
+ ? h('th', {}, getI18n('vxe.custom.setting.colResizable'))
1064
+ : createCommentVNode(),
1065
+ allowFixed
1066
+ ? h('th', {}, getI18n(`vxe.custom.setting.${maxFixedSize ? 'colFixedMax' : 'colFixed'}`, [maxFixedSize]))
1067
+ : createCommentVNode()
979
1068
  ])
980
- : createCommentVNode(),
981
- h('th', {}, getI18n('vxe.custom.setting.colTitle')),
982
- allowResizable
983
- ? h('th', {}, getI18n('vxe.custom.setting.colResizable'))
984
- : createCommentVNode(),
985
- allowFixed
986
- ? h('th', {}, getI18n(`vxe.custom.setting.${maxFixedSize ? 'colFixedMax' : 'colFixed'}`, [maxFixedSize]))
987
- : createCommentVNode()
1069
+ ]),
1070
+ h(TransitionGroup, {
1071
+ class: 'vxe-table-custom--panel-list',
1072
+ tag: 'tbody',
1073
+ name: 'vxe-table-custom--list'
1074
+ }, {
1075
+ default: () => trVNs
1076
+ })
988
1077
  ])
989
1078
  ]),
990
- h(TransitionGroup, {
991
- class: 'vxe-table-custom--panel-list',
992
- tag: 'tbody',
993
- name: 'vxe-table-custom--list'
994
- }, {
995
- default: () => trVNs
996
- })
1079
+ bottomSlot
1080
+ ? h('div', {
1081
+ class: 'vxe-table-custom-popup--table-bottom'
1082
+ }, $xeTable.callSlot(bottomSlot, params))
1083
+ : renderEmptyElement($xeTable),
1084
+ renderDragTip()
997
1085
  ])
998
- ]),
999
- bottomSlot
1000
- ? h('div', {
1001
- class: 'vxe-table-custom-popup--table-bottom'
1002
- }, $xeTable.callSlot(bottomSlot, params))
1003
- : renderEmptyElement($xeTable),
1004
- renderDragTip()
1005
- ]);
1086
+ ]);
1006
1087
  },
1007
1088
  footer: () => {
1008
1089
  if (footerSlot) {
@@ -1118,6 +1199,21 @@ export default defineVxeComponent({
1118
1199
  errLog('vxe.error.reqComp', ['vxe-radio-group']);
1119
1200
  }
1120
1201
  });
1121
- return renderVN;
1202
+ const $xeTableCustomPanel = {
1203
+ xID,
1204
+ props,
1205
+ context,
1206
+ reactData: customPanelReactData,
1207
+ internalData: customPanelInternalData,
1208
+ xeTable: $xeTable,
1209
+ getRefMaps: () => refMaps,
1210
+ getComputeMaps: () => computeMaps,
1211
+ renderVN
1212
+ };
1213
+ provide('$xeTableCustomPanel', $xeTableCustomPanel);
1214
+ return $xeTableCustomPanel;
1215
+ },
1216
+ render() {
1217
+ return this.renderVN();
1122
1218
  }
1123
1219
  });