InspectConfig.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <script setup lang="ts">
  2. import type { CosyError } from '@/lib/http/types'
  3. import ngx from '@/api/ngx'
  4. import { translateError } from '@/lib/http/error'
  5. import { logLevel } from '@/views/config/constants'
  6. defineProps<{
  7. banner?: boolean
  8. }>()
  9. interface TestResult extends CosyError {
  10. message: string
  11. level: number
  12. }
  13. const data = ref<TestResult>()
  14. const translatedError = ref<string>('')
  15. test()
  16. function test() {
  17. ngx.test().then(r => {
  18. data.value = r
  19. if (r && r.level > logLevel.Warn) {
  20. const cosyError: CosyError = {
  21. ...r,
  22. }
  23. translateError(cosyError).then(translated => {
  24. translatedError.value = translated
  25. })
  26. }
  27. })
  28. }
  29. defineExpose({
  30. test,
  31. })
  32. </script>
  33. <template>
  34. <div class="inspect-container">
  35. <AAlert
  36. v-if="data && data.level <= logLevel.Info"
  37. :banner
  38. :message="$gettext('Configuration file is test successful')"
  39. type="success"
  40. show-icon
  41. />
  42. <AAlert
  43. v-else-if="data?.level === logLevel.Warn"
  44. :message="$gettext('Warning')"
  45. :banner
  46. type="warning"
  47. show-icon
  48. >
  49. <template #description>
  50. {{ data?.message }}
  51. </template>
  52. </AAlert>
  53. <AAlert
  54. v-else-if="data && data.level > logLevel.Warn"
  55. :message="$gettext('Error')"
  56. :banner
  57. type="error"
  58. show-icon
  59. >
  60. <template #description>
  61. {{ translatedError }}
  62. </template>
  63. </AAlert>
  64. </div>
  65. </template>
  66. <style lang="less" scoped>
  67. .inspect-container {
  68. margin-bottom: 20px;
  69. }
  70. :deep(.ant-alert-description) {
  71. white-space: pre-line;
  72. }
  73. :deep(.ant-alert-banner) {
  74. padding: 8px 24px;
  75. }
  76. </style>