faet: 新增保存快捷键

This commit is contained in:
奔跑的面条 2022-05-24 18:16:33 +08:00
parent 24fba75f28
commit c3738fab45
4 changed files with 32 additions and 12 deletions

View File

@ -19,7 +19,8 @@ export enum MenuEnum {
DOWN = 'down',
CLEAR = 'clear',
BACK = 'back',
FORWORD = 'forward'
FORWORD = 'forward',
SAVE = 'save'
}
// Win 键盘枚举

View File

@ -163,6 +163,19 @@ export const fetchRouteParams = () => {
}
}
/**
* *
* @returns object
*/
export const fetchRouteParamsByhistory = () => {
try {
return document.location.hash.split('/').pop() || ''
} catch (error) {
window['$message'].warning('查询路由信息失败,请联系管理员!')
return ''
}
}
/**
* *
* @param confirm

View File

@ -1,4 +1,5 @@
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { useSync } from './useSync.hook'
import { WinKeyboard, MacKeyboard, MenuEnum } from '@/enums/editPageEnum'
import throttle from 'lodash/throttle'
import debounce from 'lodash/debounce'
@ -6,7 +7,7 @@ import debounce from 'lodash/debounce'
import keymaster from 'keymaster'
// Keymaster可以支持识别以下组合键shiftoptionaltctrlcontrolcommand和⌘
const chartEditStore = useChartEditStore()
const useSyncIns = useSync()
const winCtrlMerge = (e: string) => `${WinKeyboard.CTRL}+${e}`
const winShiftMerge = (e: string) => `${WinKeyboard.SHIFT}+${e}`
const winAltMerge = (e: string) => `${WinKeyboard.ALT}+${e}`
@ -22,6 +23,7 @@ export const winKeyboardValue = {
[MenuEnum.DELETE]: 'delete',
[MenuEnum.BACK]: winCtrlMerge('z'),
[MenuEnum.FORWORD]: winCtrlMerge(winShiftMerge('z')),
[MenuEnum.SAVE]: winCtrlMerge('s'),
}
// 这个 Ctrl 后面还是换成了 ⌘
@ -41,6 +43,7 @@ export const macKeyboardValue = {
[MenuEnum.DELETE]: macCtrlMerge('backspace'),
[MenuEnum.BACK]: macCtrlMerge('z'),
[MenuEnum.FORWORD]: macCtrlMerge(macShiftMerge('z')),
[MenuEnum.SAVE]: macCtrlMerge('s'),
}
// Win 快捷键列表
@ -57,6 +60,8 @@ const winKeyList: Array<string> = [
winKeyboardValue.back,
winKeyboardValue.forward,
winKeyboardValue.save,
]
// Mac 快捷键列表
@ -73,6 +78,8 @@ const macKeyList: Array<string> = [
macKeyboardValue.back,
macKeyboardValue.forward,
macKeyboardValue.save,
]
// 初始化监听事件
@ -121,6 +128,11 @@ export const useAddKeyboard = () => {
case keyboardValue.forward:
keymaster(e, throttle(() => { chartEditStore.setForward(); return false }, 200))
break;
// 保存 ct+s
case keyboardValue.save:
keymaster(e, throttle(() => { useSyncIns.dataSyncUpdate(); return false }, 200))
break;
}
}
winKeyList.forEach((key: string) => {

View File

@ -1,6 +1,5 @@
import { onUnmounted } from 'vue';
import { useRoute } from 'vue-router'
import { httpErrorHandle } from '@/utils'
import { httpErrorHandle, fetchRouteParamsByhistory } from '@/utils'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { EditCanvasTypeEnum, ChartEditStoreEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore'
@ -18,7 +17,6 @@ import { SyncEnum } from '@/enums/editPageEnum'
export const useSync = () => {
const chartEditStore = useChartEditStore()
const chartHistoryStore = useChartHistoryStore()
const routerParamsInfo = useRoute()
/**
* *
@ -71,8 +69,7 @@ export const useSync = () => {
const dataSyncFetch = async () => {
chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
try {
const { id } = routerParamsInfo.params
const res: any = await fetchProjectApi({ projectId: id[0] })
const res: any = await fetchProjectApi({ projectId: fetchRouteParamsByhistory() })
if (res.code === ResultEnum.SUCCESS) {
if (res.data) {
const data = JSON.parse(res.data)
@ -93,13 +90,10 @@ export const useSync = () => {
// 数据保存
const dataSyncUpdate = async () => {
chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
// 获取id
const { id } = routerParamsInfo.params
let params = new FormData()
params.append('projectId', id[0])
params.append('projectId', fetchRouteParamsByhistory())
params.append('content', JSON.stringify(chartEditStore.getStorageInfo || {}))
const res: any = await saveProjectApi(params)