Index.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div id="app-base-shortcut">
  3. <div class="one-block-1">
  4. <span>
  5. 1. 快捷键
  6. </span>
  7. </div>
  8. <div class="one-block-2">
  9. <a-row :gutter="[16,16]">
  10. <a-col :span="24">
  11. 【窗口最小化】
  12. <a-form :form="form" @submit="handleSubmit">
  13. <a-form-item>
  14. <hot-key-input
  15. style="width: 100%;"
  16. :hotkey.sync="hotKeyObj.keys"
  17. :verify="handleHotkeyVerify"
  18. :max="1"
  19. type="lowser"
  20. :reset="true"
  21. :shake="false"
  22. :range="null"
  23. placeholder="快捷键">
  24. </hot-key-input>
  25. </a-form-item>
  26. <a-form-item
  27. :wrapperCol="{ span: 24 }"
  28. style="text-align: center"
  29. >
  30. <a-button htmlType="submit" type="primary">保存</a-button>
  31. </a-form-item>
  32. </a-form>
  33. </a-col>
  34. </a-row>
  35. </div>
  36. </div>
  37. </template>
  38. <script>
  39. import { requestEggApi } from '@/api/main'
  40. export default {
  41. components: {},
  42. data() {
  43. return {
  44. form: this.$form.createForm(this),
  45. cmd: '',
  46. hotKeyObj: {
  47. tab: 'save',
  48. keys: ['Ctrl+k']
  49. },
  50. };
  51. },
  52. methods: {
  53. handleHotkeyVerify(hotkey) {
  54. console.log('组合键:', hotkey)
  55. return true;
  56. },
  57. handleSubmit (e) {
  58. e.preventDefault()
  59. console.log('submit 验证:', this.hotKeyObj)
  60. const shortcutStr = this.hotKeyObj.keys[0];
  61. const params = {
  62. id: 'mini_window',
  63. name: '窗口最小化',
  64. cmd: shortcutStr
  65. }
  66. requestEggApi('setShortcut', params).then(res => {
  67. if (res.code !== 0) {
  68. // this.$message.info('error')
  69. return false
  70. }
  71. this.$message.info('设置成功,请按【设置的快捷键】查看效果')
  72. }).catch(err => {
  73. console.log('err:', err)
  74. })
  75. this.form.validateFields((err, values) => {
  76. if (!err) {
  77. console.log('Received values of form: ', values)
  78. }
  79. })
  80. }
  81. }
  82. };
  83. </script>
  84. <style lang="less" scoped>
  85. #app-base-shortcut {
  86. padding: 0px 10px;
  87. text-align: left;
  88. width: 100%;
  89. .one-block-1 {
  90. font-size: 16px;
  91. padding-top: 10px;
  92. }
  93. .one-block-2 {
  94. padding-top: 10px;
  95. }
  96. }
  97. </style>