vxe-table 3.14.2 → 3.14.4

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 (123) hide show
  1. package/es/locale/lang/ar-EG.js +1 -0
  2. package/es/locale/lang/de-DE.js +1 -0
  3. package/es/locale/lang/en-US.js +1 -0
  4. package/es/locale/lang/es-ES.js +1 -0
  5. package/es/locale/lang/fr-FR.js +1 -0
  6. package/es/locale/lang/hu-HU.js +1 -0
  7. package/es/locale/lang/hy-AM.js +1 -0
  8. package/es/locale/lang/id-ID.js +1 -0
  9. package/es/locale/lang/it-IT.js +1 -0
  10. package/es/locale/lang/ja-JP.js +1 -0
  11. package/es/locale/lang/ko-KR.js +1 -0
  12. package/es/locale/lang/nb-NO.js +1 -0
  13. package/es/locale/lang/pt-BR.js +1 -0
  14. package/es/locale/lang/ru-RU.js +1 -0
  15. package/es/locale/lang/th-TH.js +1 -0
  16. package/es/locale/lang/ug-CN.js +1 -0
  17. package/es/locale/lang/uk-UA.js +1 -0
  18. package/es/locale/lang/vi-VN.js +1 -0
  19. package/es/locale/lang/zh-CHT.js +1 -0
  20. package/es/locale/lang/zh-CN.js +1 -0
  21. package/es/style.css +1 -1
  22. package/es/table/module/keyboard/mixin.js +27 -9
  23. package/es/table/module/menu/mixin.js +8 -7
  24. package/es/table/src/methods.js +104 -57
  25. package/es/table/src/table.js +42 -17
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/log.js +1 -1
  28. package/lib/index.umd.js +190 -104
  29. package/lib/index.umd.min.js +1 -1
  30. package/lib/locale/lang/ar-EG.js +1 -0
  31. package/lib/locale/lang/ar-EG.min.js +1 -1
  32. package/lib/locale/lang/de-DE.js +1 -0
  33. package/lib/locale/lang/de-DE.min.js +1 -1
  34. package/lib/locale/lang/en-US.js +1 -0
  35. package/lib/locale/lang/en-US.min.js +1 -1
  36. package/lib/locale/lang/en-US.umd.js +1 -0
  37. package/lib/locale/lang/es-ES.js +1 -0
  38. package/lib/locale/lang/es-ES.min.js +1 -1
  39. package/lib/locale/lang/es-ES.umd.js +1 -0
  40. package/lib/locale/lang/fr-FR.js +1 -0
  41. package/lib/locale/lang/fr-FR.min.js +1 -1
  42. package/lib/locale/lang/hu-HU.js +1 -0
  43. package/lib/locale/lang/hu-HU.min.js +1 -1
  44. package/lib/locale/lang/hu-HU.umd.js +1 -0
  45. package/lib/locale/lang/hy-AM.js +1 -0
  46. package/lib/locale/lang/hy-AM.min.js +1 -1
  47. package/lib/locale/lang/id-ID.js +1 -0
  48. package/lib/locale/lang/id-ID.min.js +1 -1
  49. package/lib/locale/lang/it-IT.js +1 -0
  50. package/lib/locale/lang/it-IT.min.js +1 -1
  51. package/lib/locale/lang/ja-JP.js +1 -0
  52. package/lib/locale/lang/ja-JP.min.js +1 -1
  53. package/lib/locale/lang/ja-JP.umd.js +1 -0
  54. package/lib/locale/lang/ko-KR.js +1 -0
  55. package/lib/locale/lang/ko-KR.min.js +1 -1
  56. package/lib/locale/lang/ko-KR.umd.js +1 -0
  57. package/lib/locale/lang/nb-NO.js +1 -0
  58. package/lib/locale/lang/nb-NO.min.js +1 -1
  59. package/lib/locale/lang/pt-BR.js +1 -0
  60. package/lib/locale/lang/pt-BR.min.js +1 -1
  61. package/lib/locale/lang/pt-BR.umd.js +1 -0
  62. package/lib/locale/lang/ru-RU.js +1 -0
  63. package/lib/locale/lang/ru-RU.min.js +1 -1
  64. package/lib/locale/lang/ru-RU.umd.js +1 -0
  65. package/lib/locale/lang/th-TH.js +1 -0
  66. package/lib/locale/lang/th-TH.min.js +1 -1
  67. package/lib/locale/lang/ug-CN.js +1 -0
  68. package/lib/locale/lang/ug-CN.min.js +1 -1
  69. package/lib/locale/lang/uk-UA.js +1 -0
  70. package/lib/locale/lang/uk-UA.min.js +1 -1
  71. package/lib/locale/lang/uk-UA.umd.js +1 -0
  72. package/lib/locale/lang/vi-VN.js +1 -0
  73. package/lib/locale/lang/vi-VN.min.js +1 -1
  74. package/lib/locale/lang/zh-CHT.js +1 -0
  75. package/lib/locale/lang/zh-CHT.min.js +1 -1
  76. package/lib/locale/lang/zh-CHT.umd.js +1 -0
  77. package/lib/locale/lang/zh-CN.js +1 -0
  78. package/lib/locale/lang/zh-CN.min.js +1 -1
  79. package/lib/locale/lang/zh-CN.umd.js +1 -0
  80. package/lib/style.css +1 -1
  81. package/lib/table/module/keyboard/mixin.js +28 -9
  82. package/lib/table/module/keyboard/mixin.min.js +1 -1
  83. package/lib/table/module/menu/mixin.js +10 -7
  84. package/lib/table/module/menu/mixin.min.js +1 -1
  85. package/lib/table/src/methods.js +105 -69
  86. package/lib/table/src/methods.min.js +1 -1
  87. package/lib/table/src/table.js +44 -17
  88. package/lib/table/src/table.min.js +1 -1
  89. package/lib/ui/index.js +1 -1
  90. package/lib/ui/index.min.js +1 -1
  91. package/lib/ui/src/log.js +1 -1
  92. package/lib/ui/src/log.min.js +1 -1
  93. package/package.json +2 -2
  94. package/packages/locale/lang/ar-EG.ts +1 -0
  95. package/packages/locale/lang/de-DE.ts +1 -0
  96. package/packages/locale/lang/en-US.ts +1 -0
  97. package/packages/locale/lang/es-ES.ts +1 -0
  98. package/packages/locale/lang/fr-FR.ts +1 -0
  99. package/packages/locale/lang/hu-HU.ts +1 -0
  100. package/packages/locale/lang/hy-AM.ts +1 -0
  101. package/packages/locale/lang/id-ID.ts +1 -0
  102. package/packages/locale/lang/it-IT.ts +1 -0
  103. package/packages/locale/lang/ja-JP.ts +1 -0
  104. package/packages/locale/lang/ko-KR.ts +1 -0
  105. package/packages/locale/lang/nb-NO.ts +1 -0
  106. package/packages/locale/lang/pt-BR.ts +1 -0
  107. package/packages/locale/lang/ru-RU.ts +1 -0
  108. package/packages/locale/lang/th-TH.ts +1 -0
  109. package/packages/locale/lang/ug-CN.ts +1 -0
  110. package/packages/locale/lang/uk-UA.ts +1 -0
  111. package/packages/locale/lang/vi-VN.ts +1 -0
  112. package/packages/locale/lang/zh-CHT.ts +1 -0
  113. package/packages/locale/lang/zh-CN.ts +1 -0
  114. package/packages/table/module/keyboard/mixin.ts +25 -9
  115. package/packages/table/module/menu/mixin.ts +9 -7
  116. package/packages/table/src/methods.ts +104 -57
  117. package/packages/table/src/table.ts +44 -17
  118. /package/es/{iconfont.1743125678150.ttf → iconfont.1743393991959.ttf} +0 -0
  119. /package/es/{iconfont.1743125678150.woff → iconfont.1743393991959.woff} +0 -0
  120. /package/es/{iconfont.1743125678150.woff2 → iconfont.1743393991959.woff2} +0 -0
  121. /package/lib/{iconfont.1743125678150.ttf → iconfont.1743393991959.ttf} +0 -0
  122. /package/lib/{iconfont.1743125678150.woff → iconfont.1743393991959.woff} +0 -0
  123. /package/lib/{iconfont.1743125678150.woff2 → iconfont.1743393991959.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.14.2";
2223
+ const version = "3.14.4";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2843,7 +2843,7 @@ function isNodeElement(elem) {
2843
2843
  const {
2844
2844
  log: log_log
2845
2845
  } = core_.VxeUI;
2846
- const log_version = `table v${"3.14.2"}`;
2846
+ const log_version = `table v${"3.14.4"}`;
2847
2847
  const warnLog = log_log.create('warn', log_version);
2848
2848
  const errLog = log_log.create('error', log_version);
2849
2849
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -5776,11 +5776,11 @@ function updateStyle($xeTable) {
5776
5776
  }
5777
5777
  if (xLeftCornerEl) {
5778
5778
  xLeftCornerEl.style.width = scrollbarXToTop ? `${osbWidth}px` : '';
5779
- xLeftCornerEl.style.display = scrollbarXToTop ? osbWidth && osbHeight ? 'block' : '' : '';
5779
+ xLeftCornerEl.style.display = scrollbarXToTop ? overflowX && osbHeight ? 'block' : '' : '';
5780
5780
  }
5781
5781
  if (xRightCornerEl) {
5782
5782
  xRightCornerEl.style.width = scrollbarXToTop ? '' : `${osbWidth}px`;
5783
- xRightCornerEl.style.display = scrollbarXToTop ? '' : osbWidth && osbHeight ? 'block' : '';
5783
+ xRightCornerEl.style.display = scrollbarXToTop ? '' : overflowX && osbHeight ? 'block' : '';
5784
5784
  }
5785
5785
  const scrollYVirtualEl = $xeTable.$refs.refScrollYVirtualElem;
5786
5786
  if (scrollYVirtualEl) {
@@ -5791,7 +5791,7 @@ function updateStyle($xeTable) {
5791
5791
  const yTopCornerEl = $xeTable.$refs.refScrollYTopCornerElem;
5792
5792
  if (yTopCornerEl) {
5793
5793
  yTopCornerEl.style.height = `${headerHeight}px`;
5794
- yTopCornerEl.style.display = headerHeight ? 'block' : '';
5794
+ yTopCornerEl.style.display = overflowY && headerHeight ? 'block' : '';
5795
5795
  }
5796
5796
  const yWrapperEl = $xeTable.$refs.refScrollYWrapperElem;
5797
5797
  if (yWrapperEl) {
@@ -5802,7 +5802,7 @@ function updateStyle($xeTable) {
5802
5802
  if (yBottomCornerEl) {
5803
5803
  yBottomCornerEl.style.height = `${footerHeight}px`;
5804
5804
  yBottomCornerEl.style.top = `${headerHeight + bodyHeight}px`;
5805
- yBottomCornerEl.style.display = footerHeight ? 'block' : '';
5805
+ yBottomCornerEl.style.display = overflowY && footerHeight ? 'block' : '';
5806
5806
  }
5807
5807
  const rowExpandEl = $xeTable.$refs.refRowExpandElem;
5808
5808
  if (rowExpandEl) {
@@ -11140,32 +11140,38 @@ const Methods = {
11140
11140
  */
11141
11141
  handleGlobalKeydownEvent(evnt) {
11142
11142
  const $xeTable = this;
11143
+ const props = $xeTable;
11143
11144
  const internalData = $xeTable;
11145
+ const reactData = $xeTable;
11144
11146
  const $xeGrid = $xeTable.$xeGrid;
11145
11147
  // 该行为只对当前激活的表格有效
11146
- if (this.isActivated) {
11147
- this.preventEvent(evnt, 'event.keydown', null, () => {
11148
- const {
11149
- afterFullData
11150
- } = internalData;
11148
+ if (internalData.isActivated) {
11149
+ $xeTable.preventEvent(evnt, 'event.keydown', null, () => {
11151
11150
  const {
11152
- filterStore,
11153
- isCtxMenu,
11154
- ctxMenuStore,
11155
- editStore,
11156
- editOpts,
11157
- editConfig,
11158
11151
  mouseConfig,
11159
- mouseOpts,
11160
11152
  keyboardConfig,
11161
- keyboardOpts,
11162
11153
  treeConfig,
11163
- treeOpts,
11154
+ editConfig,
11164
11155
  highlightCurrentRow,
11165
- currentRow,
11166
- bodyCtxMenu,
11167
- rowOpts
11168
- } = this;
11156
+ highlightCurrentColumn
11157
+ } = props;
11158
+ const {
11159
+ ctxMenuStore,
11160
+ editStore,
11161
+ currentRow
11162
+ } = reactData;
11163
+ const {
11164
+ afterFullData
11165
+ } = internalData;
11166
+ const isMenu = $xeTable.computeIsMenu;
11167
+ const bodyMenu = $xeTable.computeBodyMenu;
11168
+ const keyboardOpts = $xeTable.computeKeyboardOpts;
11169
+ const mouseOpts = $xeTable.computeMouseOpts;
11170
+ const editOpts = $xeTable.computeEditOpts;
11171
+ const treeOpts = $xeTable.computeTreeOpts;
11172
+ const menuList = $xeTable.computeMenuList;
11173
+ const rowOpts = $xeTable.computeRowOpts;
11174
+ const columnOpts = $xeTable.computeColumnOpts;
11169
11175
  const {
11170
11176
  selected,
11171
11177
  actived
@@ -11190,33 +11196,44 @@ const Methods = {
11190
11196
  const hasShiftKey = evnt.shiftKey;
11191
11197
  const hasAltKey = evnt.altKey;
11192
11198
  const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow;
11193
- const operCtxMenu = isCtxMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow);
11199
+ const operCtxMenu = isMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow);
11194
11200
  const isEditStatus = isEnableConf(editConfig) && actived.column && actived.row;
11195
11201
  const childrenField = treeOpts.children || treeOpts.childrenField;
11196
11202
  const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
11197
- if (filterStore.visible) {
11198
- if (isEsc) {
11199
- this.closeFilter();
11200
- }
11201
- return;
11202
- }
11203
11203
  if (operCtxMenu) {
11204
11204
  // 如果配置了右键菜单; 支持方向键操作、回车
11205
11205
  evnt.preventDefault();
11206
11206
  if (ctxMenuStore.showChild && hasChildrenList(ctxMenuStore.selected)) {
11207
- this.moveCtxMenu(evnt, keyCode, ctxMenuStore, 'selectChild', 37, false, ctxMenuStore.selected.children);
11207
+ $xeTable.moveCtxMenu(evnt, ctxMenuStore, 'selectChild', isLeftArrow, false, ctxMenuStore.selected.children);
11208
11208
  } else {
11209
- this.moveCtxMenu(evnt, keyCode, ctxMenuStore, 'selected', 39, true, this.ctxMenuList);
11209
+ $xeTable.moveCtxMenu(evnt, ctxMenuStore, 'selected', isRightArrow, true, menuList);
11210
+ }
11211
+ } else if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKeyboardCellAreaEvent) {
11212
+ $xeTable.handleKeyboardCellAreaEvent(evnt);
11213
+ } else if (isEsc) {
11214
+ // 如果按下了 Esc 键,关闭快捷菜单、筛选
11215
+ if ($xeTable.closeMenu) {
11216
+ $xeTable.closeMenu();
11217
+ }
11218
+ $xeTable.closeFilter();
11219
+ if (keyboardConfig && keyboardOpts.isEsc) {
11220
+ // 如果是激活编辑状态,则取消编辑
11221
+ if (actived.row) {
11222
+ const params = actived.args;
11223
+ $xeTable.handleClearEdit(evnt);
11224
+ // 如果配置了选中功能,则为选中状态
11225
+ if (mouseOpts.selected) {
11226
+ $xeTable.$nextTick(() => $xeTable.handleSelected(params, evnt));
11227
+ }
11228
+ }
11210
11229
  }
11211
- } else if (keyboardConfig && mouseConfig && mouseOpts.area && this.handleKeyboardCellAreaEvent) {
11212
- this.handleKeyboardCellAreaEvent(evnt);
11213
11230
  } else if (keyboardConfig && isSpacebar && keyboardOpts.isChecked && selected.row && selected.column && (selected.column.type === 'checkbox' || selected.column.type === 'radio')) {
11214
11231
  // 空格键支持选中复选框
11215
11232
  evnt.preventDefault();
11216
11233
  if (selected.column.type === 'checkbox') {
11217
- this.handleToggleCheckRowEvent(evnt, selected.args);
11234
+ $xeTable.handleToggleCheckRowEvent(evnt, selected.args);
11218
11235
  } else {
11219
- this.triggerRadioRowEvent(evnt, selected.args);
11236
+ $xeTable.triggerRadioRowEvent(evnt, selected.args);
11220
11237
  }
11221
11238
  } else if (isF2 && isEnableConf(editConfig)) {
11222
11239
  if (!isEditStatus) {
@@ -11224,12 +11241,12 @@ const Methods = {
11224
11241
  if (selected.row && selected.column) {
11225
11242
  evnt.stopPropagation();
11226
11243
  evnt.preventDefault();
11227
- this.handleEdit(selected.args, evnt);
11244
+ $xeTable.handleEdit(selected.args, evnt);
11228
11245
  }
11229
11246
  }
11230
11247
  } else if (isContextMenu) {
11231
11248
  // 如果按下上下文键
11232
- internalData._keyCtx = selected.row && selected.column && bodyCtxMenu.length;
11249
+ internalData._keyCtx = selected.row && selected.column && bodyMenu.length;
11233
11250
  clearTimeout(internalData.keyCtxTimeout);
11234
11251
  internalData.keyCtxTimeout = setTimeout(() => {
11235
11252
  internalData._keyCtx = false;
@@ -11245,10 +11262,10 @@ const Methods = {
11245
11262
  // 如果是激活编辑状态,则取消编辑
11246
11263
  if (actived.row) {
11247
11264
  const params = actived.args;
11248
- this.handleClearEdit(evnt);
11265
+ $xeTable.handleClearEdit(evnt);
11249
11266
  // 如果配置了选中功能,则为选中状态
11250
11267
  if (mouseConfig && mouseOpts.selected) {
11251
- this.$nextTick(() => this.handleSelected(params, evnt));
11268
+ $xeTable.$nextTick(() => $xeTable.handleSelected(params, evnt));
11252
11269
  }
11253
11270
  }
11254
11271
  } else {
@@ -11257,13 +11274,13 @@ const Methods = {
11257
11274
  const activeParams = selected.row ? selected.args : actived.args;
11258
11275
  if (hasShiftKey) {
11259
11276
  if (keyboardOpts.enterToTab) {
11260
- this.moveTabSelected(activeParams, hasShiftKey, evnt);
11277
+ $xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
11261
11278
  } else {
11262
- this.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
11279
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
11263
11280
  }
11264
11281
  } else {
11265
11282
  if (keyboardOpts.enterToTab) {
11266
- this.moveTabSelected(activeParams, hasShiftKey, evnt);
11283
+ $xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
11267
11284
  } else {
11268
11285
  const activeRow = selected.row || actived.row;
11269
11286
  const activeColumn = selected.column || actived.column;
@@ -11296,7 +11313,7 @@ const Methods = {
11296
11313
  return;
11297
11314
  }
11298
11315
  }
11299
- this.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
11316
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
11300
11317
  if (enterMethod) {
11301
11318
  enterMethod(etrParams);
11302
11319
  }
@@ -11310,26 +11327,37 @@ const Methods = {
11310
11327
  evnt.preventDefault();
11311
11328
  const targetRow = childrens[0];
11312
11329
  const params = {
11313
- $table: this,
11314
- row: targetRow
11330
+ $table: $xeTable,
11331
+ row: targetRow,
11332
+ rowIndex: $xeTable.getRowIndex(targetRow),
11333
+ $rowIndex: $xeTable.getVMRowIndex(targetRow)
11315
11334
  };
11316
- this.setTreeExpand(currentRow, true).then(() => this.scrollToRow(targetRow)).then(() => this.triggerCurrentRowEvent(evnt, params));
11335
+ $xeTable.setTreeExpand(currentRow, true).then(() => $xeTable.scrollToRow(targetRow)).then(() => $xeTable.triggerCurrentRowEvent(evnt, params));
11317
11336
  }
11318
11337
  }
11319
11338
  }
11320
11339
  } else if (operArrow && keyboardConfig && keyboardOpts.isArrow) {
11321
11340
  if (!isEditStatus) {
11322
11341
  // 如果按下了方向键
11323
- if (selected.row && selected.column) {
11342
+ if (mouseOpts.selected && selected.row && selected.column) {
11324
11343
  $xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
11344
+ } else {
11345
+ // 当前行按键上下移动
11346
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
11347
+ $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
11348
+ }
11349
+ // 当前行按键左右移动
11350
+ if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
11351
+ $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
11352
+ }
11325
11353
  }
11326
11354
  }
11327
11355
  } else if (isTab && keyboardConfig && keyboardOpts.isTab) {
11328
11356
  // 如果按下了 Tab 键切换
11329
11357
  if (selected.row || selected.column) {
11330
- this.moveTabSelected(selected.args, hasShiftKey, evnt);
11358
+ $xeTable.moveTabSelected(selected.args, hasShiftKey, evnt);
11331
11359
  } else if (actived.row || actived.column) {
11332
- this.moveTabSelected(actived.args, hasShiftKey, evnt);
11360
+ $xeTable.moveTabSelected(actived.args, hasShiftKey, evnt);
11333
11361
  }
11334
11362
  } else if (keyboardConfig && keyboardOpts.isDel && hasDeleteKey && isEnableConf(editConfig) && (selected.row || selected.column)) {
11335
11363
  // 如果是删除键
@@ -11339,10 +11367,10 @@ const Methods = {
11339
11367
  } = keyboardOpts;
11340
11368
  const params = {
11341
11369
  row: selected.row,
11342
- rowIndex: this.getRowIndex(selected.row),
11370
+ rowIndex: $xeTable.getRowIndex(selected.row),
11343
11371
  column: selected.column,
11344
- columnIndex: this.getColumnIndex(selected.column),
11345
- $table: this,
11372
+ columnIndex: $xeTable.getColumnIndex(selected.column),
11373
+ $table: $xeTable,
11346
11374
  $grid: $xeGrid
11347
11375
  };
11348
11376
  // 是否被禁用
@@ -11353,8 +11381,8 @@ const Methods = {
11353
11381
  setCellValue(selected.row, selected.column, null);
11354
11382
  }
11355
11383
  // 如果按下 del 键,更新表尾数据
11356
- this.updateFooter();
11357
- this.emitEvent('cell-delete-value', params, evnt);
11384
+ $xeTable.updateFooter();
11385
+ $xeTable.dispatchEvent('cell-delete-value', params, evnt);
11358
11386
  }
11359
11387
  }
11360
11388
  } else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && isEnableConf(editConfig) && (selected.row || selected.column)) {
@@ -11367,10 +11395,10 @@ const Methods = {
11367
11395
  if (keyboardOpts.isDel && isEnableConf(editConfig) && (selected.row || selected.column)) {
11368
11396
  const params = {
11369
11397
  row: selected.row,
11370
- rowIndex: this.getRowIndex(selected.row),
11398
+ rowIndex: $xeTable.getRowIndex(selected.row),
11371
11399
  column: selected.column,
11372
- columnIndex: this.getColumnIndex(selected.column),
11373
- $table: this,
11400
+ columnIndex: $xeTable.getColumnIndex(selected.column),
11401
+ $table: $xeTable,
11374
11402
  $grid: $xeGrid
11375
11403
  };
11376
11404
  // 是否被禁用
@@ -11382,9 +11410,9 @@ const Methods = {
11382
11410
  if (editMode !== 'insert') {
11383
11411
  setCellValue(selected.row, selected.column, null);
11384
11412
  }
11385
- this.handleEdit(selected.args, evnt);
11413
+ $xeTable.handleEdit(selected.args, evnt);
11386
11414
  }
11387
- this.emitEvent('cell-backspace-value', params, evnt);
11415
+ $xeTable.dispatchEvent('cell-backspace-value', params, evnt);
11388
11416
  }
11389
11417
  }
11390
11418
  }
@@ -11392,19 +11420,19 @@ const Methods = {
11392
11420
  // 如果树形表格回退键关闭当前行返回父节点
11393
11421
  const {
11394
11422
  parent: parentRow
11395
- } = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(this.afterTreeFullData, item => item === currentRow, {
11423
+ } = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findTree(internalData.afterTreeFullData, item => item === currentRow, {
11396
11424
  children: childrenField
11397
11425
  });
11398
11426
  if (parentRow) {
11399
11427
  evnt.preventDefault();
11400
11428
  const params = {
11401
11429
  row: parentRow,
11402
- rowIndex: this.getRowIndex(parentRow),
11403
- $rowIndex: this.getVMRowIndex(parentRow),
11404
- $table: this,
11430
+ rowIndex: $xeTable.getRowIndex(parentRow),
11431
+ $rowIndex: $xeTable.getVMRowIndex(parentRow),
11432
+ $table: $xeTable,
11405
11433
  $grid: $xeGrid
11406
11434
  };
11407
- this.setTreeExpand(parentRow, false).then(() => this.scrollToRow(parentRow)).then(() => this.triggerCurrentRowEvent(evnt, params));
11435
+ $xeTable.setTreeExpand(parentRow, false).then(() => $xeTable.scrollToRow(parentRow)).then(() => $xeTable.triggerCurrentRowEvent(evnt, params));
11408
11436
  }
11409
11437
  } else if (keyboardConfig && keyboardOpts.isEdit && !hasCtrlKey && !hasMetaKey && (isSpacebar || keyCode >= 48 && keyCode <= 57 || keyCode >= 65 && keyCode <= 90 || keyCode >= 96 && keyCode <= 111 || keyCode >= 186 && keyCode <= 192 || keyCode >= 219 && keyCode <= 222)) {
11410
11438
  const {
@@ -11419,10 +11447,10 @@ const Methods = {
11419
11447
  const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
11420
11448
  const params = {
11421
11449
  row: selected.row,
11422
- rowIndex: this.getRowIndex(selected.row),
11450
+ rowIndex: $xeTable.getRowIndex(selected.row),
11423
11451
  column: selected.column,
11424
- columnIndex: this.getColumnIndex(selected.column),
11425
- $table: this,
11452
+ columnIndex: $xeTable.getColumnIndex(selected.column),
11453
+ $table: $xeTable,
11426
11454
  $grid: $xeGrid
11427
11455
  };
11428
11456
  if (!beforeEditMethod || beforeEditMethod(params)) {
@@ -11430,12 +11458,12 @@ const Methods = {
11430
11458
  editMethod(params);
11431
11459
  } else {
11432
11460
  setCellValue(selected.row, selected.column, null);
11433
- this.handleEdit(selected.args, evnt);
11461
+ $xeTable.handleEdit(selected.args, evnt);
11434
11462
  }
11435
11463
  }
11436
11464
  }
11437
11465
  }
11438
- this.emitEvent('keydown', {}, evnt);
11466
+ $xeTable.dispatchEvent('keydown', {}, evnt);
11439
11467
  });
11440
11468
  }
11441
11469
  },
@@ -15340,6 +15368,7 @@ const Methods = {
15340
15368
  elemStore,
15341
15369
  fullColumnIdData
15342
15370
  } = internalData;
15371
+ const mouseOpts = $xeTable.computeMouseOpts;
15343
15372
  const tableBody = $xeTable.$refs.refTableBody;
15344
15373
  const tableBodyElem = tableBody ? tableBody.$el : null;
15345
15374
  if (tableBodyElem) {
@@ -15398,6 +15427,9 @@ const Methods = {
15398
15427
  if (scrollXSpaceEl) {
15399
15428
  scrollXSpaceEl.style.width = `${ySpaceWidth}px`;
15400
15429
  }
15430
+ if (isScrollXBig && mouseOpts.area) {
15431
+ errLog('vxe.error.notProp', ['mouse-config.area']);
15432
+ }
15401
15433
  $xeTable.$nextTick(() => {
15402
15434
  updateStyle($xeTable);
15403
15435
  });
@@ -15433,6 +15465,7 @@ const Methods = {
15433
15465
  const {
15434
15466
  startIndex
15435
15467
  } = scrollYStore;
15468
+ const mouseOpts = $xeTable.computeMouseOpts;
15436
15469
  const expandOpts = $xeTable.computeExpandOpts;
15437
15470
  const rowOpts = $xeTable.computeRowOpts;
15438
15471
  const cellOpts = $xeTable.computeCellOpts;
@@ -15513,6 +15546,9 @@ const Methods = {
15513
15546
  reactData.scrollYTop = scrollYTop;
15514
15547
  reactData.scrollYHeight = scrollYHeight;
15515
15548
  reactData.isScrollYBig = isScrollYBig;
15549
+ if (isScrollYBig && mouseOpts.area) {
15550
+ errLog('vxe.error.notProp', ['mouse-config.area']);
15551
+ }
15516
15552
  return $xeTable.$nextTick().then(() => {
15517
15553
  updateStyle($xeTable);
15518
15554
  });
@@ -20774,7 +20810,9 @@ const {
20774
20810
 
20775
20811
 
20776
20812
  const {
20777
- menus: mixin_menus
20813
+ menus: mixin_menus,
20814
+ globalEvents: mixin_globalEvents,
20815
+ GLOBAL_EVENT_KEYS
20778
20816
  } = core_.VxeUI;
20779
20817
  /* harmony default export */ var menu_mixin = ({
20780
20818
  methods: {
@@ -20791,17 +20829,18 @@ const {
20791
20829
  return this.$nextTick();
20792
20830
  },
20793
20831
  // 处理菜单的移动
20794
- moveCtxMenu(evnt, keyCode, ctxMenuStore, property, operKey, operRest, menuList) {
20832
+ moveCtxMenu(evnt, ctxMenuStore, property, hasOper, operRest, menuList) {
20833
+ const $xeTable = this;
20795
20834
  let selectItem;
20796
20835
  const selectIndex = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(menuList, item => ctxMenuStore[property] === item);
20797
- if (keyCode === operKey) {
20836
+ if (hasOper) {
20798
20837
  if (operRest && hasChildrenList(ctxMenuStore.selected)) {
20799
20838
  ctxMenuStore.showChild = true;
20800
20839
  } else {
20801
20840
  ctxMenuStore.showChild = false;
20802
20841
  ctxMenuStore.selectChild = null;
20803
20842
  }
20804
- } else if (keyCode === 38) {
20843
+ } else if (mixin_globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP)) {
20805
20844
  for (let len = selectIndex - 1; len >= 0; len--) {
20806
20845
  if (menuList[len].visible !== false) {
20807
20846
  selectItem = menuList[len];
@@ -20809,7 +20848,7 @@ const {
20809
20848
  }
20810
20849
  }
20811
20850
  ctxMenuStore[property] = selectItem || menuList[menuList.length - 1];
20812
- } else if (keyCode === 40) {
20851
+ } else if (mixin_globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN)) {
20813
20852
  for (let index = selectIndex + 1; index < menuList.length; index++) {
20814
20853
  if (menuList[index].visible !== false) {
20815
20854
  selectItem = menuList[index];
@@ -20817,8 +20856,8 @@ const {
20817
20856
  }
20818
20857
  }
20819
20858
  ctxMenuStore[property] = selectItem || menuList[0];
20820
- } else if (ctxMenuStore[property] && (keyCode === 13 || keyCode === 32)) {
20821
- this.ctxMenuLinkEvent(evnt, ctxMenuStore[property]);
20859
+ } else if (ctxMenuStore[property] && (mixin_globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER) || mixin_globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.SPACEBAR))) {
20860
+ $xeTable.ctxMenuLinkEvent(evnt, ctxMenuStore[property]);
20822
20861
  }
20823
20862
  },
20824
20863
  /**
@@ -24613,28 +24652,47 @@ function handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRigh
24613
24652
  highlightCurrentColumn
24614
24653
  } = props;
24615
24654
  const rowOpts = $xeTable.computeRowOpts;
24655
+ const currentRowOpts = $xeTable.computeCurrentRowOpts;
24616
24656
  const columnOpts = $xeTable.computeColumnOpts;
24617
- handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
24618
- // 当前行按键上下移动
24619
- if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
24620
- $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
24657
+ const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
24658
+ const params = handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
24659
+ if (rowOpts.isCurrent || highlightCurrentRow) {
24660
+ if (currentRowOpts.isFollowSelected) {
24661
+ $xeTable.triggerCurrentRowEvent(evnt, params);
24662
+ } else {
24663
+ // 当前行按键上下移动
24664
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
24665
+ $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
24666
+ }
24667
+ }
24621
24668
  }
24622
- // 当前行按键左右移动
24623
- if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
24624
- $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
24669
+ if (columnOpts.isCurrent || highlightCurrentColumn) {
24670
+ if (currentColumnOpts.isFollowSelected) {
24671
+ $xeTable.triggerCurrentColumnEvent(evnt, params);
24672
+ } else {
24673
+ // 当前行按键左右移动
24674
+ if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
24675
+ $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
24676
+ }
24677
+ }
24625
24678
  }
24626
24679
  },
24627
24680
  moveEnterSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
24628
24681
  const $xeTable = this;
24682
+ const props = $xeTable;
24683
+ const {
24684
+ highlightCurrentRow,
24685
+ highlightCurrentColumn
24686
+ } = props;
24629
24687
  const rowOpts = $xeTable.computeRowOpts;
24630
24688
  const currentRowOpts = $xeTable.computeCurrentRowOpts;
24631
24689
  const columnOpts = $xeTable.computeColumnOpts;
24632
24690
  const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
24633
24691
  const params = handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
24634
- if (rowOpts.isCurrent && currentRowOpts.isFollowSelected) {
24692
+ if ((rowOpts.isCurrent || highlightCurrentRow) && currentRowOpts.isFollowSelected) {
24635
24693
  $xeTable.triggerCurrentRowEvent(evnt, params);
24636
24694
  }
24637
- if (columnOpts.isCurrent && currentColumnOpts.isFollowSelected) {
24695
+ if ((columnOpts.isCurrent || highlightCurrentColumn) && currentColumnOpts.isFollowSelected) {
24638
24696
  $xeTable.triggerCurrentColumnEvent(evnt, params);
24639
24697
  }
24640
24698
  },
@@ -27206,12 +27264,15 @@ function renderBody(h, $xeTable) {
27206
27264
  exportConfig,
27207
27265
  importConfig,
27208
27266
  treeConfig,
27209
- showOverflow
27267
+ showOverflow,
27268
+ highlightCurrentRow,
27269
+ highlightCurrentColumn
27210
27270
  } = props;
27211
27271
  const {
27212
27272
  scrollXStore,
27213
27273
  scrollYStore
27214
27274
  } = internalData;
27275
+ const columnOpts = $xeTable.computeColumnOpts;
27215
27276
  const editOpts = $xeTable.computeEditOpts;
27216
27277
  const treeOpts = $xeTable.computeTreeOpts;
27217
27278
  const radioOpts = $xeTable.computeRadioOpts;
@@ -27222,6 +27283,10 @@ function renderBody(h, $xeTable) {
27222
27283
  const mouseOpts = $xeTable.computeMouseOpts;
27223
27284
  const exportOpts = $xeTable.computeExportOpts;
27224
27285
  const importOpts = $xeTable.computeImportOpts;
27286
+ const currentRowOpts = $xeTable.computeCurrentRowOpts;
27287
+ const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
27288
+ const virtualXOpts = $xeTable.computeVirtualXOpts;
27289
+ const virtualYOpts = $xeTable.computeVirtualYOpts;
27225
27290
  if (props.rowId) {
27226
27291
  warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField']);
27227
27292
  }
@@ -27331,29 +27396,49 @@ function renderBody(h, $xeTable) {
27331
27396
  warnLog('vxe.error.errProp', [`table.context-menu=${this.contextMenu}`, 'table.context-menu={}']);
27332
27397
  }
27333
27398
  }
27334
- if (this.menuConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.menuConfig)) {
27335
- warnLog('vxe.error.errProp', [`table.menu-config=${this.menuConfig}`, 'table.menu-config={}']);
27399
+ if (props.menuConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.menuConfig)) {
27400
+ warnLog('vxe.error.errProp', [`table.menu-config=${props.menuConfig}`, 'table.menu-config={}']);
27401
+ }
27402
+ if (props.exportConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.exportConfig)) {
27403
+ warnLog('vxe.error.errProp', [`table.export-config=${props.exportConfig}`, 'table.export-config={}']);
27404
+ }
27405
+ if (props.importConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.importConfig)) {
27406
+ warnLog('vxe.error.errProp', [`table.import-config=${props.importConfig}`, 'table.import-config={}']);
27407
+ }
27408
+ if (props.printConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.printConfig)) {
27409
+ warnLog('vxe.error.errProp', [`table.print-config=${props.printConfig}`, 'table.print-config={}']);
27410
+ }
27411
+ if (props.treeConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.treeConfig)) {
27412
+ warnLog('vxe.error.errProp', [`table.tree-config=${props.treeConfig}`, 'table.tree-config={}']);
27336
27413
  }
27337
- if (this.exportConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.exportConfig)) {
27338
- warnLog('vxe.error.errProp', [`table.export-config=${this.exportConfig}`, 'table.export-config={}']);
27414
+ if (props.customConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.customConfig)) {
27415
+ warnLog('vxe.error.errProp', [`table.custom-config=${props.customConfig}`, 'table.custom-config={}']);
27339
27416
  }
27340
- if (this.importConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.importConfig)) {
27341
- warnLog('vxe.error.errProp', [`table.import-config=${this.importConfig}`, 'table.import-config={}']);
27417
+ if (props.editConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.editConfig)) {
27418
+ warnLog('vxe.error.errProp', [`table.edit-config=${props.editConfig}`, 'table.edit-config={}']);
27342
27419
  }
27343
- if (this.printConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.printConfig)) {
27344
- warnLog('vxe.error.errProp', [`table.print-config=${this.printConfig}`, 'table.print-config={}']);
27420
+ if (props.emptyRender && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.emptyRender)) {
27421
+ warnLog('vxe.error.errProp', [`table.empty-render=${props.emptyRender}`, 'table.empty-render={}']);
27345
27422
  }
27346
- if (this.treeConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.treeConfig)) {
27347
- warnLog('vxe.error.errProp', [`table.tree-config=${this.treeConfig}`, 'table.tree-config={}']);
27423
+ if ((rowOpts.isCurrent || highlightCurrentRow) && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentRowOpts.isFollowSelected)) {
27424
+ warnLog('vxe.error.notConflictProp', ['row-config.isCurrent', 'current-row-config.isFollowSelected']);
27348
27425
  }
27349
- if (this.customConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.customConfig)) {
27350
- warnLog('vxe.error.errProp', [`table.custom-config=${this.customConfig}`, 'table.custom-config={}']);
27426
+ if ((columnOpts.isCurrent || highlightCurrentColumn) && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentColumnOpts.isFollowSelected)) {
27427
+ warnLog('vxe.error.notConflictProp', ['column-config.isCurrent', 'current-column-config.isFollowSelected']);
27351
27428
  }
27352
- if (this.editConfig && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.editConfig)) {
27353
- warnLog('vxe.error.errProp', [`table.edit-config=${this.editConfig}`, 'table.edit-config={}']);
27429
+ // 如果不支持虚拟滚动
27430
+ if (props.spanMethod) {
27431
+ if (virtualXOpts.enabled) {
27432
+ warnLog('vxe.error.notConflictProp', ['span-method', 'virtual-x-config.enabled=false']);
27433
+ }
27434
+ if (virtualYOpts.enabled) {
27435
+ warnLog('vxe.error.notConflictProp', ['span-method', 'virtual-y-config.enabled=false']);
27436
+ }
27354
27437
  }
27355
- if (this.emptyRender && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(this.emptyRender)) {
27356
- warnLog('vxe.error.errProp', [`table.empty-render=${this.emptyRender}`, 'table.empty-render={}']);
27438
+ if (props.footerSpanMethod) {
27439
+ if (virtualXOpts.enabled) {
27440
+ warnLog('vxe.error.notConflictProp', ['footer-span-method', 'virtual-x-config.enabled=false']);
27441
+ }
27357
27442
  }
27358
27443
  // 检查是否有安装需要的模块
27359
27444
  if (props.editConfig && !$xeTable.insert) {
@@ -31484,6 +31569,7 @@ const Toolbar = VxeToolbar;
31484
31569
  scrollErrProp: '启用虚拟滚动后不支持该参数 "{0}"',
31485
31570
  errConflicts: '参数 "{0}" 与 "{1}" 有冲突',
31486
31571
  notSupportProp: '当启用参数 "{0}" 时不支持 "{1}",应该为 "{2}",否则将会出现错误',
31572
+ notConflictProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会存在功能冲突',
31487
31573
  unableInsert: '无法插入到指定位置,请检查参数是否正确',
31488
31574
  useErr: '安装 "{0}" 模块时发生错误,可能顺序不正确,依赖的模块需要在 Table 之前安装',
31489
31575
  barUnableLink: '工具栏无法关联表格',