按下ctrl+shift+R组合键的时候会先执行运行,再执行单步运行。
实际想要的业务逻辑是按下ctrl+shift+R键的时候,只执行单步运行。
每次记录是否按下ctrl、shift、alt键。
//初始化快捷键的数据
shortCutKeyData: [
{ key: 1, name: "运行", keyboard: 'ctrl+R',keyCode: 82, keyValue: '' },
{ key: 2, name: "单步运行", keyboard: 'ctrl + shift + R',keyCode: 82,keyValue: '' },
{ key: 3, name: '复制', keyboard: 'ctrl+C',keyCode: 67,keyValue: '' },
{ key: 4, name: '删除', keyboard: 'ctrl+D',keyCode: 68,keyValue: '' },
{ key: 5, name: '编译', keyboard: 'ctrl+B',keyCode: 66,keyValue: '' },
//{ key: 6, name: '多步编译',keyboard: 'ctrl+V' },
],
然后进行对比,执行相应的逻辑。
emitCutkeyMethod(code,item,keyValue) {
//item.keyValue 记录按下哪个键 然后通过对比
//如果code、name、按键三者相等的时候,就执行相应的操作。
if(code == item.keyCode && item.name == '单步运行' && keyValue == item.keyValue ) {
//单步运行
//console.log('单步运行');
eventBus.$emit('keyboardCtrlShiftR');
}else if(code == item.keyCode && item.name == '运行' && keyValue == item.keyValue) {
//运行组件
//console.log('运行');
eventBus.$emit('keyboardCtrlR');
}else if(code == item.keyCode && item.name == '复制' && keyValue == item.keyValue) {
//复制
//console.log('复制');
eventBus.$emit('keyboardCtrlC')
}else if(code == item.keyCode && item.name == '删除' && keyValue == item.keyValue) {
//删除
eventBus.$emit('keyboardCtrlD', { 'isAssembly': true })
}else if(code == item.keyCode && item.name == '编译' && keyValue == item.keyValue) {
//编译
eventBus.$emit('keyboardCtrlB')
}
}
这里存在一个问题