vxe-table 3.15.17 → 3.15.18

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 (85) hide show
  1. package/es/locale/lang/fr-FR.d.ts +2 -0
  2. package/es/locale/lang/hy-AM.d.ts +2 -0
  3. package/es/locale/lang/id-ID.d.ts +2 -0
  4. package/es/locale/lang/it-IT.d.ts +2 -0
  5. package/es/locale/lang/ms-MY.d.ts +2 -0
  6. package/es/locale/lang/ms-MY.js +708 -0
  7. package/es/locale/lang/nb-NO.d.ts +2 -0
  8. package/es/locale/lang/th-TH.d.ts +2 -0
  9. package/es/locale/lang/ug-CN.d.ts +2 -0
  10. package/es/locale/lang/uz-UZ.d.ts +2 -0
  11. package/es/locale/lang/uz-UZ.js +708 -0
  12. package/es/locale/lang/vi-VN.d.ts +2 -0
  13. package/es/style.css +1 -1
  14. package/es/table/module/custom/panel.js +1 -1
  15. package/es/table/module/filter/mixin.js +10 -0
  16. package/es/table/src/methods.js +36 -36
  17. package/es/ui/index.js +1 -1
  18. package/es/ui/src/log.js +1 -1
  19. package/lib/index.umd.js +51 -36
  20. package/lib/index.umd.min.js +1 -1
  21. package/lib/locale/lang/ar-EG.d.ts +2 -0
  22. package/lib/locale/lang/ar-EG.min.js +1 -1
  23. package/lib/locale/lang/ar-EG.umd.js +728 -0
  24. package/lib/locale/lang/de-DE.d.ts +2 -0
  25. package/lib/locale/lang/de-DE.min.js +1 -1
  26. package/lib/locale/lang/de-DE.umd.js +728 -0
  27. package/lib/locale/lang/fr-FR.d.ts +2 -0
  28. package/lib/locale/lang/fr-FR.min.js +1 -1
  29. package/lib/locale/lang/fr-FR.umd.js +728 -0
  30. package/lib/locale/lang/hy-AM.d.ts +2 -0
  31. package/lib/locale/lang/hy-AM.min.js +1 -1
  32. package/lib/locale/lang/hy-AM.umd.js +728 -0
  33. package/lib/locale/lang/id-ID.d.ts +2 -0
  34. package/lib/locale/lang/id-ID.min.js +1 -1
  35. package/lib/locale/lang/id-ID.umd.js +728 -0
  36. package/lib/locale/lang/it-IT.d.ts +2 -0
  37. package/lib/locale/lang/it-IT.min.js +1 -1
  38. package/lib/locale/lang/it-IT.umd.js +728 -0
  39. package/lib/locale/lang/ms-MY.d.ts +2 -0
  40. package/lib/locale/lang/ms-MY.js +714 -0
  41. package/lib/locale/lang/ms-MY.min.js +1 -0
  42. package/lib/locale/lang/ms-MY.umd.js +728 -0
  43. package/lib/locale/lang/nb-NO.d.ts +2 -0
  44. package/lib/locale/lang/nb-NO.min.js +1 -1
  45. package/lib/locale/lang/nb-NO.umd.js +728 -0
  46. package/lib/locale/lang/th-TH.d.ts +2 -0
  47. package/lib/locale/lang/th-TH.min.js +1 -1
  48. package/lib/locale/lang/th-TH.umd.js +728 -0
  49. package/lib/locale/lang/ug-CN.d.ts +2 -0
  50. package/lib/locale/lang/ug-CN.min.js +1 -1
  51. package/lib/locale/lang/ug-CN.umd.js +728 -0
  52. package/lib/locale/lang/uz-UZ.d.ts +2 -0
  53. package/lib/locale/lang/uz-UZ.js +714 -0
  54. package/lib/locale/lang/uz-UZ.min.js +1 -0
  55. package/lib/locale/lang/uz-UZ.umd.js +728 -0
  56. package/lib/locale/lang/vi-VN.d.ts +2 -0
  57. package/lib/locale/lang/vi-VN.min.js +1 -1
  58. package/lib/locale/lang/vi-VN.umd.js +728 -0
  59. package/lib/locale/lang/zh-TC.min.js +1 -1
  60. package/lib/style.css +1 -1
  61. package/lib/table/module/custom/panel.js +1 -1
  62. package/lib/table/module/custom/panel.min.js +1 -1
  63. package/lib/table/module/filter/mixin.js +10 -0
  64. package/lib/table/module/filter/mixin.min.js +1 -1
  65. package/lib/table/src/methods.js +38 -33
  66. package/lib/table/src/methods.min.js +1 -1
  67. package/lib/ui/index.js +1 -1
  68. package/lib/ui/index.min.js +1 -1
  69. package/lib/ui/src/log.js +1 -1
  70. package/lib/ui/src/log.min.js +1 -1
  71. package/package.json +1 -1
  72. package/packages/locale/lang/ms-MY.ts +708 -0
  73. package/packages/locale/lang/uz-UZ.ts +708 -0
  74. package/packages/table/module/custom/panel.ts +1 -1
  75. package/packages/table/module/filter/mixin.ts +12 -0
  76. package/packages/table/src/methods.ts +41 -35
  77. package/lib/locale/lang/zh-TC.umd.js +0 -23
  78. /package/es/{iconfont.1746324587006.ttf → iconfont.1746578838891.ttf} +0 -0
  79. /package/es/{iconfont.1746324587006.woff → iconfont.1746578838891.woff} +0 -0
  80. /package/es/{iconfont.1746324587006.woff2 → iconfont.1746578838891.woff2} +0 -0
  81. /package/es/locale/lang/{zh-TC.d.ts → ar-EG.d.ts} +0 -0
  82. /package/{lib/locale/lang/zh-TC.d.ts → es/locale/lang/de-DE.d.ts} +0 -0
  83. /package/lib/{iconfont.1746324587006.ttf → iconfont.1746578838891.ttf} +0 -0
  84. /package/lib/{iconfont.1746324587006.woff → iconfont.1746578838891.woff} +0 -0
  85. /package/lib/{iconfont.1746324587006.woff2 → iconfont.1746578838891.woff2} +0 -0
@@ -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
  };
@@ -9987,7 +9987,7 @@ const Methods = {
9987
9987
  }
9988
9988
  };
9989
9989
  // 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(',');
9990
+ 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
9991
  funcs.forEach(name => {
9992
9992
  Methods[name] = function (...args) {
9993
9993
  if (!this[`_${name}`]) {
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.18";
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.18"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.15.17";
2223
+ const version = "3.15.18";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2858,7 +2858,7 @@ function isNodeElement(elem) {
2858
2858
  const {
2859
2859
  log: log_log
2860
2860
  } = core_.VxeUI;
2861
- const log_version = `table v${"3.15.17"}`;
2861
+ const log_version = `table v${"3.15.18"}`;
2862
2862
  const warnLog = log_log.create('warn', log_version);
2863
2863
  const errLog = log_log.create('error', log_version);
2864
2864
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -11037,6 +11037,7 @@ const Methods = {
11037
11037
  column
11038
11038
  } = params;
11039
11039
  const {
11040
+ columnStore,
11040
11041
  overflowX,
11041
11042
  scrollbarHeight
11042
11043
  } = reactData;
@@ -11044,6 +11045,10 @@ const Methods = {
11044
11045
  elemStore,
11045
11046
  visibleColumn
11046
11047
  } = internalData;
11048
+ const {
11049
+ leftList,
11050
+ rightList
11051
+ } = columnStore;
11047
11052
  const resizableOpts = $xeTable.computeResizableOpts;
11048
11053
  const osbHeight = overflowX ? scrollbarHeight : 0;
11049
11054
  const tableEl = $xeTable.$refs.refElem;
@@ -11053,12 +11058,13 @@ const Methods = {
11053
11058
  if (!resizeBarElem) {
11054
11059
  return;
11055
11060
  }
11061
+ const isLeftFixed = fixedType === 'left';
11062
+ const isRightFixed = fixedType === 'right';
11056
11063
  const resizeTipElem = resizeBarElem.firstElementChild;
11057
11064
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
11058
11065
  const {
11059
11066
  clientX: dragClientX
11060
11067
  } = evnt;
11061
- const wrapperElem = $xeTable.$refs.refElem;
11062
11068
  const dragBtnElem = evnt.target;
11063
11069
  let resizeColumn = column;
11064
11070
  if (column.children && column.children.length) {
@@ -11075,29 +11081,31 @@ const Methods = {
11075
11081
  if (!bodyScrollElem) {
11076
11082
  return;
11077
11083
  }
11078
- const pos = getOffsetPos(dragBtnElem, wrapperElem);
11084
+ const tableRect = tableEl.getBoundingClientRect();
11085
+ const rightContainerRect = rightContainerElem ? rightContainerElem.getBoundingClientRect() : null;
11086
+ const cellRect = cell.getBoundingClientRect();
11087
+ const dragBtnRect = dragBtnElem.getBoundingClientRect();
11079
11088
  const dragBtnWidth = dragBtnElem.clientWidth;
11080
11089
  const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
11090
+ const dragPosLeft = dragBtnRect.x - tableRect.x + dragBtnOffsetWidth;
11081
11091
  const minInterval = getColReMinWidth(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
11082
- let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
11083
- let dragPosLeft = pos.left + dragBtnOffsetWidth;
11084
- const isLeftFixed = fixedType === 'left';
11085
- const isRightFixed = fixedType === 'right';
11086
- // 计算左右侧固定列偏移量
11087
- let fixedOffsetWidth = 0;
11092
+ const dragMinLeft = isRightFixed ? 0 : cellRect.x - tableRect.x + dragBtnWidth + minInterval;
11093
+ const dragMaxLeft = cellRect.x - tableRect.x + cell.clientWidth - minInterval;
11094
+ let fixedLeftRemainWidth = 0;
11095
+ let fixedRightRemainWidth = 0;
11088
11096
  if (isLeftFixed || isRightFixed) {
11089
- const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
11090
- let tempCellElem = cell[siblingProp];
11091
- while (tempCellElem) {
11092
- if (hasClass(tempCellElem, 'fixed--hidden')) {
11093
- break;
11094
- } else if (!hasClass(tempCellElem, 'col--group')) {
11095
- fixedOffsetWidth += tempCellElem.offsetWidth;
11097
+ let isMach = false;
11098
+ const fixedColumn = isLeftFixed ? leftList : rightList;
11099
+ for (let i = 0; i < fixedColumn.length; i++) {
11100
+ const item = fixedColumn[i];
11101
+ if (isMach) {
11102
+ fixedLeftRemainWidth += item.renderWidth;
11103
+ } else {
11104
+ isMach = item.id === resizeColumn.id;
11105
+ if (!isMach) {
11106
+ fixedRightRemainWidth += item.renderWidth;
11107
+ }
11096
11108
  }
11097
- tempCellElem = tempCellElem[siblingProp];
11098
- }
11099
- if (isRightFixed && rightContainerElem) {
11100
- dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
11101
11109
  }
11102
11110
  }
11103
11111
  // 处理拖动事件
@@ -11107,27 +11115,24 @@ const Methods = {
11107
11115
  const tableHeight = tableEl.clientHeight;
11108
11116
  const offsetX = evnt.clientX - dragClientX;
11109
11117
  let left = dragPosLeft + offsetX;
11110
- const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
11111
11118
  if (isLeftFixed) {
11112
- // 左固定列(不允许超过右侧固定列、不允许超过右边距)
11113
- left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft : bodyScrollElem.clientWidth) - fixedOffsetWidth - minInterval);
11119
+ if (rightContainerRect) {
11120
+ left = Math.min(left, rightContainerRect.x - tableRect.x - fixedLeftRemainWidth - minInterval);
11121
+ }
11114
11122
  } else if (isRightFixed) {
11115
- // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
11116
- dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
11117
- left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
11118
- } else {
11119
- dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
11120
- // left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
11123
+ if (leftContainerElem) {
11124
+ left = Math.max(left, leftContainerElem.clientWidth + fixedRightRemainWidth + minInterval);
11125
+ }
11126
+ left = Math.min(left, dragMaxLeft);
11121
11127
  }
11122
11128
  dragLeft = Math.max(left, dragMinLeft);
11123
- const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
11129
+ const resizeBarLeft = Math.max(1, dragLeft);
11124
11130
  resizeBarElem.style.left = `${resizeBarLeft}px`;
11125
11131
  resizeBarElem.style.top = `${scrollbarXToTop ? osbHeight : 0}px`;
11126
11132
  resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - osbHeight : tableHeight}px`;
11127
11133
  if (resizableOpts.showDragTip && resizeTipElem) {
11128
- resizeTipElem.textContent = methods_getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
11134
+ resizeTipElem.textContent = methods_getI18n('vxe.table.resizeColTip', [Math.floor(resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft))]);
11129
11135
  const tableWrapperWidth = tableEl.clientWidth;
11130
- const wrapperRect = wrapperElem.getBoundingClientRect();
11131
11136
  const resizeBarWidth = resizeBarElem.clientWidth;
11132
11137
  const resizeTipWidth = resizeTipElem.clientWidth;
11133
11138
  const resizeTipHeight = resizeTipElem.clientHeight;
@@ -11138,7 +11143,7 @@ const Methods = {
11138
11143
  resizeTipLeft += tableWrapperWidth - resizeBarLeft;
11139
11144
  }
11140
11145
  resizeTipElem.style.left = `${resizeTipLeft}px`;
11141
- resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
11146
+ resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - tableRect.y - resizeTipHeight / 2))}px`;
11142
11147
  }
11143
11148
  reactData.isDragResize = true;
11144
11149
  };
@@ -16929,7 +16934,7 @@ const Methods = {
16929
16934
  }
16930
16935
  };
16931
16936
  // Module methods
16932
- 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(',');
16937
+ 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(',');
16933
16938
  funcs.forEach(name => {
16934
16939
  Methods[name] = function (...args) {
16935
16940
  if (!this[`_${name}`]) {
@@ -19852,7 +19857,7 @@ const renderPopupPanel = (h, _vm) => {
19852
19857
  const {
19853
19858
  mode
19854
19859
  } = customOpts;
19855
- if (!VxeUIModalComponent) {
19860
+ if (!VxeUIModalComponent && mode === 'modal') {
19856
19861
  errLog('vxe.error.reqComp', ['vxe-modal']);
19857
19862
  }
19858
19863
  if (!VxeUIDrawerComponent && mode === 'drawer') {
@@ -21650,11 +21655,21 @@ const {
21650
21655
  $xeTable.handleFilterConfirmFilter(null);
21651
21656
  return $xeTable.$nextTick();
21652
21657
  },
21658
+ _saveFilterPanelByEvent(evnt) {
21659
+ const $xeTable = this;
21660
+ $xeTable.handleFilterConfirmFilter(evnt);
21661
+ return $xeTable.$nextTick();
21662
+ },
21653
21663
  _resetFilterPanel() {
21654
21664
  const $xeTable = this;
21655
21665
  $xeTable.handleFilterResetFilter(null);
21656
21666
  return $xeTable.$nextTick();
21657
21667
  },
21668
+ _resetFilterPanelByEvent(evnt) {
21669
+ const $xeTable = this;
21670
+ $xeTable.handleFilterResetFilter(evnt);
21671
+ return $xeTable.$nextTick();
21672
+ },
21658
21673
  _getCheckedFilters() {
21659
21674
  const {
21660
21675
  tableFullColumn