datacenter.vue 47 KB

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