vxe-table 4.12.0-beta.22 → 4.12.0-beta.24

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.
@@ -281,6 +281,38 @@ hooks.add('tableKeyboardModule', {
281
281
  }
282
282
  }
283
283
  };
284
+ const handleMoveSelected = (evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow) => {
285
+ const { afterFullData, visibleColumn } = internalData;
286
+ const params = Object.assign({}, args);
287
+ const _rowIndex = $xeTable.getVTRowIndex(params.row);
288
+ const _columnIndex = $xeTable.getVTColumnIndex(params.column);
289
+ evnt.preventDefault();
290
+ if (isUpArrow && _rowIndex > 0) {
291
+ // 移动到上一行
292
+ params.rowIndex = _rowIndex - 1;
293
+ params.row = afterFullData[params.rowIndex];
294
+ }
295
+ else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
296
+ // 移动到下一行
297
+ params.rowIndex = _rowIndex + 1;
298
+ params.row = afterFullData[params.rowIndex];
299
+ }
300
+ else if (isLeftArrow && _columnIndex) {
301
+ // 移动到左侧单元格
302
+ params.columnIndex = _columnIndex - 1;
303
+ params.column = visibleColumn[params.columnIndex];
304
+ }
305
+ else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
306
+ // 移动到右侧单元格
307
+ params.columnIndex = _columnIndex + 1;
308
+ params.column = visibleColumn[params.columnIndex];
309
+ }
310
+ $xeTable.scrollToRow(params.row, params.column).then(() => {
311
+ params.cell = $xeTable.getCellElement(params.row, params.column);
312
+ $xeTable.handleSelected(params, evnt);
313
+ });
314
+ return params;
315
+ };
284
316
  const keyboardMethods = {
285
317
  // 处理 Tab 键移动
286
318
  moveTabSelected(args, isLeft, evnt) {
@@ -437,46 +469,36 @@ hooks.add('tableKeyboardModule', {
437
469
  }
438
470
  },
439
471
  // 处理可编辑方向键移动
440
- moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
441
- const { afterFullData, visibleColumn } = internalData;
472
+ moveArrowSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
473
+ const { highlightCurrentRow, highlightCurrentColumn } = props;
442
474
  const rowOpts = computeRowOpts.value;
443
- const currentRowOpts = computeCurrentRowOpts.value;
444
475
  const columnOpts = computeColumnOpts.value;
445
- const currentColumnOpts = computeCurrentColumnOpts.value;
446
- const params = Object.assign({}, args);
447
- const _rowIndex = $xeTable.getVTRowIndex(params.row);
448
- const _columnIndex = $xeTable.getVTColumnIndex(params.column);
449
- evnt.preventDefault();
450
- if (isUpArrow && _rowIndex > 0) {
451
- // 移动到上一行
452
- params.rowIndex = _rowIndex - 1;
453
- params.row = afterFullData[params.rowIndex];
454
- }
455
- else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
456
- // 移动到下一行
457
- params.rowIndex = _rowIndex + 1;
458
- params.row = afterFullData[params.rowIndex];
459
- }
460
- else if (isLeftArrow && _columnIndex) {
461
- // 移动到左侧单元格
462
- params.columnIndex = _columnIndex - 1;
463
- params.column = visibleColumn[params.columnIndex];
476
+ handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
477
+ // 当前行按键上下移动
478
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
479
+ $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
464
480
  }
465
- else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
466
- // 移动到右侧单元格
467
- params.columnIndex = _columnIndex + 1;
468
- params.column = visibleColumn[params.columnIndex];
481
+ // 当前行按键左右移动
482
+ if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
483
+ $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
469
484
  }
470
- if (rowOpts.isCurrent && currentRowOpts.isFollowSelected) {
485
+ },
486
+ moveEnterSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
487
+ const rowOpts = computeRowOpts.value;
488
+ const currentRowOpts = computeCurrentRowOpts.value;
489
+ const columnOpts = computeColumnOpts.value;
490
+ const currentColumnOpts = computeCurrentColumnOpts.value;
491
+ const params = handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
492
+ if ((rowOpts.isCurrent && currentRowOpts.isFollowSelected)) {
471
493
  $xeTable.triggerCurrentRowEvent(evnt, params);
472
494
  }
473
495
  if (columnOpts.isCurrent && currentColumnOpts.isFollowSelected) {
474
496
  $xeTable.triggerCurrentColumnEvent(evnt, params);
475
497
  }
476
- $xeTable.scrollToRow(params.row, params.column).then(() => {
477
- params.cell = $xeTable.getCellElement(params.row, params.column);
478
- $xeTable.handleSelected(params, evnt);
479
- });
498
+ },
499
+ // 已废弃,待删除
500
+ moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
501
+ handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
480
502
  },
481
503
  handleCellMousedownEvent
482
504
  };
@@ -6170,7 +6170,7 @@ export default defineComponent({
6170
6170
  // 该行为只对当前激活的表格有效
6171
6171
  if (internalData.isActivated) {
6172
6172
  tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, () => {
6173
- const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props;
6173
+ const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow } = props;
6174
6174
  const { ctxMenuStore, editStore, currentRow } = reactData;
6175
6175
  const { afterFullData } = internalData;
6176
6176
  const isMenu = computeIsMenu.value;
@@ -6181,7 +6181,6 @@ export default defineComponent({
6181
6181
  const treeOpts = computeTreeOpts.value;
6182
6182
  const menuList = computeMenuList.value;
6183
6183
  const rowOpts = computeRowOpts.value;
6184
- const columnOpts = computeColumnOpts.value;
6185
6184
  const { selected, actived } = editStore;
6186
6185
  const childrenField = treeOpts.children || treeOpts.childrenField;
6187
6186
  const keyCode = evnt.keyCode;
@@ -6288,7 +6287,7 @@ export default defineComponent({
6288
6287
  $xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
6289
6288
  }
6290
6289
  else {
6291
- $xeTable.moveSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
6290
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
6292
6291
  }
6293
6292
  }
6294
6293
  else {
@@ -6322,7 +6321,7 @@ export default defineComponent({
6322
6321
  return;
6323
6322
  }
6324
6323
  }
6325
- $xeTable.moveSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
6324
+ $xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
6326
6325
  if (enterMethod) {
6327
6326
  enterMethod(etrParams);
6328
6327
  }
@@ -6353,15 +6352,7 @@ export default defineComponent({
6353
6352
  if (!isEditStatus) {
6354
6353
  // 如果按下了方向键
6355
6354
  if (selected.row && selected.column) {
6356
- $xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
6357
- }
6358
- // 当前行按键上下移动
6359
- if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
6360
- $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
6361
- }
6362
- // 当前行按键左右移动
6363
- if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
6364
- $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
6355
+ $xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
6365
6356
  }
6366
6357
  }
6367
6358
  }
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 = "4.12.0-beta.22";
3
+ export const version = "4.12.0-beta.24";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
@@ -123,7 +123,7 @@ VxeUI.setConfig({
123
123
  // remote: false,
124
124
  // filterMethod: null,
125
125
  // destroyOnClose: false,
126
- isEvery: true,
126
+ // isEvery: false,
127
127
  showIcon: true
128
128
  },
129
129
  treeConfig: {
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${"4.12.0-beta.22"}`;
3
+ const version = `table v${"4.12.0-beta.24"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
package/lib/index.umd.js CHANGED
@@ -3138,7 +3138,7 @@ function eqEmptyValue(cellValue) {
3138
3138
  ;// ./packages/ui/index.ts
3139
3139
 
3140
3140
 
3141
- const version = "4.12.0-beta.22";
3141
+ const version = "4.12.0-beta.24";
3142
3142
  core_.VxeUI.version = version;
3143
3143
  core_.VxeUI.tableVersion = version;
3144
3144
  core_.VxeUI.setConfig({
@@ -3261,7 +3261,7 @@ core_.VxeUI.setConfig({
3261
3261
  // remote: false,
3262
3262
  // filterMethod: null,
3263
3263
  // destroyOnClose: false,
3264
- isEvery: true,
3264
+ // isEvery: false,
3265
3265
  showIcon: true
3266
3266
  },
3267
3267
  treeConfig: {
@@ -3587,7 +3587,7 @@ var esnext_iterator_some = __webpack_require__(7550);
3587
3587
  const {
3588
3588
  log: log_log
3589
3589
  } = core_.VxeUI;
3590
- const log_version = `table v${"4.12.0-beta.22"}`;
3590
+ const log_version = `table v${"4.12.0-beta.24"}`;
3591
3591
  const warnLog = log_log.create('warn', log_version);
3592
3592
  const errLog = log_log.create('error', log_version);
3593
3593
  ;// ./packages/table/src/columnInfo.ts
@@ -10993,7 +10993,7 @@ if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如
10993
10993
  if(mouseOpts.selected){(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(()=>$xeTable.handleSelected(params,evnt));}}}}dispatchEvent('keydown',{},evnt);dispatchEvent('keydown-end',{},evnt);});}};/**
10994
10994
  * 全局键盘事件
10995
10995
  */const handleGlobalKeydownEvent=evnt=>{// 该行为只对当前激活的表格有效
10996
- if(internalData.isActivated){tablePrivateMethods.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{ctxMenuStore,editStore,currentRow}=reactData;const{afterFullData}=internalData;const isMenu=computeIsMenu.value;const bodyMenu=computeBodyMenu.value;const keyboardOpts=computeKeyboardOpts.value;const mouseOpts=computeMouseOpts.value;const editOpts=computeEditOpts.value;const treeOpts=computeTreeOpts.value;const menuList=computeMenuList.value;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const{selected,actived}=editStore;const childrenField=treeOpts.children||treeOpts.childrenField;const keyCode=evnt.keyCode;const isEsc=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);const hasBackspaceKey=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.BACKSPACE);const isTab=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.TAB);const isEnter=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ENTER);const isSpacebar=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.SPACEBAR);const isLeftArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_LEFT);const isUpArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_UP);const isRightArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_RIGHT);const isDwArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_DOWN);const hasDeleteKey=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.DELETE);const isF2=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.F2);const isContextMenu=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.CONTEXT_MENU);const hasMetaKey=evnt.metaKey;const hasCtrlKey=evnt.ctrlKey;const hasShiftKey=evnt.shiftKey;const isAltKey=evnt.altKey;const operArrow=isLeftArrow||isUpArrow||isRightArrow||isDwArrow;const operCtxMenu=isMenu&&ctxMenuStore.visible&&(isEnter||isSpacebar||operArrow);const isEditStatus=isEnableConf(editConfig)&&actived.column&&actived.row;const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
10996
+ if(internalData.isActivated){tablePrivateMethods.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow}=props;const{ctxMenuStore,editStore,currentRow}=reactData;const{afterFullData}=internalData;const isMenu=computeIsMenu.value;const bodyMenu=computeBodyMenu.value;const keyboardOpts=computeKeyboardOpts.value;const mouseOpts=computeMouseOpts.value;const editOpts=computeEditOpts.value;const treeOpts=computeTreeOpts.value;const menuList=computeMenuList.value;const rowOpts=computeRowOpts.value;const{selected,actived}=editStore;const childrenField=treeOpts.children||treeOpts.childrenField;const keyCode=evnt.keyCode;const isEsc=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);const hasBackspaceKey=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.BACKSPACE);const isTab=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.TAB);const isEnter=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ENTER);const isSpacebar=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.SPACEBAR);const isLeftArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_LEFT);const isUpArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_UP);const isRightArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_RIGHT);const isDwArrow=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_DOWN);const hasDeleteKey=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.DELETE);const isF2=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.F2);const isContextMenu=table_globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.CONTEXT_MENU);const hasMetaKey=evnt.metaKey;const hasCtrlKey=evnt.ctrlKey;const hasShiftKey=evnt.shiftKey;const isAltKey=evnt.altKey;const operArrow=isLeftArrow||isUpArrow||isRightArrow||isDwArrow;const operCtxMenu=isMenu&&ctxMenuStore.visible&&(isEnter||isSpacebar||operArrow);const isEditStatus=isEnableConf(editConfig)&&actived.column&&actived.row;const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
10997
10997
  evnt.preventDefault();if(ctxMenuStore.showChild&&hasChildrenList(ctxMenuStore.selected)){$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selectChild',isLeftArrow,false,ctxMenuStore.selected.children);}else{$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selected',isRightArrow,true,menuList);}}else if(keyboardConfig&&mouseConfig&&mouseOpts.area&&$xeTable.handleKeyboardCellAreaEvent){$xeTable.handleKeyboardCellAreaEvent(evnt);}else if(isEsc){// 如果按下了 Esc 键,关闭快捷菜单、筛选
10998
10998
  if($xeTable.closeMenu){$xeTable.closeMenu();}tableMethods.closeFilter();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
10999
10999
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
@@ -11004,12 +11004,10 @@ internalData._keyCtx=selected.row&&selected.column&&bodyMenu.length;clearTimeout
11004
11004
  if(hasCtrlKey){// 如果是激活编辑状态,则取消编辑
11005
11005
  if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
11006
11006
  if(mouseOpts.selected){(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(()=>{$xeTable.handleSelected(params,evnt);});}}}else{// 如果是激活状态,退则出到上一行/下一行
11007
- if(selected.row||actived.row){const activeParams=selected.row?selected.args:actived.args;if(hasShiftKey){if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{$xeTable.moveSelected(activeParams,isLeftArrow,true,isRightArrow,false,evnt);}}else{if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{const activeRow=selected.row||actived.row;const activeColumn=selected.column||actived.column;const _rowIndex=$xeTable.getVTRowIndex(activeRow);const etrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex:$xeTable.getVTColumnIndex(activeColumn),$table:$xeTable};if(!beforeEnterMethod||beforeEnterMethod(etrParams)!==false){// 最后一行按下回车键,自动追加一行
11008
- if(isLastEnterAppendRow){if(_rowIndex>=afterFullData.length-1){$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,activeColumn);$xeTable.handleSelected({...activeParams,row:newRow},evnt);});$xeTable.dispatchEvent('enter-append-row',etrParams,evnt);return;}}$xeTable.moveSelected(activeParams,isLeftArrow,false,isRightArrow,true,evnt);if(enterMethod){enterMethod(etrParams);}}}}}else if(treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow){// 如果是树形表格当前行回车移动到子节点
11007
+ if(selected.row||actived.row){const activeParams=selected.row?selected.args:actived.args;if(hasShiftKey){if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{$xeTable.moveEnterSelected(activeParams,isLeftArrow,true,isRightArrow,false,evnt);}}else{if(keyboardOpts.enterToTab){$xeTable.moveTabSelected(activeParams,hasShiftKey,evnt);}else{const activeRow=selected.row||actived.row;const activeColumn=selected.column||actived.column;const _rowIndex=$xeTable.getVTRowIndex(activeRow);const etrParams={row:activeRow,rowIndex:$xeTable.getRowIndex(activeRow),$rowIndex:$xeTable.getVMRowIndex(activeRow),_rowIndex,column:activeColumn,columnIndex:$xeTable.getColumnIndex(activeColumn),$columnIndex:$xeTable.getVMColumnIndex(activeColumn),_columnIndex:$xeTable.getVTColumnIndex(activeColumn),$table:$xeTable};if(!beforeEnterMethod||beforeEnterMethod(etrParams)!==false){// 最后一行按下回车键,自动追加一行
11008
+ if(isLastEnterAppendRow){if(_rowIndex>=afterFullData.length-1){$xeTable.insertAt({},-1).then(({row:newRow})=>{$xeTable.scrollToRow(newRow,activeColumn);$xeTable.handleSelected({...activeParams,row:newRow},evnt);});$xeTable.dispatchEvent('enter-append-row',etrParams,evnt);return;}}$xeTable.moveEnterSelected(activeParams,isLeftArrow,false,isRightArrow,true,evnt);if(enterMethod){enterMethod(etrParams);}}}}}else if(treeConfig&&(rowOpts.isCurrent||highlightCurrentRow)&&currentRow){// 如果是树形表格当前行回车移动到子节点
11009
11009
  const childrens=currentRow[childrenField];if(childrens&&childrens.length){evnt.preventDefault();const targetRow=childrens[0];const params={$table:$xeTable,row:targetRow,rowIndex:tableMethods.getRowIndex(targetRow),$rowIndex:tableMethods.getVMRowIndex(targetRow)};tableMethods.setTreeExpand(currentRow,true).then(()=>tableMethods.scrollToRow(targetRow)).then(()=>tablePrivateMethods.triggerCurrentRowEvent(evnt,params));}}}}else if(operArrow&&keyboardConfig&&keyboardOpts.isArrow){if(!isEditStatus){// 如果按下了方向键
11010
- if(selected.row&&selected.column){$xeTable.moveSelected(selected.args,isLeftArrow,isUpArrow,isRightArrow,isDwArrow,evnt);}// 当前行按键上下移动
11011
- if((isUpArrow||isDwArrow)&&(rowOpts.isCurrent||highlightCurrentRow)){$xeTable.moveCurrentRow(isUpArrow,isDwArrow,evnt);}// 当前行按键左右移动
11012
- if((isLeftArrow||isRightArrow)&&(columnOpts.isCurrent||highlightCurrentColumn)){$xeTable.moveCurrentColumn(isLeftArrow,isRightArrow,evnt);}}}else if(isTab&&keyboardConfig&&keyboardOpts.isTab){// 如果按下了 Tab 键切换
11010
+ if(selected.row&&selected.column){$xeTable.moveArrowSelected(selected.args,isLeftArrow,isUpArrow,isRightArrow,isDwArrow,evnt);}}}else if(isTab&&keyboardConfig&&keyboardOpts.isTab){// 如果按下了 Tab 键切换
11013
11011
  if(selected.row||selected.column){$xeTable.moveTabSelected(selected.args,hasShiftKey,evnt);}else if(actived.row||actived.column){$xeTable.moveTabSelected(actived.args,hasShiftKey,evnt);}}else if(keyboardConfig&&keyboardOpts.isDel&&hasDeleteKey&&isEnableConf(editConfig)&&(selected.row||selected.column)){// 如果是删除键
11014
11012
  if(!isEditStatus){const{delMethod}=keyboardOpts;const params={row:selected.row,rowIndex:tableMethods.getRowIndex(selected.row),column:selected.column,columnIndex:tableMethods.getColumnIndex(selected.column),$table:$xeTable,$grid:$xeGrid};// 是否被禁用
11015
11013
  if(!beforeEditMethod||beforeEditMethod(params)){if(delMethod){delMethod(params);}else{setCellValue(selected.row,selected.column,null);}// 如果按下 del 键,更新表尾数据
@@ -15505,6 +15503,38 @@ keyboard_hook_hooks.add('tableKeyboardModule', {
15505
15503
  }
15506
15504
  }
15507
15505
  };
15506
+ const handleMoveSelected = (evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow) => {
15507
+ const {
15508
+ afterFullData,
15509
+ visibleColumn
15510
+ } = internalData;
15511
+ const params = Object.assign({}, args);
15512
+ const _rowIndex = $xeTable.getVTRowIndex(params.row);
15513
+ const _columnIndex = $xeTable.getVTColumnIndex(params.column);
15514
+ evnt.preventDefault();
15515
+ if (isUpArrow && _rowIndex > 0) {
15516
+ // 移动到上一行
15517
+ params.rowIndex = _rowIndex - 1;
15518
+ params.row = afterFullData[params.rowIndex];
15519
+ } else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
15520
+ // 移动到下一行
15521
+ params.rowIndex = _rowIndex + 1;
15522
+ params.row = afterFullData[params.rowIndex];
15523
+ } else if (isLeftArrow && _columnIndex) {
15524
+ // 移动到左侧单元格
15525
+ params.columnIndex = _columnIndex - 1;
15526
+ params.column = visibleColumn[params.columnIndex];
15527
+ } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
15528
+ // 移动到右侧单元格
15529
+ params.columnIndex = _columnIndex + 1;
15530
+ params.column = visibleColumn[params.columnIndex];
15531
+ }
15532
+ $xeTable.scrollToRow(params.row, params.column).then(() => {
15533
+ params.cell = $xeTable.getCellElement(params.row, params.column);
15534
+ $xeTable.handleSelected(params, evnt);
15535
+ });
15536
+ return params;
15537
+ };
15508
15538
  const keyboardMethods = {
15509
15539
  // 处理 Tab 键移动
15510
15540
  moveTabSelected(args, isLeft, evnt) {
@@ -15665,46 +15695,39 @@ keyboard_hook_hooks.add('tableKeyboardModule', {
15665
15695
  }
15666
15696
  },
15667
15697
  // 处理可编辑方向键移动
15668
- moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
15698
+ moveArrowSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
15669
15699
  const {
15670
- afterFullData,
15671
- visibleColumn
15672
- } = internalData;
15700
+ highlightCurrentRow,
15701
+ highlightCurrentColumn
15702
+ } = props;
15703
+ const rowOpts = computeRowOpts.value;
15704
+ const columnOpts = computeColumnOpts.value;
15705
+ handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
15706
+ // 当前行按键上下移动
15707
+ if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
15708
+ $xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
15709
+ }
15710
+ // 当前行按键左右移动
15711
+ if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
15712
+ $xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
15713
+ }
15714
+ },
15715
+ moveEnterSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
15673
15716
  const rowOpts = computeRowOpts.value;
15674
15717
  const currentRowOpts = computeCurrentRowOpts.value;
15675
15718
  const columnOpts = computeColumnOpts.value;
15676
15719
  const currentColumnOpts = computeCurrentColumnOpts.value;
15677
- const params = Object.assign({}, args);
15678
- const _rowIndex = $xeTable.getVTRowIndex(params.row);
15679
- const _columnIndex = $xeTable.getVTColumnIndex(params.column);
15680
- evnt.preventDefault();
15681
- if (isUpArrow && _rowIndex > 0) {
15682
- // 移动到上一行
15683
- params.rowIndex = _rowIndex - 1;
15684
- params.row = afterFullData[params.rowIndex];
15685
- } else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
15686
- // 移动到下一行
15687
- params.rowIndex = _rowIndex + 1;
15688
- params.row = afterFullData[params.rowIndex];
15689
- } else if (isLeftArrow && _columnIndex) {
15690
- // 移动到左侧单元格
15691
- params.columnIndex = _columnIndex - 1;
15692
- params.column = visibleColumn[params.columnIndex];
15693
- } else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
15694
- // 移动到右侧单元格
15695
- params.columnIndex = _columnIndex + 1;
15696
- params.column = visibleColumn[params.columnIndex];
15697
- }
15720
+ const params = handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
15698
15721
  if (rowOpts.isCurrent && currentRowOpts.isFollowSelected) {
15699
15722
  $xeTable.triggerCurrentRowEvent(evnt, params);
15700
15723
  }
15701
15724
  if (columnOpts.isCurrent && currentColumnOpts.isFollowSelected) {
15702
15725
  $xeTable.triggerCurrentColumnEvent(evnt, params);
15703
15726
  }
15704
- $xeTable.scrollToRow(params.row, params.column).then(() => {
15705
- params.cell = $xeTable.getCellElement(params.row, params.column);
15706
- $xeTable.handleSelected(params, evnt);
15707
- });
15727
+ },
15728
+ // 已废弃,待删除
15729
+ moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
15730
+ handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
15708
15731
  },
15709
15732
  handleCellMousedownEvent
15710
15733
  };