index.vue 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <template>
  2. <div class="app-container">
  3. <el-row justify="space-between">
  4. <el-col :span="12">
  5. <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="68px">
  6. <el-form-item label="模型名称">
  7. <el-select v-model="queryParams.mdid" clearable filterable placeholder="请选择" style="width: 180px;">
  8. <el-option
  9. v-for="dict in modelOptions"
  10. :key="dict.mdid"
  11. :label="dict.name"
  12. :value="dict.mdid">
  13. </el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item>
  17. <el-button type="primary" icon="Search" @click="getAlarmData">查询</el-button>
  18. </el-form-item>
  19. </el-form>
  20. </el-col>
  21. </el-row>
  22. <el-table
  23. :data="alarmTableData"
  24. height="68vh"
  25. :cell-style="{ padding: '5px' }"
  26. :header-cell-style="{fontSize: '14px', height: heightAll * 0.01 + 'px' }"
  27. :row-style="{ fontSize: '1rem', textAlign:'center' }"
  28. border>
  29. <el-table-column align="center" width="200" prop="alertTime" label="报警时间"></el-table-column>
  30. <el-table-column align="center" width="130" prop="alertType" label="报警类型">
  31. <template #default="scope">
  32. <el-tag size="small" v-if="scope.row.alertType == '1'" type="danger">
  33. {{ alertTypeConversion(scope.row.alertType) }}
  34. </el-tag>
  35. <el-tag size="small" v-else-if="scope.row.alertType == '2'" type="warning">
  36. {{ alertTypeConversion(scope.row.alertType) }}
  37. </el-tag>
  38. <el-tag size="small" v-else type="info">{{ alertTypeConversion(scope.row.alertType) }}</el-tag>
  39. </template>
  40. </el-table-column>
  41. <el-table-column align="center" width="240" prop="modelName" label="模型名称"/>
  42. <el-table-column align="center" prop="alertContent" label="报警内容"/>
  43. </el-table>
  44. <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
  45. v-model:limit="queryParams.pageSize"/>
  46. </div>
  47. </template>
  48. <script setup>
  49. import {onMounted} from 'vue';
  50. import {getAlarmPageList} from "@/api/service/alarm.js";
  51. import Pagination from "@/components/Pagination/index.vue";
  52. import {getModelList2} from "@/api/register/regCom.js";
  53. const queryParams = ref({
  54. pageNum: 1,
  55. pageSize: 20
  56. })
  57. const total = ref(0)
  58. const alarmTableData = ref([])
  59. const modelOptions = ref([])
  60. /** 获取模型服务调用次数 */
  61. function getAlarmData() {
  62. getAlarmPageList(queryParams.value).then(res => {
  63. alarmTableData.value = res.rows
  64. total.value = res.total
  65. })
  66. }
  67. function alertTypeConversion(alertType) {
  68. switch (alertType) {
  69. case '1':
  70. return '服务器异常'
  71. case '2':
  72. return '接口异常'
  73. case '3':
  74. return '返回信息异常'
  75. default:
  76. return ''
  77. }
  78. }
  79. function getModelList() {
  80. getModelList2().then(res => {
  81. modelOptions.value = res.data
  82. })
  83. }
  84. getModelList()
  85. onMounted(() => {
  86. getAlarmData()
  87. });
  88. </script>
  89. <style scoped lang="scss">
  90. </style>