vxe-table 4.10.6-beta.26 → 4.10.6-beta.28

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 +14 -11
  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 +75 -40
  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 +144 -93
  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 +13 -11
  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 +81 -42
  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 +14 -11
  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 +77 -41
  62. package/packages/table/src/util.ts +10 -3
  63. package/styles/components/table.scss +63 -31
  64. /package/es/{iconfont.1737366161311.ttf → iconfont.1737448409773.ttf} +0 -0
  65. /package/es/{iconfont.1737366161311.woff → iconfont.1737448409773.woff} +0 -0
  66. /package/es/{iconfont.1737366161311.woff2 → iconfont.1737448409773.woff2} +0 -0
  67. /package/lib/{iconfont.1737366161311.ttf → iconfont.1737448409773.ttf} +0 -0
  68. /package/lib/{iconfont.1737366161311.woff → iconfont.1737448409773.woff} +0 -0
  69. /package/lib/{iconfont.1737366161311.woff2 → iconfont.1737448409773.woff2} +0 -0
@@ -179,18 +179,6 @@ function renderTitleContent(params, content) {
179
179
  : h('span', Object.assign({ class: 'vxe-cell--title' }, ons), getSlotVNs(content))
180
180
  ];
181
181
  }
182
- function formatFooterLabel(footerFormatter, params) {
183
- if (XEUtils.isFunction(footerFormatter)) {
184
- return `${footerFormatter(params)}`;
185
- }
186
- const isArr = XEUtils.isArray(footerFormatter);
187
- const gFormatOpts = isArr ? formats.get(footerFormatter[0]) : formats.get(footerFormatter);
188
- const footerFormatMethod = gFormatOpts ? gFormatOpts.tableFooterCellFormatMethod : null;
189
- if (footerFormatMethod) {
190
- return `${isArr ? footerFormatMethod(params, ...footerFormatter.slice(1)) : footerFormatMethod(params)}`;
191
- }
192
- return '';
193
- }
194
182
  function getFooterContent(params) {
195
183
  const { $table, column, _columnIndex, items, row } = params;
196
184
  const { slots, editRender, cellRender, footerFormatter } = column;
@@ -199,42 +187,40 @@ function getFooterContent(params) {
199
187
  if (footerSlot) {
200
188
  return $table.callSlot(footerSlot, params);
201
189
  }
190
+ let itemValue = '';
191
+ // 兼容老模式
192
+ if (XEUtils.isArray(items)) {
193
+ itemValue = items[_columnIndex];
194
+ }
195
+ else {
196
+ itemValue = XEUtils.get(row, column.field);
197
+ }
198
+ const footParams = Object.assign(params, {
199
+ itemValue
200
+ });
201
+ if (footerFormatter) {
202
+ if (XEUtils.isFunction(footerFormatter)) {
203
+ return `${footerFormatter(footParams)}`;
204
+ }
205
+ const isArr = XEUtils.isArray(footerFormatter);
206
+ const gFormatOpts = isArr ? formats.get(footerFormatter[0]) : formats.get(footerFormatter);
207
+ const footerFormatMethod = gFormatOpts ? gFormatOpts.tableFooterCellFormatMethod : null;
208
+ if (footerFormatMethod) {
209
+ return `${isArr ? footerFormatMethod(footParams, ...footerFormatter.slice(1)) : footerFormatMethod(footParams)}`;
210
+ }
211
+ return '';
212
+ }
202
213
  if (renderOpts) {
203
214
  const compConf = renderer.get(renderOpts.name);
204
215
  if (compConf) {
205
216
  const rtFooter = compConf.renderTableFooter || compConf.renderFooter;
206
217
  if (rtFooter) {
207
- return getSlotVNs(rtFooter(renderOpts, params));
218
+ return getSlotVNs(rtFooter(renderOpts, footParams));
208
219
  }
209
220
  }
210
221
  }
211
- let itemValue = '';
212
- // 兼容老模式
213
- if (XEUtils.isArray(items)) {
214
- itemValue = items[_columnIndex];
215
- return [
216
- footerFormatter
217
- ? formatFooterLabel(footerFormatter, {
218
- itemValue,
219
- column,
220
- row,
221
- items,
222
- _columnIndex
223
- })
224
- : formatText(itemValue, 1)
225
- ];
226
- }
227
- itemValue = XEUtils.get(row, column.field);
228
222
  return [
229
- footerFormatter
230
- ? formatFooterLabel(footerFormatter, {
231
- itemValue,
232
- column,
233
- row,
234
- items,
235
- _columnIndex
236
- })
237
- : formatText(itemValue, 1)
223
+ formatText(itemValue, 1)
238
224
  ];
239
225
  }
240
226
  function getDefaultCellLabel(params) {
@@ -54,6 +54,16 @@ export const columnProps = {
54
54
  formatter: [Function, Array, String],
55
55
  // 格式化表尾显示内容
56
56
  footerFormatter: [Function, Array, String],
57
+ // 是否显示间距
58
+ padding: {
59
+ type: Boolean,
60
+ default: null
61
+ },
62
+ // 垂直对齐方式
63
+ verticalAlign: {
64
+ type: String,
65
+ default: null
66
+ },
57
67
  // 是否允许排序
58
68
  sortable: Boolean,
59
69
  // 自定义排序的属性
@@ -70,6 +70,8 @@ export class ColumnInfo {
70
70
  footerClassName: _vm.footerClassName,
71
71
  formatter: formatter,
72
72
  footerFormatter: _vm.footerFormatter,
73
+ padding: _vm.padding,
74
+ verticalAlign: _vm.verticalAlign,
73
75
  sortable: _vm.sortable,
74
76
  sortBy: _vm.sortBy,
75
77
  sortType: _vm.sortType,
@@ -2,6 +2,7 @@ import { defineComponent, TransitionGroup, h, ref, inject, nextTick, onMounted,
2
2
  import XEUtils from 'xe-utils';
3
3
  import { VxeUI } from '../../ui';
4
4
  import { updateCellTitle, getPropClass } from '../../ui/src/dom';
5
+ import { getCellHeight } from './util';
5
6
  const { renderer, renderEmptyElement } = VxeUI;
6
7
  const renderType = 'footer';
7
8
  function mergeFooterMethod(mergeFooterList, _rowIndex, _columnIndex) {
@@ -57,7 +58,7 @@ export default defineComponent({
57
58
  const defaultRowHeight = computeDefaultRowHeight.value;
58
59
  const cellOpts = computeCellOpts.value;
59
60
  const footerCellOpts = computeFooterCellOpts.value;
60
- const currCellHeight = footerCellOpts.height || cellOpts.height || defaultRowHeight;
61
+ const currCellHeight = getCellHeight(footerCellOpts.height || cellOpts.height) || defaultRowHeight;
61
62
  return tableColumn.map((column, $columnIndex) => {
62
63
  const { type, showFooterOverflow, footerAlign, align, footerClassName, editRender, cellRender } = column;
63
64
  const colid = column.id;
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, TransitionGroup, h, ref, inject, nextTick, watch, onMounted, onUnmounted } from 'vue';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { VxeUI } from '../../ui';
4
- import { convertHeaderColumnToRows } from './util';
4
+ import { getCellHeight, convertHeaderColumnToRows } from './util';
5
5
  const { renderer, renderEmptyElement } = VxeUI;
6
6
  const renderType = 'header';
7
7
  export default defineComponent({
@@ -42,7 +42,7 @@ export default defineComponent({
42
42
  const cellOpts = computeCellOpts.value;
43
43
  const defaultRowHeight = computeDefaultRowHeight.value;
44
44
  const headerCellOpts = computeHeaderCellOpts.value;
45
- const currCellHeight = headerCellOpts.height || cellOpts.height || defaultRowHeight;
45
+ const currCellHeight = getCellHeight(headerCellOpts.height || cellOpts.height) || defaultRowHeight;
46
46
  const { disabledMethod: dragDisabledMethod, isCrossDrag, isPeerDrag } = columnDragOpts;
47
47
  return cols.map((column, $columnIndex) => {
48
48
  const { type, showHeaderOverflow, headerAlign, align, filters, headerClassName, editRender, cellRender } = column;
@@ -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,19 +1390,15 @@ 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
1404
  const { tableData, isAllOverflow, scrollYLoad, scrollXLoad } = reactData;
@@ -1410,13 +1406,15 @@ export default defineComponent({
1410
1406
  const defaultRowHeight = computeDefaultRowHeight.value;
1411
1407
  const el = refElem.value;
1412
1408
  if (!isAllOverflow && scrollYLoad && el) {
1409
+ el.setAttribute('data-calc-row', 'Y');
1413
1410
  tableData.forEach(row => {
1414
1411
  const rowid = getRowid($xeTable, row);
1415
1412
  const rowRest = fullAllDataRowIdData[rowid];
1416
1413
  if (rowRest) {
1417
- const height = calcCellAutoHeight(rowRest, el);
1418
- 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);
1419
1416
  }
1417
+ el.removeAttribute('data-calc-row');
1420
1418
  });
1421
1419
  reactData.calcCellHeightFlag++;
1422
1420
  }
@@ -4148,7 +4146,7 @@ export default defineComponent({
4148
4146
  if (rowRest) {
4149
4147
  const resizeHeight = rowRest.resizeHeight;
4150
4148
  if (resizeHeight || isFull) {
4151
- const currCellHeight = resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight;
4149
+ const currCellHeight = resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
4152
4150
  rest[rowid] = currCellHeight;
4153
4151
  }
4154
4152
  }
@@ -4193,8 +4191,10 @@ export default defineComponent({
4193
4191
  const defaultRowHeight = computeDefaultRowHeight.value;
4194
4192
  const rowid = XEUtils.isString(rowOrId) || XEUtils.isNumber(rowOrId) ? rowOrId : getRowid($xeTable, rowOrId);
4195
4193
  const rowRest = fullAllDataRowIdData[rowid];
4196
- const currCellHeight = rowRest ? rowRest.resizeHeight : (cellOpts.height || rowOpts.height || defaultRowHeight);
4197
- return currCellHeight;
4194
+ if (rowRest) {
4195
+ return rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
4196
+ }
4197
+ return 0;
4198
4198
  },
4199
4199
  /**
4200
4200
  * 刷新滚动操作,手动同步滚动相关位置(对于某些特殊的操作,比如滚动条错位、固定列不同步)
@@ -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;
@@ -7882,7 +7910,11 @@ export default defineComponent({
7882
7910
  else {
7883
7911
  // 根到根
7884
7912
  }
7885
- const fullList = XEUtils.toTreeArray(internalData.afterTreeFullData, { children: childrenField });
7913
+ const fullList = XEUtils.toTreeArray(internalData.afterTreeFullData, {
7914
+ key: rowField,
7915
+ parentKey: parentField,
7916
+ children: mapChildrenField
7917
+ });
7886
7918
  // 移出
7887
7919
  const otfIndex = $xeTable.findRowIndexOf(fullList, dragRow);
7888
7920
  fullList.splice(otfIndex, 1);
@@ -7898,10 +7930,10 @@ export default defineComponent({
7898
7930
  }
7899
7931
  dragRow[parentField] = isDragToChildFlag ? prevDragRow[rowField] : prevDragRow[parentField];
7900
7932
  internalData.tableFullTreeData = XEUtils.toArrayTree(fullList, {
7901
- key: treeOpts.rowField,
7902
- parentKey: treeOpts.parentField,
7933
+ key: rowField,
7934
+ parentKey: parentField,
7903
7935
  children: childrenField,
7904
- mapChildren: treeOpts.mapChildrenField
7936
+ mapChildren: mapChildrenField
7905
7937
  });
7906
7938
  }
7907
7939
  }
@@ -8601,7 +8633,10 @@ export default defineComponent({
8601
8633
  });
8602
8634
  },
8603
8635
  triggerBodyWheelEvent(evnt) {
8604
- const { deltaY, deltaX } = evnt;
8636
+ const { target, deltaY, deltaX } = evnt;
8637
+ if (target && /^textarea$/i.test(target.tagName)) {
8638
+ return;
8639
+ }
8605
8640
  const { highlightHoverRow } = tableProps;
8606
8641
  const { elemStore, lastScrollTop, lastScrollLeft } = internalData;
8607
8642
  const rowOpts = computeRowOpts.value;
@@ -8817,14 +8852,14 @@ export default defineComponent({
8817
8852
  for (let i = 0; i < afterFullData.length; i++) {
8818
8853
  const row = afterFullData[i];
8819
8854
  const rowid = getRowid($xeTable, row);
8820
- const rowRest = fullAllDataRowIdData[rowid];
8821
- ySpaceHeight += rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
8855
+ const rowRest = fullAllDataRowIdData[rowid] || {};
8856
+ ySpaceHeight += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
8822
8857
  }
8823
8858
  for (let i = 0; i < startIndex; i++) {
8824
8859
  const row = afterFullData[i];
8825
8860
  const rowid = getRowid($xeTable, row);
8826
- const rowRest = fullAllDataRowIdData[rowid];
8827
- topSpaceHeight += rowRest ? (rowRest.resizeHeight || cellOpts.height || rowOpts.height || defaultRowHeight) : defaultRowHeight;
8861
+ const rowRest = fullAllDataRowIdData[rowid] || {};
8862
+ topSpaceHeight += rowRest.resizeHeight || rowRest.height || cellOpts.height || rowOpts.height || defaultRowHeight;
8828
8863
  }
8829
8864
  }
8830
8865
  }
@@ -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
  }