vxe-table 4.10.6-beta.25 → 4.10.6-beta.27

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 (69) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/en-US.js +2 -2
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/src/body.js +21 -19
  7. package/es/table/src/cell.js +25 -39
  8. package/es/table/src/column.js +10 -0
  9. package/es/table/src/columnInfo.js +2 -0
  10. package/es/table/src/footer.js +2 -1
  11. package/es/table/src/header.js +2 -2
  12. package/es/table/src/table.js +111 -81
  13. package/es/table/src/util.js +9 -3
  14. package/es/table/style.css +51 -26
  15. package/es/table/style.min.css +1 -1
  16. package/es/ui/index.js +1 -1
  17. package/es/ui/src/log.js +1 -1
  18. package/es/vxe-table/style.css +51 -26
  19. package/es/vxe-table/style.min.css +1 -1
  20. package/lib/index.css +1 -1
  21. package/lib/index.min.css +1 -1
  22. package/lib/index.umd.js +189 -150
  23. package/lib/index.umd.min.js +1 -1
  24. package/lib/locale/lang/en-US.js +2 -2
  25. package/lib/locale/lang/en-US.min.js +1 -1
  26. package/lib/locale/lang/en-US.umd.js +2 -2
  27. package/lib/style.css +1 -1
  28. package/lib/style.min.css +1 -1
  29. package/lib/table/src/body.js +17 -18
  30. package/lib/table/src/body.min.js +1 -1
  31. package/lib/table/src/cell.js +24 -33
  32. package/lib/table/src/cell.min.js +1 -1
  33. package/lib/table/src/column.js +10 -0
  34. package/lib/table/src/column.min.js +1 -1
  35. package/lib/table/src/columnInfo.js +2 -0
  36. package/lib/table/src/columnInfo.min.js +1 -1
  37. package/lib/table/src/footer.js +2 -1
  38. package/lib/table/src/footer.min.js +1 -1
  39. package/lib/table/src/header.js +1 -1
  40. package/lib/table/src/header.min.js +1 -1
  41. package/lib/table/src/table.js +122 -92
  42. package/lib/table/src/table.min.js +1 -1
  43. package/lib/table/src/util.js +10 -3
  44. package/lib/table/src/util.min.js +1 -1
  45. package/lib/table/style/style.css +51 -26
  46. package/lib/table/style/style.min.css +1 -1
  47. package/lib/ui/index.js +1 -1
  48. package/lib/ui/index.min.js +1 -1
  49. package/lib/ui/src/log.js +1 -1
  50. package/lib/ui/src/log.min.js +1 -1
  51. package/lib/vxe-table/style/style.css +51 -26
  52. package/lib/vxe-table/style/style.min.css +1 -1
  53. package/package.json +2 -2
  54. package/packages/locale/lang/en-US.ts +2 -2
  55. package/packages/table/src/body.ts +21 -19
  56. package/packages/table/src/cell.ts +25 -47
  57. package/packages/table/src/column.ts +10 -0
  58. package/packages/table/src/columnInfo.ts +2 -0
  59. package/packages/table/src/footer.ts +2 -1
  60. package/packages/table/src/header.ts +2 -2
  61. package/packages/table/src/table.ts +116 -83
  62. package/packages/table/src/util.ts +10 -3
  63. package/styles/components/table.scss +63 -31
  64. /package/es/{iconfont.1737356819937.ttf → iconfont.1737446773545.ttf} +0 -0
  65. /package/es/{iconfont.1737356819937.woff → iconfont.1737446773545.woff} +0 -0
  66. /package/es/{iconfont.1737356819937.woff2 → iconfont.1737446773545.woff2} +0 -0
  67. /package/lib/{iconfont.1737356819937.ttf → iconfont.1737446773545.ttf} +0 -0
  68. /package/lib/{iconfont.1737356819937.woff → iconfont.1737446773545.woff} +0 -0
  69. /package/lib/{iconfont.1737356819937.woff2 → iconfont.1737446773545.woff2} +0 -0
@@ -840,13 +840,13 @@ export default defineComponent({
840
840
  return { toVisibleIndex: 0, visibleSize: 6 };
841
841
  };
842
842
  const computeRowHeight = () => {
843
- const { showOverflow } = props;
843
+ const { isAllOverflow } = reactData;
844
844
  const tableHeader = refTableHeader.value;
845
845
  const tableBody = refTableBody.value;
846
846
  const tableBodyElem = tableBody ? tableBody.$el : null;
847
847
  const defaultRowHeight = computeDefaultRowHeight.value;
848
848
  let rowHeight = 0;
849
- if (showOverflow) {
849
+ if (isAllOverflow) {
850
850
  if (tableBodyElem) {
851
851
  const tableHeaderElem = tableHeader ? tableHeader.$el : null;
852
852
  let firstTrElem;
@@ -869,7 +869,7 @@ export default defineComponent({
869
869
  return Math.max(18, rowHeight);
870
870
  };
871
871
  const handleVirtualYVisible = (currScrollTop) => {
872
- const { showOverflow } = props;
872
+ const { isAllOverflow } = reactData;
873
873
  const { elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData;
874
874
  const rowOpts = computeRowOpts.value;
875
875
  const cellOpts = computeCellOpts.value;
@@ -883,7 +883,7 @@ export default defineComponent({
883
883
  let offsetTop = 0;
884
884
  let visibleSize = 0;
885
885
  const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
886
- if (!isCustomCellHeight && showOverflow) {
886
+ if (!isCustomCellHeight && isAllOverflow) {
887
887
  toVisibleIndex = Math.floor(scrollTop / defaultRowHeight);
888
888
  visibleSize = Math.ceil(clientHeight / defaultRowHeight) + 1;
889
889
  }
@@ -891,8 +891,8 @@ export default defineComponent({
891
891
  for (let rIndex = 0, rLen = afterFullData.length; rIndex < rLen; rIndex++) {
892
892
  const row = afterFullData[rIndex];
893
893
  const rowid = getRowid($xeTable, row);
894
- const rowRest = fullAllDataRowIdData[rowid];
895
- offsetTop += rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
894
+ const rowRest = fullAllDataRowIdData[rowid] || {};
895
+ offsetTop += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
896
896
  if (toVisibleIndex === -1 && scrollTop < offsetTop) {
897
897
  toVisibleIndex = rIndex;
898
898
  }
@@ -1390,34 +1390,31 @@ export default defineComponent({
1390
1390
  };
1391
1391
  const calcCellAutoHeight = (rowRest, wrapperEl) => {
1392
1392
  const cellElemList = wrapperEl.querySelectorAll(`.vxe-cell--wrapper[rowid="${rowRest.rowid}"]`);
1393
- let topBottomPadding = 0;
1394
- const firstCellEl = cellElemList[0];
1395
- if (firstCellEl && firstCellEl.parentElement) {
1396
- const cellStyle = getComputedStyle(firstCellEl.parentElement);
1397
- topBottomPadding = Math.ceil(XEUtils.toNumber(cellStyle.paddingTop) + XEUtils.toNumber(cellStyle.paddingBottom));
1398
- }
1399
- let colHeight = rowRest.height - topBottomPadding;
1393
+ let colHeight = rowRest.height;
1400
1394
  for (let i = 0; i < cellElemList.length; i++) {
1401
1395
  const cellElem = cellElemList[i];
1396
+ const tdEl = cellElem.parentElement;
1397
+ const topBottomPadding = Math.ceil(XEUtils.toNumber(tdEl.style.paddingTop) + XEUtils.toNumber(tdEl.style.paddingBottom));
1402
1398
  const cellHeight = cellElem ? cellElem.clientHeight : 0;
1403
- colHeight = Math.max(colHeight, Math.ceil(cellHeight));
1399
+ colHeight = Math.max(colHeight - topBottomPadding, Math.ceil(cellHeight));
1404
1400
  }
1405
- return colHeight + topBottomPadding;
1401
+ return colHeight;
1406
1402
  };
1407
1403
  const calcCellHeight = () => {
1408
- const { showOverflow } = props;
1409
- const { tableData, scrollYLoad, scrollXLoad } = reactData;
1404
+ const { tableData, isAllOverflow, scrollYLoad, scrollXLoad } = reactData;
1410
1405
  const { fullAllDataRowIdData } = internalData;
1411
1406
  const defaultRowHeight = computeDefaultRowHeight.value;
1412
1407
  const el = refElem.value;
1413
- if (!showOverflow && scrollYLoad && el) {
1408
+ if (!isAllOverflow && scrollYLoad && el) {
1409
+ el.setAttribute('data-calc-row', 'Y');
1414
1410
  tableData.forEach(row => {
1415
1411
  const rowid = getRowid($xeTable, row);
1416
1412
  const rowRest = fullAllDataRowIdData[rowid];
1417
1413
  if (rowRest) {
1418
- const height = calcCellAutoHeight(rowRest, el);
1419
- rowRest.height = Math.max(defaultRowHeight, scrollXLoad ? Math.max(rowRest.height, height) : height);
1414
+ const reHeight = calcCellAutoHeight(rowRest, el);
1415
+ rowRest.height = Math.max(defaultRowHeight, scrollXLoad ? Math.max(rowRest.height, reHeight) : reHeight);
1420
1416
  }
1417
+ el.removeAttribute('data-calc-row');
1421
1418
  });
1422
1419
  reactData.calcCellHeightFlag++;
1423
1420
  }
@@ -1674,7 +1671,7 @@ export default defineComponent({
1674
1671
  updateAfterDataIndex();
1675
1672
  };
1676
1673
  const updateStyle = () => {
1677
- const { border, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props;
1674
+ const { border, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props;
1678
1675
  const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, overflowY, scrollbarHeight, columnStore, editStore, isAllOverflow, expandColumn } = reactData;
1679
1676
  const { visibleColumn, fullColumnIdData, tableHeight, tableWidth, headerHeight, footerHeight, elemStore, customHeight, customMinHeight, customMaxHeight } = internalData;
1680
1677
  const el = refElem.value;
@@ -1863,7 +1860,7 @@ export default defineComponent({
1863
1860
  let renderColumnList = tableColumn;
1864
1861
  let isOptimizeMode = false;
1865
1862
  // 如果是使用优化模式
1866
- if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
1863
+ if (scrollXLoad || scrollYLoad || isAllOverflow) {
1867
1864
  if (expandColumn || spanMethod || footerSpanMethod) {
1868
1865
  // 如果不支持优化模式
1869
1866
  }
@@ -1948,7 +1945,7 @@ export default defineComponent({
1948
1945
  cellOverflow = XEUtils.isUndefined(showFooterOverflow) || XEUtils.isNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
1949
1946
  }
1950
1947
  else {
1951
- cellOverflow = XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow) ? allColumnOverflow : showOverflow;
1948
+ cellOverflow = XEUtils.isUndefined(showOverflow) || XEUtils.isNull(showOverflow) ? isAllOverflow : showOverflow;
1952
1949
  }
1953
1950
  const showEllipsis = cellOverflow === 'ellipsis';
1954
1951
  const showTitle = cellOverflow === 'title';
@@ -2534,11 +2531,10 @@ export default defineComponent({
2534
2531
  * @param {Array} datas 数据
2535
2532
  */
2536
2533
  const loadTableData = (datas, isReset) => {
2537
- const { keepSource, treeConfig, showOverflow } = props;
2534
+ const { keepSource, treeConfig } = props;
2538
2535
  const { editStore, scrollYLoad: oldScrollYLoad } = reactData;
2539
2536
  const { scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop } = internalData;
2540
2537
  const treeOpts = computeTreeOpts.value;
2541
- const rowOpts = computeRowOpts.value;
2542
2538
  const { transform } = treeOpts;
2543
2539
  const childrenField = treeOpts.children || treeOpts.childrenField;
2544
2540
  let treeData = [];
@@ -2598,32 +2594,15 @@ export default defineComponent({
2598
2594
  internalData.tableSynchData = datas;
2599
2595
  if (isReset) {
2600
2596
  internalData.isResizeCellHeight = false;
2597
+ reactData.rowExpandedMaps = {};
2598
+ reactData.rowExpandLazyLoadedMaps = {};
2599
+ reactData.treeExpandedMaps = {};
2600
+ reactData.treeExpandLazyLoadedMaps = {};
2601
2601
  }
2602
2602
  // 克隆原数据,用于显示编辑状态,与编辑值做对比
2603
2603
  if (keepSource) {
2604
2604
  tablePrivateMethods.cacheSourceMap(fullData);
2605
2605
  }
2606
- if (sYLoad) {
2607
- if (showOverflow) {
2608
- if (!rowOpts.height) {
2609
- const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false);
2610
- if (errColumn) {
2611
- errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true']);
2612
- }
2613
- }
2614
- }
2615
- if (process.env.NODE_ENV === 'development') {
2616
- if (!(props.height || props.maxHeight)) {
2617
- errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2618
- }
2619
- // if (!props.showOverflow) {
2620
- // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2621
- // }
2622
- if (props.spanMethod) {
2623
- warnLog('vxe.error.scrollErrProp', ['table.span-method']);
2624
- }
2625
- }
2626
- }
2627
2606
  if ($xeTable.clearCellAreas && props.mouseConfig) {
2628
2607
  $xeTable.clearCellAreas();
2629
2608
  $xeTable.clearCopyCellArea();
@@ -2642,6 +2621,27 @@ export default defineComponent({
2642
2621
  if (sYLoad) {
2643
2622
  scrollYStore.endIndex = scrollYStore.visibleSize;
2644
2623
  }
2624
+ if (sYLoad) {
2625
+ // if (showOverflow) {
2626
+ // if (!rowOpts.height) {
2627
+ // const errColumn = internalData.tableFullColumn.find(column => column.showOverflow === false)
2628
+ // if (errColumn) {
2629
+ // errLog('vxe.error.errProp', [`column[field="${errColumn.field}"].show-overflow=false`, 'show-overflow=true'])
2630
+ // }
2631
+ // }
2632
+ // }
2633
+ if (process.env.NODE_ENV === 'development') {
2634
+ if (!(props.height || props.maxHeight)) {
2635
+ errLog('vxe.error.reqProp', ['table.height | table.max-height | table.scroll-y={enabled: false}']);
2636
+ }
2637
+ // if (!props.showOverflow) {
2638
+ // warnLog('vxe.error.reqProp', ['table.show-overflow'])
2639
+ // }
2640
+ if (props.spanMethod) {
2641
+ warnLog('vxe.error.scrollErrProp', ['table.span-method']);
2642
+ }
2643
+ }
2644
+ }
2645
2645
  handleReserveStatus();
2646
2646
  tablePrivateMethods.checkSelectionStatus();
2647
2647
  return new Promise(resolve => {
@@ -3039,11 +3039,10 @@ export default defineComponent({
3039
3039
  * 纵向 Y 可视渲染处理
3040
3040
  */
3041
3041
  const loadScrollYData = (scrollTop) => {
3042
- const { showOverflow } = props;
3043
- const { mergeList } = reactData;
3042
+ const { mergeList, isAllOverflow } = reactData;
3044
3043
  const { scrollYStore } = internalData;
3045
3044
  const { preloadSize, startIndex, endIndex, offsetSize } = scrollYStore;
3046
- const autoOffsetYSize = showOverflow ? offsetSize : offsetSize + 1;
3045
+ const autoOffsetYSize = isAllOverflow ? offsetSize : offsetSize + 1;
3047
3046
  const { toVisibleIndex, visibleSize } = handleVirtualYVisible(scrollTop);
3048
3047
  const offsetItem = {
3049
3048
  startIndex: Math.max(0, toVisibleIndex - 1 - offsetSize - preloadSize),
@@ -4147,7 +4146,7 @@ export default defineComponent({
4147
4146
  if (rowRest) {
4148
4147
  const resizeHeight = rowRest.resizeHeight;
4149
4148
  if (resizeHeight || isFull) {
4150
- const currCellHeight = resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight;
4149
+ const currCellHeight = resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
4151
4150
  rest[rowid] = currCellHeight;
4152
4151
  }
4153
4152
  }
@@ -4192,8 +4191,10 @@ export default defineComponent({
4192
4191
  const defaultRowHeight = computeDefaultRowHeight.value;
4193
4192
  const rowid = XEUtils.isString(rowOrId) || XEUtils.isNumber(rowOrId) ? rowOrId : getRowid($xeTable, rowOrId);
4194
4193
  const rowRest = fullAllDataRowIdData[rowid];
4195
- const currCellHeight = rowRest ? rowRest.resizeHeight : (cellOpts.height || rowOpts.height || defaultRowHeight);
4196
- return currCellHeight;
4194
+ if (rowRest) {
4195
+ return rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
4196
+ }
4197
+ return 0;
4197
4198
  },
4198
4199
  /**
4199
4200
  * 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
@@ -5279,8 +5280,7 @@ export default defineComponent({
5279
5280
  * @param {ColumnInfo} fieldOrColumn 列配置
5280
5281
  */
5281
5282
  scrollToRow(row, fieldOrColumn) {
5282
- const { showOverflow } = props;
5283
- const { scrollYLoad, scrollXLoad } = reactData;
5283
+ const { isAllOverflow, scrollYLoad, scrollXLoad } = reactData;
5284
5284
  const rest = [];
5285
5285
  if (row) {
5286
5286
  if (props.treeConfig) {
@@ -5295,7 +5295,7 @@ export default defineComponent({
5295
5295
  }
5296
5296
  return Promise.all(rest).then(() => {
5297
5297
  if (row) {
5298
- if (!showOverflow && (scrollYLoad || scrollXLoad)) {
5298
+ if (!isAllOverflow && (scrollYLoad || scrollXLoad)) {
5299
5299
  calcCellHeight();
5300
5300
  calcCellWidth();
5301
5301
  }
@@ -6736,6 +6736,7 @@ export default defineComponent({
6736
6736
  resizeTipElem.style.left = `${resizeTipLeft}px`;
6737
6737
  resizeTipElem.style.top = `${Math.min(tableHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
6738
6738
  }
6739
+ reactData.isDragResize = true;
6739
6740
  };
6740
6741
  reactData.isDragResize = true;
6741
6742
  addClass(tableEl, 'col-drag--resize');
@@ -6745,8 +6746,10 @@ export default defineComponent({
6745
6746
  document.onmousemove = null;
6746
6747
  document.onmouseup = null;
6747
6748
  resizeBarElem.style.display = 'none';
6748
- reactData.isDragResize = false;
6749
6749
  internalData._lastResizeTime = Date.now();
6750
+ setTimeout(() => {
6751
+ reactData.isDragResize = false;
6752
+ }, 50);
6750
6753
  const resizeWidth = resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft);
6751
6754
  const resizeParams = Object.assign(Object.assign({}, params), { resizeWidth, resizeColumn });
6752
6755
  if (resizableOpts.dragMode === 'fixed') {
@@ -6777,6 +6780,8 @@ export default defineComponent({
6777
6780
  const { isDblclickAutoWidth } = resizableOpts;
6778
6781
  const el = refElem.value;
6779
6782
  if (isDblclickAutoWidth && el) {
6783
+ evnt.stopPropagation();
6784
+ evnt.preventDefault();
6780
6785
  const { fullColumnIdData } = internalData;
6781
6786
  const { column } = params;
6782
6787
  let resizeColumn = column;
@@ -6842,7 +6847,7 @@ export default defineComponent({
6842
6847
  return;
6843
6848
  }
6844
6849
  const defaultRowHeight = computeDefaultRowHeight.value;
6845
- const currCellHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight;
6850
+ const currCellHeight = rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
6846
6851
  const tableRect = tableEl.getBoundingClientRect();
6847
6852
  const trRect = trEl.getBoundingClientRect();
6848
6853
  const targetOffsetY = dragClientY - trRect.y - trEl.clientHeight;
@@ -6885,6 +6890,7 @@ export default defineComponent({
6885
6890
  resizeTipElem.style.left = `${resizeBarLeft}px`;
6886
6891
  resizeTipElem.style.top = `${resizeBarTop}px`;
6887
6892
  }
6893
+ reactData.isDragResize = true;
6888
6894
  };
6889
6895
  reactData.isDragResize = true;
6890
6896
  addClass(tableEl, 'row-drag--resize');
@@ -6894,8 +6900,10 @@ export default defineComponent({
6894
6900
  document.onmousemove = null;
6895
6901
  document.onmouseup = null;
6896
6902
  resizeBarElem.style.display = 'none';
6897
- reactData.isDragResize = false;
6898
6903
  internalData._lastResizeTime = Date.now();
6904
+ setTimeout(() => {
6905
+ reactData.isDragResize = false;
6906
+ }, 50);
6899
6907
  if (resizeHeight !== currCellHeight) {
6900
6908
  const resizeParams = Object.assign(Object.assign({}, params), { resizeHeight, resizeRow: row });
6901
6909
  internalData.isResizeCellHeight = true;
@@ -6916,23 +6924,37 @@ export default defineComponent({
6916
6924
  const { isDblclickAutoHeight } = resizableOpts;
6917
6925
  const el = refElem.value;
6918
6926
  if (isDblclickAutoHeight && el) {
6927
+ evnt.stopPropagation();
6928
+ evnt.preventDefault();
6929
+ const { editStore } = reactData;
6919
6930
  const { fullAllDataRowIdData } = internalData;
6931
+ const { actived } = editStore;
6920
6932
  const { row } = params;
6921
6933
  const rowid = getRowid($xeTable, row);
6922
6934
  const rowRest = fullAllDataRowIdData[rowid];
6923
6935
  if (!rowRest) {
6924
6936
  return;
6925
6937
  }
6926
- const resizeHeight = calcCellAutoHeight(rowRest, el);
6927
- const resizeParams = Object.assign(Object.assign({}, params), { resizeHeight, resizeRow: row });
6928
- reactData.isDragResize = false;
6929
- internalData._lastResizeTime = Date.now();
6930
- if ($xeTable.handleRowResizeDblclickCellAreaEvent) {
6931
- $xeTable.handleRowResizeDblclickCellAreaEvent(evnt, resizeParams);
6938
+ const handleRsHeight = () => {
6939
+ el.setAttribute('data-calc-row', 'Y');
6940
+ const resizeHeight = calcCellAutoHeight(rowRest, el);
6941
+ el.removeAttribute('data-calc-row');
6942
+ const resizeParams = Object.assign(Object.assign({}, params), { resizeHeight, resizeRow: row });
6943
+ reactData.isDragResize = false;
6944
+ internalData._lastResizeTime = Date.now();
6945
+ if ($xeTable.handleRowResizeDblclickCellAreaEvent) {
6946
+ $xeTable.handleRowResizeDblclickCellAreaEvent(evnt, resizeParams);
6947
+ }
6948
+ else {
6949
+ rowRest.resizeHeight = resizeHeight;
6950
+ handleUpdateRowResize(evnt, resizeParams);
6951
+ }
6952
+ };
6953
+ if (actived.row || actived.column) {
6954
+ $xeTable.clearEdit().then(handleRsHeight);
6932
6955
  }
6933
6956
  else {
6934
- rowRest.resizeHeight = resizeHeight;
6935
- handleUpdateRowResize(evnt, resizeParams);
6957
+ handleRsHeight();
6936
6958
  }
6937
6959
  }
6938
6960
  },
@@ -7350,12 +7372,12 @@ export default defineComponent({
7350
7372
  internalData.tooltipTimeout = setTimeout(() => {
7351
7373
  $tooltip = refTooltip.value;
7352
7374
  if ($tooltip && $tooltip.isActived && !$tooltip.isActived()) {
7353
- tableMethods.closeTooltip();
7375
+ $xeTable.closeTooltip();
7354
7376
  }
7355
7377
  }, tooltipOpts.leaveDelay);
7356
7378
  }
7357
7379
  else {
7358
- tableMethods.closeTooltip();
7380
+ $xeTable.closeTooltip();
7359
7381
  }
7360
7382
  },
7361
7383
  triggerHeaderCellClickEvent(evnt, params) {
@@ -7385,7 +7407,10 @@ export default defineComponent({
7385
7407
  */
7386
7408
  triggerCellClickEvent(evnt, params) {
7387
7409
  const { highlightCurrentRow, editConfig } = props;
7388
- const { editStore } = reactData;
7410
+ const { editStore, isDragResize } = reactData;
7411
+ if (isDragResize) {
7412
+ return;
7413
+ }
7389
7414
  const expandOpts = computeExpandOpts.value;
7390
7415
  const editOpts = computeEditOpts.value;
7391
7416
  const treeOpts = computeTreeOpts.value;
@@ -7480,7 +7505,10 @@ export default defineComponent({
7480
7505
  */
7481
7506
  triggerCellDblclickEvent(evnt, params) {
7482
7507
  const { editConfig } = props;
7483
- const { editStore } = reactData;
7508
+ const { editStore, isDragResize } = reactData;
7509
+ if (isDragResize) {
7510
+ return;
7511
+ }
7484
7512
  const editOpts = computeEditOpts.value;
7485
7513
  const { actived } = editStore;
7486
7514
  const cell = evnt.currentTarget;
@@ -8601,7 +8629,10 @@ export default defineComponent({
8601
8629
  });
8602
8630
  },
8603
8631
  triggerBodyWheelEvent(evnt) {
8604
- const { deltaY, deltaX } = evnt;
8632
+ const { target, deltaY, deltaX } = evnt;
8633
+ if (target && /^textarea$/i.test(target.tagName)) {
8634
+ return;
8635
+ }
8605
8636
  const { highlightHoverRow } = tableProps;
8606
8637
  const { elemStore, lastScrollTop, lastScrollLeft } = internalData;
8607
8638
  const rowOpts = computeRowOpts.value;
@@ -8797,8 +8828,7 @@ export default defineComponent({
8797
8828
  },
8798
8829
  // 更新纵向 Y 可视渲染上下剩余空间大小
8799
8830
  updateScrollYSpace() {
8800
- const { showOverflow } = props;
8801
- const { scrollYLoad } = reactData;
8831
+ const { isAllOverflow, scrollYLoad } = reactData;
8802
8832
  const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData } = internalData;
8803
8833
  const { startIndex } = scrollYStore;
8804
8834
  const rowOpts = computeRowOpts.value;
@@ -8810,7 +8840,7 @@ export default defineComponent({
8810
8840
  let ySpaceHeight = 0;
8811
8841
  if (scrollYLoad) {
8812
8842
  const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
8813
- if (!isCustomCellHeight && showOverflow) {
8843
+ if (!isCustomCellHeight && isAllOverflow) {
8814
8844
  ySpaceHeight = afterFullData.length * defaultRowHeight;
8815
8845
  topSpaceHeight = Math.max(0, startIndex * defaultRowHeight);
8816
8846
  }
@@ -8818,14 +8848,14 @@ export default defineComponent({
8818
8848
  for (let i = 0; i < afterFullData.length; i++) {
8819
8849
  const row = afterFullData[i];
8820
8850
  const rowid = getRowid($xeTable, row);
8821
- const rowRest = fullAllDataRowIdData[rowid];
8822
- ySpaceHeight += rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
8851
+ const rowRest = fullAllDataRowIdData[rowid] || {};
8852
+ ySpaceHeight += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
8823
8853
  }
8824
8854
  for (let i = 0; i < startIndex; i++) {
8825
8855
  const row = afterFullData[i];
8826
8856
  const rowid = getRowid($xeTable, row);
8827
- const rowRest = fullAllDataRowIdData[rowid];
8828
- topSpaceHeight += rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
8857
+ const rowRest = fullAllDataRowIdData[rowid] || {};
8858
+ topSpaceHeight += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
8829
8859
  }
8830
8860
  }
8831
8861
  }
@@ -8856,12 +8886,12 @@ export default defineComponent({
8856
8886
  });
8857
8887
  },
8858
8888
  updateScrollXData() {
8859
- const { showOverflow } = props;
8889
+ const { isAllOverflow } = reactData;
8860
8890
  handleTableColumn();
8861
8891
  return nextTick().then(() => {
8862
8892
  handleTableColumn();
8863
8893
  $xeTable.updateScrollXSpace();
8864
- if (!showOverflow) {
8894
+ if (!isAllOverflow) {
8865
8895
  $xeTable.updateScrollYSpace();
8866
8896
  }
8867
8897
  });
@@ -9474,7 +9504,7 @@ export default defineComponent({
9474
9504
  if (value && value.length >= 50000) {
9475
9505
  warnLog('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
9476
9506
  }
9477
- loadTableData(value, false).then(() => {
9507
+ loadTableData(value, true).then(() => {
9478
9508
  const { scrollXLoad, scrollYLoad, expandColumn } = reactData;
9479
9509
  internalData.inited = true;
9480
9510
  internalData.initStatus = true;
@@ -152,6 +152,12 @@ export function getRefElem(refEl) {
152
152
  }
153
153
  return null;
154
154
  }
155
+ export function getCellHeight(height) {
156
+ if (height === 'unset') {
157
+ return 0;
158
+ }
159
+ return height || 0;
160
+ }
155
161
  /**
156
162
  * 列宽拖动最大宽度
157
163
  * @param params
@@ -430,7 +436,7 @@ export function rowToVisible($xeTable, row) {
430
436
  return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * defaultRowHeight);
431
437
  }
432
438
  let scrollTop = 0;
433
- const rowRest = fullAllDataRowIdData[rowid];
439
+ const rowRest = fullAllDataRowIdData[rowid] || {};
434
440
  const rHeight = rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
435
441
  for (let i = 0; i < afterFullData.length; i++) {
436
442
  const currRow = afterFullData[i];
@@ -438,8 +444,8 @@ export function rowToVisible($xeTable, row) {
438
444
  if (currRow === row || currRowid === rowid) {
439
445
  break;
440
446
  }
441
- const rowRest = fullAllDataRowIdData[currRowid];
442
- scrollTop += rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
447
+ const currRowRest = fullAllDataRowIdData[currRowid] || {};
448
+ scrollTop += currRowRest.resizeHeight || currRowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
443
449
  }
444
450
  if (scrollTop < bodyScrollTop) {
445
451
  return $xeTable.scrollTo(null, scrollTop - leftFixedWidth - 1);
@@ -1819,8 +1819,8 @@
1819
1819
  .vxe-table--filter-template .vxe-default-input,
1820
1820
  .vxe-table--filter-template .vxe-default-textarea,
1821
1821
  .vxe-table--filter-template .vxe-default-select {
1822
+ font-family: var(--vxe-ui-font-family);
1822
1823
  outline: 0;
1823
- padding: 0 2px;
1824
1824
  color: var(--vxe-ui-font-color);
1825
1825
  border-radius: var(--vxe-ui-border-radius);
1826
1826
  border: 1px solid var(--vxe-ui-input-border-color);
@@ -1868,13 +1868,10 @@
1868
1868
  }
1869
1869
  .vxe-cell .vxe-default-textarea,
1870
1870
  .vxe-table--filter-template .vxe-default-textarea {
1871
+ font-size: 1em;
1871
1872
  resize: none;
1872
1873
  vertical-align: middle;
1873
1874
  }
1874
- .vxe-cell .vxe-default-textarea:not([rows]),
1875
- .vxe-table--filter-template .vxe-default-textarea:not([rows]) {
1876
- height: var(--vxe-ui-input-height-default);
1877
- }
1878
1875
  .vxe-cell > .vxe-input > .vxe-input--inner, .vxe-cell > .vxe-textarea > .vxe-textarea--inner,
1879
1876
  .vxe-table--filter-template > .vxe-input > .vxe-input--inner,
1880
1877
  .vxe-table--filter-template > .vxe-textarea > .vxe-textarea--inner {
@@ -1898,9 +1895,17 @@
1898
1895
  resize: none;
1899
1896
  }
1900
1897
 
1901
- .vxe-body--column.col--vertical-top > .vxe-cell > .vxe-cell--wrapper {
1898
+ .vxe-body--column.col--vertical-top.col--active > .vxe-cell > .vxe-cell--wrapper {
1902
1899
  height: 100%;
1903
1900
  }
1901
+ .vxe-body--column.col--vertical-top.col--active > .vxe-cell > .vxe-cell--wrapper > .vxe-default-textarea {
1902
+ height: 100%;
1903
+ }
1904
+
1905
+ /*行高*/
1906
+ .vxe-table:not([data-calc-row]) .vxe-body--column.col--vertical-top:not(.col--active) > .vxe-cell > .vxe-cell--wrapper {
1907
+ min-height: 100%;
1908
+ }
1904
1909
 
1905
1910
  .vxe-table--checkbox-range,
1906
1911
  .vxe-table--cell-main-area,
@@ -2332,10 +2337,10 @@
2332
2337
  /*边框线*/
2333
2338
  /*树形节点*/
2334
2339
  /*单元格高度*/
2340
+ /*溢出列*/
2335
2341
  /*展开行*/
2336
2342
  /*拖拽列*/
2337
2343
  /*拖拽行*/
2338
- /*溢出列*/
2339
2344
  /*暂无数据*/
2340
2345
  /*校验不通过*/
2341
2346
  /*已废弃,旧的校验样式**/
@@ -2619,6 +2624,11 @@
2619
2624
  .vxe-table--render-default.size--medium .vxe-footer--column.is--padding .vxe-cell {
2620
2625
  padding: var(--vxe-ui-table-cell-padding-medium);
2621
2626
  }
2627
+ .vxe-table--render-default.size--medium .vxe-header--column.is--padding .vxe-cell .vxe-default-textarea,
2628
+ .vxe-table--render-default.size--medium .vxe-body--column.is--padding .vxe-cell .vxe-default-textarea,
2629
+ .vxe-table--render-default.size--medium .vxe-footer--column.is--padding .vxe-cell .vxe-default-textarea {
2630
+ padding: var(--vxe-ui-table-cell-padding-medium);
2631
+ }
2622
2632
  .vxe-table--render-default.size--medium .vxe-cell .vxe-default-input,
2623
2633
  .vxe-table--render-default.size--medium .vxe-cell .vxe-default-textarea,
2624
2634
  .vxe-table--render-default.size--medium .vxe-cell .vxe-default-select {
@@ -2639,6 +2649,11 @@
2639
2649
  .vxe-table--render-default.size--small .vxe-footer--column.is--padding .vxe-cell {
2640
2650
  padding: var(--vxe-ui-table-cell-padding-small);
2641
2651
  }
2652
+ .vxe-table--render-default.size--small .vxe-header--column.is--padding .vxe-cell .vxe-default-textarea,
2653
+ .vxe-table--render-default.size--small .vxe-body--column.is--padding .vxe-cell .vxe-default-textarea,
2654
+ .vxe-table--render-default.size--small .vxe-footer--column.is--padding .vxe-cell .vxe-default-textarea {
2655
+ padding: var(--vxe-ui-table-cell-padding-small);
2656
+ }
2642
2657
  .vxe-table--render-default.size--small .vxe-cell .vxe-default-input,
2643
2658
  .vxe-table--render-default.size--small .vxe-cell .vxe-default-textarea,
2644
2659
  .vxe-table--render-default.size--small .vxe-cell .vxe-default-select {
@@ -2659,6 +2674,11 @@
2659
2674
  .vxe-table--render-default.size--mini .vxe-footer--column.is--padding .vxe-cell {
2660
2675
  padding: var(--vxe-ui-table-cell-padding-mini);
2661
2676
  }
2677
+ .vxe-table--render-default.size--mini .vxe-header--column.is--padding .vxe-cell .vxe-default-textarea,
2678
+ .vxe-table--render-default.size--mini .vxe-body--column.is--padding .vxe-cell .vxe-default-textarea,
2679
+ .vxe-table--render-default.size--mini .vxe-footer--column.is--padding .vxe-cell .vxe-default-textarea {
2680
+ padding: var(--vxe-ui-table-cell-padding-mini);
2681
+ }
2662
2682
  .vxe-table--render-default.size--mini .vxe-cell .vxe-default-input,
2663
2683
  .vxe-table--render-default.size--mini .vxe-cell .vxe-default-textarea,
2664
2684
  .vxe-table--render-default.size--mini .vxe-cell .vxe-default-select {
@@ -2672,6 +2692,11 @@
2672
2692
  .vxe-table--render-default .vxe-footer--column.is--padding .vxe-cell {
2673
2693
  padding: var(--vxe-ui-table-cell-padding-default);
2674
2694
  }
2695
+ .vxe-table--render-default .vxe-header--column.is--padding .vxe-cell .vxe-default-textarea,
2696
+ .vxe-table--render-default .vxe-body--column.is--padding .vxe-cell .vxe-default-textarea,
2697
+ .vxe-table--render-default .vxe-footer--column.is--padding .vxe-cell .vxe-default-textarea {
2698
+ padding: var(--vxe-ui-table-cell-padding-default);
2699
+ }
2675
2700
  .vxe-table--render-default .vxe-cell {
2676
2701
  white-space: pre-line;
2677
2702
  word-break: break-all;
@@ -2953,6 +2978,25 @@
2953
2978
  flex-direction: row;
2954
2979
  align-items: center;
2955
2980
  }
2981
+ .vxe-table--render-default .vxe-header--column:not(.col--active).col--ellipsis > .vxe-cell,
2982
+ .vxe-table--render-default .vxe-body--column:not(.col--active).col--ellipsis > .vxe-cell,
2983
+ .vxe-table--render-default .vxe-footer--column:not(.col--active).col--ellipsis > .vxe-cell {
2984
+ overflow: hidden;
2985
+ }
2986
+ .vxe-table--render-default .vxe-header--column:not(.col--active).col--ellipsis > .vxe-cell > .vxe-cell--wrapper,
2987
+ .vxe-table--render-default .vxe-body--column:not(.col--active).col--ellipsis > .vxe-cell > .vxe-cell--wrapper,
2988
+ .vxe-table--render-default .vxe-footer--column:not(.col--active).col--ellipsis > .vxe-cell > .vxe-cell--wrapper {
2989
+ overflow: hidden;
2990
+ text-overflow: ellipsis;
2991
+ white-space: nowrap;
2992
+ }
2993
+ .vxe-table--render-default .vxe-header--column:not(.col--active).vxe-tree-cell > .vxe-cell > .vxe-cell--wrapper, .vxe-table--render-default .vxe-header--column:not(.col--active).col--vertical-top > .vxe-cell > .vxe-cell--wrapper,
2994
+ .vxe-table--render-default .vxe-body--column:not(.col--active).vxe-tree-cell > .vxe-cell > .vxe-cell--wrapper,
2995
+ .vxe-table--render-default .vxe-body--column:not(.col--active).col--vertical-top > .vxe-cell > .vxe-cell--wrapper,
2996
+ .vxe-table--render-default .vxe-footer--column:not(.col--active).vxe-tree-cell > .vxe-cell > .vxe-cell--wrapper,
2997
+ .vxe-table--render-default .vxe-footer--column:not(.col--active).col--vertical-top > .vxe-cell > .vxe-cell--wrapper {
2998
+ white-space: pre-line;
2999
+ }
2956
3000
  .vxe-table--render-default .vxe-header--column.col--ellipsis > .vxe-cell .vxe-cell--wrapper,
2957
3001
  .vxe-table--render-default .vxe-footer--column.col--ellipsis > .vxe-cell .vxe-cell--wrapper {
2958
3002
  overflow: hidden;
@@ -3159,25 +3203,6 @@
3159
3203
  text-overflow: ellipsis;
3160
3204
  white-space: nowrap;
3161
3205
  }
3162
- .vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active) > .vxe-cell,
3163
- .vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active) > .vxe-cell,
3164
- .vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active) > .vxe-cell {
3165
- overflow: hidden;
3166
- text-overflow: ellipsis;
3167
- white-space: nowrap;
3168
- }
3169
- .vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active) > .vxe-cell > .vxe-cell--wrapper,
3170
- .vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active) > .vxe-cell > .vxe-cell--wrapper,
3171
- .vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active) > .vxe-cell > .vxe-cell--wrapper {
3172
- overflow: hidden;
3173
- text-overflow: ellipsis;
3174
- white-space: nowrap;
3175
- }
3176
- .vxe-table--render-default .vxe-header--column.col--ellipsis:not(.col--active).col--vertical-top > .vxe-cell,
3177
- .vxe-table--render-default .vxe-body--column.col--ellipsis:not(.col--active).col--vertical-top > .vxe-cell,
3178
- .vxe-table--render-default .vxe-footer--column.col--ellipsis:not(.col--active).col--vertical-top > .vxe-cell {
3179
- white-space: pre-line;
3180
- }
3181
3206
  .vxe-table--render-default.size--medium .vxe-cell--checkbox {
3182
3207
  font-size: var(--vxe-checkbox-font-size-medium);
3183
3208
  }