consume.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <div class="_runnings">
  3. <HeadlineTag value="行为检测(周)"></HeadlineTag>
  4. <div class="_runnings_mains" :style="{ '--heightSume': heightcon + 'px' }">
  5. <div class="_runnings_mains_left" id="sumeWidth">
  6. <div class="_runnings_mains_left_tuan tuan1"></div>
  7. <div class="_runnings_mains_left_conter">
  8. <div class="_runnings_mains_left_conter_num">{{ resultData.OverloadWarning || 0 }}</div>
  9. <div class="_runnings_mains_left_conter_text">超载预警</div>
  10. </div>
  11. </div>
  12. <div class="_runnings_mains_left">
  13. <div class="_runnings_mains_left_tuan tuan2"></div>
  14. <div class="_runnings_mains_left_conter">
  15. <div class="_runnings_mains_left_conter_num">{{ resultData.TrappedPersonAlarm || 0 }}</div>
  16. <div class="_runnings_mains_left_conter_text">困人告警</div>
  17. </div>
  18. </div>
  19. <div class="_runnings_mains_left">
  20. <div class="_runnings_mains_left_tuan tuan3"></div>
  21. <div class="_runnings_mains_left_conter">
  22. <div class="_runnings_mains_left_conter_num">{{ resultData.AbnormalVibration || 0 }}</div>
  23. <div class="_runnings_mains_left_conter_text">异常震动</div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. </template>
  29. <script setup>
  30. import { ref } from "vue";
  31. import HeadlineTag from '@/components/HeadlineTag'
  32. const runningList = ref([
  33. { name: '入侵检测', state: '154', color: '#409eff', tip: '划定区域人员闯入' },
  34. { name: '异常行为', state: '15', color: '#15acaa', tip: '徘徊、倒地、聚集' },
  35. { name: '丢失告警', state: '134', color: '#FFC107', tip: '物品遗留/丢失告警' },
  36. ])
  37. const props = defineProps({
  38. resultData: {
  39. type: Object,
  40. default: {}
  41. }
  42. })
  43. const heightcon = ref(0)
  44. // 生命周期
  45. onMounted(() => {
  46. var element = document.getElementById("sumeWidth");
  47. var width = element.offsetWidth;
  48. heightcon.value = width
  49. });
  50. </script>
  51. <style lang="scss" scoped>
  52. .tuan1 {
  53. background: url("@/assets/images/video_bg_1.png");
  54. animation: scanning 10s linear infinite;
  55. }
  56. .tuan2 {
  57. background: url("@/assets/images/video_bg_2.png");
  58. animation: scanning 10s linear infinite;
  59. }
  60. .tuan3 {
  61. background: url("@/assets/images/video_bg_3.png");
  62. animation: scanning 10s linear infinite;
  63. }
  64. ._runnings {
  65. display: flex;
  66. align-items: center;
  67. flex-direction: column;
  68. &_mains {
  69. flex: 1;
  70. width: 100%;
  71. display: flex;
  72. align-items: center;
  73. justify-content: space-around;
  74. &_left {
  75. flex-shrink: 0;
  76. width: 32%;
  77. height: var(--heightSume);
  78. position: relative;
  79. &_tuan {
  80. width: 100%;
  81. height: 100%;
  82. background-size: 80% 80%;
  83. background-position: center;
  84. background-repeat: no-repeat;
  85. }
  86. &_conter {
  87. position: absolute;
  88. left: 0;
  89. top: 0;
  90. flex-shrink: 0;
  91. width: 100%;
  92. height: 100%;
  93. display: flex;
  94. flex-direction: column;
  95. align-items: center;
  96. justify-content: center;
  97. color: #fff;
  98. &_num {
  99. font-size: 18px;
  100. }
  101. &_text {
  102. font-size: 12px;
  103. }
  104. }
  105. }
  106. }
  107. }
  108. @keyframes scanning {
  109. to {
  110. transform: rotate(1turn);
  111. }
  112. }
  113. </style>