vxe-table 3.25.0-beta.3 → 3.25.0-beta.5

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 (54) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/filter/mixin.js +4 -7
  6. package/es/table/module/filter/panel.js +47 -48
  7. package/es/table/src/methods.js +29 -197
  8. package/es/table/src/table.js +50 -27
  9. package/es/table/src/util.js +1 -2
  10. package/es/table/style.css +31 -12
  11. package/es/table/style.min.css +1 -1
  12. package/es/ui/index.js +2 -2
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-table/style.css +31 -12
  15. package/es/vxe-table/style.min.css +1 -1
  16. package/lib/index.css +1 -1
  17. package/lib/index.min.css +1 -1
  18. package/lib/index.umd.js +108 -94
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/style.min.css +1 -1
  22. package/lib/table/module/filter/mixin.js +5 -7
  23. package/lib/table/module/filter/mixin.min.js +1 -1
  24. package/lib/table/module/filter/panel.js +41 -37
  25. package/lib/table/module/filter/panel.min.js +1 -1
  26. package/lib/table/src/methods.js +7 -13
  27. package/lib/table/src/methods.min.js +1 -1
  28. package/lib/table/src/table.js +51 -32
  29. package/lib/table/src/table.min.js +1 -1
  30. package/lib/table/src/util.js +1 -2
  31. package/lib/table/src/util.min.js +1 -1
  32. package/lib/table/style/style.css +31 -12
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +2 -2
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-table/style/style.css +31 -12
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/grid/src/grid.ts +2 -1
  42. package/packages/table/module/filter/mixin.ts +4 -7
  43. package/packages/table/module/filter/panel.ts +50 -48
  44. package/packages/table/src/methods.ts +32 -213
  45. package/packages/table/src/table.ts +68 -42
  46. package/packages/table/src/util.ts +1 -2
  47. package/packages/ui/index.ts +1 -1
  48. package/styles/components/table-module/filter.scss +25 -14
  49. /package/es/{iconfont.1792117667851.ttf → iconfont.1792220310836.ttf} +0 -0
  50. /package/es/{iconfont.1792117667851.woff → iconfont.1792220310836.woff} +0 -0
  51. /package/es/{iconfont.1792117667851.woff2 → iconfont.1792220310836.woff2} +0 -0
  52. /package/lib/{iconfont.1792117667851.ttf → iconfont.1792220310836.ttf} +0 -0
  53. /package/lib/{iconfont.1792117667851.woff → iconfont.1792220310836.woff} +0 -0
  54. /package/lib/{iconfont.1792117667851.woff2 → iconfont.1792220310836.woff2} +0 -0
@@ -11,7 +11,7 @@ function updatePopupStyle($xeTable) {
11
11
  const reactData = $xeTable;
12
12
  const internalData = $xeTable;
13
13
  const $xeGGWrapper = $xeGrid || $xeGantt;
14
- const { filterStore } = reactData;
14
+ const { filterStore, scrollbarHeight } = reactData;
15
15
  const { elemStore } = internalData;
16
16
  const { column, targetEl } = filterStore;
17
17
  if (!column) {
@@ -32,8 +32,6 @@ function updatePopupStyle($xeTable) {
32
32
  if (!filterWrapperElem) {
33
33
  return $xeTable.$nextTick();
34
34
  }
35
- const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
36
- const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
37
35
  /**
38
36
  * 是否显示筛选按钮图标
39
37
  * 如果不存在图标,则相对单元格居中显示
@@ -72,9 +70,9 @@ function updatePopupStyle($xeTable) {
72
70
  else {
73
71
  const filterWidth = filterWrapperElem.offsetWidth;
74
72
  const centerWidth = targetEl ? filterWidth / 2 : ((filterWidth - column.renderWidth) / 2);
75
- maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
76
73
  left = btnRect.left - tableRect.left - centerWidth;
77
74
  top = btnRect.top - tableRect.top + currEl.clientHeight;
75
+ maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
78
76
  if (left < 1) {
79
77
  left = 1;
80
78
  }
@@ -96,7 +94,6 @@ function updatePopupStyle($xeTable) {
96
94
  if (zIndex) {
97
95
  panelStyle.zIndex = zIndex;
98
96
  }
99
- filterStore.style = panelStyle;
100
97
  // 筛选面板是自适应表格高度
101
98
  if (compConf ? !compConf.tableFilterAutoHeight : false) {
102
99
  maxHeight = 0;
@@ -106,8 +103,8 @@ function updatePopupStyle($xeTable) {
106
103
  maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
107
104
  }
108
105
  }
109
- // 判断面板不能大于表格高度
110
- filterStore.maxHeight = maxHeight;
106
+ panelStyle['--vxe-ui-vxe-table-filter-default-max-height'] = maxHeight ? toCssUnit(maxHeight) : 'none';
107
+ filterStore.style = panelStyle;
111
108
  };
112
109
  handleStyle();
113
110
  return $xeTable.$nextTick().then(() => {
@@ -1,7 +1,7 @@
1
1
  import { defineVxeComponent } from '../../../ui/src/comp';
2
2
  import { VxeUI } from '../../../ui';
3
3
  import { formatText, isEnableConf } from '../../../ui/src/utils';
4
- import { getPropClass, toCssUnit } from '../../../ui/src/dom';
4
+ import { getPropClass } from '../../../ui/src/dom';
5
5
  import { getSlotVNs } from '../../../ui/src/vn';
6
6
  import { createComponentLog } from '../../../ui/src/log';
7
7
  const { warnLog } = createComponentLog('table');
@@ -118,15 +118,18 @@ export default {
118
118
  * Publish methods
119
119
  *************************/
120
120
  renderOptions(h, filterRender, compConf) {
121
+ const VxeUIScrollbarComponent = VxeUI.getComponent('VxeScrollbar');
121
122
  const $xeFilterPanel = this;
122
123
  const props = $xeFilterPanel;
123
124
  const $xeTable = $xeFilterPanel.$xeTable;
124
125
  const tableInternalData = $xeTable;
125
126
  const { filterStore } = props;
126
- const { column, maxHeight } = filterStore;
127
+ const { column } = filterStore;
127
128
  if (!column) {
128
129
  return [];
129
130
  }
131
+ const filterOpts = $xeTable.computeFilterOpts;
132
+ const { useScrollbar } = filterOpts;
130
133
  const { filterMultiple, filters, slots } = column;
131
134
  const filterOptions = (filters || []);
132
135
  const filterSlot = slots ? slots.filter : null;
@@ -135,34 +138,51 @@ export default {
135
138
  if (filterSlot) {
136
139
  return [
137
140
  h('div', {
138
- class: 'vxe-table--filter-template',
139
- style: maxHeight
140
- ? {
141
- maxHeight: toCssUnit(maxHeight)
142
- }
143
- : {}
141
+ class: 'vxe-table--filter-template'
144
142
  }, $xeTable.callSlot(filterSlot, params, h))
145
143
  ];
146
144
  }
147
145
  else if (filterRender && rtFilter) {
148
146
  return [
149
147
  h('div', {
150
- class: 'vxe-table--filter-template',
151
- style: maxHeight
152
- ? {
153
- maxHeight: toCssUnit(maxHeight)
154
- }
155
- : {}
148
+ class: 'vxe-table--filter-template'
156
149
  }, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))
157
150
  ];
158
151
  }
159
152
  const isAllChecked = filterMultiple ? filterStore.isAllSelected : !filterOptions.some((item) => item._checked);
160
153
  const isAllIndeterminate = filterMultiple && filterStore.isIndeterminate;
154
+ const optVNs = filterOptions.map((item) => {
155
+ const isChecked = item._checked;
156
+ const isIndeterminate = false;
157
+ return h('div', {
158
+ class: ['vxe-table--filter-option', {
159
+ 'is--checked': isChecked
160
+ }],
161
+ attrs: {
162
+ title: item.label
163
+ },
164
+ on: {
165
+ click: (evnt) => {
166
+ $xeFilterPanel.changeOption(evnt, !item._checked, item);
167
+ }
168
+ }
169
+ }, (filterMultiple
170
+ ? [
171
+ h('span', {
172
+ class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
173
+ })
174
+ ]
175
+ : []).concat([
176
+ h('span', {
177
+ class: 'vxe-checkbox--label'
178
+ }, formatText(item.label, 1))
179
+ ]));
180
+ });
161
181
  return [
162
- h('ul', {
182
+ h('div', {
163
183
  class: 'vxe-table--filter-header'
164
184
  }, [
165
- h('li', {
185
+ h('div', {
166
186
  class: ['vxe-table--filter-option', {
167
187
  'is--checked': isAllChecked,
168
188
  'is--indeterminate': isAllIndeterminate
@@ -187,40 +207,19 @@ export default {
187
207
  }, getI18n('vxe.table.allFilter'))
188
208
  ]))
189
209
  ]),
190
- h('ul', {
191
- class: 'vxe-table--filter-body',
192
- style: maxHeight
193
- ? {
194
- maxHeight: toCssUnit(maxHeight)
195
- }
196
- : {}
197
- }, filterOptions.map((item) => {
198
- const isChecked = item._checked;
199
- const isIndeterminate = false;
200
- return h('li', {
201
- class: ['vxe-table--filter-option', {
202
- 'is--checked': isChecked
203
- }],
204
- attrs: {
205
- title: item.label
210
+ useScrollbar
211
+ ? h(VxeUIScrollbarComponent, {
212
+ class: 'vxe-table--scrollbar-filter-body',
213
+ props: {
214
+ viewClassName: 'vxe-table--scrollbar-filter-body-view'
206
215
  },
207
- on: {
208
- click: (evnt) => {
209
- $xeFilterPanel.changeOption(evnt, !item._checked, item);
210
- }
216
+ scopedSlots: {
217
+ default: () => optVNs
211
218
  }
212
- }, (filterMultiple
213
- ? [
214
- h('span', {
215
- class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
216
- })
217
- ]
218
- : []).concat([
219
- h('span', {
220
- class: 'vxe-checkbox--label'
221
- }, formatText(item.label, 1))
222
- ]));
223
- }))
219
+ })
220
+ : h('div', {
221
+ class: 'vxe-table--filter-body'
222
+ }, optVNs)
224
223
  ];
225
224
  },
226
225
  renderFooter(h) {
@@ -9,8 +9,7 @@ import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimat
9
9
  import { createComponentLog } from '../../ui/src/log';
10
10
  import { getCrossTableDragRowInfo } from './store';
11
11
  const { warnLog, errLog } = createComponentLog('table');
12
- const { getConfig, getI18n, renderer, scrollbarUtils, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI;
13
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils || {};
12
+ const { getConfig, getI18n, renderer, formats, interceptor, createEvent, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI;
14
13
  const supportMaxRow = 5e6;
15
14
  const customStorageKey = 'VXE_CUSTOM_STORE';
16
15
  const maxYHeight = 5e6;
@@ -3118,6 +3117,7 @@ function handleRecalculateStyle($xeTable, reFull, reWidth, reHeight) {
3118
3117
  if (reFull) {
3119
3118
  updateTreeLineStyle($xeTable);
3120
3119
  }
3120
+ $xeTable.updateScrollbar();
3121
3121
  internalData.rceRunTime = Date.now();
3122
3122
  if (reFull) {
3123
3123
  return computeScrollLoad($xeTable);
@@ -4678,6 +4678,13 @@ const tableMethods = {
4678
4678
  const $xeTable = this;
4679
4679
  return $xeTable.$refs.refElem;
4680
4680
  },
4681
+ getScrollViewElem() {
4682
+ const $xeTable = this;
4683
+ const internalData = $xeTable;
4684
+ const { elemStore } = internalData;
4685
+ const viewEl = getRefElem(elemStore['main-body-scroll']);
4686
+ return viewEl;
4687
+ },
4681
4688
  /**
4682
4689
  * 获取父容器元素
4683
4690
  */
@@ -9954,8 +9961,14 @@ const tableMethods = {
9954
9961
  */
9955
9962
  updateScrollbar() {
9956
9963
  const $xeTable = this;
9957
- $xeTable.updateThumbSize();
9958
- $xeTable.updateThumbOffset();
9964
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
9965
+ if (isVScrollbar) {
9966
+ return $xeTable.$nextTick().then(() => {
9967
+ $xeTable.updateThumbSize();
9968
+ $xeTable.updateThumbOffset();
9969
+ });
9970
+ }
9971
+ return Promise.resolve();
9959
9972
  },
9960
9973
  /**
9961
9974
  * 表头单元格按下事件
@@ -12384,11 +12397,10 @@ const tableMethods = {
12384
12397
  },
12385
12398
  triggerBodyScrollEvent(evnt, fixedType) {
12386
12399
  const $xeTable = this;
12387
- const props = $xeTable;
12388
12400
  const reactData = $xeTable;
12389
12401
  const internalData = $xeTable;
12390
- const { useScrollbar } = props;
12391
12402
  const { scrollYLoad, scrollXLoad } = reactData;
12403
+ const isVScrollbar = $xeTable.computeIsVScrollbar;
12392
12404
  const { elemStore, intoRunScroll, lastScrollTop, lastScrollLeft, inWheelScroll, inVirtualScroll, inHeaderScroll, inBodyScroll, scrollRenderType, inFooterScroll } = internalData;
12393
12405
  if (inWheelScroll || inVirtualScroll || inHeaderScroll || inFooterScroll) {
12394
12406
  return;
@@ -12407,7 +12419,7 @@ const tableMethods = {
12407
12419
  if (!bodyScrollElem) {
12408
12420
  return;
12409
12421
  }
12410
- if (!useScrollbar) {
12422
+ if (!isVScrollbar) {
12411
12423
  if (!xHandleEl) {
12412
12424
  return;
12413
12425
  }
@@ -13553,196 +13565,6 @@ const tableMethods = {
13553
13565
  const $xeTable = this;
13554
13566
  return $xeTable.handleClearStack();
13555
13567
  },
13556
- // 滚动条
13557
- updateThumbSize() {
13558
- const $xeTable = this;
13559
- const reactData = $xeTable;
13560
- const internalData = $xeTable;
13561
- const { elemStore } = internalData;
13562
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13563
- if (!viewEl) {
13564
- return;
13565
- }
13566
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
13567
- return;
13568
- }
13569
- const trackXEl = $xeTable.$refs.refTrackXElem;
13570
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
13571
- const thumbXElem = $xeTable.$refs.refThumbXElem;
13572
- if (thumbXElem) {
13573
- thumbXElem.style.width = xThumbWidth + 'px';
13574
- }
13575
- reactData.xThumbWidth = xThumbWidth;
13576
- const trackYEl = $xeTable.$refs.refTrackYElem;
13577
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
13578
- const thumbYElem = $xeTable.$refs.refThumbYElem;
13579
- if (thumbYElem) {
13580
- thumbYElem.style.height = yThumbHeight + 'px';
13581
- }
13582
- reactData.yThumbHeight = yThumbHeight;
13583
- },
13584
- updateThumbOffset() {
13585
- const $xeTable = this;
13586
- const reactData = $xeTable;
13587
- const internalData = $xeTable;
13588
- const { elemStore } = internalData;
13589
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13590
- if (!viewEl) {
13591
- return;
13592
- }
13593
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
13594
- return;
13595
- }
13596
- const { xThumbWidth, yThumbHeight } = reactData;
13597
- const trackXEl = $xeTable.$refs.refTrackXElem;
13598
- const thumbXElem = $xeTable.$refs.refThumbXElem;
13599
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
13600
- internalData.xThumbLeft = xThumbLeft;
13601
- if (thumbXElem && xThumbWidth) {
13602
- thumbXElem.style.width = xThumbWidth + 'px';
13603
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
13604
- }
13605
- const trackYEl = $xeTable.$refs.refTrackYElem;
13606
- const thumbYElem = $xeTable.$refs.refThumbYElem;
13607
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
13608
- internalData.yThumbTop = yThumbTop;
13609
- if (thumbYElem && yThumbHeight) {
13610
- thumbYElem.style.height = yThumbHeight + 'px';
13611
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
13612
- }
13613
- },
13614
- clickTrackXEvent(evnt) {
13615
- const $xeTable = this;
13616
- const reactData = $xeTable;
13617
- const internalData = $xeTable;
13618
- const { elemStore } = internalData;
13619
- const trackEl = evnt.currentTarget;
13620
- if (trackEl !== evnt.target) {
13621
- return;
13622
- }
13623
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13624
- if (!viewEl) {
13625
- return;
13626
- }
13627
- const { xThumbWidth } = reactData;
13628
- const trackRect = trackEl.getBoundingClientRect();
13629
- viewEl.scrollTo({
13630
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
13631
- behavior: 'auto'
13632
- });
13633
- },
13634
- clickTrackYEvent(evnt) {
13635
- const $xeTable = this;
13636
- const reactData = $xeTable;
13637
- const internalData = $xeTable;
13638
- const trackEl = evnt.currentTarget;
13639
- if (trackEl !== evnt.target) {
13640
- return;
13641
- }
13642
- const { elemStore } = internalData;
13643
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13644
- if (!viewEl) {
13645
- return;
13646
- }
13647
- const { yThumbHeight } = reactData;
13648
- const trackRect = trackEl.getBoundingClientRect();
13649
- viewEl.scrollTo({
13650
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
13651
- behavior: 'auto'
13652
- });
13653
- },
13654
- pointerdownThumbXEvent(evnt) {
13655
- const $xeTable = this;
13656
- const reactData = $xeTable;
13657
- const internalData = $xeTable;
13658
- const { elemStore } = internalData;
13659
- const thumbEl = evnt.currentTarget;
13660
- internalData.isThumbDrag = true;
13661
- thumbEl.setPointerCapture(evnt.pointerId);
13662
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13663
- if (!viewEl) {
13664
- return;
13665
- }
13666
- const { xThumbWidth } = reactData;
13667
- const trackEl = thumbEl.parentElement;
13668
- const trackRect = trackEl.getBoundingClientRect();
13669
- const pointerPosition = evnt.clientX - trackRect.left;
13670
- // 记录 thumb 的偏移
13671
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
13672
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
13673
- },
13674
- pointermoveThumbXEvent(evnt) {
13675
- const $xeTable = this;
13676
- const reactData = $xeTable;
13677
- const internalData = $xeTable;
13678
- const thumbEl = evnt.currentTarget;
13679
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
13680
- return;
13681
- }
13682
- const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
13683
- if (isThumbDrag) {
13684
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13685
- if (!viewEl) {
13686
- return;
13687
- }
13688
- const { xThumbWidth } = reactData;
13689
- const thumbEl = evnt.currentTarget;
13690
- const trackEl = thumbEl.parentElement;
13691
- const trackRect = trackEl.getBoundingClientRect();
13692
- // 更新偏移
13693
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
13694
- }
13695
- },
13696
- cleatPointerThumbEvent(evnt) {
13697
- const $xeTable = this;
13698
- const internalData = $xeTable;
13699
- const thumbEl = evnt.currentTarget;
13700
- thumbEl.releasePointerCapture(evnt.pointerId);
13701
- internalData.isThumbDrag = false;
13702
- },
13703
- pointerdownThumbYEvent(evnt) {
13704
- const $xeTable = this;
13705
- const reactData = $xeTable;
13706
- const internalData = $xeTable;
13707
- const { elemStore } = internalData;
13708
- const thumbEl = evnt.currentTarget;
13709
- internalData.isThumbDrag = true;
13710
- thumbEl.setPointerCapture(evnt.pointerId);
13711
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13712
- if (!viewEl) {
13713
- return;
13714
- }
13715
- const { yThumbHeight } = reactData;
13716
- const trackEl = thumbEl.parentElement;
13717
- const trackRect = trackEl.getBoundingClientRect();
13718
- const pointerPosition = evnt.clientY - trackRect.top;
13719
- // 记录 thumb 的偏移
13720
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
13721
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
13722
- },
13723
- pointermoveThumbYEvent(evnt) {
13724
- const $xeTable = this;
13725
- const reactData = $xeTable;
13726
- const internalData = $xeTable;
13727
- const thumbEl = evnt.currentTarget;
13728
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
13729
- return;
13730
- }
13731
- const { elemStore, isThumbDrag, thumbDragOffset } = internalData;
13732
- if (isThumbDrag) {
13733
- const viewEl = getRefElem(elemStore['main-body-scroll']);
13734
- if (!viewEl) {
13735
- return;
13736
- }
13737
- const { yThumbHeight } = reactData;
13738
- const thumbEl = evnt.currentTarget;
13739
- const trackEl = thumbEl.parentElement;
13740
- const trackRect = trackEl.getBoundingClientRect();
13741
- // 更新偏移
13742
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
13743
- }
13744
- },
13745
- // 滚动条
13746
13568
  dispatchEvent(type, params, evnt) {
13747
13569
  const $xeTable = this;
13748
13570
  const $xeGrid = $xeTable.$xeGrid;
@@ -13799,6 +13621,16 @@ const tableMethods = {
13799
13621
  }
13800
13622
  return $xeTable.$nextTick();
13801
13623
  },
13624
+ getInternalData() {
13625
+ const $xeTable = this;
13626
+ const internalData = $xeTable;
13627
+ return internalData;
13628
+ },
13629
+ getReactData() {
13630
+ const $xeTable = this;
13631
+ const reactData = $xeTable;
13632
+ return reactData;
13633
+ },
13802
13634
  /*************************
13803
13635
  * Publish methods
13804
13636
  *************************/