index.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <script setup>
  2. import { Page } from '@vben/common-ui';
  3. import { requestClient } from '#/api/request';
  4. import { Card, Button, Space, message } from 'ant-design-vue';
  5. import { ref } from 'vue';
  6. const buttonDisabled = ref(false);
  7. const updateLoaderHide = ref(null);
  8. const ControlAction = {
  9. async updateCode() {
  10. return requestClient.get('/control/update_code')
  11. .then(result => {
  12. message.success('更新代码成功');
  13. console.log('更新代码成功');
  14. console.log(result);
  15. });
  16. },
  17. async restartSportteryHot() {
  18. return requestClient.get('/control/restart_sporttery', { params: { hot: true } })
  19. .then(result => {
  20. message.success('重启 sporttery 服务成功');
  21. console.log('重启 sporttery 服务成功');
  22. console.log(result);
  23. });
  24. },
  25. async restartSportteryCold() {
  26. return requestClient.get('/control/restart_sporttery', { params: { hot: false } })
  27. .then(result => {
  28. message.success('重启 sporttery 服务成功');
  29. console.log('重启 sporttery 服务成功');
  30. console.log(result);
  31. });
  32. },
  33. async restartPinnacleHot() {
  34. return requestClient.get('/control/restart_pinnacle', { params: { hot: true } })
  35. .then(result => {
  36. message.success('重启 pinnacle 服务成功');
  37. console.log('重启 pinnacle 服务成功');
  38. console.log(result);
  39. });
  40. },
  41. async restartPinnacleCold() {
  42. return requestClient.get('/control/restart_pinnacle', { params: { hot: false } })
  43. .then(result => {
  44. message.success('重启 pinnacle 服务成功');
  45. console.log('重启 pinnacle 服务成功');
  46. console.log(result);
  47. });
  48. },
  49. async releaseWeb() {
  50. return requestClient.get('/control/release_web', { timeout: 90_000 })
  51. .then(result => {
  52. message.success('发布 web 服务成功');
  53. console.log('发布 web 服务成功');
  54. console.log(result);
  55. });
  56. },
  57. }
  58. const handleAction = (action) => {
  59. buttonDisabled.value = true;
  60. updateLoaderHide.value = message.loading('执行中...', 0);
  61. ControlAction[action]?.()
  62. .finally(() => {
  63. buttonDisabled.value = false;
  64. updateLoaderHide.value?.();
  65. updateLoaderHide.value = null;
  66. });
  67. }
  68. </script>
  69. <template>
  70. <Page title="控制面板">
  71. <Space direction="vertical" size="large" style="width: 100%">
  72. <Card title="全局控制">
  73. <Space>
  74. <Button type="primary" @click="handleAction('updateCode')" ghost :disabled="buttonDisabled">
  75. 更新代码
  76. </Button>
  77. </Space>
  78. </Card>
  79. <Card title="PS采集管理" v-if="false">
  80. <Space>
  81. <Button @click="handleAction('restartPinnacleHot')" type="primary" ghost :disabled="buttonDisabled">
  82. 热重启服务
  83. </Button>
  84. <Button @click="handleAction('restartPinnacleCold')" ghost danger :disabled="buttonDisabled">
  85. 冷重启服务
  86. </Button>
  87. </Space>
  88. </Card>
  89. <Card title="服务管理">
  90. <Space>
  91. <Button @click="handleAction('restartSportteryHot')" type="primary" ghost :disabled="buttonDisabled">
  92. 热重启服务
  93. </Button>
  94. <Button @click="handleAction('restartSportteryCold')" ghost danger :disabled="buttonDisabled">
  95. 冷重启服务
  96. </Button>
  97. </Space>
  98. </Card>
  99. <Card title="Web管理">
  100. <Space>
  101. <Button @click="handleAction('releaseWeb')" type="primary" ghost :disabled="buttonDisabled">
  102. 发布Web服务
  103. </Button>
  104. </Space>
  105. </Card>
  106. </Space>
  107. </Page>
  108. </template>
  109. <style scoped>
  110. </style>