datacenter.vue 51 KB

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