vxe-table 3.18.3 → 3.18.5

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 (37) hide show
  1. package/es/style.css +1 -1
  2. package/es/table/render/index.js +4 -3
  3. package/es/table/src/header.js +25 -0
  4. package/es/table/src/methods.js +17 -5
  5. package/es/table/src/table.js +6 -7
  6. package/es/ui/index.js +1 -1
  7. package/es/ui/src/log.js +1 -1
  8. package/es/ui/src/vn.js +9 -4
  9. package/lib/index.umd.js +70 -21
  10. package/lib/index.umd.min.js +1 -1
  11. package/lib/style.css +1 -1
  12. package/lib/table/render/index.js +6 -3
  13. package/lib/table/render/index.min.js +1 -1
  14. package/lib/table/src/header.js +29 -0
  15. package/lib/table/src/header.min.js +1 -1
  16. package/lib/table/src/methods.js +18 -5
  17. package/lib/table/src/methods.min.js +1 -1
  18. package/lib/table/src/table.js +6 -7
  19. package/lib/table/src/table.min.js +1 -1
  20. package/lib/ui/index.js +1 -1
  21. package/lib/ui/index.min.js +1 -1
  22. package/lib/ui/src/log.js +1 -1
  23. package/lib/ui/src/log.min.js +1 -1
  24. package/lib/ui/src/vn.js +9 -4
  25. package/lib/ui/src/vn.min.js +1 -1
  26. package/package.json +1 -1
  27. package/packages/table/render/index.ts +27 -26
  28. package/packages/table/src/header.ts +28 -0
  29. package/packages/table/src/methods.ts +17 -5
  30. package/packages/table/src/table.ts +9 -7
  31. package/packages/ui/src/vn.ts +10 -4
  32. /package/es/{iconfont.1756629700380.ttf → iconfont.1756865980627.ttf} +0 -0
  33. /package/es/{iconfont.1756629700380.woff → iconfont.1756865980627.woff} +0 -0
  34. /package/es/{iconfont.1756629700380.woff2 → iconfont.1756865980627.woff2} +0 -0
  35. /package/lib/{iconfont.1756629700380.ttf → iconfont.1756865980627.ttf} +0 -0
  36. /package/lib/{iconfont.1756629700380.woff → iconfont.1756865980627.woff} +0 -0
  37. /package/lib/{iconfont.1756629700380.woff2 → iconfont.1756865980627.woff2} +0 -0
@@ -294,7 +294,7 @@ function nativeEditRender(h, renderOpts, params) {
294
294
  const { name } = renderOpts;
295
295
  const cellValue = isImmediateCell(renderOpts, params) ? getCellValue(row, column) : column.model.value;
296
296
  return [
297
- h(name, {
297
+ h(`${name}`, {
298
298
  class: `vxe-default-${name}`,
299
299
  attrs: getNativeAttrs(renderOpts),
300
300
  domProps: {
@@ -374,7 +374,8 @@ function oldButtonEditRender(h, renderOpts, params) {
374
374
  * @deprecated
375
375
  */
376
376
  function oldButtonsEditRender(h, renderOpts, params) {
377
- return renderOpts.children.map((childRenderOpts) => oldButtonEditRender(h, childRenderOpts, params)[0]);
377
+ const { children } = renderOpts;
378
+ return children ? children.map((childRenderOpts) => oldButtonEditRender(h, childRenderOpts, params)[0]) : [];
378
379
  }
379
380
  function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
380
381
  const { optionGroups, optionGroupProps = {} } = renderOpts;
@@ -424,7 +425,7 @@ function nativeFilterRender(h, renderOpts, params) {
424
425
  const { name } = renderOpts;
425
426
  const attrs = getNativeAttrs(renderOpts);
426
427
  return column.filters.map((option, oIndex) => {
427
- return h(name, {
428
+ return h(`${name}`, {
428
429
  key: oIndex,
429
430
  class: `vxe-default-${name}`,
430
431
  attrs,
@@ -4,6 +4,20 @@ import { getClass } from '../../ui/src/utils';
4
4
  import { getCalcHeight, convertHeaderColumnToRows, convertHeaderToGridRows } from './util';
5
5
  const { renderer, renderEmptyElement } = VxeUI;
6
6
  const cellType = 'header';
7
+ function getColumnFirstChild(column) {
8
+ const { children } = column;
9
+ if (children && children.length) {
10
+ return getColumnFirstChild(children[0]);
11
+ }
12
+ return column;
13
+ }
14
+ function getColumnLastChild(column) {
15
+ const { children } = column;
16
+ if (children && children.length) {
17
+ return getColumnLastChild(children[children.length - 1]);
18
+ }
19
+ return column;
20
+ }
7
21
  function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols) {
8
22
  const props = _vm;
9
23
  const $xeTable = _vm.$parent;
@@ -130,6 +144,17 @@ function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, co
130
144
  else {
131
145
  tcStyle.minHeight = `${currCellHeight}px`;
132
146
  }
147
+ if (isColGroup && !isLastRow) {
148
+ const firstCol = getColumnFirstChild(column);
149
+ const lastCol = getColumnLastChild(column);
150
+ if (firstCol && lastCol && firstCol.id !== lastCol.id) {
151
+ const firstColRest = fullColumnIdData[firstCol.id];
152
+ const lastColRest = fullColumnIdData[lastCol.id];
153
+ if (firstColRest && lastColRest) {
154
+ tcStyle.width = `${lastColRest.oLeft - firstColRest.oLeft + lastCol.renderWidth}px`;
155
+ }
156
+ }
157
+ }
133
158
  return h('th', {
134
159
  class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
135
160
  [`col--${headAlign}`]: headAlign,
@@ -8647,11 +8647,20 @@ const Methods = {
8647
8647
  const rowDragOpts = $xeTable.computeRowDragOpts;
8648
8648
  const { isCrossTableDrag } = rowDragOpts;
8649
8649
  if (isCrossTableDrag && crossTableDragRowObj && !tableData.length) {
8650
- const { $oldTable } = crossTableDragRowObj;
8651
- if ($oldTable && $oldTable.xID !== $xeTable.xID) {
8652
- evnt.preventDefault();
8653
- crossTableDragRowObj.$newTable = $xeTable;
8654
- internalData.prevDragRow = null;
8650
+ const { $oldTable, $newTable } = crossTableDragRowObj;
8651
+ if ($oldTable) {
8652
+ const oldTableReactData = $oldTable;
8653
+ if ($oldTable.xID !== $xeTable.xID) {
8654
+ if ($newTable && $newTable.xID !== $xeTable.xID) {
8655
+ $newTable.hideCrossTableRowDropClearStatus();
8656
+ }
8657
+ evnt.preventDefault();
8658
+ $oldTable.hideCrossTableRowDropClearStatus();
8659
+ crossTableDragRowObj.$newTable = $xeTable;
8660
+ internalData.prevDragRow = null;
8661
+ reactData.dragTipText = oldTableReactData.dragTipText;
8662
+ showDropTip($xeTable, evnt, evnt.currentTarget, null, true, '');
8663
+ }
8655
8664
  }
8656
8665
  }
8657
8666
  },
@@ -8885,6 +8894,9 @@ const Methods = {
8885
8894
  crossTableDragRowObj.$newTable = null;
8886
8895
  }
8887
8896
  else if (!treeConfig || isCrossDrag) {
8897
+ if ($newTable && $newTable.xID !== $xeTable.xID) {
8898
+ $newTable.hideCrossTableRowDropClearStatus();
8899
+ }
8888
8900
  $oldTable.hideCrossTableRowDropClearStatus();
8889
8901
  oldTableReactData.isCrossDragRow = true;
8890
8902
  reactData.dragTipText = oldTableReactData.dragTipText;
@@ -1889,9 +1889,11 @@ export default {
1889
1889
  const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
1890
1890
  const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
1891
1891
  const { isCrossTableDrag } = rowDragOpts;
1892
- const rwOns = {};
1892
+ const tbOns = {
1893
+ keydown: this.keydownEvent
1894
+ };
1893
1895
  if (isCrossTableDrag && !tableData.length) {
1894
- rwOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
1896
+ tbOns.dragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
1895
1897
  }
1896
1898
  return h('div', {
1897
1899
  ref: 'refElem',
@@ -1929,9 +1931,7 @@ export default {
1929
1931
  attrs: {
1930
1932
  spellcheck: false
1931
1933
  },
1932
- on: {
1933
- keydown: this.keydownEvent
1934
- }
1934
+ on: tbOns
1935
1935
  }, [
1936
1936
  /**
1937
1937
  * 隐藏列
@@ -1959,8 +1959,7 @@ export default {
1959
1959
  ]),
1960
1960
  h('div', {
1961
1961
  key: 'tw',
1962
- class: 'vxe-table--render-wrapper',
1963
- on: rwOns
1962
+ class: 'vxe-table--render-wrapper'
1964
1963
  }, scrollbarXToTop
1965
1964
  ? [
1966
1965
  renderScrollX(h, $xeTable),
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.3";
3
+ export const version = "3.18.5";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"3.18.3"}`;
3
+ const version = `table v${"3.18.5"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/es/ui/src/vn.js CHANGED
@@ -2,24 +2,29 @@ import XEUtils from 'xe-utils';
2
2
  export function getOnName(type) {
3
3
  return XEUtils.kebabCase(type);
4
4
  }
5
- export function getModelEvent(name) {
6
- switch (name) {
5
+ export function getModelEvent(renderOpts) {
6
+ switch (renderOpts.name) {
7
7
  case 'VxeInput':
8
8
  case 'VxeTextarea':
9
9
  case 'VxeNumberInput':
10
+ case 'VxePasswordInput':
10
11
  case 'VxeSelect':
11
12
  case 'VxeTreeSelect':
12
13
  case 'VxeTableSelect':
13
14
  case 'VxeDatePicker':
14
15
  case 'VxeDateRangePicker':
16
+ case 'VxeIconPicker':
17
+ case 'VxeColorPicker':
18
+ case 'VxeSlider':
19
+ case 'VxeUpload':
15
20
  return 'modelValue';
16
21
  case 'select':
17
22
  return 'change';
18
23
  }
19
24
  return 'input';
20
25
  }
21
- export function getChangeEvent(name) {
22
- switch (name) {
26
+ export function getChangeEvent(renderOpts) {
27
+ switch (renderOpts.name) {
23
28
  case 'input':
24
29
  case 'textarea':
25
30
  case 'VxeInput':
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.3";
2005
+ const version = "3.18.5";
2006
2006
  core_.VxeUI.version = version;
2007
2007
  core_.VxeUI.tableVersion = version;
2008
2008
  core_.VxeUI.setConfig({
@@ -2678,7 +2678,7 @@ function isNodeElement(elem) {
2678
2678
  const {
2679
2679
  log: log_log
2680
2680
  } = core_.VxeUI;
2681
- const log_version = `table v${"3.18.3"}`;
2681
+ const log_version = `table v${"3.18.5"}`;
2682
2682
  const warnLog = log_log.create('warn', log_version);
2683
2683
  const errLog = log_log.create('error', log_version);
2684
2684
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -3687,24 +3687,29 @@ function colToVisible($xeTable, column, row) {
3687
3687
  function getOnName(type) {
3688
3688
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().kebabCase(type);
3689
3689
  }
3690
- function getModelEvent(name) {
3691
- switch (name) {
3690
+ function getModelEvent(renderOpts) {
3691
+ switch (renderOpts.name) {
3692
3692
  case 'VxeInput':
3693
3693
  case 'VxeTextarea':
3694
3694
  case 'VxeNumberInput':
3695
+ case 'VxePasswordInput':
3695
3696
  case 'VxeSelect':
3696
3697
  case 'VxeTreeSelect':
3697
3698
  case 'VxeTableSelect':
3698
3699
  case 'VxeDatePicker':
3699
3700
  case 'VxeDateRangePicker':
3701
+ case 'VxeIconPicker':
3702
+ case 'VxeColorPicker':
3703
+ case 'VxeSlider':
3704
+ case 'VxeUpload':
3700
3705
  return 'modelValue';
3701
3706
  case 'select':
3702
3707
  return 'change';
3703
3708
  }
3704
3709
  return 'input';
3705
3710
  }
3706
- function getChangeEvent(name) {
3707
- switch (name) {
3711
+ function getChangeEvent(renderOpts) {
3712
+ switch (renderOpts.name) {
3708
3713
  case 'input':
3709
3714
  case 'textarea':
3710
3715
  case 'VxeInput':
@@ -15958,12 +15963,22 @@ const Methods = {
15958
15963
  } = rowDragOpts;
15959
15964
  if (isCrossTableDrag && crossTableDragRowObj && !tableData.length) {
15960
15965
  const {
15961
- $oldTable
15966
+ $oldTable,
15967
+ $newTable
15962
15968
  } = crossTableDragRowObj;
15963
- if ($oldTable && $oldTable.xID !== $xeTable.xID) {
15964
- evnt.preventDefault();
15965
- crossTableDragRowObj.$newTable = $xeTable;
15966
- internalData.prevDragRow = null;
15969
+ if ($oldTable) {
15970
+ const oldTableReactData = $oldTable;
15971
+ if ($oldTable.xID !== $xeTable.xID) {
15972
+ if ($newTable && $newTable.xID !== $xeTable.xID) {
15973
+ $newTable.hideCrossTableRowDropClearStatus();
15974
+ }
15975
+ evnt.preventDefault();
15976
+ $oldTable.hideCrossTableRowDropClearStatus();
15977
+ crossTableDragRowObj.$newTable = $xeTable;
15978
+ internalData.prevDragRow = null;
15979
+ reactData.dragTipText = oldTableReactData.dragTipText;
15980
+ showDropTip($xeTable, evnt, evnt.currentTarget, null, true, '');
15981
+ }
15967
15982
  }
15968
15983
  }
15969
15984
  },
@@ -16246,6 +16261,9 @@ const Methods = {
16246
16261
  oldTableReactData.isCrossDragRow = false;
16247
16262
  crossTableDragRowObj.$newTable = null;
16248
16263
  } else if (!treeConfig || isCrossDrag) {
16264
+ if ($newTable && $newTable.xID !== $xeTable.xID) {
16265
+ $newTable.hideCrossTableRowDropClearStatus();
16266
+ }
16249
16267
  $oldTable.hideCrossTableRowDropClearStatus();
16250
16268
  oldTableReactData.isCrossDragRow = true;
16251
16269
  reactData.dragTipText = oldTableReactData.dragTipText;
@@ -20330,6 +20348,24 @@ const {
20330
20348
  renderEmptyElement: header_renderEmptyElement
20331
20349
  } = core_.VxeUI;
20332
20350
  const cellType = 'header';
20351
+ function getColumnFirstChild(column) {
20352
+ const {
20353
+ children
20354
+ } = column;
20355
+ if (children && children.length) {
20356
+ return getColumnFirstChild(children[0]);
20357
+ }
20358
+ return column;
20359
+ }
20360
+ function getColumnLastChild(column) {
20361
+ const {
20362
+ children
20363
+ } = column;
20364
+ if (children && children.length) {
20365
+ return getColumnLastChild(children[children.length - 1]);
20366
+ }
20367
+ return column;
20368
+ }
20333
20369
  function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols) {
20334
20370
  const props = _vm;
20335
20371
  const $xeTable = _vm.$parent;
@@ -20496,6 +20532,17 @@ function header_renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIn
20496
20532
  } else {
20497
20533
  tcStyle.minHeight = `${currCellHeight}px`;
20498
20534
  }
20535
+ if (isColGroup && !isLastRow) {
20536
+ const firstCol = getColumnFirstChild(column);
20537
+ const lastCol = getColumnLastChild(column);
20538
+ if (firstCol && lastCol && firstCol.id !== lastCol.id) {
20539
+ const firstColRest = fullColumnIdData[firstCol.id];
20540
+ const lastColRest = fullColumnIdData[lastCol.id];
20541
+ if (firstColRest && lastColRest) {
20542
+ tcStyle.width = `${lastColRest.oLeft - firstColRest.oLeft + lastCol.renderWidth}px`;
20543
+ }
20544
+ }
20545
+ }
20499
20546
  return h('th', {
20500
20547
  class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
20501
20548
  [`col--${headAlign}`]: headAlign,
@@ -31488,9 +31535,11 @@ function renderBody(h, $xeTable) {
31488
31535
  const {
31489
31536
  isCrossTableDrag
31490
31537
  } = rowDragOpts;
31491
- const rwOns = {};
31538
+ const tbOns = {
31539
+ keydown: this.keydownEvent
31540
+ };
31492
31541
  if (isCrossTableDrag && !tableData.length) {
31493
- rwOns.onDragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
31542
+ tbOns.dragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
31494
31543
  }
31495
31544
  return h('div', {
31496
31545
  ref: 'refElem',
@@ -31528,9 +31577,7 @@ function renderBody(h, $xeTable) {
31528
31577
  attrs: {
31529
31578
  spellcheck: false
31530
31579
  },
31531
- on: {
31532
- keydown: this.keydownEvent
31533
- }
31580
+ on: tbOns
31534
31581
  }, [
31535
31582
  /**
31536
31583
  * 隐藏列
@@ -31551,8 +31598,7 @@ function renderBody(h, $xeTable) {
31551
31598
  class: 'vxe-table-var-mini'
31552
31599
  })]), h('div', {
31553
31600
  key: 'tw',
31554
- class: 'vxe-table--render-wrapper',
31555
- on: rwOns
31601
+ class: 'vxe-table--render-wrapper'
31556
31602
  }, scrollbarXToTop ? [renderScrollX(h, $xeTable), renderBody(h, $xeTable)] : [renderBody(h, $xeTable), renderScrollX(h, $xeTable)]),
31557
31603
  /**
31558
31604
  * 空数据
@@ -34928,7 +34974,7 @@ function nativeEditRender(h, renderOpts, params) {
34928
34974
  name
34929
34975
  } = renderOpts;
34930
34976
  const cellValue = isImmediateCell(renderOpts, params) ? getCellValue(row, column) : column.model.value;
34931
- return [h(name, {
34977
+ return [h(`${name}`, {
34932
34978
  class: `vxe-default-${name}`,
34933
34979
  attrs: getNativeAttrs(renderOpts),
34934
34980
  domProps: {
@@ -35012,7 +35058,10 @@ function oldButtonEditRender(h, renderOpts, params) {
35012
35058
  * @deprecated
35013
35059
  */
35014
35060
  function oldButtonsEditRender(h, renderOpts, params) {
35015
- return renderOpts.children.map(childRenderOpts => oldButtonEditRender(h, childRenderOpts, params)[0]);
35061
+ const {
35062
+ children
35063
+ } = renderOpts;
35064
+ return children ? children.map(childRenderOpts => oldButtonEditRender(h, childRenderOpts, params)[0]) : [];
35016
35065
  }
35017
35066
  function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
35018
35067
  const {
@@ -35074,7 +35123,7 @@ function nativeFilterRender(h, renderOpts, params) {
35074
35123
  } = renderOpts;
35075
35124
  const attrs = getNativeAttrs(renderOpts);
35076
35125
  return column.filters.map((option, oIndex) => {
35077
- return h(name, {
35126
+ return h(`${name}`, {
35078
35127
  key: oIndex,
35079
35128
  class: `vxe-default-${name}`,
35080
35129
  attrs,