datacenter.vue 50 KB

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