securityAlarmMap.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <template>
  2. <div class="securityAlarmMap">
  3. <Card title="地图模式">
  4. <div class="securityAlarmMap-query">
  5. <span>楼层:</span>
  6. <a-select v-model="floor" style="width: 150px">
  7. <a-select-option value="1">1F</a-select-option>
  8. <!--<a-select-option value="2">B2</a-select-option>-->
  9. <!--<a-select-option value="3">B3</a-select-option>-->
  10. </a-select>
  11. <div style="display: inline-block;float: right">
  12. <span class="anticon" style="vertical-align: bottom"><IconCamera :color="'#1890ff'" ></IconCamera></span>
  13. <span style="display: inline-block;margin-right: 12px">在线</span>
  14. <span class="anticon" style="vertical-align: bottom"><IconCamera :color="'#a2a4a2'" ></IconCamera></span>
  15. <span style="display: inline-block;margin-right: 12px">离线</span>
  16. <span class="anticon" style="vertical-align: bottom"><IconCamera :color="'#ff4d4f'" ></IconCamera></span>
  17. <span style="display: inline-block;margin-right: 12px">告警</span>
  18. </div>
  19. </div>
  20. <div class="securityAlarmMap-alert" v-if="alarmNum>0">
  21. <a-alert type="warning" show-icon>
  22. <template #message>
  23. 有<span style="color: red;font-weight: bold;display: inline-block;padding: 0 3px">{{ alarmNum }}</span>条告警事件待处理
  24. </template>
  25. </a-alert>
  26. </div>
  27. <div class="securityAlarmMap-info">
  28. <span class="securityAlarmMap-info-item">
  29. 当前在线摄像头:
  30. <span class="securityAlarmMap-info-item-num" style="color: #2f8cc8">{{ deviceNum.online }}</span>
  31. </span>
  32. <span class="securityAlarmMap-info-item">
  33. 当前离线摄像头:
  34. <span class="securityAlarmMap-info-item-num" style="color: #4D4D4D">{{ deviceNum.unline }}</span>
  35. </span>
  36. <span class="securityAlarmMap-info-item">
  37. 当前告警摄像头:
  38. <span class="securityAlarmMap-info-item-num" style="color: #F1934E">{{ deviceNum.alarm }}</span>
  39. </span>
  40. </div>
  41. <div class="securityAlarmMap-map">
  42. <ImageMap :show-camera="handleCameraVisible" :markers="devicePositions" :src="areaSrc" ></ImageMap>
  43. </div>
  44. </Card>
  45. <a-modal
  46. title="实时预览"
  47. v-if="showcamera"
  48. :visible="true"
  49. width="800px"
  50. @cancel="()=>{this.showcamera=false}"
  51. :footer="null"
  52. >
  53. <div style="height: 450px">
  54. <hkwsCamera />
  55. </div>
  56. </a-modal>
  57. </div>
  58. </template>
  59. <script>
  60. import Card from "@/components/common/card.vue";
  61. import IconCamera from "@/assets/svg/IconCamera.vue";
  62. import ImageMap from "@/components/security/alarm/map/imageMap.vue";
  63. import hkwsCamera from "@/components/security/camera/hkwsCamera.vue";
  64. export default {
  65. data() {
  66. return {
  67. alarmNum: 0,
  68. floor: '1',
  69. areaSrc: 'security/area_1F.png',
  70. showcamera: false,
  71. deviceNum: {
  72. online: 7,
  73. unline: 2,
  74. alarm: 1,
  75. },
  76. devicePositions: [
  77. {
  78. status: 1,
  79. left: 348,
  80. top: 27,
  81. code: '123456'
  82. },{
  83. status: 1,
  84. left: 373,
  85. top: 27,
  86. },{
  87. status: 1,
  88. left: 230,
  89. top: 76,
  90. },{
  91. status: 0,
  92. left: 260,
  93. top: 76,
  94. },{
  95. status: 1,
  96. left: 300,
  97. top: 100,
  98. },{
  99. status: 0,
  100. left: 325,
  101. top: 100,
  102. },{
  103. status: 1,
  104. left: 300,
  105. top: 130,
  106. },{
  107. status: 2,
  108. left: 325,
  109. top: 130,
  110. },{
  111. status: 1,
  112. left: 430,
  113. top: 155,
  114. },{
  115. status: 1,
  116. left: 180,
  117. top: 350
  118. }
  119. ]
  120. }
  121. },
  122. components: {
  123. Card,
  124. IconCamera,
  125. ImageMap,
  126. hkwsCamera,
  127. },
  128. mounted() {
  129. },
  130. methods: {
  131. handleCameraVisible(code) {
  132. if (code && code!='') {
  133. this.showcamera = true;
  134. } else {
  135. this.$message.warning('暂未获取到视频流')
  136. }
  137. }
  138. }
  139. }
  140. </script>
  141. <style lang="less" scoped>
  142. .securityAlarmMap {
  143. width: 100%;
  144. height: auto;
  145. background-color: #ffffff;
  146. padding: 0px 15px 15px;
  147. .securityAlarmMap-query {
  148. margin-top: 12px;
  149. margin-left: 15px;
  150. }
  151. .securityAlarmMap-alert {
  152. margin-top: 12px;
  153. margin-left: 15px;
  154. }
  155. .securityAlarmMap-info {
  156. width: 100%;
  157. margin-top: 15px;
  158. margin-left: 15px;
  159. color: #B2B2B2;
  160. .securityAlarmMap-info-item {
  161. display: inline-block;
  162. font-size: 15px;
  163. margin-right: 50px;
  164. .securityAlarmMap-info-item-num {
  165. font-size: 18px;
  166. background-color: #f7fbff;
  167. padding: 0 30px;
  168. font-weight: bold;
  169. }
  170. }
  171. }
  172. .securityAlarmMap-map {
  173. //width: 100%;
  174. padding: 2% 5%;
  175. background-color: #ffffff;
  176. }
  177. }
  178. </style>