按下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')}}
这里存在一个问题
