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.
- package/es/locale/lang/ar-EG.js +1 -0
- package/es/locale/lang/de-DE.js +1 -0
- package/es/locale/lang/en-US.js +1 -0
- package/es/locale/lang/es-ES.js +1 -0
- package/es/locale/lang/fr-FR.js +1 -0
- package/es/locale/lang/hu-HU.js +1 -0
- package/es/locale/lang/hy-AM.js +1 -0
- package/es/locale/lang/id-ID.js +1 -0
- package/es/locale/lang/it-IT.js +1 -0
- package/es/locale/lang/ja-JP.js +1 -0
- package/es/locale/lang/ko-KR.js +1 -0
- package/es/locale/lang/nb-NO.js +1 -0
- package/es/locale/lang/pt-BR.js +1 -0
- package/es/locale/lang/ru-RU.js +1 -0
- package/es/locale/lang/th-TH.js +1 -0
- package/es/locale/lang/ug-CN.js +1 -0
- package/es/locale/lang/uk-UA.js +1 -0
- package/es/locale/lang/vi-VN.js +1 -0
- package/es/locale/lang/zh-CHT.js +1 -0
- package/es/locale/lang/zh-CN.js +1 -0
- package/es/style.css +1 -1
- package/es/table/module/keyboard/mixin.js +27 -9
- package/es/table/module/menu/mixin.js +8 -7
- package/es/table/src/methods.js +104 -57
- package/es/table/src/table.js +42 -17
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +190 -104
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +1 -0
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +1 -0
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +1 -0
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +1 -0
- package/lib/locale/lang/es-ES.js +1 -0
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +1 -0
- package/lib/locale/lang/fr-FR.js +1 -0
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +1 -0
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +1 -0
- package/lib/locale/lang/hy-AM.js +1 -0
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +1 -0
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +1 -0
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +1 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +1 -0
- package/lib/locale/lang/ko-KR.js +1 -0
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +1 -0
- package/lib/locale/lang/nb-NO.js +1 -0
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +1 -0
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +1 -0
- package/lib/locale/lang/ru-RU.js +1 -0
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +1 -0
- package/lib/locale/lang/th-TH.js +1 -0
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +1 -0
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +1 -0
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +1 -0
- package/lib/locale/lang/vi-VN.js +1 -0
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +1 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +1 -0
- package/lib/locale/lang/zh-CN.js +1 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +1 -0
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/mixin.js +28 -9
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +10 -7
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/src/methods.js +105 -69
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +44 -17
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/ar-EG.ts +1 -0
- package/packages/locale/lang/de-DE.ts +1 -0
- package/packages/locale/lang/en-US.ts +1 -0
- package/packages/locale/lang/es-ES.ts +1 -0
- package/packages/locale/lang/fr-FR.ts +1 -0
- package/packages/locale/lang/hu-HU.ts +1 -0
- package/packages/locale/lang/hy-AM.ts +1 -0
- package/packages/locale/lang/id-ID.ts +1 -0
- package/packages/locale/lang/it-IT.ts +1 -0
- package/packages/locale/lang/ja-JP.ts +1 -0
- package/packages/locale/lang/ko-KR.ts +1 -0
- package/packages/locale/lang/nb-NO.ts +1 -0
- package/packages/locale/lang/pt-BR.ts +1 -0
- package/packages/locale/lang/ru-RU.ts +1 -0
- package/packages/locale/lang/th-TH.ts +1 -0
- package/packages/locale/lang/ug-CN.ts +1 -0
- package/packages/locale/lang/uk-UA.ts +1 -0
- package/packages/locale/lang/vi-VN.ts +1 -0
- package/packages/locale/lang/zh-CHT.ts +1 -0
- package/packages/locale/lang/zh-CN.ts +1 -0
- package/packages/table/module/keyboard/mixin.ts +25 -9
- package/packages/table/module/menu/mixin.ts +9 -7
- package/packages/table/src/methods.ts +104 -57
- package/packages/table/src/table.ts +44 -17
- /package/es/{iconfont.1743125678150.ttf → iconfont.1743393991959.ttf} +0 -0
- /package/es/{iconfont.1743125678150.woff → iconfont.1743393991959.woff} +0 -0
- /package/es/{iconfont.1743125678150.woff2 → iconfont.1743393991959.woff2} +0 -0
- /package/lib/{iconfont.1743125678150.ttf → iconfont.1743393991959.ttf} +0 -0
- /package/lib/{iconfont.1743125678150.woff → iconfont.1743393991959.woff} +0 -0
- /package/lib/{iconfont.1743125678150.woff2 → iconfont.1743393991959.woff2} +0 -0
|
@@ -294,29 +294,45 @@ export default {
|
|
|
294
294
|
|
|
295
295
|
const { highlightCurrentRow, highlightCurrentColumn } = props
|
|
296
296
|
const rowOpts = $xeTable.computeRowOpts
|
|
297
|
+
const currentRowOpts = $xeTable.computeCurrentRowOpts
|
|
297
298
|
const columnOpts = $xeTable.computeColumnOpts
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (
|
|
301
|
-
|
|
299
|
+
const currentColumnOpts = $xeTable.computeCurrentColumnOpts
|
|
300
|
+
const params = handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow)
|
|
301
|
+
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
302
|
+
if (currentRowOpts.isFollowSelected) {
|
|
303
|
+
$xeTable.triggerCurrentRowEvent(evnt, params)
|
|
304
|
+
} else {
|
|
305
|
+
// 当前行按键上下移动
|
|
306
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
307
|
+
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt)
|
|
308
|
+
}
|
|
309
|
+
}
|
|
302
310
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
311
|
+
if (columnOpts.isCurrent || highlightCurrentColumn) {
|
|
312
|
+
if (currentColumnOpts.isFollowSelected) {
|
|
313
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params)
|
|
314
|
+
} else {
|
|
315
|
+
// 当前行按键左右移动
|
|
316
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
317
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt)
|
|
318
|
+
}
|
|
319
|
+
}
|
|
306
320
|
}
|
|
307
321
|
},
|
|
308
322
|
moveEnterSelected (args: any, isLeftArrow: boolean, isUpArrow: boolean, isRightArrow: boolean, isDwArrow: boolean, evnt: any) {
|
|
309
323
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
324
|
+
const props = $xeTable
|
|
310
325
|
|
|
326
|
+
const { highlightCurrentRow, highlightCurrentColumn } = props
|
|
311
327
|
const rowOpts = $xeTable.computeRowOpts
|
|
312
328
|
const currentRowOpts = $xeTable.computeCurrentRowOpts
|
|
313
329
|
const columnOpts = $xeTable.computeColumnOpts
|
|
314
330
|
const currentColumnOpts = $xeTable.computeCurrentColumnOpts
|
|
315
331
|
const params = handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow)
|
|
316
|
-
if ((rowOpts.isCurrent && currentRowOpts.isFollowSelected)) {
|
|
332
|
+
if (((rowOpts.isCurrent || highlightCurrentRow) && currentRowOpts.isFollowSelected)) {
|
|
317
333
|
$xeTable.triggerCurrentRowEvent(evnt, params)
|
|
318
334
|
}
|
|
319
|
-
if (columnOpts.isCurrent && currentColumnOpts.isFollowSelected) {
|
|
335
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && currentColumnOpts.isFollowSelected) {
|
|
320
336
|
$xeTable.triggerCurrentColumnEvent(evnt, params)
|
|
321
337
|
}
|
|
322
338
|
},
|
|
@@ -6,7 +6,7 @@ import { warnLog } from '../../../ui/src/log'
|
|
|
6
6
|
|
|
7
7
|
import type { VxeTableConstructor, VxeTablePrivateMethods, VxeGridConstructor, GridPrivateMethods, TableInternalData } from '../../../../types'
|
|
8
8
|
|
|
9
|
-
const { menus } = VxeUI
|
|
9
|
+
const { menus, globalEvents, GLOBAL_EVENT_KEYS } = VxeUI
|
|
10
10
|
|
|
11
11
|
export default {
|
|
12
12
|
methods: {
|
|
@@ -23,17 +23,19 @@ export default {
|
|
|
23
23
|
return this.$nextTick()
|
|
24
24
|
},
|
|
25
25
|
// 处理菜单的移动
|
|
26
|
-
moveCtxMenu (evnt:
|
|
26
|
+
moveCtxMenu (evnt: KeyboardEvent, ctxMenuStore: any, property: 'selectChild' | 'selected', hasOper: boolean, operRest: any, menuList: any[]) {
|
|
27
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
28
|
+
|
|
27
29
|
let selectItem
|
|
28
30
|
const selectIndex = XEUtils.findIndexOf(menuList, item => ctxMenuStore[property] === item)
|
|
29
|
-
if (
|
|
31
|
+
if (hasOper) {
|
|
30
32
|
if (operRest && hasChildrenList(ctxMenuStore.selected)) {
|
|
31
33
|
ctxMenuStore.showChild = true
|
|
32
34
|
} else {
|
|
33
35
|
ctxMenuStore.showChild = false
|
|
34
36
|
ctxMenuStore.selectChild = null
|
|
35
37
|
}
|
|
36
|
-
} else if (
|
|
38
|
+
} else if (globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP)) {
|
|
37
39
|
for (let len = selectIndex - 1; len >= 0; len--) {
|
|
38
40
|
if (menuList[len].visible !== false) {
|
|
39
41
|
selectItem = menuList[len]
|
|
@@ -41,7 +43,7 @@ export default {
|
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
ctxMenuStore[property] = selectItem || menuList[menuList.length - 1]
|
|
44
|
-
} else if (
|
|
46
|
+
} else if (globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN)) {
|
|
45
47
|
for (let index = selectIndex + 1; index < menuList.length; index++) {
|
|
46
48
|
if (menuList[index].visible !== false) {
|
|
47
49
|
selectItem = menuList[index]
|
|
@@ -49,8 +51,8 @@ export default {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
ctxMenuStore[property] = selectItem || menuList[0]
|
|
52
|
-
} else if (ctxMenuStore[property] && (
|
|
53
|
-
|
|
54
|
+
} else if (ctxMenuStore[property] && (globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER) || globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.SPACEBAR))) {
|
|
55
|
+
$xeTable.ctxMenuLinkEvent(evnt, ctxMenuStore[property])
|
|
54
56
|
}
|
|
55
57
|
},
|
|
56
58
|
/**
|
|
@@ -500,11 +500,11 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
500
500
|
}
|
|
501
501
|
if (xLeftCornerEl) {
|
|
502
502
|
xLeftCornerEl.style.width = scrollbarXToTop ? `${osbWidth}px` : ''
|
|
503
|
-
xLeftCornerEl.style.display = scrollbarXToTop ? (
|
|
503
|
+
xLeftCornerEl.style.display = scrollbarXToTop ? (overflowX && osbHeight ? 'block' : '') : ''
|
|
504
504
|
}
|
|
505
505
|
if (xRightCornerEl) {
|
|
506
506
|
xRightCornerEl.style.width = scrollbarXToTop ? '' : `${osbWidth}px`
|
|
507
|
-
xRightCornerEl.style.display = scrollbarXToTop ? '' : (
|
|
507
|
+
xRightCornerEl.style.display = scrollbarXToTop ? '' : (overflowX && osbHeight ? 'block' : '')
|
|
508
508
|
}
|
|
509
509
|
|
|
510
510
|
const scrollYVirtualEl = $xeTable.$refs.refScrollYVirtualElem as HTMLDivElement
|
|
@@ -516,7 +516,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
516
516
|
const yTopCornerEl = $xeTable.$refs.refScrollYTopCornerElem as HTMLDivElement
|
|
517
517
|
if (yTopCornerEl) {
|
|
518
518
|
yTopCornerEl.style.height = `${headerHeight}px`
|
|
519
|
-
yTopCornerEl.style.display = headerHeight ? 'block' : ''
|
|
519
|
+
yTopCornerEl.style.display = overflowY && headerHeight ? 'block' : ''
|
|
520
520
|
}
|
|
521
521
|
const yWrapperEl = $xeTable.$refs.refScrollYWrapperElem as HTMLDivElement
|
|
522
522
|
if (yWrapperEl) {
|
|
@@ -527,7 +527,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
527
527
|
if (yBottomCornerEl) {
|
|
528
528
|
yBottomCornerEl.style.height = `${footerHeight}px`
|
|
529
529
|
yBottomCornerEl.style.top = `${headerHeight + bodyHeight}px`
|
|
530
|
-
yBottomCornerEl.style.display = footerHeight ? 'block' : ''
|
|
530
|
+
yBottomCornerEl.style.display = overflowY && footerHeight ? 'block' : ''
|
|
531
531
|
}
|
|
532
532
|
|
|
533
533
|
const rowExpandEl = $xeTable.$refs.refRowExpandElem as HTMLDivElement
|
|
@@ -5349,14 +5349,26 @@ const Methods = {
|
|
|
5349
5349
|
*/
|
|
5350
5350
|
handleGlobalKeydownEvent (evnt: any) {
|
|
5351
5351
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
5352
|
+
const props = $xeTable
|
|
5352
5353
|
const internalData = $xeTable as unknown as TableInternalData
|
|
5354
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
5353
5355
|
const $xeGrid = $xeTable.$xeGrid as VxeGridConstructor & GridPrivateMethods
|
|
5354
5356
|
|
|
5355
5357
|
// 该行为只对当前激活的表格有效
|
|
5356
|
-
if (
|
|
5357
|
-
|
|
5358
|
+
if (internalData.isActivated) {
|
|
5359
|
+
$xeTable.preventEvent(evnt, 'event.keydown', null, () => {
|
|
5360
|
+
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props
|
|
5361
|
+
const { ctxMenuStore, editStore, currentRow } = reactData
|
|
5358
5362
|
const { afterFullData } = internalData
|
|
5359
|
-
const
|
|
5363
|
+
const isMenu = $xeTable.computeIsMenu
|
|
5364
|
+
const bodyMenu = $xeTable.computeBodyMenu
|
|
5365
|
+
const keyboardOpts = $xeTable.computeKeyboardOpts
|
|
5366
|
+
const mouseOpts = $xeTable.computeMouseOpts
|
|
5367
|
+
const editOpts = $xeTable.computeEditOpts
|
|
5368
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
5369
|
+
const menuList = $xeTable.computeMenuList
|
|
5370
|
+
const rowOpts = $xeTable.computeRowOpts
|
|
5371
|
+
const columnOpts = $xeTable.computeColumnOpts
|
|
5360
5372
|
const { selected, actived } = editStore
|
|
5361
5373
|
const { keyCode } = evnt
|
|
5362
5374
|
const hasBackspaceKey = keyCode === 8
|
|
@@ -5376,33 +5388,44 @@ const Methods = {
|
|
|
5376
5388
|
const hasShiftKey = evnt.shiftKey
|
|
5377
5389
|
const hasAltKey = evnt.altKey
|
|
5378
5390
|
const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow
|
|
5379
|
-
const operCtxMenu =
|
|
5391
|
+
const operCtxMenu = isMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow)
|
|
5380
5392
|
const isEditStatus = isEnableConf(editConfig) && actived.column && actived.row
|
|
5381
5393
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
5382
5394
|
const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod
|
|
5383
|
-
if (filterStore.visible) {
|
|
5384
|
-
if (isEsc) {
|
|
5385
|
-
this.closeFilter()
|
|
5386
|
-
}
|
|
5387
|
-
return
|
|
5388
|
-
}
|
|
5389
5395
|
if (operCtxMenu) {
|
|
5390
5396
|
// 如果配置了右键菜单; 支持方向键操作、回车
|
|
5391
5397
|
evnt.preventDefault()
|
|
5392
5398
|
if (ctxMenuStore.showChild && hasChildrenList(ctxMenuStore.selected)) {
|
|
5393
|
-
|
|
5399
|
+
$xeTable.moveCtxMenu(evnt, ctxMenuStore, 'selectChild', isLeftArrow, false, ctxMenuStore.selected.children)
|
|
5394
5400
|
} else {
|
|
5395
|
-
|
|
5401
|
+
$xeTable.moveCtxMenu(evnt, ctxMenuStore, 'selected', isRightArrow, true, menuList)
|
|
5402
|
+
}
|
|
5403
|
+
} else if (keyboardConfig && mouseConfig && mouseOpts.area && $xeTable.handleKeyboardCellAreaEvent) {
|
|
5404
|
+
$xeTable.handleKeyboardCellAreaEvent(evnt)
|
|
5405
|
+
} else if (isEsc) {
|
|
5406
|
+
// 如果按下了 Esc 键,关闭快捷菜单、筛选
|
|
5407
|
+
if ($xeTable.closeMenu) {
|
|
5408
|
+
$xeTable.closeMenu()
|
|
5409
|
+
}
|
|
5410
|
+
$xeTable.closeFilter()
|
|
5411
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
5412
|
+
// 如果是激活编辑状态,则取消编辑
|
|
5413
|
+
if (actived.row) {
|
|
5414
|
+
const params = actived.args
|
|
5415
|
+
$xeTable.handleClearEdit(evnt)
|
|
5416
|
+
// 如果配置了选中功能,则为选中状态
|
|
5417
|
+
if (mouseOpts.selected) {
|
|
5418
|
+
$xeTable.$nextTick(() => $xeTable.handleSelected(params, evnt))
|
|
5419
|
+
}
|
|
5420
|
+
}
|
|
5396
5421
|
}
|
|
5397
|
-
} else if (keyboardConfig && mouseConfig && mouseOpts.area && this.handleKeyboardCellAreaEvent) {
|
|
5398
|
-
this.handleKeyboardCellAreaEvent(evnt)
|
|
5399
5422
|
} else if (keyboardConfig && isSpacebar && keyboardOpts.isChecked && selected.row && selected.column && (selected.column.type === 'checkbox' || selected.column.type === 'radio')) {
|
|
5400
5423
|
// 空格键支持选中复选框
|
|
5401
5424
|
evnt.preventDefault()
|
|
5402
5425
|
if (selected.column.type === 'checkbox') {
|
|
5403
|
-
|
|
5426
|
+
$xeTable.handleToggleCheckRowEvent(evnt, selected.args)
|
|
5404
5427
|
} else {
|
|
5405
|
-
|
|
5428
|
+
$xeTable.triggerRadioRowEvent(evnt, selected.args)
|
|
5406
5429
|
}
|
|
5407
5430
|
} else if (isF2 && isEnableConf(editConfig)) {
|
|
5408
5431
|
if (!isEditStatus) {
|
|
@@ -5410,12 +5433,12 @@ const Methods = {
|
|
|
5410
5433
|
if (selected.row && selected.column) {
|
|
5411
5434
|
evnt.stopPropagation()
|
|
5412
5435
|
evnt.preventDefault()
|
|
5413
|
-
|
|
5436
|
+
$xeTable.handleEdit(selected.args, evnt)
|
|
5414
5437
|
}
|
|
5415
5438
|
}
|
|
5416
5439
|
} else if (isContextMenu) {
|
|
5417
5440
|
// 如果按下上下文键
|
|
5418
|
-
internalData._keyCtx = selected.row && selected.column &&
|
|
5441
|
+
internalData._keyCtx = selected.row && selected.column && bodyMenu.length
|
|
5419
5442
|
clearTimeout(internalData.keyCtxTimeout)
|
|
5420
5443
|
internalData.keyCtxTimeout = setTimeout(() => {
|
|
5421
5444
|
internalData._keyCtx = false
|
|
@@ -5427,10 +5450,10 @@ const Methods = {
|
|
|
5427
5450
|
// 如果是激活编辑状态,则取消编辑
|
|
5428
5451
|
if (actived.row) {
|
|
5429
5452
|
const params = actived.args
|
|
5430
|
-
|
|
5453
|
+
$xeTable.handleClearEdit(evnt)
|
|
5431
5454
|
// 如果配置了选中功能,则为选中状态
|
|
5432
5455
|
if (mouseConfig && mouseOpts.selected) {
|
|
5433
|
-
|
|
5456
|
+
$xeTable.$nextTick(() => $xeTable.handleSelected(params, evnt))
|
|
5434
5457
|
}
|
|
5435
5458
|
}
|
|
5436
5459
|
} else {
|
|
@@ -5439,13 +5462,13 @@ const Methods = {
|
|
|
5439
5462
|
const activeParams = selected.row ? selected.args : actived.args
|
|
5440
5463
|
if (hasShiftKey) {
|
|
5441
5464
|
if (keyboardOpts.enterToTab) {
|
|
5442
|
-
|
|
5465
|
+
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt)
|
|
5443
5466
|
} else {
|
|
5444
|
-
|
|
5467
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt)
|
|
5445
5468
|
}
|
|
5446
5469
|
} else {
|
|
5447
5470
|
if (keyboardOpts.enterToTab) {
|
|
5448
|
-
|
|
5471
|
+
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt)
|
|
5449
5472
|
} else {
|
|
5450
5473
|
const activeRow = selected.row || actived.row
|
|
5451
5474
|
const activeColumn = selected.column || actived.column
|
|
@@ -5473,7 +5496,7 @@ const Methods = {
|
|
|
5473
5496
|
return
|
|
5474
5497
|
}
|
|
5475
5498
|
}
|
|
5476
|
-
|
|
5499
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt)
|
|
5477
5500
|
if (enterMethod) {
|
|
5478
5501
|
enterMethod(etrParams)
|
|
5479
5502
|
}
|
|
@@ -5486,26 +5509,40 @@ const Methods = {
|
|
|
5486
5509
|
if (childrens && childrens.length) {
|
|
5487
5510
|
evnt.preventDefault()
|
|
5488
5511
|
const targetRow = childrens[0]
|
|
5489
|
-
const params = {
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
.
|
|
5512
|
+
const params = {
|
|
5513
|
+
$table: $xeTable,
|
|
5514
|
+
row: targetRow,
|
|
5515
|
+
rowIndex: $xeTable.getRowIndex(targetRow),
|
|
5516
|
+
$rowIndex: $xeTable.getVMRowIndex(targetRow)
|
|
5517
|
+
}
|
|
5518
|
+
$xeTable.setTreeExpand(currentRow, true)
|
|
5519
|
+
.then(() => $xeTable.scrollToRow(targetRow))
|
|
5520
|
+
.then(() => $xeTable.triggerCurrentRowEvent(evnt, params))
|
|
5493
5521
|
}
|
|
5494
5522
|
}
|
|
5495
5523
|
}
|
|
5496
5524
|
} else if (operArrow && keyboardConfig && keyboardOpts.isArrow) {
|
|
5497
5525
|
if (!isEditStatus) {
|
|
5498
5526
|
// 如果按下了方向键
|
|
5499
|
-
if (selected.row && selected.column) {
|
|
5527
|
+
if (mouseOpts.selected && selected.row && selected.column) {
|
|
5500
5528
|
$xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt)
|
|
5529
|
+
} else {
|
|
5530
|
+
// 当前行按键上下移动
|
|
5531
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
5532
|
+
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt)
|
|
5533
|
+
}
|
|
5534
|
+
// 当前行按键左右移动
|
|
5535
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
5536
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt)
|
|
5537
|
+
}
|
|
5501
5538
|
}
|
|
5502
5539
|
}
|
|
5503
5540
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
5504
5541
|
// 如果按下了 Tab 键切换
|
|
5505
5542
|
if (selected.row || selected.column) {
|
|
5506
|
-
|
|
5543
|
+
$xeTable.moveTabSelected(selected.args, hasShiftKey, evnt)
|
|
5507
5544
|
} else if (actived.row || actived.column) {
|
|
5508
|
-
|
|
5545
|
+
$xeTable.moveTabSelected(actived.args, hasShiftKey, evnt)
|
|
5509
5546
|
}
|
|
5510
5547
|
} else if (keyboardConfig && keyboardOpts.isDel && hasDeleteKey && isEnableConf(editConfig) && (selected.row || selected.column)) {
|
|
5511
5548
|
// 如果是删除键
|
|
@@ -5513,10 +5550,10 @@ const Methods = {
|
|
|
5513
5550
|
const { delMethod } = keyboardOpts
|
|
5514
5551
|
const params = {
|
|
5515
5552
|
row: selected.row,
|
|
5516
|
-
rowIndex:
|
|
5553
|
+
rowIndex: $xeTable.getRowIndex(selected.row),
|
|
5517
5554
|
column: selected.column,
|
|
5518
|
-
columnIndex:
|
|
5519
|
-
$table:
|
|
5555
|
+
columnIndex: $xeTable.getColumnIndex(selected.column),
|
|
5556
|
+
$table: $xeTable,
|
|
5520
5557
|
$grid: $xeGrid
|
|
5521
5558
|
}
|
|
5522
5559
|
// 是否被禁用
|
|
@@ -5527,8 +5564,8 @@ const Methods = {
|
|
|
5527
5564
|
setCellValue(selected.row, selected.column, null)
|
|
5528
5565
|
}
|
|
5529
5566
|
// 如果按下 del 键,更新表尾数据
|
|
5530
|
-
|
|
5531
|
-
|
|
5567
|
+
$xeTable.updateFooter()
|
|
5568
|
+
$xeTable.dispatchEvent('cell-delete-value', params, evnt)
|
|
5532
5569
|
}
|
|
5533
5570
|
}
|
|
5534
5571
|
} else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && isEnableConf(editConfig) && (selected.row || selected.column)) {
|
|
@@ -5538,10 +5575,10 @@ const Methods = {
|
|
|
5538
5575
|
if (keyboardOpts.isDel && isEnableConf(editConfig) && (selected.row || selected.column)) {
|
|
5539
5576
|
const params = {
|
|
5540
5577
|
row: selected.row,
|
|
5541
|
-
rowIndex:
|
|
5578
|
+
rowIndex: $xeTable.getRowIndex(selected.row),
|
|
5542
5579
|
column: selected.column,
|
|
5543
|
-
columnIndex:
|
|
5544
|
-
$table:
|
|
5580
|
+
columnIndex: $xeTable.getColumnIndex(selected.column),
|
|
5581
|
+
$table: $xeTable,
|
|
5545
5582
|
$grid: $xeGrid
|
|
5546
5583
|
}
|
|
5547
5584
|
// 是否被禁用
|
|
@@ -5553,27 +5590,27 @@ const Methods = {
|
|
|
5553
5590
|
if (editMode !== 'insert') {
|
|
5554
5591
|
setCellValue(selected.row, selected.column, null)
|
|
5555
5592
|
}
|
|
5556
|
-
|
|
5593
|
+
$xeTable.handleEdit(selected.args, evnt)
|
|
5557
5594
|
}
|
|
5558
|
-
|
|
5595
|
+
$xeTable.dispatchEvent('cell-backspace-value', params, evnt)
|
|
5559
5596
|
}
|
|
5560
5597
|
}
|
|
5561
5598
|
}
|
|
5562
5599
|
} else if (hasBackspaceKey && keyboardConfig && treeConfig && keyboardOpts.isBack && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
|
|
5563
5600
|
// 如果树形表格回退键关闭当前行返回父节点
|
|
5564
|
-
const { parent: parentRow } = XEUtils.findTree(
|
|
5601
|
+
const { parent: parentRow } = XEUtils.findTree(internalData.afterTreeFullData, item => item === currentRow, { children: childrenField })
|
|
5565
5602
|
if (parentRow) {
|
|
5566
5603
|
evnt.preventDefault()
|
|
5567
5604
|
const params = {
|
|
5568
5605
|
row: parentRow,
|
|
5569
|
-
rowIndex:
|
|
5570
|
-
$rowIndex:
|
|
5571
|
-
$table:
|
|
5606
|
+
rowIndex: $xeTable.getRowIndex(parentRow),
|
|
5607
|
+
$rowIndex: $xeTable.getVMRowIndex(parentRow),
|
|
5608
|
+
$table: $xeTable,
|
|
5572
5609
|
$grid: $xeGrid
|
|
5573
5610
|
}
|
|
5574
|
-
|
|
5575
|
-
.then(() =>
|
|
5576
|
-
.then(() =>
|
|
5611
|
+
$xeTable.setTreeExpand(parentRow, false)
|
|
5612
|
+
.then(() => $xeTable.scrollToRow(parentRow))
|
|
5613
|
+
.then(() => $xeTable.triggerCurrentRowEvent(evnt, params))
|
|
5577
5614
|
}
|
|
5578
5615
|
} 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))) {
|
|
5579
5616
|
const { editMethod } = keyboardOpts
|
|
@@ -5586,10 +5623,10 @@ const Methods = {
|
|
|
5586
5623
|
const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod
|
|
5587
5624
|
const params = {
|
|
5588
5625
|
row: selected.row,
|
|
5589
|
-
rowIndex:
|
|
5626
|
+
rowIndex: $xeTable.getRowIndex(selected.row),
|
|
5590
5627
|
column: selected.column,
|
|
5591
|
-
columnIndex:
|
|
5592
|
-
$table:
|
|
5628
|
+
columnIndex: $xeTable.getColumnIndex(selected.column),
|
|
5629
|
+
$table: $xeTable,
|
|
5593
5630
|
$grid: $xeGrid
|
|
5594
5631
|
}
|
|
5595
5632
|
if (!beforeEditMethod || beforeEditMethod(params)) {
|
|
@@ -5597,12 +5634,12 @@ const Methods = {
|
|
|
5597
5634
|
editMethod(params)
|
|
5598
5635
|
} else {
|
|
5599
5636
|
setCellValue(selected.row, selected.column, null)
|
|
5600
|
-
|
|
5637
|
+
$xeTable.handleEdit(selected.args, evnt)
|
|
5601
5638
|
}
|
|
5602
5639
|
}
|
|
5603
5640
|
}
|
|
5604
5641
|
}
|
|
5605
|
-
|
|
5642
|
+
$xeTable.dispatchEvent('keydown', {}, evnt)
|
|
5606
5643
|
})
|
|
5607
5644
|
}
|
|
5608
5645
|
},
|
|
@@ -8961,6 +8998,7 @@ const Methods = {
|
|
|
8961
8998
|
|
|
8962
8999
|
const { isGroup, scrollXLoad, overflowX, scrollXWidth } = reactData
|
|
8963
9000
|
const { visibleColumn, scrollXStore, elemStore, fullColumnIdData } = internalData
|
|
9001
|
+
const mouseOpts = $xeTable.computeMouseOpts
|
|
8964
9002
|
const tableBody = $xeTable.$refs.refTableBody
|
|
8965
9003
|
const tableBodyElem = tableBody ? (tableBody as any).$el as HTMLDivElement : null
|
|
8966
9004
|
if (tableBodyElem) {
|
|
@@ -9024,6 +9062,10 @@ const Methods = {
|
|
|
9024
9062
|
if (scrollXSpaceEl) {
|
|
9025
9063
|
scrollXSpaceEl.style.width = `${ySpaceWidth}px`
|
|
9026
9064
|
}
|
|
9065
|
+
|
|
9066
|
+
if (isScrollXBig && mouseOpts.area) {
|
|
9067
|
+
errLog('vxe.error.notProp', ['mouse-config.area'])
|
|
9068
|
+
}
|
|
9027
9069
|
$xeTable.$nextTick(() => {
|
|
9028
9070
|
updateStyle($xeTable)
|
|
9029
9071
|
})
|
|
@@ -9048,6 +9090,7 @@ const Methods = {
|
|
|
9048
9090
|
const { isAllOverflow, scrollYLoad, expandColumn } = reactData
|
|
9049
9091
|
const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
|
|
9050
9092
|
const { startIndex } = scrollYStore
|
|
9093
|
+
const mouseOpts = $xeTable.computeMouseOpts
|
|
9051
9094
|
const expandOpts = $xeTable.computeExpandOpts
|
|
9052
9095
|
const rowOpts = $xeTable.computeRowOpts
|
|
9053
9096
|
const cellOpts = $xeTable.computeCellOpts
|
|
@@ -9129,6 +9172,10 @@ const Methods = {
|
|
|
9129
9172
|
reactData.scrollYTop = scrollYTop
|
|
9130
9173
|
reactData.scrollYHeight = scrollYHeight
|
|
9131
9174
|
reactData.isScrollYBig = isScrollYBig
|
|
9175
|
+
|
|
9176
|
+
if (isScrollYBig && mouseOpts.area) {
|
|
9177
|
+
errLog('vxe.error.notProp', ['mouse-config.area'])
|
|
9178
|
+
}
|
|
9132
9179
|
return $xeTable.$nextTick().then(() => {
|
|
9133
9180
|
updateStyle($xeTable)
|
|
9134
9181
|
})
|
|
@@ -1415,8 +1415,9 @@ export default {
|
|
|
1415
1415
|
swYTotal: 0
|
|
1416
1416
|
})
|
|
1417
1417
|
|
|
1418
|
-
const { data, exportConfig, importConfig, treeConfig, showOverflow } = props
|
|
1418
|
+
const { data, exportConfig, importConfig, treeConfig, showOverflow, highlightCurrentRow, highlightCurrentColumn } = props
|
|
1419
1419
|
const { scrollXStore, scrollYStore } = internalData
|
|
1420
|
+
const columnOpts = $xeTable.computeColumnOpts
|
|
1420
1421
|
const editOpts = $xeTable.computeEditOpts
|
|
1421
1422
|
const treeOpts = $xeTable.computeTreeOpts
|
|
1422
1423
|
const radioOpts = $xeTable.computeRadioOpts
|
|
@@ -1427,6 +1428,10 @@ export default {
|
|
|
1427
1428
|
const mouseOpts = $xeTable.computeMouseOpts
|
|
1428
1429
|
const exportOpts = $xeTable.computeExportOpts
|
|
1429
1430
|
const importOpts = $xeTable.computeImportOpts
|
|
1431
|
+
const currentRowOpts = $xeTable.computeCurrentRowOpts
|
|
1432
|
+
const currentColumnOpts = $xeTable.computeCurrentColumnOpts
|
|
1433
|
+
const virtualXOpts = $xeTable.computeVirtualXOpts
|
|
1434
|
+
const virtualYOpts = $xeTable.computeVirtualYOpts
|
|
1430
1435
|
|
|
1431
1436
|
if (props.rowId) {
|
|
1432
1437
|
warnLog('vxe.error.delProp', ['row-id', 'row-config.keyField'])
|
|
@@ -1539,29 +1544,51 @@ export default {
|
|
|
1539
1544
|
warnLog('vxe.error.errProp', [`table.context-menu=${this.contextMenu}`, 'table.context-menu={}'])
|
|
1540
1545
|
}
|
|
1541
1546
|
}
|
|
1542
|
-
if (
|
|
1543
|
-
warnLog('vxe.error.errProp', [`table.menu-config=${
|
|
1547
|
+
if (props.menuConfig && !XEUtils.isObject(props.menuConfig)) {
|
|
1548
|
+
warnLog('vxe.error.errProp', [`table.menu-config=${props.menuConfig}`, 'table.menu-config={}'])
|
|
1549
|
+
}
|
|
1550
|
+
if (props.exportConfig && !XEUtils.isObject(props.exportConfig)) {
|
|
1551
|
+
warnLog('vxe.error.errProp', [`table.export-config=${props.exportConfig}`, 'table.export-config={}'])
|
|
1552
|
+
}
|
|
1553
|
+
if (props.importConfig && !XEUtils.isObject(props.importConfig)) {
|
|
1554
|
+
warnLog('vxe.error.errProp', [`table.import-config=${props.importConfig}`, 'table.import-config={}'])
|
|
1555
|
+
}
|
|
1556
|
+
if (props.printConfig && !XEUtils.isObject(props.printConfig)) {
|
|
1557
|
+
warnLog('vxe.error.errProp', [`table.print-config=${props.printConfig}`, 'table.print-config={}'])
|
|
1558
|
+
}
|
|
1559
|
+
if (props.treeConfig && !XEUtils.isObject(props.treeConfig)) {
|
|
1560
|
+
warnLog('vxe.error.errProp', [`table.tree-config=${props.treeConfig}`, 'table.tree-config={}'])
|
|
1544
1561
|
}
|
|
1545
|
-
if (
|
|
1546
|
-
warnLog('vxe.error.errProp', [`table.
|
|
1562
|
+
if (props.customConfig && !XEUtils.isObject(props.customConfig)) {
|
|
1563
|
+
warnLog('vxe.error.errProp', [`table.custom-config=${props.customConfig}`, 'table.custom-config={}'])
|
|
1547
1564
|
}
|
|
1548
|
-
if (
|
|
1549
|
-
warnLog('vxe.error.errProp', [`table.
|
|
1565
|
+
if (props.editConfig && !XEUtils.isObject(props.editConfig)) {
|
|
1566
|
+
warnLog('vxe.error.errProp', [`table.edit-config=${props.editConfig}`, 'table.edit-config={}'])
|
|
1550
1567
|
}
|
|
1551
|
-
if (
|
|
1552
|
-
warnLog('vxe.error.errProp', [`table.
|
|
1568
|
+
if (props.emptyRender && !XEUtils.isObject(props.emptyRender)) {
|
|
1569
|
+
warnLog('vxe.error.errProp', [`table.empty-render=${props.emptyRender}`, 'table.empty-render={}'])
|
|
1553
1570
|
}
|
|
1554
|
-
|
|
1555
|
-
|
|
1571
|
+
|
|
1572
|
+
if ((rowOpts.isCurrent || highlightCurrentRow) && !XEUtils.isBoolean(currentRowOpts.isFollowSelected)) {
|
|
1573
|
+
warnLog('vxe.error.notConflictProp', ['row-config.isCurrent', 'current-row-config.isFollowSelected'])
|
|
1556
1574
|
}
|
|
1557
|
-
if (
|
|
1558
|
-
warnLog('vxe.error.
|
|
1575
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && !XEUtils.isBoolean(currentColumnOpts.isFollowSelected)) {
|
|
1576
|
+
warnLog('vxe.error.notConflictProp', ['column-config.isCurrent', 'current-column-config.isFollowSelected'])
|
|
1559
1577
|
}
|
|
1560
|
-
|
|
1561
|
-
|
|
1578
|
+
|
|
1579
|
+
// 如果不支持虚拟滚动
|
|
1580
|
+
if (props.spanMethod) {
|
|
1581
|
+
if (virtualXOpts.enabled) {
|
|
1582
|
+
warnLog('vxe.error.notConflictProp', ['span-method', 'virtual-x-config.enabled=false'])
|
|
1583
|
+
}
|
|
1584
|
+
if (virtualYOpts.enabled) {
|
|
1585
|
+
warnLog('vxe.error.notConflictProp', ['span-method', 'virtual-y-config.enabled=false'])
|
|
1586
|
+
}
|
|
1562
1587
|
}
|
|
1563
|
-
if (
|
|
1564
|
-
|
|
1588
|
+
if (props.footerSpanMethod) {
|
|
1589
|
+
if (virtualXOpts.enabled) {
|
|
1590
|
+
warnLog('vxe.error.notConflictProp', ['footer-span-method', 'virtual-x-config.enabled=false'])
|
|
1591
|
+
}
|
|
1565
1592
|
}
|
|
1566
1593
|
|
|
1567
1594
|
// 检查是否有安装需要的模块
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|