Index.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <div id="app-base-jobs">
  3. <div class="one-block-1">
  4. <span>
  5. 1. 任务
  6. </span>
  7. </div>
  8. <div class="one-block-2">
  9. <a-space>
  10. <a-button @click="runJob(1)">执行任务1</a-button>
  11. 进度:{{ message1 }}
  12. </a-space>
  13. <p></p>
  14. <a-space>
  15. <a-button @click="runJob(2)">执行任务2</a-button>
  16. 进度:{{ message2 }}
  17. </a-space>
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import { ipcApiRoute } from '@/api/main'
  23. export default {
  24. data() {
  25. return {
  26. progress1: 0,
  27. progress2: 0,
  28. }
  29. },
  30. mounted () {
  31. this.init();
  32. },
  33. methods: {
  34. init () {
  35. // 避免重复监听,或者将 on 功能写到一个统一的地方,只加载一次
  36. this.$ipc.removeAllListeners(ipcApiRoute.someJob);
  37. this.$ipc.on(ipcApiRoute.someJob, (event, result) => {
  38. console.log('[ipcRenderer] [someJob] result:', result);
  39. switch (result.jId) {
  40. case 1:
  41. this.progress1 = result.progress1;
  42. case 2:
  43. this.progress2 = result.progress2;
  44. }
  45. })
  46. },
  47. runJob(jobId) {
  48. let params = {
  49. id: jobId,
  50. type: 'timer'
  51. }
  52. this.$ipc.send(ipcApiRoute.someJob, params)
  53. },
  54. }
  55. }
  56. </script>
  57. <style lang="less" scoped>
  58. #app-base-jobs {
  59. padding: 0px 10px;
  60. text-align: left;
  61. width: 100%;
  62. .one-block-1 {
  63. font-size: 16px;
  64. padding-top: 10px;
  65. }
  66. .one-block-2 {
  67. padding-top: 10px;
  68. }
  69. }
  70. </style>