perf: 翻页快捷键优化

This commit is contained in:
pipipi-pikachu 2022-05-18 20:03:56 +08:00
parent 0de971930e
commit e67fdbe055
5 changed files with 27 additions and 23 deletions

View File

@ -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' },
],
},
{

View File

@ -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 = () => {

View File

@ -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 }

View File

@ -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)
}
}

View File

@ -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)