Index.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. 进度:{{ progress1 }}
  12. </a-space>
  13. <p></p>
  14. <a-space>
  15. <a-button @click="runJob(2)">执行任务2</a-button>
  16. 进度:{{ progress2 }}
  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.timerJobProgress);
  37. // 监听任务进度
  38. this.$ipc.on(ipcApiRoute.timerJobProgress, (event, result) => {
  39. console.log('[ipcRenderer] [someJob] result:', result);
  40. switch (result.jobId) {
  41. case 1:
  42. this.progress1 = result.number;
  43. break;
  44. case 2:
  45. this.progress2 = result.number;
  46. break;
  47. }
  48. })
  49. },
  50. runJob(jobId) {
  51. let params = {
  52. id: jobId,
  53. type: 'timer'
  54. }
  55. this.$ipc.send(ipcApiRoute.someJob, params)
  56. },
  57. }
  58. }
  59. </script>
  60. <style lang="less" scoped>
  61. #app-base-jobs {
  62. padding: 0px 10px;
  63. text-align: left;
  64. width: 100%;
  65. .one-block-1 {
  66. font-size: 16px;
  67. padding-top: 10px;
  68. }
  69. .one-block-2 {
  70. padding-top: 10px;
  71. }
  72. }
  73. </style>