animal.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <template>
  2. <div class="visual-con">
  3. <!--头部-->
  4. <vheader></vheader>
  5. <!--主体-->
  6. <div class="visual-body">
  7. <!-- 左侧 -->
  8. <div class="leftbar w-6" :class="indentleft" ref="left">
  9. <div class="forthis">
  10. <div class="i-list-con h-78">
  11. <div class="d-l-con-icon">
  12. <div class="icon-con m-btm-no"><!-- -->
  13. <!--<div class="icon icon-dot"></div>-->
  14. <div class="icon-text animal-text">
  15. <h6>9</h6>
  16. <h5>总数</h5>
  17. </div>
  18. </div>
  19. </div>
  20. <div class="d-l-con-icon">
  21. <div class="icon-con icon-animal-con" v-for="(item,index) in animalDwfb">
  22. <div class="iconfont icon icon-normal icon-animal">
  23. <img :src="item.src">
  24. </div>
  25. <div class="icon-text icon-animal-text">
  26. <h5>{{item.name}}</h5>
  27. </div>
  28. </div>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. <!-- 地图 -->
  34. <supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'forestMap'"
  35. :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false"></supermap>
  36. <!-- <button @click="showEventInfo1" style="position: absolute; right: 50%;top: 45%;z-index: 1000;">弹层事件演示用按钮-->
  37. <!-- </button>-->
  38. <!-- 右侧 -->
  39. <div class="rightbar" :class="indentright" ref="right">
  40. <div class="forthis">
  41. <div class="this-title">
  42. <span>事件分布</span>
  43. <!-- <span>23</span> -->
  44. </div>
  45. <div class="i-list-con h-73">
  46. <div class="d-l-con-icon">
  47. <div class="h-19 overflow-y w100">
  48. <div class="d-l-con" v-for="(item,index) in animalSjfb">
  49. <div class="d-l-l-text">
  50. <i class="i-small"></i>
  51. <h4>{{item.address}}</h4>
  52. </div>
  53. <div class="d-l-l-count">{{item.count}}</div>
  54. </div>
  55. </div>
  56. </div>
  57. <div class="d-l-con">
  58. <div id="animal-chart" style="width: 100%;height:26.2vh;"></div>
  59. </div>
  60. <div class="d-l-con d-evnet-list-con" v-for="(item,index) in animalSjlb">
  61. <img src="@/assets/images/visual/img-sample.png" class="event-list-img animal-img">
  62. <div class="event-list-text">
  63. <h3>{{item.eventTitle}}</h3>
  64. <h4>{{item.phoneNum}}</h4>
  65. <h4><span>{{item.qx}}</span><span>{{item.source}}</span><span>{{item.time}}</span>
  66. </h4>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. <vBottomMenu ref="bottomMenu"></vBottomMenu>
  73. <el-tooltip :content="indentText" placement="top" :disabled="indentdisabled">
  74. <div class="mascot" ref="mascot" :class="indentStyle" @click="indent"><img
  75. src="@/assets/images/mascot.png"/>
  76. </div>
  77. </el-tooltip>
  78. </div>
  79. <eventLocation ref="eventLocation"></eventLocation>
  80. </div>
  81. </template>
  82. <script>
  83. import {selectDeviceType, selectCameraByDeptId} from '@/api/monitor'
  84. import supermap from '@/components/supermap' //超图
  85. import vheader from '@/components/v-header.vue' //一体化共用头部
  86. import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
  87. let echarts = require('echarts')
  88. export default {
  89. components: {
  90. supermap,
  91. vheader,
  92. vBottomMenu,
  93. }, data() {
  94. return {
  95. animalDwfb: [
  96. {
  97. name: '虎',
  98. src: require('../assets/images/dwbh/hu-1.png')
  99. }, {
  100. name: '豹',
  101. src: require('../assets/images/dwbh/bao-1.png')
  102. }, {
  103. name: '蛇',
  104. src: require('../assets/images/dwbh/she-1.png')
  105. }, {
  106. name: '鹰',
  107. src: require('../assets/images/dwbh/ying-1.png')
  108. }, {
  109. name: '兔',
  110. src: require('../assets/images/dwbh/tuzi-1.png')
  111. }, {
  112. name: '狐狸',
  113. src: require('../assets/images/dwbh/huli-1.png')
  114. }, {
  115. name: '狗熊',
  116. src: require('../assets/images/dwbh/gouxiong-1.png')
  117. }, {
  118. name: '野鸡',
  119. src: require('../assets/images/dwbh/yeji-1.png')
  120. }, {
  121. name: '狍子',
  122. src: require('../assets/images/dwbh/paozi-1.png')
  123. }
  124. ],
  125. animalSjfb: [
  126. {
  127. address: '双辽',
  128. count: '11'
  129. }, {
  130. address: '梨树',
  131. count: '11'
  132. }, {
  133. address: '伊通',
  134. count: '11'
  135. }, {
  136. address: '铁东',
  137. count: '11'
  138. }, {
  139. address: '铁西',
  140. count: '11'
  141. }
  142. ],
  143. animalSjlb: [
  144. {
  145. eventTitle: '火险事件-XXXX地摄像头',
  146. phoneNum: '15635652525',
  147. qx: '摄像头',
  148. source: '新上报',
  149. time: '2022-05-06 20:52:20'
  150. }, {
  151. eventTitle: '火险事件-XXXX地摄像头2',
  152. phoneNum: '15635652525',
  153. qx: '摄像头',
  154. source: '新上报',
  155. time: '2022-05-06 20:52:20'
  156. }, {
  157. eventTitle: '火险事件-XXXX地摄像头3',
  158. phoneNum: '15635652525',
  159. qx: '摄像头',
  160. source: '新上报',
  161. time: '2022-05-06 20:52:20'
  162. }, {
  163. eventTitle: '火险事件-XXXX地摄像头4',
  164. phoneNum: '15635652525',
  165. qx: '摄像头',
  166. source: '新上报',
  167. time: '2022-05-06 20:52:20'
  168. }
  169. ]
  170. }
  171. },
  172. model: {},
  173. methods: {
  174. //事件chart
  175. eventChart() {
  176. // 基于准备好的dom,初始化echarts实例
  177. let myChart = echarts.init(document.getElementById('animal-chart'))
  178. myChart.setOption({
  179. color: ['#2EACFF', '#FFA61C', '#2EC054', '#8C64D7'],
  180. tooltip: {
  181. trigger: 'item',
  182. formatter: "{a} <br/>{b} : {c} ({d}%)"
  183. },
  184. toolbox: {
  185. show: true,
  186. },
  187. series: [
  188. {
  189. name: '事件分类',
  190. type: 'pie',
  191. roseType: true,
  192. radius: [30, 70],
  193. label: {
  194. show: true,
  195. formatter: "{b}\n{c} "
  196. },
  197. data: this.eventChartData
  198. }
  199. ]
  200. })
  201. },
  202. //吉祥物收起左右框
  203. indent() {
  204. let list = document.getElementsByClassName('el-tooltip__popper')
  205. list[list.length - 1].style.display = 'none'
  206. if (this.indentStyle == '') {
  207. this.indentStyle = 'indent-style'
  208. this.indentleft = 'indent-left'
  209. this.indentright = 'indent-right'
  210. this.indentText = '展开左右栏'
  211. } else if (this.indentText == '展开左右栏') {
  212. this.indentStyle = ''
  213. this.indentleft = ''
  214. this.indentright = ''
  215. this.indentText = '收起左右栏'
  216. }
  217. },
  218. }
  219. }
  220. </script>
  221. <style rel="stylesheet/scss" lang="scss" scoped>
  222. @import '@/assets/styles/base.scss';
  223. @import '@/assets/styles/animal.scss';
  224. </style>