|
|
@@ -22,6 +22,8 @@ export const winKeyboardValue = {
|
|
|
[MenuEnum.DELETE]: 'delete',
|
|
|
[MenuEnum.BACK]: winCtrlMerge('z'),
|
|
|
[MenuEnum.FORWORD]: winCtrlMerge(winShiftMerge('z')),
|
|
|
+ [MenuEnum.GROUP]: winCtrlMerge('g'),
|
|
|
+ [MenuEnum.UN_GROUP]: winCtrlMerge(winShiftMerge('g')),
|
|
|
}
|
|
|
|
|
|
// 这个 Ctrl 后面还是换成了 ⌘
|
|
|
@@ -41,6 +43,8 @@ export const macKeyboardValue = {
|
|
|
[MenuEnum.DELETE]: macCtrlMerge('backspace'),
|
|
|
[MenuEnum.BACK]: macCtrlMerge('z'),
|
|
|
[MenuEnum.FORWORD]: macCtrlMerge(macShiftMerge('z')),
|
|
|
+ [MenuEnum.GROUP]: macCtrlMerge('g'),
|
|
|
+ [MenuEnum.UN_GROUP]: macCtrlMerge(macShiftMerge('g')),
|
|
|
}
|
|
|
|
|
|
// Win 快捷键列表
|
|
|
@@ -57,6 +61,9 @@ const winKeyList: Array<string> = [
|
|
|
|
|
|
winKeyboardValue.back,
|
|
|
winKeyboardValue.forward,
|
|
|
+
|
|
|
+ winKeyboardValue.group,
|
|
|
+ winKeyboardValue.unGroup,
|
|
|
]
|
|
|
|
|
|
// Mac 快捷键列表
|
|
|
@@ -73,6 +80,9 @@ const macKeyList: Array<string> = [
|
|
|
|
|
|
macKeyboardValue.back,
|
|
|
macKeyboardValue.forward,
|
|
|
+
|
|
|
+ macKeyboardValue.group,
|
|
|
+ macKeyboardValue.unGroup,
|
|
|
]
|
|
|
|
|
|
// 处理键盘记录
|
|
|
@@ -89,49 +99,59 @@ const keyRecordHandle = () => {
|
|
|
|
|
|
// 初始化监听事件
|
|
|
export const useAddKeyboard = () => {
|
|
|
+ const throttleTime = 50
|
|
|
const switchHandle = (keyboardValue: typeof winKeyboardValue, e: string) => {
|
|
|
switch (e) {
|
|
|
// ct+↑
|
|
|
case keyboardValue.up:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_UP); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_UP); return false }, throttleTime))
|
|
|
break;
|
|
|
// ct+→
|
|
|
case keyboardValue.right:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_RIGHT); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_RIGHT); return false }, throttleTime))
|
|
|
break;
|
|
|
// ct+↓
|
|
|
case keyboardValue.down:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_DOWN); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_DOWN); return false }, throttleTime))
|
|
|
break;
|
|
|
// ct+←
|
|
|
case keyboardValue.left:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_LEFT); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setMove(MenuEnum.ARROW_LEFT); return false }, throttleTime))
|
|
|
break;
|
|
|
|
|
|
// 删除 delete
|
|
|
case keyboardValue.delete:
|
|
|
- keymaster(e, debounce(() => { chartEditStore.removeComponentList(); return false }, 200))
|
|
|
+ keymaster(e, debounce(() => { chartEditStore.removeComponentList(); return false }, throttleTime))
|
|
|
break;
|
|
|
// 复制 ct+v
|
|
|
case keyboardValue.copy:
|
|
|
- keymaster(e, debounce(() => { chartEditStore.setCopy(); return false }, 200))
|
|
|
+ keymaster(e, debounce(() => { chartEditStore.setCopy(); return false }, throttleTime))
|
|
|
break;
|
|
|
// 剪切 ct+x
|
|
|
case keyboardValue.cut:
|
|
|
- keymaster(e, debounce(() => { chartEditStore.setCut(); return false }, 200))
|
|
|
+ keymaster(e, debounce(() => { chartEditStore.setCut(); return false }, throttleTime))
|
|
|
break;
|
|
|
// 粘贴 ct+v
|
|
|
case keyboardValue.parse:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setParse(); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setParse(); return false }, throttleTime))
|
|
|
break;
|
|
|
|
|
|
// 撤回 ct+z
|
|
|
case keyboardValue.back:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setBack(); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setBack(); return false }, throttleTime))
|
|
|
break;
|
|
|
// 前进 ct+sh+z
|
|
|
case keyboardValue.forward:
|
|
|
- keymaster(e, throttle(() => { chartEditStore.setForward(); return false }, 200))
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setForward(); return false }, throttleTime))
|
|
|
+ break;
|
|
|
+
|
|
|
+ // 创建分组 ct+g
|
|
|
+ case keyboardValue.group:
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setGroup(); return false }, throttleTime))
|
|
|
+ break;
|
|
|
+ // 解除分组 ct+sh+g
|
|
|
+ case keyboardValue.unGroup:
|
|
|
+ keymaster(e, throttle(() => { chartEditStore.setUnGroup(); return false }, throttleTime))
|
|
|
break;
|
|
|
}
|
|
|
}
|