vxe-table 3.18.7 → 3.18.9

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.
@@ -252,6 +252,7 @@ function cacheColumnMap($xeTable) {
252
252
  const props = $xeTable;
253
253
  const reactData = $xeTable;
254
254
  const internalData = $xeTable;
255
+ const { treeConfig, showOverflow } = props;
255
256
  const { tableFullColumn, collectColumn } = internalData;
256
257
  const fullColIdData = internalData.fullColumnIdData = {};
257
258
  const fullColFieldData = internalData.fullColumnFieldData = {};
@@ -259,12 +260,14 @@ function cacheColumnMap($xeTable) {
259
260
  const expandOpts = $xeTable.computeExpandOpts;
260
261
  const columnOpts = $xeTable.computeColumnOpts;
261
262
  const columnDragOpts = $xeTable.computeColumnDragOpts;
263
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
262
264
  const { isCrossDrag, isSelfToChildDrag } = columnDragOpts;
263
265
  const customOpts = $xeTable.computeCustomOpts;
266
+ const treeOpts = $xeTable.computeTreeOpts;
264
267
  const { storage } = customOpts;
265
268
  const rowOpts = $xeTable.computeRowOpts;
266
269
  const isGroup = collectColumn.some(hasChildrenList);
267
- let isAllOverflow = !!props.showOverflow;
270
+ let isAllOverflow = !!showOverflow;
268
271
  let rowGroupColumn;
269
272
  let expandColumn;
270
273
  let treeNodeColumn;
@@ -352,9 +355,15 @@ function cacheColumnMap($xeTable) {
352
355
  else {
353
356
  tableFullColumn.forEach(handleFunc);
354
357
  }
358
+ if (expandColumn && expandOpts.mode !== 'fixed' && virtualYOpts.enabled) {
359
+ warnLog('vxe.error.notConflictProp', ['column.type="expand', 'virtual-y-config.enabled=false']);
360
+ }
355
361
  if ((expandColumn && expandOpts.mode !== 'fixed') && mouseOpts.area) {
356
362
  errLog('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
357
363
  }
364
+ if (expandColumn && expandOpts.mode !== 'inside' && (treeConfig && !treeOpts.transform)) {
365
+ errLog('vxe.error.notConflictProp', ['tree-config.transform=false', 'expand-config.mode=fixed']);
366
+ }
358
367
  if (htmlColumn) {
359
368
  if (!columnOpts.useKey) {
360
369
  errLog('vxe.error.notSupportProp', ['column.type=html', 'column-config.useKey=false', 'column-config.useKey=true']);
@@ -2695,7 +2704,7 @@ function clearRowDragData($xeTable) {
2695
2704
  * @param {Event} evnt 事件
2696
2705
  * @param {Row} row 行对象
2697
2706
  */
2698
- function handleTooltip($xeTable, evnt, tdEl, overflowElem, tipElem, params) {
2707
+ function handleTooltip($xeTable, evnt, type, tdEl, overflowElem, tipElem, params) {
2699
2708
  const reactData = $xeTable;
2700
2709
  const tipOverEl = overflowElem || tdEl;
2701
2710
  if (!tipOverEl) {
@@ -2711,16 +2720,19 @@ function handleTooltip($xeTable, evnt, tdEl, overflowElem, tipElem, params) {
2711
2720
  const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
2712
2721
  const isOver = tipOverEl.scrollWidth > tipOverEl.clientWidth;
2713
2722
  if (content && (showAll || useCustom || isOver)) {
2723
+ const tipContent = formatText(content);
2714
2724
  Object.assign(tooltipStore, {
2715
2725
  row,
2716
2726
  column,
2717
2727
  visible: true,
2728
+ content: tipContent,
2729
+ type,
2718
2730
  currOpts: {}
2719
2731
  });
2720
2732
  $xeTable.$nextTick(() => {
2721
2733
  const $tooltip = $xeTable.$refs.refTooltip;
2722
2734
  if ($tooltip && $tooltip.open) {
2723
- $tooltip.open(isOver ? tipOverEl : tipElem, formatText(content));
2735
+ $tooltip.open(isOver ? tipOverEl : tipElem, tipContent);
2724
2736
  }
2725
2737
  });
2726
2738
  }
@@ -6886,7 +6898,7 @@ const Methods = {
6886
6898
  }
6887
6899
  if (tooltipStore.column !== column || !tooltipStore.visible) {
6888
6900
  const ctEl = thEl.querySelector('.vxe-cell--title');
6889
- handleTooltip($xeTable, evnt, thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
6901
+ handleTooltip($xeTable, evnt, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
6890
6902
  }
6891
6903
  },
6892
6904
  /**
@@ -6925,7 +6937,7 @@ const Methods = {
6925
6937
  if (!tipEl) {
6926
6938
  tipEl = ctEl;
6927
6939
  }
6928
- handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
6940
+ handleTooltip($xeTable, evnt, 'body', tdEl, ovEl || ctEl, tipEl, params);
6929
6941
  }
6930
6942
  },
6931
6943
  /**
@@ -6948,7 +6960,7 @@ const Methods = {
6948
6960
  if (!tipEl) {
6949
6961
  tipEl = ctEl;
6950
6962
  }
6951
- handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
6963
+ handleTooltip($xeTable, evnt, 'footer', tdEl, ovEl || ctEl, tipEl, params);
6952
6964
  }
6953
6965
  },
6954
6966
  openTooltip(target, content) {
@@ -6974,6 +6986,7 @@ const Methods = {
6974
6986
  column: null,
6975
6987
  content: null,
6976
6988
  visible: false,
6989
+ type: null,
6977
6990
  currOpts: {}
6978
6991
  });
6979
6992
  if (tooltip) {
@@ -631,6 +631,7 @@ export default {
631
631
  column: null,
632
632
  content: null,
633
633
  visible: false,
634
+ type: null,
634
635
  currOpts: {}
635
636
  },
636
637
  // 存放数据校验相关信息
@@ -1865,9 +1866,15 @@ export default {
1865
1866
  const reactData = $xeTable;
1866
1867
  const { xID } = $xeTable;
1867
1868
  const { loading, stripe, showHeader, height, treeConfig, mouseConfig, showFooter, highlightCell, highlightHoverRow, highlightHoverColumn, editConfig, editRules } = props;
1868
- const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore } = reactData;
1869
+ const { isGroup, overflowX, overflowY, scrollXLoad, scrollYLoad, tableData, initStore, isRowGroupStatus, columnStore, filterStore, customStore, tooltipStore } = reactData;
1869
1870
  const { leftList, rightList } = columnStore;
1870
1871
  const loadingSlot = slots.loading;
1872
+ const tipSlots = {
1873
+ header: slots.headerTooltip || slots['header-tooltip'],
1874
+ body: slots.tooltip,
1875
+ footer: slots.footerTooltip || slots['footer-tooltip']
1876
+ };
1877
+ const currTooltipSlot = tooltipStore.visible && tooltipStore.type ? tipSlots[tooltipStore.type] : null;
1871
1878
  const rowDragOpts = $xeTable.computeRowDragOpts;
1872
1879
  const tableTipConfig = $xeTable.computeTableTipConfig;
1873
1880
  const validTipConfig = $xeTable.computeValidTipConfig;
@@ -2141,8 +2148,39 @@ export default {
2141
2148
  enterable: tableTipConfig.enterable,
2142
2149
  enterDelay: tableTipConfig.enterDelay,
2143
2150
  leaveDelay: tableTipConfig.leaveDelay,
2144
- useHTML: tableTipConfig.useHTML
2145
- }
2151
+ useHTML: tableTipConfig.useHTML,
2152
+ width: tableTipConfig.width,
2153
+ height: tableTipConfig.height,
2154
+ minWidth: tableTipConfig.minWidth,
2155
+ minHeight: tableTipConfig.minHeight,
2156
+ maxWidth: tableTipConfig.maxWidth,
2157
+ maxHeight: tableTipConfig.maxHeight
2158
+ },
2159
+ scopedSlots: currTooltipSlot
2160
+ ? {
2161
+ content: () => {
2162
+ const { type, row, column, content: tooltipContent } = tooltipStore;
2163
+ if (currTooltipSlot) {
2164
+ if (column && type === 'header') {
2165
+ return h('div', {
2166
+ key: type
2167
+ }, currTooltipSlot({ column, tooltipContent, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt }));
2168
+ }
2169
+ if (row && column && type === 'body') {
2170
+ return h('div', {
2171
+ key: type
2172
+ }, currTooltipSlot({ row, column, tooltipContent, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt }));
2173
+ }
2174
+ if (row && column && type === 'footer') {
2175
+ return h('div', {
2176
+ key: type
2177
+ }, currTooltipSlot({ row, column, tooltipContent, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt }));
2178
+ }
2179
+ }
2180
+ return renderEmptyElement($xeTable);
2181
+ }
2182
+ }
2183
+ : {}
2146
2184
  })
2147
2185
  : renderEmptyElement($xeTable),
2148
2186
  /**
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.18.7";
3
+ export const version = "3.18.9";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -239,9 +239,6 @@ VxeUI.setConfig({
239
239
  }
240
240
  }
241
241
  },
242
- // export: {
243
- // types: {}
244
- // },
245
242
  grid: {
246
243
  // size: null,
247
244
  // zoomConfig: {
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.18.7"}`;
3
+ const version = `table v${"3.18.9"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/lib/index.umd.js CHANGED
@@ -2002,7 +2002,7 @@ function getClass(property, params) {
2002
2002
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2003
2003
 
2004
2004
 
2005
- const version = "3.18.7";
2005
+ const version = "3.18.9";
2006
2006
  core_.VxeUI.version = version;
2007
2007
  core_.VxeUI.tableVersion = version;
2008
2008
  core_.VxeUI.setConfig({
@@ -2241,9 +2241,6 @@ core_.VxeUI.setConfig({
2241
2241
  }
2242
2242
  }
2243
2243
  },
2244
- // export: {
2245
- // types: {}
2246
- // },
2247
2244
  grid: {
2248
2245
  // size: null,
2249
2246
  // zoomConfig: {
@@ -2678,7 +2675,7 @@ function isNodeElement(elem) {
2678
2675
  const {
2679
2676
  log: log_log
2680
2677
  } = core_.VxeUI;
2681
- const log_version = `table v${"3.18.7"}`;
2678
+ const log_version = `table v${"3.18.9"}`;
2682
2679
  const warnLog = log_log.create('warn', log_version);
2683
2680
  const errLog = log_log.create('error', log_version);
2684
2681
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -6155,6 +6152,10 @@ function cacheColumnMap($xeTable) {
6155
6152
  const props = $xeTable;
6156
6153
  const reactData = $xeTable;
6157
6154
  const internalData = $xeTable;
6155
+ const {
6156
+ treeConfig,
6157
+ showOverflow
6158
+ } = props;
6158
6159
  const {
6159
6160
  tableFullColumn,
6160
6161
  collectColumn
@@ -6165,17 +6166,19 @@ function cacheColumnMap($xeTable) {
6165
6166
  const expandOpts = $xeTable.computeExpandOpts;
6166
6167
  const columnOpts = $xeTable.computeColumnOpts;
6167
6168
  const columnDragOpts = $xeTable.computeColumnDragOpts;
6169
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
6168
6170
  const {
6169
6171
  isCrossDrag,
6170
6172
  isSelfToChildDrag
6171
6173
  } = columnDragOpts;
6172
6174
  const customOpts = $xeTable.computeCustomOpts;
6175
+ const treeOpts = $xeTable.computeTreeOpts;
6173
6176
  const {
6174
6177
  storage
6175
6178
  } = customOpts;
6176
6179
  const rowOpts = $xeTable.computeRowOpts;
6177
6180
  const isGroup = collectColumn.some(hasChildrenList);
6178
- let isAllOverflow = !!props.showOverflow;
6181
+ let isAllOverflow = !!showOverflow;
6179
6182
  let rowGroupColumn;
6180
6183
  let expandColumn;
6181
6184
  let treeNodeColumn;
@@ -6277,9 +6280,15 @@ function cacheColumnMap($xeTable) {
6277
6280
  } else {
6278
6281
  tableFullColumn.forEach(handleFunc);
6279
6282
  }
6283
+ if (expandColumn && expandOpts.mode !== 'fixed' && virtualYOpts.enabled) {
6284
+ warnLog('vxe.error.notConflictProp', ['column.type="expand', 'virtual-y-config.enabled=false']);
6285
+ }
6280
6286
  if (expandColumn && expandOpts.mode !== 'fixed' && mouseOpts.area) {
6281
6287
  errLog('vxe.error.errConflicts', ['mouse-config.area', 'column.type=expand']);
6282
6288
  }
6289
+ if (expandColumn && expandOpts.mode !== 'inside' && treeConfig && !treeOpts.transform) {
6290
+ errLog('vxe.error.notConflictProp', ['tree-config.transform=false', 'expand-config.mode=fixed']);
6291
+ }
6283
6292
  if (htmlColumn) {
6284
6293
  if (!columnOpts.useKey) {
6285
6294
  errLog('vxe.error.notSupportProp', ['column.type=html', 'column-config.useKey=false', 'column-config.useKey=true']);
@@ -9067,7 +9076,7 @@ function clearRowDragData($xeTable) {
9067
9076
  * @param {Event} evnt 事件
9068
9077
  * @param {Row} row 行对象
9069
9078
  */
9070
- function handleTooltip($xeTable, evnt, tdEl, overflowElem, tipElem, params) {
9079
+ function handleTooltip($xeTable, evnt, type, tdEl, overflowElem, tipElem, params) {
9071
9080
  const reactData = $xeTable;
9072
9081
  const tipOverEl = overflowElem || tdEl;
9073
9082
  if (!tipOverEl) {
@@ -9091,16 +9100,19 @@ function handleTooltip($xeTable, evnt, tdEl, overflowElem, tipElem, params) {
9091
9100
  const content = useCustom ? customContent : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
9092
9101
  const isOver = tipOverEl.scrollWidth > tipOverEl.clientWidth;
9093
9102
  if (content && (showAll || useCustom || isOver)) {
9103
+ const tipContent = formatText(content);
9094
9104
  Object.assign(tooltipStore, {
9095
9105
  row,
9096
9106
  column,
9097
9107
  visible: true,
9108
+ content: tipContent,
9109
+ type,
9098
9110
  currOpts: {}
9099
9111
  });
9100
9112
  $xeTable.$nextTick(() => {
9101
9113
  const $tooltip = $xeTable.$refs.refTooltip;
9102
9114
  if ($tooltip && $tooltip.open) {
9103
- $tooltip.open(isOver ? tipOverEl : tipElem, formatText(content));
9115
+ $tooltip.open(isOver ? tipOverEl : tipElem, tipContent);
9104
9116
  }
9105
9117
  });
9106
9118
  }
@@ -13857,7 +13869,7 @@ const Methods = {
13857
13869
  }
13858
13870
  if (tooltipStore.column !== column || !tooltipStore.visible) {
13859
13871
  const ctEl = thEl.querySelector('.vxe-cell--title');
13860
- handleTooltip($xeTable, evnt, thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
13872
+ handleTooltip($xeTable, evnt, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
13861
13873
  }
13862
13874
  },
13863
13875
  /**
@@ -13907,7 +13919,7 @@ const Methods = {
13907
13919
  if (!tipEl) {
13908
13920
  tipEl = ctEl;
13909
13921
  }
13910
- handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
13922
+ handleTooltip($xeTable, evnt, 'body', tdEl, ovEl || ctEl, tipEl, params);
13911
13923
  }
13912
13924
  },
13913
13925
  /**
@@ -13934,7 +13946,7 @@ const Methods = {
13934
13946
  if (!tipEl) {
13935
13947
  tipEl = ctEl;
13936
13948
  }
13937
- handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
13949
+ handleTooltip($xeTable, evnt, 'footer', tdEl, ovEl || ctEl, tipEl, params);
13938
13950
  }
13939
13951
  },
13940
13952
  openTooltip(target, content) {
@@ -13964,6 +13976,7 @@ const Methods = {
13964
13976
  column: null,
13965
13977
  content: null,
13966
13978
  visible: false,
13979
+ type: null,
13967
13980
  currOpts: {}
13968
13981
  });
13969
13982
  if (tooltip) {
@@ -30169,6 +30182,7 @@ function renderBody(h, $xeTable) {
30169
30182
  column: null,
30170
30183
  content: null,
30171
30184
  visible: false,
30185
+ type: null,
30172
30186
  currOpts: {}
30173
30187
  },
30174
30188
  // 存放数据校验相关信息
@@ -31539,13 +31553,20 @@ function renderBody(h, $xeTable) {
31539
31553
  isRowGroupStatus,
31540
31554
  columnStore,
31541
31555
  filterStore,
31542
- customStore
31556
+ customStore,
31557
+ tooltipStore
31543
31558
  } = reactData;
31544
31559
  const {
31545
31560
  leftList,
31546
31561
  rightList
31547
31562
  } = columnStore;
31548
31563
  const loadingSlot = slots.loading;
31564
+ const tipSlots = {
31565
+ header: slots.headerTooltip || slots['header-tooltip'],
31566
+ body: slots.tooltip,
31567
+ footer: slots.footerTooltip || slots['footer-tooltip']
31568
+ };
31569
+ const currTooltipSlot = tooltipStore.visible && tooltipStore.type ? tipSlots[tooltipStore.type] : null;
31549
31570
  const rowDragOpts = $xeTable.computeRowDragOpts;
31550
31571
  const tableTipConfig = $xeTable.computeTableTipConfig;
31551
31572
  const validTipConfig = $xeTable.computeValidTipConfig;
@@ -31782,8 +31803,62 @@ function renderBody(h, $xeTable) {
31782
31803
  enterable: tableTipConfig.enterable,
31783
31804
  enterDelay: tableTipConfig.enterDelay,
31784
31805
  leaveDelay: tableTipConfig.leaveDelay,
31785
- useHTML: tableTipConfig.useHTML
31786
- }
31806
+ useHTML: tableTipConfig.useHTML,
31807
+ width: tableTipConfig.width,
31808
+ height: tableTipConfig.height,
31809
+ minWidth: tableTipConfig.minWidth,
31810
+ minHeight: tableTipConfig.minHeight,
31811
+ maxWidth: tableTipConfig.maxWidth,
31812
+ maxHeight: tableTipConfig.maxHeight
31813
+ },
31814
+ scopedSlots: currTooltipSlot ? {
31815
+ content: () => {
31816
+ const {
31817
+ type,
31818
+ row,
31819
+ column,
31820
+ content: tooltipContent
31821
+ } = tooltipStore;
31822
+ if (currTooltipSlot) {
31823
+ if (column && type === 'header') {
31824
+ return h('div', {
31825
+ key: type
31826
+ }, currTooltipSlot({
31827
+ column,
31828
+ tooltipContent,
31829
+ $table: $xeTable,
31830
+ $grid: $xeGrid,
31831
+ $gantt: $xeGantt
31832
+ }));
31833
+ }
31834
+ if (row && column && type === 'body') {
31835
+ return h('div', {
31836
+ key: type
31837
+ }, currTooltipSlot({
31838
+ row,
31839
+ column,
31840
+ tooltipContent,
31841
+ $table: $xeTable,
31842
+ $grid: $xeGrid,
31843
+ $gantt: $xeGantt
31844
+ }));
31845
+ }
31846
+ if (row && column && type === 'footer') {
31847
+ return h('div', {
31848
+ key: type
31849
+ }, currTooltipSlot({
31850
+ row,
31851
+ column,
31852
+ tooltipContent,
31853
+ $table: $xeTable,
31854
+ $grid: $xeGrid,
31855
+ $gantt: $xeGantt
31856
+ }));
31857
+ }
31858
+ }
31859
+ return table_renderEmptyElement($xeTable);
31860
+ }
31861
+ } : {}
31787
31862
  }) : table_renderEmptyElement($xeTable),
31788
31863
  /**
31789
31864
  * 校验提示