testAlarm.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <div class="hui-test-alarm">
  3. <div class="test-box">
  4. <div class="test-item">
  5. <div class="test-icon">
  6. <i class="iconfont huifont-yunhang"></i>
  7. </div>
  8. <div class="test-label">
  9. <div class="test-name">设备总数</div>
  10. <div class="test-value alibaba">{{testCount.totalNumber}}</div>
  11. </div>
  12. </div>
  13. <div class="test-item">
  14. <div class="test-icon green">
  15. <i class="iconfont huifont-shebei"></i>
  16. </div>
  17. <div class="test-label">
  18. <div class="test-name">运行设备</div>
  19. <div class="test-value alibaba">{{testCount.online}}</div>
  20. </div>
  21. </div>
  22. <div class="test-item">
  23. <div class="test-icon gray">
  24. <i class="iconfont huifont-lixian"></i>
  25. </div>
  26. <div class="test-label">
  27. <div class="test-name">离线设备</div>
  28. <div class="test-value alibaba">{{testCount.offline}}</div>
  29. </div>
  30. </div>
  31. </div>
  32. <div class="alarm-table-box hui-flex">
  33. <div class="alarm-title">
  34. <div class="hui-chart-title">
  35. 设备报警
  36. </div>
  37. <div class="alarm-tr">
  38. <span class="tr-100">设备名称</span>
  39. <span class="tr-flex">报警信息</span>
  40. <span class="tr-130">报警时间</span>
  41. <span class="tr-50">状态</span>
  42. </div>
  43. </div>
  44. <div class="hui-flex-box hui-no-tips" v-if="list.length === 0">
  45. <empty width="100" description="暂无报警记录"></empty>
  46. </div>
  47. <div class="alarm-table hui-flex-box" v-else>
  48. <div class="alarm-tr" v-for="(item,index) in list" :key="index">
  49. <span class="tr-100 hui-ellipsis">{{item.deviceName}}</span>
  50. <span class="tr-flex hui-ellipsis">{{item.info}}</span>
  51. <span class="tr-130">{{item.date}}</span>
  52. <span class="tr-50 tr-center">
  53. <span class="color-red" v-if="!item.state">报警中</span>
  54. <span class="color-blue" v-else-if="item.state === 1">处理中</span>
  55. <span class="color-green" v-else-if="item.state === 2">已处理</span>
  56. </span>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </template>
  62. <script>
  63. import {
  64. getDeviceCountList,
  65. getDeviceAlarmList
  66. } from '@/httpApi/test'
  67. export default {
  68. props: ['type'],
  69. data() {
  70. return {
  71. testCount: {
  72. totalNumber: 0,
  73. online: 0,
  74. offline: 0
  75. },
  76. list: []
  77. }
  78. },
  79. created() {
  80. this.init();
  81. },
  82. methods: {
  83. init(option) {
  84. let postData = {
  85. type: this.type, //1-周界报警设备 2-周界报警 3.电子巡查设备
  86. projectId: this.$store.getters.project.id
  87. }
  88. if (option) postData = Object.assign(postData, option);
  89. getDeviceCountList(postData).then(res => {
  90. if (res.state) {
  91. this.testCount = res.data[0] ? res.data[0] : {
  92. totalNumber: 0,
  93. online: 0,
  94. offline: 0
  95. }
  96. }
  97. })
  98. getDeviceAlarmList(postData).then(res => {
  99. if (res.state) {
  100. this.list = res.data;
  101. }
  102. })
  103. }
  104. }
  105. }
  106. </script>
  107. <style lang="scss">
  108. </style>