Skip to content

Commit cc8dcee

Browse files
committed
releases 4.9.15
1 parent 68ca1bc commit cc8dcee

File tree

4 files changed

+41
-6
lines changed

4 files changed

+41
-6
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vxe-table",
3-
"version": "4.9.14",
3+
"version": "4.9.15",
44
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
55
"scripts": {
66
"update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
2828
"style": "lib/style.css",
2929
"typings": "types/index.d.ts",
3030
"dependencies": {
31-
"vxe-pc-ui": "^4.3.14"
31+
"vxe-pc-ui": "^4.3.15"
3232
},
3333
"devDependencies": {
3434
"@types/resize-observer-browser": "^0.1.11",

packages/table/module/edit/hook.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,7 @@ hooks.add('tableEditModule', {
699699
params.cell = cell
700700
if (cell && isEnableConf(editConfig) && isEnableConf(editRender)) {
701701
// 激活编辑
702-
if (!$xeTable.hasPendingByRow(row)) {
702+
if (!$xeTable.isPendingByRow(row)) {
703703
if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
704704
// 判断是否禁用编辑
705705
let type: 'edit-disabled' | 'edit-activated' = 'edit-disabled'

packages/table/src/emits.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ export default [
4949
'column-dragover',
5050
'column-dragend',
5151

52+
'enter-append-row',
53+
5254
'edit-actived', // 废弃
5355

5456
'edit-activated',

packages/table/src/table.ts

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5482,6 +5482,7 @@ export default defineComponent({
54825482
tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, () => {
54835483
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow } = props
54845484
const { ctxMenuStore, editStore, currentRow } = reactData
5485+
const { afterFullData } = internalData
54855486
const isMenu = computeIsMenu.value
54865487
const bodyMenu = computeBodyMenu.value
54875488
const keyboardOpts = computeKeyboardOpts.value
@@ -5564,6 +5565,7 @@ export default defineComponent({
55645565
internalData._keyCtx = false
55655566
}, 1000)
55665567
} else if (isEnter && !isAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow))) {
5568+
const { isLastEnterAppendRow, beforeEnterMethod, enterMethod } = keyboardOpts
55675569
// 退出选中
55685570
if (hasCtrlKey) {
55695571
// 如果是激活编辑状态,则取消编辑
@@ -5589,7 +5591,35 @@ export default defineComponent({
55895591
if (keyboardOpts.enterToTab) {
55905592
$xeTable.moveTabSelected(targetArgs, hasShiftKey, evnt)
55915593
} else {
5592-
$xeTable.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt)
5594+
const _rowIndex = $xeTable.getVTRowIndex(selected.row)
5595+
const etrParams = {
5596+
row: selected.row,
5597+
rowIndex: $xeTable.getRowIndex(selected.row),
5598+
$rowIndex: $xeTable.getVMRowIndex(selected.row),
5599+
_rowIndex,
5600+
column: selected.column,
5601+
columnIndex: $xeTable.getColumnIndex(selected.column),
5602+
$columnIndex: $xeTable.getVMColumnIndex(selected.column),
5603+
_columnIndex: $xeTable.getVTColumnIndex(selected.column),
5604+
$table: $xeTable
5605+
}
5606+
if (!beforeEnterMethod || beforeEnterMethod(etrParams) !== false) {
5607+
// 最后一行按下回车键,自动追加一行
5608+
if (isLastEnterAppendRow) {
5609+
if (_rowIndex >= afterFullData.length - 1) {
5610+
$xeTable.insertAt({}, -1).then(({ row: newRow }) => {
5611+
$xeTable.scrollToRow(newRow, selected.column)
5612+
$xeTable.setSelectCell(newRow, selected.column)
5613+
})
5614+
$xeTable.dispatchEvent('enter-append-row', etrParams, evnt)
5615+
return
5616+
}
5617+
}
5618+
$xeTable.moveSelected(targetArgs, isLeftArrow, false, isRightArrow, true, evnt)
5619+
if (enterMethod) {
5620+
enterMethod(etrParams)
5621+
}
5622+
}
55935623
}
55945624
}
55955625
} else if (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
@@ -5693,7 +5723,7 @@ export default defineComponent({
56935723
.then(() => tablePrivateMethods.triggerCurrentRowEvent(evnt, params))
56945724
}
56955725
} else if (keyboardConfig && isEnableConf(editConfig) && 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))) {
5696-
const { editMethod } = keyboardOpts
5726+
const { editMode, editMethod } = keyboardOpts
56975727
// 启用编辑后,空格键功能将失效
56985728
// if (isSpacebar) {
56995729
// evnt.preventDefault()
@@ -5713,7 +5743,10 @@ export default defineComponent({
57135743
if (editMethod) {
57145744
editMethod(params)
57155745
} else {
5716-
setCellValue(selected.row, selected.column, null)
5746+
// 追加方式与覆盖式
5747+
if (editMode !== 'insert') {
5748+
setCellValue(selected.row, selected.column, null)
5749+
}
57175750
$xeTable.handleEdit(selected.args, evnt)
57185751
}
57195752
}

0 commit comments

Comments
 (0)