vxe-table 4.18.1 → 4.18.3

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 (58) hide show
  1. package/es/grid/src/grid.js +1 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/filter/hook.js +11 -2
  7. package/es/table/module/menu/hook.js +2 -2
  8. package/es/table/src/body.js +3 -2
  9. package/es/table/src/table.js +96 -7
  10. package/es/table/src/util.js +1 -2
  11. package/es/table/style.css +2 -2
  12. package/es/table/style.min.css +1 -1
  13. package/es/ui/index.js +3 -2
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-table/style.css +2 -2
  16. package/es/vxe-table/style.min.css +1 -1
  17. package/lib/grid/src/grid.js +1 -1
  18. package/lib/grid/src/grid.min.js +1 -1
  19. package/lib/index.css +1 -1
  20. package/lib/index.min.css +1 -1
  21. package/lib/index.umd.js +33 -20
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/table/module/filter/hook.js +12 -2
  26. package/lib/table/module/filter/hook.min.js +1 -1
  27. package/lib/table/module/menu/hook.js +2 -1
  28. package/lib/table/module/menu/hook.min.js +1 -1
  29. package/lib/table/src/body.js +4 -2
  30. package/lib/table/src/body.min.js +1 -1
  31. package/lib/table/src/table.js +9 -9
  32. package/lib/table/src/table.min.js +1 -1
  33. package/lib/table/src/util.js +1 -2
  34. package/lib/table/src/util.min.js +1 -1
  35. package/lib/table/style/style.css +2 -2
  36. package/lib/table/style/style.min.css +1 -1
  37. package/lib/ui/index.js +3 -2
  38. package/lib/ui/index.min.js +1 -1
  39. package/lib/ui/src/log.js +1 -1
  40. package/lib/ui/src/log.min.js +1 -1
  41. package/lib/vxe-table/style/style.css +2 -2
  42. package/lib/vxe-table/style/style.min.css +1 -1
  43. package/package.json +1 -1
  44. package/packages/grid/src/grid.ts +1 -1
  45. package/packages/table/module/filter/hook.ts +10 -2
  46. package/packages/table/module/menu/hook.ts +2 -2
  47. package/packages/table/src/body.ts +3 -2
  48. package/packages/table/src/table.ts +100 -9
  49. package/packages/table/src/util.ts +2 -2
  50. package/packages/ui/index.ts +2 -1
  51. package/styles/components/table.scss +2 -2
  52. package/styles/theme/base.scss +3 -0
  53. /package/es/{iconfont.1773109208977.ttf → iconfont.1773640299992.ttf} +0 -0
  54. /package/es/{iconfont.1773109208977.woff → iconfont.1773640299992.woff} +0 -0
  55. /package/es/{iconfont.1773109208977.woff2 → iconfont.1773640299992.woff2} +0 -0
  56. /package/lib/{iconfont.1773109208977.ttf → iconfont.1773640299992.ttf} +0 -0
  57. /package/lib/{iconfont.1773109208977.woff → iconfont.1773640299992.woff} +0 -0
  58. /package/lib/{iconfont.1773109208977.woff2 → iconfont.1773640299992.woff2} +0 -0
@@ -35,7 +35,7 @@ hooks.add('tableFilterModule', {
35
35
  const tableEl = refElem.value;
36
36
  const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode();
37
37
  const filterOpts = computeFilterOpts.value;
38
- const { transfer } = filterOpts;
38
+ const { maxHeight: customMaxHeight, transfer, zIndex } = filterOpts;
39
39
  const currEl = btnEl || colEl;
40
40
  const tableRect = tableEl.getBoundingClientRect();
41
41
  const filterRender = column ? column.filterRender : null;
@@ -96,14 +96,23 @@ hooks.add('tableFilterModule', {
96
96
  }
97
97
  }
98
98
  }
99
- filterStore.style = {
99
+ const fStys = {
100
100
  top: toCssUnit(top),
101
101
  left: toCssUnit(left)
102
102
  };
103
+ if (zIndex) {
104
+ fStys.zIndex = zIndex;
105
+ }
106
+ filterStore.style = fStys;
103
107
  // 筛选面板是自适应表格高度
104
108
  if (compConf ? !compConf.tableFilterAutoHeight : false) {
105
109
  maxHeight = 0;
106
110
  }
111
+ else {
112
+ if (customMaxHeight) {
113
+ maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
114
+ }
115
+ }
107
116
  // 判断面板不能大于表格高度
108
117
  filterStore.maxHeight = maxHeight;
109
118
  });
@@ -23,7 +23,7 @@ hooks.add('tableMenuModule', {
23
23
  const isContentMenu = computeIsContentMenu.value;
24
24
  const menuOpts = computeMenuOpts.value;
25
25
  const config = menuOpts[type];
26
- const { transfer, visibleMethod } = menuOpts;
26
+ const { zIndex, transfer, visibleMethod } = menuOpts;
27
27
  if (config) {
28
28
  const { options, disabled } = config;
29
29
  if (disabled) {
@@ -56,7 +56,7 @@ hooks.add('tableMenuModule', {
56
56
  selectChild: null,
57
57
  showChild: false,
58
58
  style: {
59
- zIndex: internalData.tZindex,
59
+ zIndex: zIndex || internalData.tZindex,
60
60
  top: `${top}px`,
61
61
  left: `${left}px`
62
62
  }
@@ -35,8 +35,9 @@ export default defineVxeComponent({
35
35
  // 滚动、拖动过程中不需要触发
36
36
  const isVMScrollProcess = () => {
37
37
  const { delayHover } = tableProps;
38
- const { lastScrollTime, isDragResize } = tableReactData;
39
- return !!(isDragResize || (lastScrollTime && Date.now() < lastScrollTime + delayHover));
38
+ const { isDragResize } = tableReactData;
39
+ const { lastSTime } = tableInternalData;
40
+ return !!(isDragResize || (lastSTime && Date.now() < lastSTime + delayHover));
40
41
  };
41
42
  const renderLine = (rowid, params, cellHeight) => {
42
43
  const { column } = params;
@@ -518,6 +518,18 @@ export default defineVxeComponent({
518
518
  }
519
519
  return '';
520
520
  });
521
+ const computeTableStyle = computed(() => {
522
+ const scrollbarOpts = computeScrollbarOpts.value;
523
+ const { width, height } = scrollbarOpts;
524
+ const tStys = {};
525
+ if (width) {
526
+ tStys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(width);
527
+ }
528
+ if (height) {
529
+ tStys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(height);
530
+ }
531
+ return tStys;
532
+ });
521
533
  const computeTableRowExpandedList = computed(() => {
522
534
  const { tableData, rowExpandedFlag, expandColumn, rowGroupExpandedFlag, treeExpandedFlag } = reactData;
523
535
  const { visibleDataRowIdData, rowExpandedMaps } = internalData;
@@ -3590,7 +3602,7 @@ export default defineVxeComponent({
3590
3602
  if (reactData.expandColumn && expandOpts.mode !== 'fixed') {
3591
3603
  errLog('vxe.error.notConflictProp', ['column.type="expand', 'expand-config.mode="fixed"']);
3592
3604
  }
3593
- if (virtualYOpts.mode === 'scroll' && expandOpts.mode === 'fixed') {
3605
+ if (virtualYOpts.mode === 'scroll' && reactData.expandColumn && expandOpts.mode === 'fixed') {
3594
3606
  warnLog('vxe.error.notConflictProp', ['virtual-y-config.mode=scroll', 'expand-config.mode=inside']);
3595
3607
  }
3596
3608
  // if (showOverflow) {
@@ -4281,7 +4293,7 @@ export default defineVxeComponent({
4281
4293
  return Promise.all([
4282
4294
  xRest,
4283
4295
  yRest,
4284
- $xeTable.updateCellAreas()
4296
+ scrollXLoad || scrollYLoad ? $xeTable.updateCellAreas() : null
4285
4297
  ]);
4286
4298
  };
4287
4299
  const checkLastSyncScroll = (isRollX, isRollY) => {
@@ -5116,6 +5128,43 @@ export default defineVxeComponent({
5116
5128
  }
5117
5129
  return cellLabel;
5118
5130
  },
5131
+ updateCellLabel(row, fieldOrColumn) {
5132
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5133
+ if (!column) {
5134
+ return null;
5135
+ }
5136
+ const { fullAllDataRowIdData } = internalData;
5137
+ const rowid = getRowid($xeTable, row);
5138
+ if (rowid) {
5139
+ const colid = column.id;
5140
+ const rowid = getRowid($xeTable, row);
5141
+ const rowRest = fullAllDataRowIdData[rowid];
5142
+ if (rowRest) {
5143
+ const formatData = rowRest.formatData;
5144
+ if (formatData) {
5145
+ delete formatData[colid];
5146
+ }
5147
+ }
5148
+ }
5149
+ return $xeTable.getFooterCellLabel(row, column);
5150
+ },
5151
+ clearFormatterCache(isUpdate) {
5152
+ const { tableData, tableColumn } = reactData;
5153
+ const { fullAllDataRowIdData } = internalData;
5154
+ XEUtils.each(fullAllDataRowIdData, (rowRest) => {
5155
+ if (rowRest.formatData) {
5156
+ rowRest.formatData = undefined;
5157
+ }
5158
+ });
5159
+ if (isUpdate) {
5160
+ tableData.forEach(row => {
5161
+ tableColumn.forEach(column => {
5162
+ $xeTable.getCellLabel(row, column);
5163
+ });
5164
+ });
5165
+ }
5166
+ return nextTick();
5167
+ },
5119
5168
  getFooterCellLabel(row, fieldOrColumn) {
5120
5169
  const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5121
5170
  if (!column) {
@@ -5184,6 +5233,41 @@ export default defineVxeComponent({
5184
5233
  }
5185
5234
  return cellLabel;
5186
5235
  },
5236
+ updateFooterCellLabel(row, fieldOrColumn) {
5237
+ const column = handleFieldOrColumn($xeTable, fieldOrColumn);
5238
+ if (!column) {
5239
+ return null;
5240
+ }
5241
+ const { footerTableData } = reactData;
5242
+ const { footerFullDataRowData } = internalData;
5243
+ const colid = column.id;
5244
+ const $rowIndex = footerTableData.indexOf(row);
5245
+ const rowRest = footerFullDataRowData[$rowIndex];
5246
+ if (rowRest) {
5247
+ const formatData = rowRest.formatData;
5248
+ if (formatData) {
5249
+ delete formatData[colid];
5250
+ }
5251
+ }
5252
+ return $xeTable.getFooterCellLabel(row, column);
5253
+ },
5254
+ clearFooterFormatterCache(isUpdate) {
5255
+ const { tableData, tableColumn } = reactData;
5256
+ const { footerFullDataRowData } = internalData;
5257
+ XEUtils.each(footerFullDataRowData, (rowRest) => {
5258
+ if (rowRest.formatData) {
5259
+ rowRest.formatData = undefined;
5260
+ }
5261
+ });
5262
+ if (isUpdate) {
5263
+ tableData.forEach(row => {
5264
+ tableColumn.forEach(column => {
5265
+ $xeTable.getFooterCellLabel(row, column);
5266
+ });
5267
+ });
5268
+ }
5269
+ return nextTick();
5270
+ },
5187
5271
  /**
5188
5272
  * 检查是否为临时行数据
5189
5273
  */
@@ -7131,14 +7215,18 @@ export default defineVxeComponent({
7131
7215
  setScrollLeft(bodyScrollElem, scrollLeft);
7132
7216
  setScrollLeft(headerScrollElem, scrollLeft);
7133
7217
  setScrollLeft(footerScrollElem, scrollLeft);
7134
- loadScrollXData();
7218
+ if (reactData.scrollXLoad) {
7219
+ loadScrollXData();
7220
+ }
7135
7221
  }
7136
7222
  if (XEUtils.isNumber(scrollTop)) {
7137
7223
  setScrollTop(yHandleEl, scrollTop);
7138
7224
  setScrollTop(bodyScrollElem, scrollTop);
7139
7225
  setScrollTop(leftScrollElem, scrollTop);
7140
7226
  setScrollTop(rightScrollElem, scrollTop);
7141
- loadScrollYData();
7227
+ if (reactData.scrollYLoad) {
7228
+ loadScrollYData();
7229
+ }
7142
7230
  }
7143
7231
  return new Promise(resolve => {
7144
7232
  setTimeout(() => {
@@ -11471,7 +11559,7 @@ export default defineVxeComponent({
11471
11559
  }
11472
11560
  internalData.lastScrollTop = scrollTop;
11473
11561
  }
11474
- reactData.lastScrollTime = Date.now();
11562
+ internalData.lastSTime = Date.now();
11475
11563
  const evntParams = Object.assign({ source: sourceType, scrollTop,
11476
11564
  scrollLeft,
11477
11565
  bodyHeight,
@@ -11711,7 +11799,7 @@ export default defineVxeComponent({
11711
11799
  if (!bodyScrollElem) {
11712
11800
  return;
11713
11801
  }
11714
- const wheelSpeed = getWheelSpeed(reactData.lastScrollTime);
11802
+ const wheelSpeed = getWheelSpeed(internalData.lastSTime);
11715
11803
  const deltaTop = shiftKey ? 0 : (deltaY * wheelSpeed);
11716
11804
  const deltaLeft = (shiftKey ? (deltaX || deltaY) : deltaX) * wheelSpeed;
11717
11805
  const currScrollTop = bodyScrollElem.scrollTop;
@@ -12689,6 +12777,7 @@ export default defineVxeComponent({
12689
12777
  footer: slots.footerTooltip || slots['footer-tooltip']
12690
12778
  };
12691
12779
  const currTooltipSlot = tooltipStore.visible && tooltipStore.type ? tipSlots[tooltipStore.type] : null;
12780
+ const tableStyle = computeTableStyle.value;
12692
12781
  const rowDragOpts = computeRowDragOpts.value;
12693
12782
  const tableTipConfig = computeTableTipConfig.value;
12694
12783
  const validTipConfig = computeValidTipConfig.value;
@@ -12753,7 +12842,7 @@ export default defineVxeComponent({
12753
12842
  'not--scroll-x': !overflowX,
12754
12843
  'is--virtual-x': scrollXLoad,
12755
12844
  'is--virtual-y': scrollYLoad
12756
- }], spellcheck: false }, tbOns), [
12845
+ }], style: tableStyle, spellcheck: false }, tbOns), [
12757
12846
  /**
12758
12847
  * 隐藏列
12759
12848
  */
@@ -124,6 +124,7 @@ export function createInternalData() {
124
124
  tFooterHeight: 0,
125
125
  teleportToWrapperElem: null,
126
126
  popupToWrapperElem: null,
127
+ lastSTime: 0,
127
128
  inited: false,
128
129
  tooltipTimeout: null,
129
130
  initStatus: false,
@@ -153,8 +154,6 @@ export function createReactData() {
153
154
  scrollbarWidth: 0,
154
155
  // 横向滚动条的高度
155
156
  scrollbarHeight: 0,
156
- // 最后滚动时间戳
157
- lastScrollTime: 0,
158
157
  // 行高
159
158
  rowHeight: 0,
160
159
  // 表格父容器的高度
@@ -2415,7 +2415,7 @@
2415
2415
  .vxe-table .vxe-table--scroll-x-handle {
2416
2416
  overflow-y: hidden;
2417
2417
  overflow-x: scroll;
2418
- height: 18px;
2418
+ height: var(--vxe-ui-table-view-scrollbar-height);
2419
2419
  }
2420
2420
  .vxe-table .vxe-table--scroll-y-handle,
2421
2421
  .vxe-table .vxe-table--scroll-y-wrapper {
@@ -2427,7 +2427,7 @@
2427
2427
  .vxe-table .vxe-table--scroll-y-handle {
2428
2428
  overflow-y: scroll;
2429
2429
  overflow-x: hidden;
2430
- width: 18px;
2430
+ width: var(--vxe-ui-table-view-scrollbar-width);
2431
2431
  height: 100%;
2432
2432
  }
2433
2433
  .vxe-table .vxe-table--scroll-x-space {