vxe-table 3.15.17 → 3.15.19

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 (185) hide show
  1. package/es/locale/lang/ar-EG.js +1 -1
  2. package/es/locale/lang/de-DE.js +1 -1
  3. package/es/locale/lang/en-US.js +1 -1
  4. package/es/locale/lang/es-ES.js +1 -1
  5. package/es/locale/lang/fr-FR.d.ts +2 -0
  6. package/es/locale/lang/fr-FR.js +1 -1
  7. package/es/locale/lang/hu-HU.js +1 -1
  8. package/es/locale/lang/hy-AM.d.ts +2 -0
  9. package/es/locale/lang/hy-AM.js +1 -1
  10. package/es/locale/lang/id-ID.d.ts +2 -0
  11. package/es/locale/lang/id-ID.js +1 -1
  12. package/es/locale/lang/it-IT.d.ts +2 -0
  13. package/es/locale/lang/it-IT.js +1 -1
  14. package/es/locale/lang/ja-JP.js +1 -1
  15. package/es/locale/lang/ko-KR.js +1 -1
  16. package/es/locale/lang/ms-MY.d.ts +2 -0
  17. package/es/locale/lang/ms-MY.js +708 -0
  18. package/es/locale/lang/nb-NO.d.ts +2 -0
  19. package/es/locale/lang/nb-NO.js +1 -1
  20. package/es/locale/lang/pt-BR.js +1 -1
  21. package/es/locale/lang/ru-RU.js +1 -1
  22. package/es/locale/lang/th-TH.d.ts +2 -0
  23. package/es/locale/lang/th-TH.js +1 -1
  24. package/es/locale/lang/ug-CN.d.ts +2 -0
  25. package/es/locale/lang/ug-CN.js +1 -1
  26. package/es/locale/lang/uk-UA.js +1 -1
  27. package/es/locale/lang/uz-UZ.d.ts +2 -0
  28. package/es/locale/lang/uz-UZ.js +708 -0
  29. package/es/locale/lang/vi-VN.d.ts +2 -0
  30. package/es/locale/lang/vi-VN.js +1 -1
  31. package/es/locale/lang/zh-CHT.js +1 -1
  32. package/es/locale/lang/zh-CN.js +1 -1
  33. package/es/style.css +1 -1
  34. package/es/table/module/custom/panel.js +1 -1
  35. package/es/table/module/filter/mixin.js +10 -0
  36. package/es/table/render/index.js +27 -21
  37. package/es/table/src/body.js +2 -1
  38. package/es/table/src/footer.js +2 -1
  39. package/es/table/src/header.js +2 -1
  40. package/es/table/src/methods.js +54 -50
  41. package/es/table/src/table.js +2 -2
  42. package/es/ui/index.js +1 -1
  43. package/es/ui/src/log.js +1 -1
  44. package/lib/index.umd.js +112 -80
  45. package/lib/index.umd.min.js +1 -1
  46. package/lib/locale/lang/ar-EG.d.ts +2 -0
  47. package/lib/locale/lang/ar-EG.js +1 -1
  48. package/lib/locale/lang/ar-EG.min.js +1 -1
  49. package/lib/locale/lang/ar-EG.umd.js +728 -0
  50. package/lib/locale/lang/de-DE.d.ts +2 -0
  51. package/lib/locale/lang/de-DE.js +1 -1
  52. package/lib/locale/lang/de-DE.min.js +1 -1
  53. package/lib/locale/lang/de-DE.umd.js +728 -0
  54. package/lib/locale/lang/en-US.js +1 -1
  55. package/lib/locale/lang/en-US.min.js +1 -1
  56. package/lib/locale/lang/en-US.umd.js +1 -1
  57. package/lib/locale/lang/es-ES.js +1 -1
  58. package/lib/locale/lang/es-ES.min.js +1 -1
  59. package/lib/locale/lang/es-ES.umd.js +1 -1
  60. package/lib/locale/lang/fr-FR.d.ts +2 -0
  61. package/lib/locale/lang/fr-FR.js +1 -1
  62. package/lib/locale/lang/fr-FR.min.js +1 -1
  63. package/lib/locale/lang/fr-FR.umd.js +728 -0
  64. package/lib/locale/lang/hu-HU.js +1 -1
  65. package/lib/locale/lang/hu-HU.min.js +1 -1
  66. package/lib/locale/lang/hu-HU.umd.js +1 -1
  67. package/lib/locale/lang/hy-AM.d.ts +2 -0
  68. package/lib/locale/lang/hy-AM.js +1 -1
  69. package/lib/locale/lang/hy-AM.min.js +1 -1
  70. package/lib/locale/lang/hy-AM.umd.js +728 -0
  71. package/lib/locale/lang/id-ID.d.ts +2 -0
  72. package/lib/locale/lang/id-ID.js +1 -1
  73. package/lib/locale/lang/id-ID.min.js +1 -1
  74. package/lib/locale/lang/id-ID.umd.js +728 -0
  75. package/lib/locale/lang/it-IT.d.ts +2 -0
  76. package/lib/locale/lang/it-IT.js +1 -1
  77. package/lib/locale/lang/it-IT.min.js +1 -1
  78. package/lib/locale/lang/it-IT.umd.js +728 -0
  79. package/lib/locale/lang/ja-JP.js +1 -1
  80. package/lib/locale/lang/ja-JP.min.js +1 -1
  81. package/lib/locale/lang/ja-JP.umd.js +1 -1
  82. package/lib/locale/lang/ko-KR.js +1 -1
  83. package/lib/locale/lang/ko-KR.min.js +1 -1
  84. package/lib/locale/lang/ko-KR.umd.js +1 -1
  85. package/lib/locale/lang/ms-MY.d.ts +2 -0
  86. package/lib/locale/lang/ms-MY.js +714 -0
  87. package/lib/locale/lang/ms-MY.min.js +1 -0
  88. package/lib/locale/lang/ms-MY.umd.js +728 -0
  89. package/lib/locale/lang/nb-NO.d.ts +2 -0
  90. package/lib/locale/lang/nb-NO.js +1 -1
  91. package/lib/locale/lang/nb-NO.min.js +1 -1
  92. package/lib/locale/lang/nb-NO.umd.js +728 -0
  93. package/lib/locale/lang/pt-BR.js +1 -1
  94. package/lib/locale/lang/pt-BR.min.js +1 -1
  95. package/lib/locale/lang/pt-BR.umd.js +1 -1
  96. package/lib/locale/lang/ru-RU.js +1 -1
  97. package/lib/locale/lang/ru-RU.min.js +1 -1
  98. package/lib/locale/lang/ru-RU.umd.js +1 -1
  99. package/lib/locale/lang/th-TH.d.ts +2 -0
  100. package/lib/locale/lang/th-TH.js +1 -1
  101. package/lib/locale/lang/th-TH.min.js +1 -1
  102. package/lib/locale/lang/th-TH.umd.js +728 -0
  103. package/lib/locale/lang/ug-CN.d.ts +2 -0
  104. package/lib/locale/lang/ug-CN.js +1 -1
  105. package/lib/locale/lang/ug-CN.min.js +1 -1
  106. package/lib/locale/lang/ug-CN.umd.js +728 -0
  107. package/lib/locale/lang/uk-UA.js +1 -1
  108. package/lib/locale/lang/uk-UA.min.js +1 -1
  109. package/lib/locale/lang/uk-UA.umd.js +1 -1
  110. package/lib/locale/lang/uz-UZ.d.ts +2 -0
  111. package/lib/locale/lang/uz-UZ.js +714 -0
  112. package/lib/locale/lang/uz-UZ.min.js +1 -0
  113. package/lib/locale/lang/uz-UZ.umd.js +728 -0
  114. package/lib/locale/lang/vi-VN.d.ts +2 -0
  115. package/lib/locale/lang/vi-VN.js +1 -1
  116. package/lib/locale/lang/vi-VN.min.js +1 -1
  117. package/lib/locale/lang/vi-VN.umd.js +728 -0
  118. package/lib/locale/lang/zh-CHT.js +1 -1
  119. package/lib/locale/lang/zh-CHT.min.js +1 -1
  120. package/lib/locale/lang/zh-CHT.umd.js +1 -1
  121. package/lib/locale/lang/zh-CN.js +1 -1
  122. package/lib/locale/lang/zh-CN.min.js +1 -1
  123. package/lib/locale/lang/zh-CN.umd.js +1 -1
  124. package/lib/locale/lang/zh-TC.min.js +1 -1
  125. package/lib/style.css +1 -1
  126. package/lib/table/module/custom/panel.js +1 -1
  127. package/lib/table/module/custom/panel.min.js +1 -1
  128. package/lib/table/module/filter/mixin.js +10 -0
  129. package/lib/table/module/filter/mixin.min.js +1 -1
  130. package/lib/table/render/index.js +27 -21
  131. package/lib/table/render/index.min.js +1 -1
  132. package/lib/table/src/body.js +2 -1
  133. package/lib/table/src/body.min.js +1 -1
  134. package/lib/table/src/footer.js +2 -1
  135. package/lib/table/src/footer.min.js +1 -1
  136. package/lib/table/src/header.js +2 -1
  137. package/lib/table/src/header.min.js +1 -1
  138. package/lib/table/src/methods.js +62 -49
  139. package/lib/table/src/methods.min.js +1 -1
  140. package/lib/table/src/table.js +2 -2
  141. package/lib/table/src/table.min.js +1 -1
  142. package/lib/ui/index.js +1 -1
  143. package/lib/ui/index.min.js +1 -1
  144. package/lib/ui/src/log.js +1 -1
  145. package/lib/ui/src/log.min.js +1 -1
  146. package/package.json +1 -1
  147. package/packages/locale/lang/ar-EG.ts +1 -1
  148. package/packages/locale/lang/de-DE.ts +1 -1
  149. package/packages/locale/lang/en-US.ts +1 -1
  150. package/packages/locale/lang/es-ES.ts +1 -1
  151. package/packages/locale/lang/fr-FR.ts +1 -1
  152. package/packages/locale/lang/hu-HU.ts +1 -1
  153. package/packages/locale/lang/hy-AM.ts +1 -1
  154. package/packages/locale/lang/id-ID.ts +1 -1
  155. package/packages/locale/lang/it-IT.ts +1 -1
  156. package/packages/locale/lang/ja-JP.ts +1 -1
  157. package/packages/locale/lang/ko-KR.ts +1 -1
  158. package/packages/locale/lang/ms-MY.ts +708 -0
  159. package/packages/locale/lang/nb-NO.ts +1 -1
  160. package/packages/locale/lang/pt-BR.ts +1 -1
  161. package/packages/locale/lang/ru-RU.ts +1 -1
  162. package/packages/locale/lang/th-TH.ts +1 -1
  163. package/packages/locale/lang/ug-CN.ts +1 -1
  164. package/packages/locale/lang/uk-UA.ts +1 -1
  165. package/packages/locale/lang/uz-UZ.ts +708 -0
  166. package/packages/locale/lang/vi-VN.ts +1 -1
  167. package/packages/locale/lang/zh-CHT.ts +1 -1
  168. package/packages/locale/lang/zh-CN.ts +1 -1
  169. package/packages/table/module/custom/panel.ts +1 -1
  170. package/packages/table/module/filter/mixin.ts +12 -0
  171. package/packages/table/render/index.ts +26 -20
  172. package/packages/table/src/body.ts +2 -1
  173. package/packages/table/src/footer.ts +2 -1
  174. package/packages/table/src/header.ts +2 -1
  175. package/packages/table/src/methods.ts +58 -48
  176. package/packages/table/src/table.ts +2 -2
  177. package/lib/locale/lang/zh-TC.umd.js +0 -23
  178. /package/es/{iconfont.1746324587006.ttf → iconfont.1746694071741.ttf} +0 -0
  179. /package/es/{iconfont.1746324587006.woff → iconfont.1746694071741.woff} +0 -0
  180. /package/es/{iconfont.1746324587006.woff2 → iconfont.1746694071741.woff2} +0 -0
  181. /package/es/locale/lang/{zh-TC.d.ts → ar-EG.d.ts} +0 -0
  182. /package/{lib/locale/lang/zh-TC.d.ts → es/locale/lang/de-DE.d.ts} +0 -0
  183. /package/lib/{iconfont.1746324587006.ttf → iconfont.1746694071741.ttf} +0 -0
  184. /package/lib/{iconfont.1746324587006.woff → iconfont.1746694071741.woff} +0 -0
  185. /package/lib/{iconfont.1746324587006.woff2 → iconfont.1746694071741.woff2} +0 -0
@@ -824,7 +824,7 @@ export default {
824
824
  const $xeTable = this.$xeTable;
825
825
  const { customOpts } = $xeTable;
826
826
  const { mode } = customOpts;
827
- if (!VxeUIModalComponent) {
827
+ if (!VxeUIModalComponent && (mode === 'modal')) {
828
828
  errLog('vxe.error.reqComp', ['vxe-modal']);
829
829
  }
830
830
  if (!VxeUIDrawerComponent && (mode === 'drawer')) {
@@ -164,11 +164,21 @@ export default {
164
164
  $xeTable.handleFilterConfirmFilter(null);
165
165
  return $xeTable.$nextTick();
166
166
  },
167
+ _saveFilterPanelByEvent(evnt) {
168
+ const $xeTable = this;
169
+ $xeTable.handleFilterConfirmFilter(evnt);
170
+ return $xeTable.$nextTick();
171
+ },
167
172
  _resetFilterPanel() {
168
173
  const $xeTable = this;
169
174
  $xeTable.handleFilterResetFilter(null);
170
175
  return $xeTable.$nextTick();
171
176
  },
177
+ _resetFilterPanelByEvent(evnt) {
178
+ const $xeTable = this;
179
+ $xeTable.handleFilterResetFilter(evnt);
180
+ return $xeTable.$nextTick();
181
+ },
172
182
  _getCheckedFilters() {
173
183
  const { tableFullColumn } = this;
174
184
  const filterList = [];
@@ -380,14 +380,17 @@ function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
380
380
  const { optionGroups, optionGroupProps = {} } = renderOpts;
381
381
  const groupOptions = optionGroupProps.options || 'options';
382
382
  const groupLabel = optionGroupProps.label || 'label';
383
- return optionGroups.map((group, gIndex) => {
384
- return h('optgroup', {
385
- key: gIndex,
386
- attrs: {
387
- label: group[groupLabel]
388
- }
389
- }, renderOptionsMethods(h, group[groupOptions], renderOpts, params));
390
- });
383
+ if (optionGroups) {
384
+ return optionGroups.map((group, gIndex) => {
385
+ return h('optgroup', {
386
+ key: gIndex,
387
+ attrs: {
388
+ label: group[groupLabel]
389
+ }
390
+ }, renderOptionsMethods(h, group[groupOptions], renderOpts, params));
391
+ });
392
+ }
393
+ return [];
391
394
  }
392
395
  /**
393
396
  * 渲染原生的 option 标签
@@ -399,19 +402,22 @@ function renderNativeOptions(h, options, renderOpts, params) {
399
402
  const valueProp = optionProps.value || 'value';
400
403
  const disabledProp = optionProps.disabled || 'disabled';
401
404
  const cellValue = isImmediateCell(renderOpts, params) ? getCellValue(row, column) : column.model.value;
402
- return options.map((option, oIndex) => {
403
- return h('option', {
404
- key: oIndex,
405
- attrs: {
406
- value: option[valueProp],
407
- disabled: option[disabledProp]
408
- },
409
- domProps: {
410
- /* eslint-disable eqeqeq */
411
- selected: option[valueProp] == cellValue
412
- }
413
- }, option[labelProp]);
414
- });
405
+ if (options) {
406
+ return options.map((option, oIndex) => {
407
+ return h('option', {
408
+ key: oIndex,
409
+ attrs: {
410
+ value: option[valueProp],
411
+ disabled: option[disabledProp]
412
+ },
413
+ domProps: {
414
+ /* eslint-disable eqeqeq */
415
+ selected: option[valueProp] == cellValue
416
+ }
417
+ }, option[labelProp]);
418
+ });
419
+ }
420
+ return [];
415
421
  }
416
422
  function nativeFilterRender(h, renderOpts, params) {
417
423
  const { column } = params;
@@ -789,7 +789,8 @@ export default {
789
789
  xid: xID,
790
790
  cellspacing: 0,
791
791
  cellpadding: 0,
792
- border: 0
792
+ border: 0,
793
+ xvm: isOptimizeMode ? '1' : null
793
794
  }
794
795
  }, [
795
796
  /**
@@ -354,7 +354,8 @@ export default {
354
354
  xid: xID,
355
355
  cellspacing: 0,
356
356
  cellpadding: 0,
357
- border: 0
357
+ border: 0,
358
+ xvm: isOptimizeMode ? '1' : null
358
359
  }
359
360
  }, [
360
361
  /**
@@ -349,7 +349,8 @@ export default {
349
349
  xid: xID,
350
350
  cellspacing: 0,
351
351
  cellpadding: 0,
352
- border: 0
352
+ border: 0,
353
+ xvm: isOptimizeMode ? '1' : null
353
354
  }
354
355
  }, [
355
356
  /**
@@ -1,5 +1,5 @@
1
1
  import XEUtils from 'xe-utils';
2
- import { getTpImg, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, getOffsetPos, setScrollTop, setScrollLeft, toCssUnit, hasControlKey } from '../../ui/src/dom';
2
+ import { getTpImg, isPx, isScale, hasClass, addClass, removeClass, getEventTargetNode, getPaddingTopBottomSize, setScrollTop, setScrollLeft, toCssUnit, hasControlKey } from '../../ui/src/dom';
3
3
  import { getLastZIndex, nextZIndex, hasChildrenList, getFuncText, isEnableConf, formatText, eqEmptyValue } from '../../ui/src/utils';
4
4
  import { VxeUI } from '../../ui';
5
5
  import Cell from './cell';
@@ -4931,8 +4931,9 @@ const Methods = {
4931
4931
  evnt.stopPropagation();
4932
4932
  evnt.preventDefault();
4933
4933
  const { column } = params;
4934
- const { overflowX, scrollbarHeight } = reactData;
4934
+ const { columnStore, overflowX, scrollbarHeight } = reactData;
4935
4935
  const { elemStore, visibleColumn } = internalData;
4936
+ const { leftList, rightList } = columnStore;
4936
4937
  const resizableOpts = $xeTable.computeResizableOpts;
4937
4938
  const osbHeight = overflowX ? scrollbarHeight : 0;
4938
4939
  const tableEl = $xeTable.$refs.refElem;
@@ -4942,10 +4943,11 @@ const Methods = {
4942
4943
  if (!resizeBarElem) {
4943
4944
  return;
4944
4945
  }
4946
+ const isLeftFixed = fixedType === 'left';
4947
+ const isRightFixed = fixedType === 'right';
4945
4948
  const resizeTipElem = resizeBarElem.firstElementChild;
4946
4949
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
4947
4950
  const { clientX: dragClientX } = evnt;
4948
- const wrapperElem = $xeTable.$refs.refElem;
4949
4951
  const dragBtnElem = evnt.target;
4950
4952
  let resizeColumn = column;
4951
4953
  if (column.children && column.children.length) {
@@ -4960,30 +4962,32 @@ const Methods = {
4960
4962
  if (!bodyScrollElem) {
4961
4963
  return;
4962
4964
  }
4963
- const pos = getOffsetPos(dragBtnElem, wrapperElem);
4965
+ const tableRect = tableEl.getBoundingClientRect();
4966
+ const rightContainerRect = rightContainerElem ? rightContainerElem.getBoundingClientRect() : null;
4967
+ const cellRect = cell.getBoundingClientRect();
4968
+ const dragBtnRect = dragBtnElem.getBoundingClientRect();
4964
4969
  const dragBtnWidth = dragBtnElem.clientWidth;
4965
4970
  const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
4971
+ const dragPosLeft = dragBtnRect.x - tableRect.x + dragBtnOffsetWidth;
4966
4972
  const minInterval = getColReMinWidth(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
4967
- let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
4968
- let dragPosLeft = pos.left + dragBtnOffsetWidth;
4969
- const isLeftFixed = fixedType === 'left';
4970
- const isRightFixed = fixedType === 'right';
4971
- // 计算左右侧固定列偏移量
4972
- let fixedOffsetWidth = 0;
4973
+ const dragMinLeft = isRightFixed ? 0 : (cellRect.x - tableRect.x + dragBtnWidth + minInterval);
4974
+ const dragMaxLeft = cellRect.x - tableRect.x + cell.clientWidth - minInterval;
4975
+ let fixedLeftRemainWidth = 0;
4976
+ let fixedRightRemainWidth = 0;
4973
4977
  if (isLeftFixed || isRightFixed) {
4974
- const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
4975
- let tempCellElem = cell[siblingProp];
4976
- while (tempCellElem) {
4977
- if (hasClass(tempCellElem, 'fixed--hidden')) {
4978
- break;
4978
+ let isMach = false;
4979
+ const fixedColumn = isLeftFixed ? leftList : rightList;
4980
+ for (let i = 0; i < fixedColumn.length; i++) {
4981
+ const item = fixedColumn[i];
4982
+ if (isMach) {
4983
+ fixedLeftRemainWidth += item.renderWidth;
4979
4984
  }
4980
- else if (!hasClass(tempCellElem, 'col--group')) {
4981
- fixedOffsetWidth += tempCellElem.offsetWidth;
4985
+ else {
4986
+ isMach = item.id === resizeColumn.id;
4987
+ if (!isMach) {
4988
+ fixedRightRemainWidth += item.renderWidth;
4989
+ }
4982
4990
  }
4983
- tempCellElem = tempCellElem[siblingProp];
4984
- }
4985
- if (isRightFixed && rightContainerElem) {
4986
- dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
4987
4991
  }
4988
4992
  }
4989
4993
  // 处理拖动事件
@@ -4993,29 +4997,25 @@ const Methods = {
4993
4997
  const tableHeight = tableEl.clientHeight;
4994
4998
  const offsetX = evnt.clientX - dragClientX;
4995
4999
  let left = dragPosLeft + offsetX;
4996
- const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
4997
5000
  if (isLeftFixed) {
4998
- // 左固定列(不允许超过右侧固定列、不允许超过右边距)
4999
- left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft : bodyScrollElem.clientWidth) - fixedOffsetWidth - minInterval);
5001
+ if (rightContainerRect) {
5002
+ left = Math.min(left, rightContainerRect.x - tableRect.x - fixedLeftRemainWidth - minInterval);
5003
+ }
5000
5004
  }
5001
5005
  else if (isRightFixed) {
5002
- // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
5003
- dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
5004
- left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
5005
- }
5006
- else {
5007
- dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
5008
- // left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
5006
+ if (leftContainerElem) {
5007
+ left = Math.max(left, leftContainerElem.clientWidth + fixedRightRemainWidth + minInterval);
5008
+ }
5009
+ left = Math.min(left, dragMaxLeft);
5009
5010
  }
5010
5011
  dragLeft = Math.max(left, dragMinLeft);
5011
- const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
5012
+ const resizeBarLeft = Math.max(1, dragLeft);
5012
5013
  resizeBarElem.style.left = `${resizeBarLeft}px`;
5013
5014
  resizeBarElem.style.top = `${scrollbarXToTop ? osbHeight : 0}px`;
5014
5015
  resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - osbHeight : tableHeight}px`;
5015
5016
  if (resizableOpts.showDragTip && resizeTipElem) {
5016
- resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
5017
+ resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [Math.floor(resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft))]);
5017
5018
  const tableWrapperWidth = tableEl.clientWidth;
5018
- const wrapperRect = wrapperElem.getBoundingClientRect();
5019
5019
  const resizeBarWidth = resizeBarElem.clientWidth;
5020
5020
  const resizeTipWidth = resizeTipElem.clientWidth;
5021
5021
  const resizeTipHeight = resizeTipElem.clientHeight;
@@ -5027,7 +5027,7 @@ const Methods = {
5027
5027
  resizeTipLeft += tableWrapperWidth - resizeBarLeft;
5028
5028
  }
5029
5029
  resizeTipElem.style.left = `${resizeTipLeft}px`;
5030
- resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
5030
+ resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - tableRect.y - resizeTipHeight / 2))}px`;
5031
5031
  }
5032
5032
  reactData.isDragResize = true;
5033
5033
  };
@@ -6886,25 +6886,27 @@ const Methods = {
6886
6886
  const { selectRadioRow: oldValue } = reactData;
6887
6887
  const { row } = params;
6888
6888
  const radioOpts = $xeTable.computeRadioOpts;
6889
- const { trigger } = radioOpts;
6889
+ const { trigger, checkMethod } = radioOpts;
6890
6890
  if (trigger === 'manual') {
6891
6891
  return;
6892
6892
  }
6893
6893
  evnt.stopPropagation();
6894
- let newValue = row;
6895
- let isChange = oldValue !== newValue;
6896
- if (isChange) {
6897
- handleCheckedRadioRow($xeTable, newValue);
6898
- }
6899
- else if (!radioOpts.strict) {
6900
- isChange = oldValue === newValue;
6894
+ if (!checkMethod || checkMethod({ $table: $xeTable, row })) {
6895
+ let newValue = row;
6896
+ let isChange = oldValue !== newValue;
6901
6897
  if (isChange) {
6902
- newValue = null;
6903
- $xeTable.clearRadioRow();
6898
+ handleCheckedRadioRow($xeTable, newValue);
6899
+ }
6900
+ else if (!radioOpts.strict) {
6901
+ isChange = oldValue === newValue;
6902
+ if (isChange) {
6903
+ newValue = null;
6904
+ $xeTable.clearRadioRow();
6905
+ }
6906
+ }
6907
+ if (isChange) {
6908
+ $xeTable.dispatchEvent('radio-change', Object.assign({ oldValue, newValue }, params), evnt);
6904
6909
  }
6905
- }
6906
- if (isChange) {
6907
- $xeTable.dispatchEvent('radio-change', Object.assign({ oldValue, newValue }, params), evnt);
6908
6910
  }
6909
6911
  },
6910
6912
  triggerCurrentColumnEvent(evnt, params) {
@@ -8649,7 +8651,9 @@ const Methods = {
8649
8651
  return rest;
8650
8652
  },
8651
8653
  /**
8652
- * 获取树表格状态
8654
+ * 内部方法、获取树表格状态
8655
+ * @deprecated
8656
+ * @private
8653
8657
  */
8654
8658
  getTreeStatus() {
8655
8659
  if (this.treeConfig) {
@@ -9987,7 +9991,7 @@ const Methods = {
9987
9991
  }
9988
9992
  };
9989
9993
  // Module methods
9990
- const funcs = 'setFilter,openFilter,clearFilter,saveFilterPanel,resetFilterPanel,getCheckedFilters,updateFilterOptionStatus,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFNR,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,insertChild,insertChildAt,insertChildNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,fullValidateField,validateField,openExport,closeExport,openPrint,closePrint,getPrintHtml,exportData,openImport,closeImport,importData,saveFile,readFile,importByFile,print,openCustom,closeCustom,saveCustom,cancelCustom,resetCustom,toggleCustomAllCheckbox,setCustomAllCheckbox'.split(',');
9994
+ const funcs = 'setFilter,openFilter,clearFilter,saveFilterPanel,saveFilterPanelByEvent,resetFilterPanel,resetFilterPanelByEvent,getCheckedFilters,updateFilterOptionStatus,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,getCopyCellAreas,clearCopyCellArea,setCellAreas,openFNR,openFind,openReplace,closeFNR,getSelectedCell,clearSelected,insert,insertAt,insertNextAt,insertChild,insertChildAt,insertChildNextAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearEdit,clearActived,getEditRecord,getActiveRecord,isEditByRow,isActiveByRow,setEditRow,setActiveRow,setEditCell,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,fullValidateField,validateField,openExport,closeExport,openPrint,closePrint,getPrintHtml,exportData,openImport,closeImport,importData,saveFile,readFile,importByFile,print,openCustom,closeCustom,saveCustom,cancelCustom,resetCustom,toggleCustomAllCheckbox,setCustomAllCheckbox'.split(',');
9991
9995
  funcs.forEach(name => {
9992
9996
  Methods[name] = function (...args) {
9993
9997
  if (!this[`_${name}`]) {
@@ -1450,8 +1450,8 @@ export default {
1450
1450
  if (props.editConfig && editOpts.showStatus && !props.keepSource) {
1451
1451
  warnLog('vxe.error.reqProp', ['keep-source']);
1452
1452
  }
1453
- if (treeConfig && (treeOpts.showLine || treeOpts.line) && (!(props.rowKey || rowOpts.useKey) || !showOverflow)) {
1454
- warnLog('vxe.error.reqProp', ['row-config.useKey | show-overflow']);
1453
+ if (treeConfig && (treeOpts.showLine || treeOpts.line) && !showOverflow) {
1454
+ warnLog('vxe.error.reqProp', ['show-overflow']);
1455
1455
  }
1456
1456
  if (treeConfig && !treeOpts.transform && props.stripe) {
1457
1457
  warnLog('vxe.error.noTree', ['stripe']);
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 = "3.15.17";
3
+ export const version = "3.15.19";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
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${"3.15.17"}`;
3
+ const version = `table v${"3.15.19"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);