按下ctrl+shift+R组合键的时候会先执行运行,再执行单步运行。
    实际想要的业务逻辑是按下ctrl+shift+R键的时候,只执行单步运行。

    每次记录是否按下ctrl、shift、alt键。

    1. //初始化快捷键的数据
    2. shortCutKeyData: [
    3. { key: 1, name: "运行", keyboard: 'ctrl+R',keyCode: 82, keyValue: '' },
    4. { key: 2, name: "单步运行", keyboard: 'ctrl + shift + R',keyCode: 82,keyValue: '' },
    5. { key: 3, name: '复制', keyboard: 'ctrl+C',keyCode: 67,keyValue: '' },
    6. { key: 4, name: '删除', keyboard: 'ctrl+D',keyCode: 68,keyValue: '' },
    7. { key: 5, name: '编译', keyboard: 'ctrl+B',keyCode: 66,keyValue: '' },
    8. //{ key: 6, name: '多步编译',keyboard: 'ctrl+V' },
    9. ],

    然后进行对比,执行相应的逻辑。

    1. emitCutkeyMethod(code,item,keyValue) {
    2. //item.keyValue 记录按下哪个键 然后通过对比
    3. //如果code、name、按键三者相等的时候,就执行相应的操作。
    4. if(code == item.keyCode && item.name == '单步运行' && keyValue == item.keyValue ) {
    5. //单步运行
    6. //console.log('单步运行');
    7. eventBus.$emit('keyboardCtrlShiftR');
    8. }else if(code == item.keyCode && item.name == '运行' && keyValue == item.keyValue) {
    9. //运行组件
    10. //console.log('运行');
    11. eventBus.$emit('keyboardCtrlR');
    12. }else if(code == item.keyCode && item.name == '复制' && keyValue == item.keyValue) {
    13. //复制
    14. //console.log('复制');
    15. eventBus.$emit('keyboardCtrlC')
    16. }else if(code == item.keyCode && item.name == '删除' && keyValue == item.keyValue) {
    17. //删除
    18. eventBus.$emit('keyboardCtrlD', { 'isAssembly': true })
    19. }else if(code == item.keyCode && item.name == '编译' && keyValue == item.keyValue) {
    20. //编译
    21. eventBus.$emit('keyboardCtrlB')
    22. }
    23. }

    这里存在一个问题