vxe-table 3.15.16 → 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 +39 -45
  17. package/es/ui/index.js +1 -1
  18. package/es/ui/src/log.js +1 -1
  19. package/lib/index.umd.js +54 -44
  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 +41 -41
  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 +44 -43
  77. package/lib/locale/lang/zh-TC.umd.js +0 -23
  78. /package/es/{iconfont.1745983689751.ttf → iconfont.1746578838891.ttf} +0 -0
  79. /package/es/{iconfont.1745983689751.woff → iconfont.1746578838891.woff} +0 -0
  80. /package/es/{iconfont.1745983689751.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.1745983689751.ttf → iconfont.1746578838891.ttf} +0 -0
  84. /package/lib/{iconfont.1745983689751.woff → iconfont.1746578838891.woff} +0 -0
  85. /package/lib/{iconfont.1745983689751.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';
@@ -4370,16 +4370,10 @@ const Methods = {
4370
4370
  }
4371
4371
  }
4372
4372
  else {
4373
+ const currMaps = isFull || (treeConfig && !transform) ? fullDataRowIdData : afterFullRowMaps;
4373
4374
  XEUtils.each(selectCheckboxMaps, (row, rowid) => {
4374
- if (isFull) {
4375
- if (fullDataRowIdData[rowid]) {
4376
- rowList.push(fullDataRowIdData[rowid].row);
4377
- }
4378
- }
4379
- else {
4380
- if (afterFullRowMaps[rowid]) {
4381
- rowList.push(afterFullRowMaps[rowid]);
4382
- }
4375
+ if (currMaps[rowid]) {
4376
+ rowList.push(fullDataRowIdData[rowid].row);
4383
4377
  }
4384
4378
  });
4385
4379
  }
@@ -4937,8 +4931,9 @@ const Methods = {
4937
4931
  evnt.stopPropagation();
4938
4932
  evnt.preventDefault();
4939
4933
  const { column } = params;
4940
- const { overflowX, scrollbarHeight } = reactData;
4934
+ const { columnStore, overflowX, scrollbarHeight } = reactData;
4941
4935
  const { elemStore, visibleColumn } = internalData;
4936
+ const { leftList, rightList } = columnStore;
4942
4937
  const resizableOpts = $xeTable.computeResizableOpts;
4943
4938
  const osbHeight = overflowX ? scrollbarHeight : 0;
4944
4939
  const tableEl = $xeTable.$refs.refElem;
@@ -4948,10 +4943,11 @@ const Methods = {
4948
4943
  if (!resizeBarElem) {
4949
4944
  return;
4950
4945
  }
4946
+ const isLeftFixed = fixedType === 'left';
4947
+ const isRightFixed = fixedType === 'right';
4951
4948
  const resizeTipElem = resizeBarElem.firstElementChild;
4952
4949
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
4953
4950
  const { clientX: dragClientX } = evnt;
4954
- const wrapperElem = $xeTable.$refs.refElem;
4955
4951
  const dragBtnElem = evnt.target;
4956
4952
  let resizeColumn = column;
4957
4953
  if (column.children && column.children.length) {
@@ -4966,30 +4962,32 @@ const Methods = {
4966
4962
  if (!bodyScrollElem) {
4967
4963
  return;
4968
4964
  }
4969
- 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();
4970
4969
  const dragBtnWidth = dragBtnElem.clientWidth;
4971
4970
  const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
4971
+ const dragPosLeft = dragBtnRect.x - tableRect.x + dragBtnOffsetWidth;
4972
4972
  const minInterval = getColReMinWidth(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
4973
- let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
4974
- let dragPosLeft = pos.left + dragBtnOffsetWidth;
4975
- const isLeftFixed = fixedType === 'left';
4976
- const isRightFixed = fixedType === 'right';
4977
- // 计算左右侧固定列偏移量
4978
- 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;
4979
4977
  if (isLeftFixed || isRightFixed) {
4980
- const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
4981
- let tempCellElem = cell[siblingProp];
4982
- while (tempCellElem) {
4983
- if (hasClass(tempCellElem, 'fixed--hidden')) {
4984
- 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;
4985
4984
  }
4986
- else if (!hasClass(tempCellElem, 'col--group')) {
4987
- fixedOffsetWidth += tempCellElem.offsetWidth;
4985
+ else {
4986
+ isMach = item.id === resizeColumn.id;
4987
+ if (!isMach) {
4988
+ fixedRightRemainWidth += item.renderWidth;
4989
+ }
4988
4990
  }
4989
- tempCellElem = tempCellElem[siblingProp];
4990
- }
4991
- if (isRightFixed && rightContainerElem) {
4992
- dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
4993
4991
  }
4994
4992
  }
4995
4993
  // 处理拖动事件
@@ -4999,29 +4997,25 @@ const Methods = {
4999
4997
  const tableHeight = tableEl.clientHeight;
5000
4998
  const offsetX = evnt.clientX - dragClientX;
5001
4999
  let left = dragPosLeft + offsetX;
5002
- const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
5003
5000
  if (isLeftFixed) {
5004
- // 左固定列(不允许超过右侧固定列、不允许超过右边距)
5005
- 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
+ }
5006
5004
  }
5007
5005
  else if (isRightFixed) {
5008
- // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
5009
- dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
5010
- left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
5011
- }
5012
- else {
5013
- dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
5014
- // 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);
5015
5010
  }
5016
5011
  dragLeft = Math.max(left, dragMinLeft);
5017
- const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
5012
+ const resizeBarLeft = Math.max(1, dragLeft);
5018
5013
  resizeBarElem.style.left = `${resizeBarLeft}px`;
5019
5014
  resizeBarElem.style.top = `${scrollbarXToTop ? osbHeight : 0}px`;
5020
5015
  resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - osbHeight : tableHeight}px`;
5021
5016
  if (resizableOpts.showDragTip && resizeTipElem) {
5022
- 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))]);
5023
5018
  const tableWrapperWidth = tableEl.clientWidth;
5024
- const wrapperRect = wrapperElem.getBoundingClientRect();
5025
5019
  const resizeBarWidth = resizeBarElem.clientWidth;
5026
5020
  const resizeTipWidth = resizeTipElem.clientWidth;
5027
5021
  const resizeTipHeight = resizeTipElem.clientHeight;
@@ -5033,7 +5027,7 @@ const Methods = {
5033
5027
  resizeTipLeft += tableWrapperWidth - resizeBarLeft;
5034
5028
  }
5035
5029
  resizeTipElem.style.left = `${resizeTipLeft}px`;
5036
- 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`;
5037
5031
  }
5038
5032
  reactData.isDragResize = true;
5039
5033
  };
@@ -9993,7 +9987,7 @@ const Methods = {
9993
9987
  }
9994
9988
  };
9995
9989
  // Module methods
9996
- 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(',');
9997
9991
  funcs.forEach(name => {
9998
9992
  Methods[name] = function (...args) {
9999
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.16";
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.16"}`;
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.16";
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.16"}`;
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
@@ -10410,15 +10410,10 @@ const Methods = {
10410
10410
  rowList = currTableData.filter(row => external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, checkField));
10411
10411
  }
10412
10412
  } else {
10413
+ const currMaps = isFull || treeConfig && !transform ? fullDataRowIdData : afterFullRowMaps;
10413
10414
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(selectCheckboxMaps, (row, rowid) => {
10414
- if (isFull) {
10415
- if (fullDataRowIdData[rowid]) {
10416
- rowList.push(fullDataRowIdData[rowid].row);
10417
- }
10418
- } else {
10419
- if (afterFullRowMaps[rowid]) {
10420
- rowList.push(afterFullRowMaps[rowid]);
10421
- }
10415
+ if (currMaps[rowid]) {
10416
+ rowList.push(fullDataRowIdData[rowid].row);
10422
10417
  }
10423
10418
  });
10424
10419
  }
@@ -11042,6 +11037,7 @@ const Methods = {
11042
11037
  column
11043
11038
  } = params;
11044
11039
  const {
11040
+ columnStore,
11045
11041
  overflowX,
11046
11042
  scrollbarHeight
11047
11043
  } = reactData;
@@ -11049,6 +11045,10 @@ const Methods = {
11049
11045
  elemStore,
11050
11046
  visibleColumn
11051
11047
  } = internalData;
11048
+ const {
11049
+ leftList,
11050
+ rightList
11051
+ } = columnStore;
11052
11052
  const resizableOpts = $xeTable.computeResizableOpts;
11053
11053
  const osbHeight = overflowX ? scrollbarHeight : 0;
11054
11054
  const tableEl = $xeTable.$refs.refElem;
@@ -11058,12 +11058,13 @@ const Methods = {
11058
11058
  if (!resizeBarElem) {
11059
11059
  return;
11060
11060
  }
11061
+ const isLeftFixed = fixedType === 'left';
11062
+ const isRightFixed = fixedType === 'right';
11061
11063
  const resizeTipElem = resizeBarElem.firstElementChild;
11062
11064
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
11063
11065
  const {
11064
11066
  clientX: dragClientX
11065
11067
  } = evnt;
11066
- const wrapperElem = $xeTable.$refs.refElem;
11067
11068
  const dragBtnElem = evnt.target;
11068
11069
  let resizeColumn = column;
11069
11070
  if (column.children && column.children.length) {
@@ -11080,29 +11081,31 @@ const Methods = {
11080
11081
  if (!bodyScrollElem) {
11081
11082
  return;
11082
11083
  }
11083
- 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();
11084
11088
  const dragBtnWidth = dragBtnElem.clientWidth;
11085
11089
  const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
11090
+ const dragPosLeft = dragBtnRect.x - tableRect.x + dragBtnOffsetWidth;
11086
11091
  const minInterval = getColReMinWidth(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
11087
- let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
11088
- let dragPosLeft = pos.left + dragBtnOffsetWidth;
11089
- const isLeftFixed = fixedType === 'left';
11090
- const isRightFixed = fixedType === 'right';
11091
- // 计算左右侧固定列偏移量
11092
- 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;
11093
11096
  if (isLeftFixed || isRightFixed) {
11094
- const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
11095
- let tempCellElem = cell[siblingProp];
11096
- while (tempCellElem) {
11097
- if (hasClass(tempCellElem, 'fixed--hidden')) {
11098
- break;
11099
- } else if (!hasClass(tempCellElem, 'col--group')) {
11100
- 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
+ }
11101
11108
  }
11102
- tempCellElem = tempCellElem[siblingProp];
11103
- }
11104
- if (isRightFixed && rightContainerElem) {
11105
- dragPosLeft = rightContainerElem.offsetLeft + fixedOffsetWidth;
11106
11109
  }
11107
11110
  }
11108
11111
  // 处理拖动事件
@@ -11112,27 +11115,24 @@ const Methods = {
11112
11115
  const tableHeight = tableEl.clientHeight;
11113
11116
  const offsetX = evnt.clientX - dragClientX;
11114
11117
  let left = dragPosLeft + offsetX;
11115
- const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
11116
11118
  if (isLeftFixed) {
11117
- // 左固定列(不允许超过右侧固定列、不允许超过右边距)
11118
- 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
+ }
11119
11122
  } else if (isRightFixed) {
11120
- // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
11121
- dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
11122
- left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
11123
- } else {
11124
- dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
11125
- // 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);
11126
11127
  }
11127
11128
  dragLeft = Math.max(left, dragMinLeft);
11128
- const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
11129
+ const resizeBarLeft = Math.max(1, dragLeft);
11129
11130
  resizeBarElem.style.left = `${resizeBarLeft}px`;
11130
11131
  resizeBarElem.style.top = `${scrollbarXToTop ? osbHeight : 0}px`;
11131
11132
  resizeBarElem.style.height = `${scrollbarXToTop ? tableHeight - osbHeight : tableHeight}px`;
11132
11133
  if (resizableOpts.showDragTip && resizeTipElem) {
11133
- 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))]);
11134
11135
  const tableWrapperWidth = tableEl.clientWidth;
11135
- const wrapperRect = wrapperElem.getBoundingClientRect();
11136
11136
  const resizeBarWidth = resizeBarElem.clientWidth;
11137
11137
  const resizeTipWidth = resizeTipElem.clientWidth;
11138
11138
  const resizeTipHeight = resizeTipElem.clientHeight;
@@ -11143,7 +11143,7 @@ const Methods = {
11143
11143
  resizeTipLeft += tableWrapperWidth - resizeBarLeft;
11144
11144
  }
11145
11145
  resizeTipElem.style.left = `${resizeTipLeft}px`;
11146
- 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`;
11147
11147
  }
11148
11148
  reactData.isDragResize = true;
11149
11149
  };
@@ -16934,7 +16934,7 @@ const Methods = {
16934
16934
  }
16935
16935
  };
16936
16936
  // Module methods
16937
- 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(',');
16938
16938
  funcs.forEach(name => {
16939
16939
  Methods[name] = function (...args) {
16940
16940
  if (!this[`_${name}`]) {
@@ -19857,7 +19857,7 @@ const renderPopupPanel = (h, _vm) => {
19857
19857
  const {
19858
19858
  mode
19859
19859
  } = customOpts;
19860
- if (!VxeUIModalComponent) {
19860
+ if (!VxeUIModalComponent && mode === 'modal') {
19861
19861
  errLog('vxe.error.reqComp', ['vxe-modal']);
19862
19862
  }
19863
19863
  if (!VxeUIDrawerComponent && mode === 'drawer') {
@@ -21655,11 +21655,21 @@ const {
21655
21655
  $xeTable.handleFilterConfirmFilter(null);
21656
21656
  return $xeTable.$nextTick();
21657
21657
  },
21658
+ _saveFilterPanelByEvent(evnt) {
21659
+ const $xeTable = this;
21660
+ $xeTable.handleFilterConfirmFilter(evnt);
21661
+ return $xeTable.$nextTick();
21662
+ },
21658
21663
  _resetFilterPanel() {
21659
21664
  const $xeTable = this;
21660
21665
  $xeTable.handleFilterResetFilter(null);
21661
21666
  return $xeTable.$nextTick();
21662
21667
  },
21668
+ _resetFilterPanelByEvent(evnt) {
21669
+ const $xeTable = this;
21670
+ $xeTable.handleFilterResetFilter(evnt);
21671
+ return $xeTable.$nextTick();
21672
+ },
21663
21673
  _getCheckedFilters() {
21664
21674
  const {
21665
21675
  tableFullColumn