From 0de971930eb39470b80639ec5306174de1ef8c99 Mon Sep 17 00:00:00 2001 From: kankanol <1317894008@163.com> Date: Wed, 18 May 2022 13:05:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20pageUp=20=E5=92=8C=20p?= =?UTF-8?q?ageDown=20=E6=8C=89=E9=94=AE=E6=98=A0=E5=B0=84=E4=BB=A5?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E6=BF=80=E5=85=89=E7=AC=94?= =?UTF-8?q?=E7=BF=BB=E9=A1=B5=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/configs/hotkey.ts | 2 ++ src/hooks/useGlobalHotkey.ts | 10 ++++++++++ src/hooks/useMoveElement.ts | 6 ++++++ src/views/Screen/hooks/useExecPlay.ts | 5 +++-- .../components/element/TableElement/EditableTable.vue | 4 ++-- 5 files changed, 23 insertions(+), 4 deletions(-) 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) From e67fdbe055fd533b42ae16640e234405482a6075 Mon Sep 17 00:00:00 2001 From: pipipi-pikachu Date: Wed, 18 May 2022 20:03:56 +0800 Subject: [PATCH 2/2] =?UTF-8?q?perf:=20=E7=BF=BB=E9=A1=B5=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E9=94=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/configs/hotkey.ts | 11 +++++--- src/hooks/useGlobalHotkey.ts | 25 +++++++++++-------- src/hooks/useMoveElement.ts | 6 ----- src/hooks/useSlideHandler.ts | 4 ++- .../element/TableElement/EditableTable.vue | 4 +-- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/configs/hotkey.ts b/src/configs/hotkey.ts index ccac64c4..2c37bfce 100644 --- a/src/configs/hotkey.ts +++ b/src/configs/hotkey.ts @@ -45,8 +45,9 @@ export const HOTKEY_DOC = [ type: '幻灯片放映', children: [ { label: '开始放映幻灯片', value: 'Ctrl + F' }, - { label: '切换上一页', value: '↑ / ←' }, - { label: '切换下一页', value: '↓ / → / Enter / Space' }, + { label: '切换上一页', value: '↑ / ← / PgUp' }, + { label: '切换下一页', value: '↓ / → / PgDown' }, + { label: '切换下一页', value: 'Enter / Space' }, { label: '退出放映', value: 'ESC' }, ], }, @@ -59,8 +60,10 @@ export const HOTKEY_DOC = [ { label: '放大画布', value: 'Ctrl + =' }, { label: '缩小画布', value: 'Ctrl + -' }, { label: '使画布适应当前屏幕', value: 'Ctrl + 0' }, - { label: '编辑上一页', value: '↑ / ← / 鼠标上滚' }, - { label: '编辑下一页', value: '↓ / → / 鼠标下滚' }, + { label: '上一页(未选中元素)', value: '↑ / ←' }, + { label: '下一页(未选中元素)', value: '↓ / →' }, + { label: '上一页', value: '鼠标上滚 / PgUp' }, + { label: '下一页', value: '鼠标下滚 / PgDown' }, ], }, { diff --git a/src/hooks/useGlobalHotkey.ts b/src/hooks/useGlobalHotkey.ts index f0afcb26..bd739f2e 100644 --- a/src/hooks/useGlobalHotkey.ts +++ b/src/hooks/useGlobalHotkey.ts @@ -95,6 +95,11 @@ export default () => { else if (key === KEYS.UP || key === KEYS.DOWN) updateSlideIndex(key) } + const moveSlide = (key: string) => { + if (key === KEYS.PAGEUP) updateSlideIndex(KEYS.UP) + else if (key === KEYS.PAGEDOWN) updateSlideIndex(KEYS.DOWN) + } + const order = (command: ElementOrderCommands) => { if (!handleElement.value) return orderElement(handleElement.value, command) @@ -217,6 +222,16 @@ export default () => { e.preventDefault() move(KEYS.RIGHT) } + if (key === KEYS.PAGEUP) { + if (disableHotkeys.value) return + e.preventDefault() + moveSlide(KEYS.PAGEUP) + } + if (key === KEYS.PAGEDOWN) { + if (disableHotkeys.value) return + e.preventDefault() + moveSlide(KEYS.PAGEDOWN) + } if (key === KEYS.ENTER) { if (disableHotkeys.value) return e.preventDefault() @@ -242,16 +257,6 @@ 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 d8ba157c..64630dee 100644 --- a/src/hooks/useMoveElement.ts +++ b/src/hooks/useMoveElement.ts @@ -35,12 +35,6 @@ 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/hooks/useSlideHandler.ts b/src/hooks/useSlideHandler.ts index 17fc13f7..257bfb2b 100644 --- a/src/hooks/useSlideHandler.ts +++ b/src/hooks/useSlideHandler.ts @@ -14,7 +14,7 @@ import useHistorySnapshot from '@/hooks/useHistorySnapshot' export default () => { const mainStore = useMainStore() const slidesStore = useSlidesStore() - const { selectedSlidesIndex: _selectedSlidesIndex } = storeToRefs(mainStore) + const { selectedSlidesIndex: _selectedSlidesIndex, activeElementIdList } = storeToRefs(mainStore) const { currentSlide, slides, theme, slideIndex } = storeToRefs(slidesStore) const selectedSlidesIndex = computed(() => [..._selectedSlidesIndex.value, slideIndex.value]) @@ -45,9 +45,11 @@ export default () => { */ const updateSlideIndex = (command: string) => { if (command === KEYS.UP && slideIndex.value > 0) { + if (activeElementIdList.value.length) mainStore.setActiveElementIdList([]) slidesStore.updateSlideIndex(slideIndex.value - 1) } else if (command === KEYS.DOWN && slideIndex.value < slides.value.length - 1) { + if (activeElementIdList.value.length) mainStore.setActiveElementIdList([]) slidesStore.updateSlideIndex(slideIndex.value + 1) } } diff --git a/src/views/components/element/TableElement/EditableTable.vue b/src/views/components/element/TableElement/EditableTable.vue index 2813ed20..5c40686d 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 || key === KEYS.PAGEUP)) { + if (e.ctrlKey && key === KEYS.UP) { e.preventDefault() const rowIndex = +selectedCells.value[0].split('_')[0] insertRow(rowIndex) } - if (e.ctrlKey && (key === KEYS.DOWN || key === KEYS.PAGEDOWN)) { + if (e.ctrlKey && key === KEYS.DOWN) { e.preventDefault() const rowIndex = +selectedCells.value[0].split('_')[0] insertRow(rowIndex + 1)