datacenter.vue 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062
  1. <!--信息中心-->
  2. <template>
  3. <div class="visual-con">
  4. <!--头部-->
  5. <vheader></vheader>
  6. <!--主体-->
  7. <div class="visual-body">
  8. <!-- 左侧 -->
  9. <div class="leftbar w-10" :class="indentleft" ref="left">
  10. <div class="forthis">
  11. <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
  12. <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
  13. <div class="i-list-con h-78">
  14. <div class="d-l-con-icon">
  15. <div class="icon-con" :class="{on:iconCurrentIndex==item.resourceTable}"
  16. v-for="(item,index) in resourcesList"
  17. v-on:click="indentleftSetMarkers(item.resourceTable)">
  18. <div class="iconfont icon icon-normal" :class="item.icon"></div>
  19. <div class="icon-text">
  20. <h6>{{ item.count }}</h6>
  21. <h5>{{ item.resourceName }}</h5>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. </dv-border-box-13>
  27. </div>
  28. </div>
  29. <!-- 地图 -->
  30. <supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'forestMap'" class="indexSupermapClass"
  31. :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false"></supermap>
  32. <!-- <button @click="showEventInfo1" style="position: absolute; right: 50%;top: 45%;z-index: 1000;">弹层事件演示用按钮-->
  33. <!-- </button>-->
  34. <!-- 右侧 -->
  35. <div class="rightbar" :class="indentright" ref="right">
  36. <div class="forthis">
  37. <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
  38. <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
  39. <div class="this-title">
  40. <span>数据分布</span>
  41. <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
  42. </div>
  43. <div class="i-list-con h-73">
  44. <div class="overflow-y" style="height: 39vh">
  45. <div class="d-l-con" :class="{on:listCurrentIndex==item.deptId}"
  46. v-for="(item,index) in deptGroupList"
  47. v-on:click="indentleftByDeptIdSetMarkers(item.deptId)">
  48. <div class="d-l-l-text">
  49. <i class="i-small"></i>
  50. <h4>{{ item.deptName }}</h4>
  51. </div>
  52. <div class="d-l-l-count">{{ item.count }}</div>
  53. </div>
  54. </div>
  55. <div class="overflow-y" style="height: 34vh;">
  56. <div id="data-chart" style="width: 100%;height:34vh;"></div>
  57. </div>
  58. </div>
  59. </dv-border-box-13>
  60. </div>
  61. </div>
  62. <vBottomMenu ref="bottomMenu"></vBottomMenu>
  63. <el-tooltip :content="indentText" placement="top" :disabled="indentdisabled">
  64. <div class="mascot" ref="mascot" :class="indentStyle" @click="indent"><img
  65. src="@/assets/images/mascot.png"/>
  66. </div>
  67. </el-tooltip>
  68. </div>
  69. <eventLocation ref="eventLocation"></eventLocation>
  70. <TVWall ref="TVWall"></TVWall>
  71. </div>
  72. </template>
  73. <script>
  74. import {
  75. getResource,
  76. getResourcePoint,
  77. getResourcePointByDeptId
  78. } from '@/api/datacenter'
  79. import supermap from '@/components/supermap' //超图
  80. import vheader from '@/components/v-header.vue' //一体化共用头部
  81. import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
  82. import eventLocation from '@/components/eventLocation.vue' //事件定位弹窗
  83. import TVWall from '@/components/TVWall.vue' //电视墙弹窗
  84. // import echarts from 'echarts'
  85. let echarts = require('echarts')
  86. export default {
  87. components: {
  88. supermap,
  89. vheader,
  90. vBottomMenu,
  91. eventLocation,
  92. TVWall
  93. },
  94. created() {
  95. /** ----------------------------------底部按钮公用组件开始------------------------------------- */
  96. window.showDialog = this.showDialog
  97. window.choseLayerSwitching = this.choseLayerSwitching
  98. window.choseLayerSwitchingList = this.choseLayerSwitchingList
  99. /** ----------------------------------底部按钮公用组件结束------------------------------------- */
  100. },
  101. mounted() {
  102. this.getResource()
  103. },
  104. data() {
  105. return {
  106. iconCurrentIndex: '',
  107. listCurrentIndex: '',
  108. markersList: [],
  109. iframeBoo: true,
  110. open: false,
  111. iframeVue: null,
  112. activeName: 'info',
  113. radio: '1',
  114. //类型
  115. resourceTable: '',
  116. //左侧资源
  117. resourcesList: [],
  118. //右侧资源
  119. deptGroupList: [],
  120. source: [],
  121. //左右缩进
  122. indentStyle: '',
  123. indentleft: '',
  124. indentright: '',
  125. indentText: '收起左右栏',
  126. indentdisabled: false
  127. }
  128. },
  129. methods: {
  130. /** ----------------------------------底部按钮公用组件开始------------------------------------- */
  131. showDialog(click) {
  132. if (click == 'eventLocation') {
  133. this.$refs.eventLocation.showEventLocation()
  134. this.$refs.supermap.isEditableLayers = false
  135. this.$refs.bottomMenu.showChild = false
  136. } else if (click == 'editableLayers') {
  137. this.$refs.bottomMenu.showChild = false
  138. if (!this.$refs.supermap.isEditableLayers) {
  139. this.$refs.supermap.isEditableLayers = true
  140. } else {
  141. this.$refs.supermap.isEditableLayers = false
  142. }
  143. } else if (click == 'layerSwitching') {
  144. this.$refs.supermap.isEditableLayers = false
  145. if (!this.$refs.bottomMenu.showChild) {
  146. this.$refs.bottomMenu.showChild = true
  147. } else {
  148. this.$refs.bottomMenu.showChild = false
  149. }
  150. } else if (click == 'TVWall') {
  151. this.$refs.TVWall.showTVWall()
  152. this.$refs.supermap.isEditableLayers = false
  153. this.$refs.bottomMenu.showChild = false
  154. }
  155. },
  156. //选择图层
  157. choseLayerSwitching(url, isClear) {
  158. this.$refs.supermap.layerSwitching(url, isClear)
  159. },
  160. //选择图层(传递数组)
  161. choseLayerSwitchingList(urlList) {
  162. this.$refs.supermap.layerSwitchingList(urlList)
  163. },
  164. /** ----------------------------------底部按钮公用组件结束------------------------------------- */
  165. //数据分布chart
  166. dataChat() {
  167. // 基于准备好的dom,初始化echarts实例
  168. let myChart = echarts.init(document.getElementById('data-chart'))
  169. // 绘制图表
  170. const dfColor = ['#92E1FF', '#0097FB', '#30ECA6', '#FFC227', '#FF4848']
  171. myChart.setOption({
  172. dataset: {
  173. source: this.source
  174. },
  175. tooltip: {
  176. trigger: 'item'
  177. },
  178. grid: {
  179. top: '5%',
  180. left: '2%',
  181. // right: "4%",
  182. bottom: '-15%',
  183. width: '75%',
  184. containLabel: true
  185. },
  186. xAxis: {
  187. show: false,
  188. type: 'value'
  189. },
  190. yAxis: {
  191. type: 'category', // 不设置类目轴,抽离的dataset数据展示不出来
  192. inverse: true,
  193. axisLabel: {
  194. show: true,
  195. textStyle: {
  196. color: '#5deaff',
  197. fontSize: '12'
  198. }
  199. },
  200. splitLine: {
  201. show: false
  202. },
  203. axisTick: {
  204. show: false
  205. },
  206. axisLine: {
  207. show: false
  208. }
  209. },
  210. series: [{
  211. type: 'bar',
  212. animationCurve: 'easeOutBack',
  213. barWidth: 5,
  214. label: {
  215. show: true,
  216. position: 'right',
  217. offset: [0, 0],
  218. color: '#88dfd5',
  219. // fontSize: "12",
  220. style: {
  221. fill: '#fff'
  222. }
  223. },
  224. backgroundBar: {
  225. show: true,
  226. style: {
  227. fill: 'rgba(97,152,255,0.20)'
  228. }
  229. },
  230. barStyle: {
  231. stroke: 'rgba(41,244,236,1)'
  232. },
  233. gradient: {
  234. color: ['rgba(41,244,236,1)', 'rgba(41,244,236,0)']
  235. },
  236. itemStyle: {
  237. label: {
  238. show: true
  239. },
  240. labelLine: {
  241. show: false
  242. },
  243. color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{
  244. offset: 0,
  245. color: 'rgba(41,244,236,0)'
  246. },
  247. {
  248. offset: 1,
  249. color: 'rgba(41,244,236,.5)'
  250. }
  251. ]),
  252. borderColor: '#a2f9f7',
  253. shadowBlur: 16,
  254. shadowColor: '#a2f9f7'
  255. }
  256. }]
  257. })
  258. },
  259. //吉祥物收起左右框
  260. indent() {
  261. let list = document.getElementsByClassName('el-tooltip__popper')
  262. list[list.length - 1].style.display = 'none'
  263. if (this.indentStyle == '') {
  264. this.indentStyle = 'indent-style'
  265. this.indentleft = 'indent-left'
  266. this.indentright = 'indent-right'
  267. this.indentText = '展开左右栏'
  268. } else if (this.indentText == '展开左右栏') {
  269. this.indentStyle = ''
  270. this.indentleft = ''
  271. this.indentright = ''
  272. this.indentText = '收起左右栏'
  273. }
  274. },
  275. // 弹层方法
  276. // 弹层方法
  277. showEventInfo1() {
  278. this.eventInfoVisible1 = true
  279. },
  280. showEventInfo2() {
  281. this.eventInfoVisible2 = true
  282. },
  283. getResource() {
  284. let that = this
  285. //获取左侧菜单列表
  286. getResource().then(res => {
  287. that.resourcesList = res.data
  288. //截取data.resourceTable字段中“_”分隔符最后一个作为关键字,重新拼接成前端需要的图标:class,格式sj-icon-xxxx,将其set回原数组
  289. res.data.forEach(function(data, index) {
  290. that.$set(that.resourcesList[index], 'icon', 'sj' + '-' + 'icon' + '-' + data
  291. .resourceTable.split('_').slice(-1))
  292. })
  293. })
  294. },
  295. indentleftSetMarkers(resourceTable) {
  296. this.iconCurrentIndex = resourceTable
  297. let that = this
  298. that.resourceTable = resourceTable
  299. that.markersList = []
  300. that.source = []
  301. //点击左侧地图落点
  302. getResourcePoint(resourceTable).then(res => {
  303. that.deptGroupList = res.data.deptGroupList
  304. if (res.data.deptGroupList != null && res.data.deptGroupList.length > 0) {
  305. for (let i = 0; i < res.data.deptGroupList.length; i++) {
  306. let aa = [res.data.deptGroupList[i].deptName, res.data.deptGroupList[i].count]
  307. that.source.push(aa)
  308. }
  309. }
  310. if (res.data.resourceList != null && res.data.resourceList.length > 0) {
  311. for (let i = 0; i < res.data.resourceList.length; i++) {
  312. let markersMap = {
  313. lng: 124.59,
  314. lat: 43.02,
  315. icon: 'marker',
  316. bindPopupHtml: '',
  317. click: '',
  318. keepBindPopup: false,
  319. isAggregation: false
  320. }
  321. if (resourceTable == 'centerdata_t_forest_weatherstation') { //气象站
  322. markersMap.icon = 'sj-icon-map-qxz'
  323. markersMap.lng = res.data.resourceList[i].longitude
  324. markersMap.lat = res.data.resourceList[i].latitude
  325. markersMap.bindPopupHtml = '<div class="map-tip">' +
  326. '<span>' +
  327. ' <div class="d-l-con">' +
  328. ' <div class="d-l-l-text">' +
  329. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  330. .data.resourceList[i].latitude + '</h4>' +
  331. ' </div>' +
  332. ' </div>' +
  333. ' </span>' +
  334. '<span>' +
  335. ' <div class="d-l-con">' +
  336. ' <div class="d-l-l-text">' +
  337. ' <h4>地址:' + res.data.resourceList[i].weatherstationAddress +
  338. '</h4>' +
  339. ' </div>' +
  340. ' </div>' +
  341. ' </span>' +
  342. '<span>' +
  343. ' <div class="d-l-con">' +
  344. ' <div class="d-l-l-text">' +
  345. ' <h4>联系人:' + res.data.resourceList[i].weatherstationPerson +
  346. '</h4>' +
  347. ' </div>' +
  348. ' </div>' +
  349. ' </span>' +
  350. '<span>' +
  351. ' <div class="d-l-con">' +
  352. ' <div class="d-l-l-text">' +
  353. ' <h4>电话:' + res.data.resourceList[i].weatherstationTel +
  354. '</h4>' +
  355. ' </div>' +
  356. ' </div>' +
  357. ' </span></div>'
  358. } else if (resourceTable == 'centerdata_t_forest_farm') { //林场
  359. markersMap.icon = 'sj-icon-map-lc'
  360. markersMap.lng = res.data.resourceList[i].longitude
  361. markersMap.lat = res.data.resourceList[i].latitude
  362. markersMap.bindPopupHtml = '<div class="map-tip">' +
  363. '<span>' +
  364. ' <div class="d-l-con">' +
  365. ' <div class="d-l-l-text">' +
  366. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  367. .data.resourceList[i].latitude + '</h4>' +
  368. ' </div>' +
  369. ' </div>' +
  370. ' </span>' +
  371. '<span>' +
  372. ' <div class="d-l-con">' +
  373. ' <div class="d-l-l-text">' +
  374. ' <h4>林场名称:' + res.data.resourceList[i].farmName + '</h4>' +
  375. ' </div>' +
  376. ' </div>' +
  377. ' </span>' +
  378. '<span>' +
  379. ' <div class="d-l-con">' +
  380. ' <div class="d-l-l-text">' +
  381. ' <h4>联系人:' + res.data.resourceList[i].farmPerson + '</h4>' +
  382. ' </div>' +
  383. ' </div>' +
  384. ' </span>' +
  385. '<span>' +
  386. ' <div class="d-l-con">' +
  387. ' <div class="d-l-l-text">' +
  388. ' <h4>电话:' + res.data.resourceList[i].farmTel + '</h4>' +
  389. ' </div>' +
  390. ' </div>' +
  391. ' </span></div>'
  392. } else if (resourceTable == 'centerdata_t_forest_landing') { //起降点
  393. markersMap.icon = 'sj-icon-map-qjd'
  394. markersMap.lng = res.data.resourceList[i].longitude
  395. markersMap.lat = res.data.resourceList[i].latitude
  396. markersMap.bindPopupHtml = '<div class="map-tip">' +
  397. '<span>' +
  398. ' <div class="d-l-con">' +
  399. ' <div class="d-l-l-text">' +
  400. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  401. .data.resourceList[i].latitude + '</h4>' +
  402. ' </div>' +
  403. ' </div>' +
  404. ' </span>' +
  405. '<span>' +
  406. ' <div class="d-l-con">' +
  407. ' <div class="d-l-l-text">' +
  408. ' <h4>起降点名称:' + res.data.resourceList[i].landingName +
  409. '</h4>' +
  410. ' </div>' +
  411. ' </div>' +
  412. ' </span>' +
  413. '<span>' +
  414. ' <div class="d-l-con">' +
  415. ' <div class="d-l-l-text">' +
  416. ' <h4>联系人:' + res.data.resourceList[i].landingPerson +
  417. '</h4>' +
  418. ' </div>' +
  419. ' </div>' +
  420. ' </span>' +
  421. '<span>' +
  422. ' <div class="d-l-con">' +
  423. ' <div class="d-l-l-text">' +
  424. ' <h4>电话:' + res.data.resourceList[i].landingTel + '</h4>' +
  425. ' </div>' +
  426. ' </div>' +
  427. ' </span></div>'
  428. } else if (resourceTable == 'centerdata_t_forest_channel') { //水源渠道
  429. markersMap.icon = 'sj-icon-map-syqd'
  430. markersMap.lng = res.data.resourceList[i].longitude
  431. markersMap.lat = res.data.resourceList[i].latitude
  432. markersMap.bindPopupHtml = '<div class="map-tip">' +
  433. '<span>' +
  434. ' <div class="d-l-con">' +
  435. ' <div class="d-l-l-text">' +
  436. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  437. .data.resourceList[i].latitude + '</h4>' +
  438. ' </div>' +
  439. ' </div>' +
  440. ' </span>' +
  441. '<span>' +
  442. ' <div class="d-l-con">' +
  443. ' <div class="d-l-l-text">' +
  444. ' <h4>渠道名称:' + res.data.resourceList[i].channelName +
  445. '</h4>' +
  446. ' </div>' +
  447. ' </div>' +
  448. ' </span>' +
  449. '<span>' +
  450. ' <div class="d-l-con">' +
  451. ' <div class="d-l-l-text">' +
  452. ' <h4>联系人:' + res.data.resourceList[i].channelPerson +
  453. '</h4>' +
  454. ' </div>' +
  455. ' </div>' +
  456. ' </span>' +
  457. '<span>' +
  458. ' <div class="d-l-con">' +
  459. ' <div class="d-l-l-text">' +
  460. ' <h4>电话:' + res.data.resourceList[i].channelTel + '</h4>' +
  461. ' </div>' +
  462. ' </div>' +
  463. ' </span></div>'
  464. } else if (resourceTable == 'centerdata_t_forest_checkpoint') { //防火检查站
  465. markersMap.icon = 'sj-icon-map-fhjcz'
  466. markersMap.lng = res.data.resourceList[i].longitude
  467. markersMap.lat = res.data.resourceList[i].latitude
  468. markersMap.bindPopupHtml = '<div class="map-tip">' +
  469. '<span>' +
  470. ' <div class="d-l-con">' +
  471. ' <div class="d-l-l-text">' +
  472. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  473. .data.resourceList[i].latitude + '</h4>' +
  474. ' </div>' +
  475. ' </div>' +
  476. ' </span>' +
  477. '<span>' +
  478. ' <div class="d-l-con">' +
  479. ' <div class="d-l-l-text">' +
  480. ' <h4>检查站名称:' + res.data.resourceList[i].checkpointName +
  481. '</h4>' +
  482. ' </div>' +
  483. ' </div>' +
  484. ' </span>' +
  485. '<span>' +
  486. ' <div class="d-l-con">' +
  487. ' <div class="d-l-l-text">' +
  488. ' <h4>地址:' + res.data.resourceList[i].checkpointAddress +
  489. '</h4>' +
  490. ' </div>' +
  491. ' </div>' +
  492. ' </span>' +
  493. '<span>' +
  494. ' <div class="d-l-con">' +
  495. ' <div class="d-l-l-text">' +
  496. ' <h4>联系人:' + res.data.resourceList[i].checkpointPerson +
  497. '</h4>' +
  498. ' </div>' +
  499. ' </div>' +
  500. ' </span>' +
  501. '<span>' +
  502. ' <div class="d-l-con">' +
  503. ' <div class="d-l-l-text">' +
  504. ' <h4>电话:' + res.data.resourceList[i].checkpointTel +
  505. '</h4>' +
  506. ' </div>' +
  507. ' </div>' +
  508. ' </span></div>'
  509. } else if (resourceTable == 'centerdata_t_forest_waterintake') { //取水口
  510. markersMap.icon = 'sj-icon-map-qsk'
  511. markersMap.lng = res.data.resourceList[i].longitude
  512. markersMap.lat = res.data.resourceList[i].latitude
  513. markersMap.bindPopupHtml = '<div class="map-tip">' +
  514. '<span>' +
  515. ' <div class="d-l-con">' +
  516. ' <div class="d-l-l-text">' +
  517. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  518. .data.resourceList[i].latitude + '</h4>' +
  519. ' </div>' +
  520. ' </div>' +
  521. ' </span>' +
  522. '<span>' +
  523. ' <div class="d-l-con">' +
  524. ' <div class="d-l-l-text">' +
  525. ' <h4>取水口名称:' + res.data.resourceList[i].waterintakeName +
  526. '</h4>' +
  527. ' </div>' +
  528. ' </div>' +
  529. ' </span>' +
  530. '<span>' +
  531. ' <div class="d-l-con">' +
  532. ' <div class="d-l-l-text">' +
  533. ' <h4>联系人:' + res.data.resourceList[i].waterintakePerson +
  534. '</h4>' +
  535. ' </div>' +
  536. ' </div>' +
  537. ' </span>' +
  538. '<span>' +
  539. ' <div class="d-l-con">' +
  540. ' <div class="d-l-l-text">' +
  541. ' <h4>电话:' + res.data.resourceList[i].waterintakeTel +
  542. '</h4>' +
  543. ' </div>' +
  544. ' </div>' +
  545. ' </span></div>'
  546. } else if (resourceTable == 'centerdata_t_forest_watercrane') { //水鹤
  547. markersMap.icon = 'sj-icon-map-sh'
  548. markersMap.lng = res.data.resourceList[i].longitude
  549. markersMap.lat = res.data.resourceList[i].latitude
  550. markersMap.bindPopupHtml = '<div class="map-tip">' +
  551. '<span>' +
  552. ' <div class="d-l-con">' +
  553. ' <div class="d-l-l-text">' +
  554. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  555. .data.resourceList[i].latitude + '</h4>' +
  556. ' </div>' +
  557. ' </div>' +
  558. ' </span>' +
  559. '<span>' +
  560. ' <div class="d-l-con">' +
  561. ' <div class="d-l-l-text">' +
  562. ' <h4>水鹤名称:' + res.data.resourceList[i].watercraneName +
  563. '</h4>' +
  564. ' </div>' +
  565. ' </div>' +
  566. ' </span>' +
  567. '<span>' +
  568. ' <div class="d-l-con">' +
  569. ' <div class="d-l-l-text">' +
  570. ' <h4>联系人:' + res.data.resourceList[i].watercranePerson +
  571. '</h4>' +
  572. ' </div>' +
  573. ' </div>' +
  574. ' </span>' +
  575. '<span>' +
  576. ' <div class="d-l-con">' +
  577. ' <div class="d-l-l-text">' +
  578. ' <h4>电话:' + res.data.resourceList[i].watercraneTel +
  579. '</h4>' +
  580. ' </div>' +
  581. ' </div>' +
  582. ' </span></div>'
  583. } else if (resourceTable == 'centerdata_t_forest_firehydrant') { //消火栓
  584. markersMap.icon = 'sj-icon-map-xhs'
  585. markersMap.lng = res.data.resourceList[i].longitude
  586. markersMap.lat = res.data.resourceList[i].latitude
  587. markersMap.bindPopupHtml = '<div class="map-tip">' +
  588. '<span>' +
  589. ' <div class="d-l-con">' +
  590. ' <div class="d-l-l-text">' +
  591. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  592. .data.resourceList[i].latitude + '</h4>' +
  593. ' </div>' +
  594. ' </div>' +
  595. ' </span>' +
  596. '<span>' +
  597. ' <div class="d-l-con">' +
  598. ' <div class="d-l-l-text">' +
  599. ' <h4>消火栓名称:' + res.data.resourceList[i].firehydrantName +
  600. '</h4>' +
  601. ' </div>' +
  602. ' </div>' +
  603. ' </span>' +
  604. '<span>' +
  605. ' <div class="d-l-con">' +
  606. ' <div class="d-l-l-text">' +
  607. ' <h4>地址:' + res.data.resourceList[i].firehydrantAddress +
  608. '</h4>' +
  609. ' </div>' +
  610. ' </div>' +
  611. ' </span>' +
  612. '<span>' +
  613. ' <div class="d-l-con">' +
  614. ' <div class="d-l-l-text">' +
  615. ' <h4>联系人:' + res.data.resourceList[i].firehydrantPerson +
  616. '</h4>' +
  617. ' </div>' +
  618. ' </div>' +
  619. ' </span>' +
  620. '<span>' +
  621. ' <div class="d-l-con">' +
  622. ' <div class="d-l-l-text">' +
  623. ' <h4>电话:' + res.data.resourceList[i].firehydrantTel +
  624. '</h4>' +
  625. ' </div>' +
  626. ' </div>' +
  627. ' </span></div>'
  628. } else if (resourceTable == 'centerdata_t_forest_fireteam') { //森林防火队
  629. markersMap.icon = 'sj-icon-map-slfh'
  630. markersMap.lng = res.data.resourceList[i].longitude
  631. markersMap.lat = res.data.resourceList[i].latitude
  632. markersMap.bindPopupHtml = '<div class="map-tip">' +
  633. '<span>' +
  634. ' <div class="d-l-con">' +
  635. ' <div class="d-l-l-text">' +
  636. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  637. .data.resourceList[i].latitude + '</h4>' +
  638. ' </div>' +
  639. ' </div>' +
  640. ' </span>' +
  641. '<span>' +
  642. ' <div class="d-l-con">' +
  643. ' <div class="d-l-l-text">' +
  644. ' <h4>森林防火队名称:' + res.data.resourceList[i].fireteamName +
  645. '</h4>' +
  646. ' </div>' +
  647. ' </div>' +
  648. ' </span>' +
  649. '<span>' +
  650. ' <div class="d-l-con">' +
  651. ' <div class="d-l-l-text">' +
  652. ' <h4>联系人:' + res.data.resourceList[i].fireteamPerson +
  653. '</h4>' +
  654. ' </div>' +
  655. ' </div>' +
  656. ' </span>' +
  657. '<span>' +
  658. ' <div class="d-l-con">' +
  659. ' <div class="d-l-l-text">' +
  660. ' <h4>电话:' + res.data.resourceList[i].fireteamTel + '</h4>' +
  661. ' </div>' +
  662. ' </div>' +
  663. ' </span></div>'
  664. }
  665. that.markersList.push(markersMap)
  666. }
  667. }
  668. this.dataChat()
  669. that.$refs.supermap.clearM(false)
  670. that.$refs.supermap.setMarkers(that.markersList)
  671. })
  672. },
  673. indentleftByDeptIdSetMarkers(deptId) {
  674. this.listCurrentIndex = deptId
  675. let that = this
  676. //点击左侧地图落点
  677. getResourcePointByDeptId(that.resourceTable, deptId).then(res => {
  678. that.markersList = []
  679. if (res.data.resourceList != null && res.data.resourceList.length > 0) {
  680. for (let i = 0; i < res.data.resourceList.length; i++) {
  681. let markersMap = {
  682. lng: 124.59,
  683. lat: 43.02,
  684. icon: 'marker',
  685. bindPopupHtml: '',
  686. click: '',
  687. keepBindPopup: false,
  688. isAggregation: false
  689. }
  690. if (that.resourceTable == 'centerdata_t_forest_weatherstation') { //气象站
  691. markersMap.icon = 'sj-icon-map-qxz'
  692. markersMap.lng = res.data.resourceList[i].longitude
  693. markersMap.lat = res.data.resourceList[i].latitude
  694. markersMap.icon = 'icon_qxz'
  695. markersMap.bindPopupHtml = '<div class="map-tip">' +
  696. '<span>' +
  697. ' <div class="d-l-con">' +
  698. ' <div class="d-l-l-text">' +
  699. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  700. .data.resourceList[i].latitude + '</h4>' +
  701. ' </div>' +
  702. ' </div>' +
  703. ' </span>' +
  704. '<span>' +
  705. ' <div class="d-l-con">' +
  706. ' <div class="d-l-l-text">' +
  707. ' <h4>地址:' + res.data.resourceList[i].weatherstationAddress +
  708. '</h4>' +
  709. ' </div>' +
  710. ' </div>' +
  711. ' </span>' +
  712. '<span>' +
  713. ' <div class="d-l-con">' +
  714. ' <div class="d-l-l-text">' +
  715. ' <h4>联系人:' + res.data.resourceList[i].weatherstationPerson +
  716. '</h4>' +
  717. ' </div>' +
  718. ' </div>' +
  719. ' </span>' +
  720. '<span>' +
  721. ' <div class="d-l-con">' +
  722. ' <div class="d-l-l-text">' +
  723. ' <h4>电话:' + res.data.resourceList[i].weatherstationTel +
  724. '</h4>' +
  725. ' </div>' +
  726. ' </div>' +
  727. ' </span></div>'
  728. } else if (that.resourceTable == 'centerdata_t_forest_farm') { //林场
  729. markersMap.icon = 'sj-icon-map-lc'
  730. markersMap.lng = res.data.resourceList[i].longitude
  731. markersMap.lat = res.data.resourceList[i].latitude
  732. markersMap.bindPopupHtml = '<div class="map-tip">' +
  733. '<span>' +
  734. ' <div class="d-l-con">' +
  735. ' <div class="d-l-l-text">' +
  736. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  737. .data.resourceList[i].latitude + '</h4>' +
  738. ' </div>' +
  739. ' </div>' +
  740. ' </span>' +
  741. '<span>' +
  742. ' <div class="d-l-con">' +
  743. ' <div class="d-l-l-text">' +
  744. ' <h4>林场名称:' + res.data.resourceList[i].farmName + '</h4>' +
  745. ' </div>' +
  746. ' </div>' +
  747. ' </span>' +
  748. '<span>' +
  749. ' <div class="d-l-con">' +
  750. ' <div class="d-l-l-text">' +
  751. ' <h4>联系人:' + res.data.resourceList[i].farmPerson + '</h4>' +
  752. ' </div>' +
  753. ' </div>' +
  754. ' </span>' +
  755. '<span>' +
  756. ' <div class="d-l-con">' +
  757. ' <div class="d-l-l-text">' +
  758. ' <h4>电话:' + res.data.resourceList[i].farmTel + '</h4>' +
  759. ' </div>' +
  760. ' </div>' +
  761. ' </span></div>'
  762. } else if (that.resourceTable == 'centerdata_t_forest_landing') { //起降点
  763. markersMap.icon = 'sj-icon-map-qjd'
  764. markersMap.lng = res.data.resourceList[i].longitude
  765. markersMap.lat = res.data.resourceList[i].latitude
  766. markersMap.bindPopupHtml = '<div class="map-tip">' +
  767. '<span>' +
  768. ' <div class="d-l-con">' +
  769. ' <div class="d-l-l-text">' +
  770. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  771. .data.resourceList[i].latitude + '</h4>' +
  772. ' </div>' +
  773. ' </div>' +
  774. ' </span>' +
  775. '<span>' +
  776. ' <div class="d-l-con">' +
  777. ' <div class="d-l-l-text">' +
  778. ' <h4>起降点名称:' + res.data.resourceList[i].landingName +
  779. '</h4>' +
  780. ' </div>' +
  781. ' </div>' +
  782. ' </span>' +
  783. '<span>' +
  784. ' <div class="d-l-con">' +
  785. ' <div class="d-l-l-text">' +
  786. ' <h4>联系人:' + res.data.resourceList[i].landingPerson +
  787. '</h4>' +
  788. ' </div>' +
  789. ' </div>' +
  790. ' </span>' +
  791. '<span>' +
  792. ' <div class="d-l-con">' +
  793. ' <div class="d-l-l-text">' +
  794. ' <h4>电话:' + res.data.resourceList[i].landingTel + '</h4>' +
  795. ' </div>' +
  796. ' </div>' +
  797. ' </span></div>'
  798. } else if (that.resourceTable == 'centerdata_t_forest_channel') { //水源渠道
  799. markersMap.icon = 'sj-icon-map-syqd'
  800. markersMap.lng = res.data.resourceList[i].longitude
  801. markersMap.lat = res.data.resourceList[i].latitude
  802. markersMap.bindPopupHtml = '<div class="map-tip">' +
  803. '<span>' +
  804. ' <div class="d-l-con">' +
  805. ' <div class="d-l-l-text">' +
  806. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  807. .data.resourceList[i].latitude + '</h4>' +
  808. ' </div>' +
  809. ' </div>' +
  810. ' </span>' +
  811. '<span>' +
  812. ' <div class="d-l-con">' +
  813. ' <div class="d-l-l-text">' +
  814. ' <h4>渠道名称:' + res.data.resourceList[i].channelName +
  815. '</h4>' +
  816. ' </div>' +
  817. ' </div>' +
  818. ' </span>' +
  819. '<span>' +
  820. ' <div class="d-l-con">' +
  821. ' <div class="d-l-l-text">' +
  822. ' <h4>联系人:' + res.data.resourceList[i].channelPerson +
  823. '</h4>' +
  824. ' </div>' +
  825. ' </div>' +
  826. ' </span>' +
  827. '<span>' +
  828. ' <div class="d-l-con">' +
  829. ' <div class="d-l-l-text">' +
  830. ' <h4>电话:' + res.data.resourceList[i].channelTel + '</h4>' +
  831. ' </div>' +
  832. ' </div>' +
  833. ' </span></div>'
  834. } else if (that.resourceTable == 'centerdata_t_forest_checkpoint') { //防火检查站
  835. markersMap.icon = 'sj-icon-map-fhjcz'
  836. markersMap.lng = res.data.resourceList[i].longitude
  837. markersMap.lat = res.data.resourceList[i].latitude
  838. markersMap.bindPopupHtml = '<div class="map-tip">' +
  839. '<span>' +
  840. ' <div class="d-l-con">' +
  841. ' <div class="d-l-l-text">' +
  842. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  843. .data.resourceList[i].latitude + '</h4>' +
  844. ' </div>' +
  845. ' </div>' +
  846. ' </span>' +
  847. '<span>' +
  848. ' <div class="d-l-con">' +
  849. ' <div class="d-l-l-text">' +
  850. ' <h4>检查站名称:' + res.data.resourceList[i].checkpointName +
  851. '</h4>' +
  852. ' </div>' +
  853. ' </div>' +
  854. ' </span>' +
  855. '<span>' +
  856. ' <div class="d-l-con">' +
  857. ' <div class="d-l-l-text">' +
  858. ' <h4>地址:' + res.data.resourceList[i].checkpointAddress +
  859. '</h4>' +
  860. ' </div>' +
  861. ' </div>' +
  862. ' </span>' +
  863. '<span>' +
  864. ' <div class="d-l-con">' +
  865. ' <div class="d-l-l-text">' +
  866. ' <h4>联系人:' + res.data.resourceList[i].checkpointPerson +
  867. '</h4>' +
  868. ' </div>' +
  869. ' </div>' +
  870. ' </span>' +
  871. '<span>' +
  872. ' <div class="d-l-con">' +
  873. ' <div class="d-l-l-text">' +
  874. ' <h4>电话:' + res.data.resourceList[i].checkpointTel +
  875. '</h4>' +
  876. ' </div>' +
  877. ' </div>' +
  878. ' </span></div>'
  879. } else if (that.resourceTable == 'centerdata_t_forest_waterintake') { //取水口
  880. markersMap.icon = 'sj-icon-map-qsk'
  881. markersMap.lng = res.data.resourceList[i].longitude
  882. markersMap.lat = res.data.resourceList[i].latitude
  883. markersMap.bindPopupHtml = '<div class="map-tip">' +
  884. '<span>' +
  885. ' <div class="d-l-con">' +
  886. ' <div class="d-l-l-text">' +
  887. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  888. .data.resourceList[i].latitude + '</h4>' +
  889. ' </div>' +
  890. ' </div>' +
  891. ' </span>' +
  892. '<span>' +
  893. ' <div class="d-l-con">' +
  894. ' <div class="d-l-l-text">' +
  895. ' <h4>取水口名称:' + res.data.resourceList[i].waterintakeName +
  896. '</h4>' +
  897. ' </div>' +
  898. ' </div>' +
  899. ' </span>' +
  900. '<span>' +
  901. ' <div class="d-l-con">' +
  902. ' <div class="d-l-l-text">' +
  903. ' <h4>联系人:' + res.data.resourceList[i].waterintakePerson +
  904. '</h4>' +
  905. ' </div>' +
  906. ' </div>' +
  907. ' </span>' +
  908. '<span>' +
  909. ' <div class="d-l-con">' +
  910. ' <div class="d-l-l-text">' +
  911. ' <h4>电话:' + res.data.resourceList[i].waterintakeTel +
  912. '</h4>' +
  913. ' </div>' +
  914. ' </div>' +
  915. ' </span></div>'
  916. } else if (that.resourceTable == 'centerdata_t_forest_watercrane') { //水鹤
  917. markersMap.icon = 'sj-icon-map-sh'
  918. markersMap.lng = res.data.resourceList[i].longitude
  919. markersMap.lat = res.data.resourceList[i].latitude
  920. markersMap.bindPopupHtml = '<div class="map-tip">' +
  921. '<span>' +
  922. ' <div class="d-l-con">' +
  923. ' <div class="d-l-l-text">' +
  924. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  925. .data.resourceList[i].latitude + '</h4>' +
  926. ' </div>' +
  927. ' </div>' +
  928. ' </span>' +
  929. '<span>' +
  930. ' <div class="d-l-con">' +
  931. ' <div class="d-l-l-text">' +
  932. ' <h4>水鹤名称:' + res.data.resourceList[i].watercraneName +
  933. '</h4>' +
  934. ' </div>' +
  935. ' </div>' +
  936. ' </span>' +
  937. '<span>' +
  938. ' <div class="d-l-con">' +
  939. ' <div class="d-l-l-text">' +
  940. ' <h4>联系人:' + res.data.resourceList[i].watercranePerson +
  941. '</h4>' +
  942. ' </div>' +
  943. ' </div>' +
  944. ' </span>' +
  945. '<span>' +
  946. ' <div class="d-l-con">' +
  947. ' <div class="d-l-l-text">' +
  948. ' <h4>电话:' + res.data.resourceList[i].watercraneTel +
  949. '</h4>' +
  950. ' </div>' +
  951. ' </div>' +
  952. ' </span></div>'
  953. } else if (that.resourceTable == 'centerdata_t_forest_firehydrant') { //消火栓
  954. markersMap.icon = 'sj-icon-map-xhs'
  955. markersMap.lng = res.data.resourceList[i].longitude
  956. markersMap.lat = res.data.resourceList[i].latitude
  957. markersMap.bindPopupHtml = '<div class="map-tip">' +
  958. '<span>' +
  959. ' <div class="d-l-con">' +
  960. ' <div class="d-l-l-text">' +
  961. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  962. .data.resourceList[i].latitude + '</h4>' +
  963. ' </div>' +
  964. ' </div>' +
  965. ' </span>' +
  966. '<span>' +
  967. ' <div class="d-l-con">' +
  968. ' <div class="d-l-l-text">' +
  969. ' <h4>消火栓名称:' + res.data.resourceList[i].firehydrantName +
  970. '</h4>' +
  971. ' </div>' +
  972. ' </div>' +
  973. ' </span>' +
  974. '<span>' +
  975. ' <div class="d-l-con">' +
  976. ' <div class="d-l-l-text">' +
  977. ' <h4>地址:' + res.data.resourceList[i].firehydrantAddress +
  978. '</h4>' +
  979. ' </div>' +
  980. ' </div>' +
  981. ' </span>' +
  982. '<span>' +
  983. ' <div class="d-l-con">' +
  984. ' <div class="d-l-l-text">' +
  985. ' <h4>联系人:' + res.data.resourceList[i].firehydrantPerson +
  986. '</h4>' +
  987. ' </div>' +
  988. ' </div>' +
  989. ' </span>' +
  990. '<span>' +
  991. ' <div class="d-l-con">' +
  992. ' <div class="d-l-l-text">' +
  993. ' <h4>电话:' + res.data.resourceList[i].firehydrantTel +
  994. '</h4>' +
  995. ' </div>' +
  996. ' </div>' +
  997. ' </span></div>'
  998. } else if (that.resourceTable == 'centerdata_t_forest_fireteam') { //森林防火队
  999. markersMap.icon = 'sj-icon-map-slfh'
  1000. markersMap.lng = res.data.resourceList[i].longitude
  1001. markersMap.lat = res.data.resourceList[i].latitude
  1002. markersMap.bindPopupHtml = '<div class="map-tip">' +
  1003. '<span>' +
  1004. ' <div class="d-l-con">' +
  1005. ' <div class="d-l-l-text">' +
  1006. ' <h4>经纬度:' + res.data.resourceList[i].longitude + ',' + res
  1007. .data.resourceList[i].latitude + '</h4>' +
  1008. ' </div>' +
  1009. ' </div>' +
  1010. ' </span>' +
  1011. '<span>' +
  1012. ' <div class="d-l-con">' +
  1013. ' <div class="d-l-l-text">' +
  1014. ' <h4>森林防火队名称:' + res.data.resourceList[i].fireteamName +
  1015. '</h4>' +
  1016. ' </div>' +
  1017. ' </div>' +
  1018. ' </span>' +
  1019. '<span>' +
  1020. ' <div class="d-l-con">' +
  1021. ' <div class="d-l-l-text">' +
  1022. ' <h4>联系人:' + res.data.resourceList[i].fireteamPerson +
  1023. '</h4>' +
  1024. ' </div>' +
  1025. ' </div>' +
  1026. ' </span>' +
  1027. '<span>' +
  1028. ' <div class="d-l-con">' +
  1029. ' <div class="d-l-l-text">' +
  1030. ' <h4>电话:' + res.data.resourceList[i].fireteamTel + '</h4>' +
  1031. ' </div>' +
  1032. ' </div>' +
  1033. ' </span></div>'
  1034. }
  1035. that.markersList.push(markersMap)
  1036. }
  1037. }
  1038. that.$refs.supermap.clearM(false)
  1039. that.$refs.supermap.setMarkers(that.markersList)
  1040. })
  1041. }
  1042. }
  1043. }
  1044. </script>
  1045. <style rel="stylesheet/scss" lang="scss" scoped>
  1046. @import '@/assets/styles/base.scss';
  1047. </style>