diff --git a/src/configs/hotkey.ts b/src/configs/hotkey.ts index 1c420b4c..ccac64c4 100644 --- a/src/configs/hotkey.ts +++ b/src/configs/hotkey.ts @@ -22,6 +22,8 @@ export const enum KEYS { TAB = 'TAB', BACKSPACE = 'BACKSPACE', ESC = 'ESCAPE', + PAGEUP = 'PAGEUP', + PAGEDOWN = 'PAGEDOWN', } export const HOTKEY_DOC = [ diff --git a/src/hooks/useGlobalHotkey.ts b/src/hooks/useGlobalHotkey.ts index 1dac5518..f0afcb26 100644 --- a/src/hooks/useGlobalHotkey.ts +++ b/src/hooks/useGlobalHotkey.ts @@ -242,6 +242,16 @@ export default () => { e.preventDefault() tabActiveElement() } + if (key === KEYS.PAGEUP) { + if (disableHotkeys.value) return + e.preventDefault() + move(KEYS.UP) + } + if (key === KEYS.PAGEDOWN) { + if (disableHotkeys.value) return + e.preventDefault() + move(KEYS.DOWN) + } } const keyupListener = () => { diff --git a/src/hooks/useMoveElement.ts b/src/hooks/useMoveElement.ts index 64630dee..d8ba157c 100644 --- a/src/hooks/useMoveElement.ts +++ b/src/hooks/useMoveElement.ts @@ -35,6 +35,12 @@ export default () => { case KEYS.DOWN: top = top + step break + case KEYS.PAGEUP: + top = top - step + break + case KEYS.PAGEDOWN: + top = top + step + break default: break } return { ...el, left, top } diff --git a/src/views/Screen/hooks/useExecPlay.ts b/src/views/Screen/hooks/useExecPlay.ts index a799e73d..24ae5863 100644 --- a/src/views/Screen/hooks/useExecPlay.ts +++ b/src/views/Screen/hooks/useExecPlay.ts @@ -182,12 +182,13 @@ export default () => { const keydownListener = (e: KeyboardEvent) => { const key = e.key.toUpperCase() - if (key === KEYS.UP || key === KEYS.LEFT) execPrev() + if (key === KEYS.UP || key === KEYS.LEFT || key === KEYS.PAGEUP) execPrev() else if ( key === KEYS.DOWN || key === KEYS.RIGHT || key === KEYS.SPACE || - key === KEYS.ENTER + key === KEYS.ENTER || + key === KEYS.PAGEDOWN ) execNext() } diff --git a/src/views/components/element/TableElement/EditableTable.vue b/src/views/components/element/TableElement/EditableTable.vue index 5c40686d..2813ed20 100644 --- a/src/views/components/element/TableElement/EditableTable.vue +++ b/src/views/components/element/TableElement/EditableTable.vue @@ -505,12 +505,12 @@ export default defineComponent({ e.preventDefault() tabActiveCell() } - if (e.ctrlKey && key === KEYS.UP) { + if (e.ctrlKey && (key === KEYS.UP || key === KEYS.PAGEUP)) { e.preventDefault() const rowIndex = +selectedCells.value[0].split('_')[0] insertRow(rowIndex) } - if (e.ctrlKey && key === KEYS.DOWN) { + if (e.ctrlKey && (key === KEYS.DOWN || key === KEYS.PAGEDOWN)) { e.preventDefault() const rowIndex = +selectedCells.value[0].split('_')[0] insertRow(rowIndex + 1)