vxe-table 3.11.17 → 3.11.18

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.
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.11.17";
2223
+ const version = "3.11.18";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2778,7 +2778,7 @@ function isNodeElement(elem) {
2778
2778
  const {
2779
2779
  log: log_log
2780
2780
  } = core_.VxeUI;
2781
- const log_version = `table v${"3.11.17"}`;
2781
+ const log_version = `table v${"3.11.18"}`;
2782
2782
  const warnLog = log_log.create('warn', log_version);
2783
2783
  const errLog = log_log.create('error', log_version);
2784
2784
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -8751,9 +8751,14 @@ const Methods = {
8751
8751
  * 全局键盘事件
8752
8752
  */
8753
8753
  handleGlobalKeydownEvent(evnt) {
8754
+ const $xeTable = this;
8755
+ const internalData = $xeTable;
8754
8756
  // 该行为只对当前激活的表格有效
8755
8757
  if (this.isActivated) {
8756
8758
  this.preventEvent(evnt, 'event.keydown', null, () => {
8759
+ const {
8760
+ afterFullData
8761
+ } = internalData;
8757
8762
  const {
8758
8763
  filterStore,
8759
8764
  isCtxMenu,
@@ -8841,6 +8846,11 @@ const Methods = {
8841
8846
  this._keyCtx = false;
8842
8847
  }, 1000);
8843
8848
  } else if (isEnter && !hasAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow)) {
8849
+ const {
8850
+ isLastEnterAppendRow,
8851
+ beforeEnterMethod,
8852
+ enterMethod
8853
+ } = keyboardOpts;
8844
8854
  // 退出选中
8845
8855
  if (hasCtrlKey) {
8846
8856
  // 如果是激活编辑状态,则取消编辑
@@ -8866,7 +8876,37 @@ const Methods = {
8866
8876
  if (keyboardOpts.enterToTab) {
8867
8877
  this.moveTabSelected(targetArgs, hasShiftKey, evnt);
8868
8878
  } else {
8869
- this.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt);
8879
+ const _rowIndex = $xeTable.getVTRowIndex(selected.row);
8880
+ const etrParams = {
8881
+ row: selected.row,
8882
+ rowIndex: $xeTable.getRowIndex(selected.row),
8883
+ $rowIndex: $xeTable.getVMRowIndex(selected.row),
8884
+ _rowIndex,
8885
+ column: selected.column,
8886
+ columnIndex: $xeTable.getColumnIndex(selected.column),
8887
+ $columnIndex: $xeTable.getVMColumnIndex(selected.column),
8888
+ _columnIndex: $xeTable.getVTColumnIndex(selected.column),
8889
+ $table: $xeTable
8890
+ };
8891
+ if (!beforeEnterMethod || beforeEnterMethod(etrParams) !== false) {
8892
+ // 最后一行按下回车键,自动追加一行
8893
+ if (isLastEnterAppendRow) {
8894
+ if (_rowIndex >= afterFullData.length - 1) {
8895
+ $xeTable.insertAt({}, -1).then(({
8896
+ row: newRow
8897
+ }) => {
8898
+ $xeTable.scrollToRow(newRow, selected.column);
8899
+ $xeTable.setSelectCell(newRow, selected.column);
8900
+ });
8901
+ $xeTable.dispatchEvent('enter-append-row', etrParams, evnt);
8902
+ return;
8903
+ }
8904
+ }
8905
+ this.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt);
8906
+ if (enterMethod) {
8907
+ enterMethod(etrParams);
8908
+ }
8909
+ }
8870
8910
  }
8871
8911
  }
8872
8912
  } else if (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
@@ -8929,6 +8969,7 @@ const Methods = {
8929
8969
  } else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && isEnableConf(editConfig) && (selected.row || selected.column)) {
8930
8970
  if (!isEditStatus) {
8931
8971
  const {
8972
+ editMode,
8932
8973
  backMethod
8933
8974
  } = keyboardOpts;
8934
8975
  // 如果是删除键
@@ -8946,7 +8987,10 @@ const Methods = {
8946
8987
  if (backMethod) {
8947
8988
  backMethod(params);
8948
8989
  } else {
8949
- setCellValue(selected.row, selected.column, null);
8990
+ // 追加方式与覆盖式
8991
+ if (editMode !== 'insert') {
8992
+ setCellValue(selected.row, selected.column, null);
8993
+ }
8950
8994
  this.handleEdit(selected.args, evnt);
8951
8995
  }
8952
8996
  this.emitEvent('cell-backspace-value', params, evnt);