1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- let registerShortcuts = null
- const direction = ['ArrowRight', 'ArrowLeft', 'ArrowDown', 'ArrowUp']
- export const xcHotKey = (keyList) => {
- registerShortcuts = keyList
- document.onkeydown = function (event) {
- shortcutTrigger(event)
- }
- }
- export const logoutShortcut = () => {
- document.onkeydown = null
- registerShortcuts = null
- }
- /**
- * 快捷键触发事件
- * @param event
- */
- const shortcutTrigger = (event) => {
- for (let listKey in registerShortcuts) {
- let data = registerShortcuts[listKey]
- for (let key in data) {
- // 同时按下
- let pressSimultaneously = listKey + 'Key'
- if (event[pressSimultaneously] && event.key === key) {
- event.returnValue = false
- data[key]()
- return
- }
- if (key === 'direction') {
- if ((event[pressSimultaneously] && direction.includes(event.code))) {
- event.returnValue = false
- data['direction'](event.key)
- return
- }
- }
- if (key === 'number') {
- if (event[pressSimultaneously] && event.code === ('Digit' + event.key)) {
- event.returnValue = false
- data['number'](event.key)
- return
- }
- }
- }
- if (listKey === event.key) {
- event.returnValue = false
- registerShortcuts[listKey]()
- return
- }
- }
- }
|