disaster.vue 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935
  1. <!--灾后评估-->
  2. <template>
  3. <div class="visual-con">
  4. <!--头部-->
  5. <vheader></vheader>
  6. <!--主体-->
  7. <div class="visual-body">
  8. <!-- 左侧 -->
  9. <div class="leftbar" :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="this-title" style="margin: 1rem 0; padding-right:1rem">
  14. <el-date-picker v-model="pickYear" @change="getInit()" type="year" placeholder="选择年">
  15. </el-date-picker>
  16. </div>
  17. <div class="i-list-con h-73">
  18. <div class="d-l-con-icon">
  19. <div class="icon-con m-btm-no">
  20. <div class="icon icon-dot"></div>
  21. <div class="icon-text flex-r">
  22. <h5>{{ numberFiresYear }}次</h5>
  23. <h5>火灾次数</h5>
  24. </div>
  25. </div>
  26. <div class="icon-con m-btm-no">
  27. <div class="icon icon-dot"></div>
  28. <div class="icon-text flex-r">
  29. <h5>{{ forestFireLossTotal }}万元</h5>
  30. <h5>损失总计</h5>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="d-l-con flex-c">
  35. <div class="d-l-l-text">
  36. <h2>火灾损失价值</h2>
  37. </div>
  38. <div class="d-l-l-text ">
  39. <h3>合计:{{ fireLossTotalYear }}万元</h3>
  40. </div>
  41. <el-table :data="forestResourcesYear">
  42. <el-table-column label="林木资源">
  43. <el-table-column label="成林" width="50%">
  44. <el-table-column label="蓄积">
  45. <el-table-column prop="forestArea" label="米">
  46. </el-table-column>
  47. </el-table-column>
  48. <el-table-column prop="worth" label="价值" width="50%">
  49. <el-table-column prop="forestPrice" label="万元">
  50. </el-table-column>
  51. </el-table-column>
  52. </el-table-column>
  53. <el-table-column prop="youngTree" label="幼树">
  54. <el-table-column prop="number" label="株数">
  55. <el-table-column prop="treesNumber" label="万株">
  56. </el-table-column>
  57. </el-table-column>
  58. <el-table-column prop="worth" label="价值">
  59. <el-table-column prop="treesPrice" label="万元">
  60. </el-table-column>
  61. </el-table-column>
  62. </el-table-column>
  63. </el-table-column>
  64. </el-table>
  65. <el-table style="margin-top: 1rem;" :data="casualtiesYear">
  66. <el-table-column prop="date" label="人员伤亡">
  67. <el-table-column label="轻伤" width="50%">
  68. <el-table-column label="人数">
  69. <el-table-column prop="minorInjuriesNumber" label="人">
  70. </el-table-column>
  71. </el-table-column>
  72. <el-table-column label="费用" width="50%">
  73. <el-table-column prop="minorInjuriesPrice" label="万元">
  74. </el-table-column>
  75. </el-table-column>
  76. </el-table-column>
  77. <el-table-column label="重伤">
  78. <el-table-column label="人数">
  79. <el-table-column prop="seriouslyInjuredNumber" label="人">
  80. </el-table-column>
  81. </el-table-column>
  82. <el-table-column label="费用">
  83. <el-table-column prop="seriouslyInjuredPrice" label="万元">
  84. </el-table-column>
  85. </el-table-column>
  86. </el-table-column>
  87. <el-table-column label="死亡">
  88. <el-table-column label="人数">
  89. <el-table-column prop="deathNumber" label="人">
  90. </el-table-column>
  91. </el-table-column>
  92. <el-table-column label="费用">
  93. <el-table-column prop="deathPrice" label="万元">
  94. </el-table-column>
  95. </el-table-column>
  96. </el-table-column>
  97. </el-table-column>
  98. </el-table>
  99. <el-table style="margin-top: 1rem;" :data="elseFireLossPriceYear">
  100. <el-table-column label="其他火灾损失">
  101. <el-table-column prop="elseFireLossPrice" label="万元">
  102. </el-table-column>
  103. </el-table-column>
  104. </el-table>
  105. </div>
  106. <div class="d-l-con flex-c">
  107. <div class="d-l-l-text">
  108. <h2>扑火费用支出</h2>
  109. </div>
  110. <div class="d-l-l-text ">
  111. <h3>合计:{{ blazesPriceTotalYear }}万元</h3>
  112. </div>
  113. <el-table style="margin-top: 1rem;" :data="fireFightingCasualtiesYear">
  114. <el-table-column prop="date" label="人员伤亡">
  115. <el-table-column label="人工费" width="50%">
  116. <el-table-column label="人工">
  117. <el-table-column prop="artificialDays" label="工日">
  118. </el-table-column>
  119. </el-table-column>
  120. <el-table-column label="费用" width="50%">
  121. <el-table-column prop="artificialPrice" label="万元">
  122. </el-table-column>
  123. </el-table-column>
  124. </el-table-column>
  125. <el-table-column prop="vehicleFee" label="车辆费">
  126. <el-table-column label="合计">
  127. <el-table-column prop="vehicleNumber" label="台">
  128. </el-table-column>
  129. </el-table-column>
  130. <el-table-column label="汽车">
  131. <el-table-column prop="carNumber" label="台">
  132. </el-table-column>
  133. </el-table-column>
  134. <el-table-column label="费用">
  135. <el-table-column prop="vehiclePrice" label="万元">
  136. </el-table-column>
  137. </el-table-column>
  138. </el-table-column>
  139. <el-table-column prop="flightFee" label="飞行费">
  140. <el-table-column label="飞机">
  141. <el-table-column prop="planeNumber" label="架次">
  142. </el-table-column>
  143. </el-table-column>
  144. <el-table-column label="费用">
  145. <el-table-column prop="planePrice" label="万元">
  146. </el-table-column>
  147. </el-table-column>
  148. </el-table-column>
  149. </el-table-column>
  150. </el-table>
  151. <el-table style="margin-top: 1rem;" :data="otherFireCostsYear">
  152. <el-table-column label="其他火灾费用">
  153. <el-table-column prop="elseBlazesPrice" label="万元">
  154. </el-table-column>
  155. </el-table-column>
  156. </el-table>
  157. </div>
  158. </div>
  159. </dv-border-box-13>
  160. </div>
  161. </div>
  162. <!-- 地图 -->
  163. <supermap ref="supermap" style="width: 100%;height: 100vh;" :mapDiv="'disasterMap'" class="indexSupermapClass"
  164. :mapSite="{doubleClickZoom:false}" :codes="['9fa5']" :isSideBySide="false" @showEventDialog="showEventDialog"></supermap>
  165. <!-- 右侧 -->
  166. <div class="rightbar" :class="indentright" ref="right">
  167. <div class="forthis">
  168. <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
  169. <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
  170. <div class="this-title">
  171. <span>列表</span>
  172. <dv-decoration-3 style="width:150px;height:15px;margin-right: 1rem;"/>
  173. </div>
  174. <div class="i-list-con h-19">
  175. <div class="d-l-con" :class="{on:listCurrentIndex==index}" v-for="(item,index) in fireList"
  176. :key="index" @click="choseFireList(item.id,item.eventId,index)">
  177. <div class="d-l-l-text">
  178. <i class="i-small"></i>
  179. <h4>{{ pickYear.getYear() + 1900 }}年第{{ index + 1 }}场火灾</h4>
  180. </div>
  181. </div>
  182. </div>
  183. </dv-border-box-13>
  184. </div>
  185. <div class="forthis">
  186. <dv-border-box-13 backgroundColor="rgba(12, 19, 38, .90)" style="padding-bottom: 1rem;">
  187. <img src="../assets/images/integrated/light.png" style="width: 100%; margin-top: .4rem;"/>
  188. <div class="i-list-con h-55">
  189. <div class="forthis">
  190. <div class="d-l-con flex-c">
  191. <div class="d-l-l-text">
  192. <h2>火灾损失价值</h2>
  193. </div>
  194. <div class="d-l-l-text ">
  195. <h3>合计:{{ fireLossTotal }}万元</h3>
  196. </div>
  197. <el-table :data="forestResources">
  198. <el-table-column label="林木资源">
  199. <el-table-column label="成林" width="50%">
  200. <el-table-column label="蓄积">
  201. <el-table-column prop="forestArea" label="米">
  202. </el-table-column>
  203. </el-table-column>
  204. <el-table-column prop="worth" label="价值" width="50%">
  205. <el-table-column prop="forestPrice" label="万元">
  206. </el-table-column>
  207. </el-table-column>
  208. </el-table-column>
  209. <el-table-column label="幼树">
  210. <el-table-column label="株数">
  211. <el-table-column prop="treesNumber" label="万株">
  212. </el-table-column>
  213. </el-table-column>
  214. <el-table-column prop="worth" label="价值">
  215. <el-table-column prop="treesPrice" label="万元">
  216. </el-table-column>
  217. </el-table-column>
  218. </el-table-column>
  219. </el-table-column>
  220. </el-table>
  221. <el-table style="margin-top: 1rem;" :data="casualties">
  222. <el-table-column label="人员伤亡">
  223. <el-table-column label="轻伤" width="50%">
  224. <el-table-column label="人数">
  225. <el-table-column prop="minorInjuriesNumber" label="人">
  226. </el-table-column>
  227. </el-table-column>
  228. <el-table-column label="费用" width="50%">
  229. <el-table-column prop="minorInjuriesPrice" label="万元">
  230. </el-table-column>
  231. </el-table-column>
  232. </el-table-column>
  233. <el-table-column label="重伤">
  234. <el-table-column label="人数">
  235. <el-table-column prop="seriouslyInjuredNumber" label="人">
  236. </el-table-column>
  237. </el-table-column>
  238. <el-table-column label="费用">
  239. <el-table-column prop="seriouslyInjuredPrice" label="万元">
  240. </el-table-column>
  241. </el-table-column>
  242. </el-table-column>
  243. <el-table-column label="死亡">
  244. <el-table-column label="人数">
  245. <el-table-column prop="deathNumber" label="人">
  246. </el-table-column>
  247. </el-table-column>
  248. <el-table-column label="费用">
  249. <el-table-column prop="deathPrice" label="万元">
  250. </el-table-column>
  251. </el-table-column>
  252. </el-table-column>
  253. </el-table-column>
  254. </el-table>
  255. <el-table style="margin-top: 1rem;" :data="elseFireLossPrice">
  256. <el-table-column label="其他火灾损失">
  257. <el-table-column prop="elseFireLossPrice" label="万元">
  258. </el-table-column>
  259. </el-table-column>
  260. </el-table>
  261. </div>
  262. <div class="d-l-con flex-c">
  263. <div class="d-l-l-text">
  264. <h2>扑火费用支出</h2>
  265. </div>
  266. <div class="d-l-l-text ">
  267. <h3>合计:{{ blazesPriceTotal }}万元</h3>
  268. </div>
  269. <el-table style="margin-top: 1rem;" :data="fireFightingCasualties">
  270. <el-table-column label="人员伤亡">
  271. <el-table-column prop="artificial" label="人工费" width="50%">
  272. <el-table-column label="人工">
  273. <el-table-column prop="artificialDays" label="工日">
  274. </el-table-column>
  275. </el-table-column>
  276. <el-table-column label="费用" width="50%">
  277. <el-table-column prop="artificialPrice" label="万元">
  278. </el-table-column>
  279. </el-table-column>
  280. </el-table-column>
  281. <el-table-column label="车辆费">
  282. <el-table-column label="合计">
  283. <el-table-column prop="vehicleNumber" label="台">
  284. </el-table-column>
  285. </el-table-column>
  286. <el-table-column label="汽车">
  287. <el-table-column prop="carNumber" label="台">
  288. </el-table-column>
  289. </el-table-column>
  290. <el-table-column label="费用">
  291. <el-table-column prop="vehiclePrice" label="万元">
  292. </el-table-column>
  293. </el-table-column>
  294. </el-table-column>
  295. <el-table-column prop="flightFee" label="飞行费">
  296. <el-table-column label="飞机">
  297. <el-table-column prop="planeNumber" label="架次">
  298. </el-table-column>
  299. </el-table-column>
  300. <el-table-column label="费用">
  301. <el-table-column prop="planePrice" label="万元">
  302. </el-table-column>
  303. </el-table-column>
  304. </el-table-column>
  305. </el-table-column>
  306. </el-table>
  307. <el-table style="margin-top: 1rem;" :data="otherFireCosts">
  308. <el-table-column label="其他火灾费用">
  309. <el-table-column prop="elseBlazesPrice" label="万元">
  310. </el-table-column>
  311. </el-table-column>
  312. </el-table>
  313. </div>
  314. </div>
  315. </div>
  316. </dv-border-box-13>
  317. </div>
  318. </div>
  319. <vBottomMenu ref="bottomMenu"></vBottomMenu>
  320. <!-- <el-tooltip :content="indentText" placement="top" :disabled="indentdisabled">-->
  321. <!-- <div class="mascot" ref="mascot" :class="indentStyle" @click="indent"><img-->
  322. <!-- src="@/assets/images/mascot.png"/></div>-->
  323. <!-- </el-tooltip>-->
  324. </div>
  325. <eventLocation ref="eventLocation"></eventLocation>
  326. <TVWall ref="TVWall"></TVWall>
  327. </div>
  328. </template>
  329. <script>
  330. import {
  331. getInit,
  332. selectFireLoseByid
  333. } from '@/api/disaster'
  334. import supermap from '@/components/supermap' //超图
  335. import vheader from '@/components/v-header.vue' //一体化共用头部
  336. import vBottomMenu from '@/components/vBottomMenu.vue' //一体化公共底部菜单
  337. import eventLocation from '@/components/eventLocation.vue' //事件定位弹窗
  338. import TVWall from '@/components/TVWall.vue' //电视墙弹窗
  339. // import echarts from 'echarts'
  340. let echarts = require('echarts')
  341. export default {
  342. dicts: ['event_source'],
  343. components: {
  344. supermap,
  345. vheader,
  346. vBottomMenu,
  347. eventLocation,
  348. TVWall
  349. },
  350. created() {
  351. /** ----------------------------------底部按钮公用组件开始------------------------------------- */
  352. window.showDialog = this.showDialog
  353. window.choseLayerSwitching = this.choseLayerSwitching
  354. window.choseLayerSwitchingList = this.choseLayerSwitchingList
  355. window.choseLayerSwitchingList_Data = this.choseLayerSwitchingList_Data
  356. /** ----------------------------------底部按钮公用组件结束------------------------------------- */
  357. },
  358. mounted() {
  359. this.getInit()
  360. this.bottomMenuList() //获取底部公共组件消息和任务
  361. },
  362. data() {
  363. return {
  364. listCurrentIndex: 0,
  365. numberFiresYear: 0,
  366. forestFireLossTotal: 0,
  367. fireLossTotalYear: 0,
  368. forestResourcesYear: [{
  369. forestArea: '0',
  370. forestPrice: '0',
  371. treesNumber: '0',
  372. treesPrice: '0'
  373. }],
  374. casualtiesYear: [{
  375. minorInjuriesNumber: '0',
  376. minorInjuriesPrice: '0',
  377. seriouslyInjuredNumber: '0',
  378. seriouslyInjuredPrice: '0',
  379. deathNumber: '0',
  380. deathPrice: '0'
  381. }],
  382. elseFireLossPriceYear: [{
  383. elseFireLossPrice: '0'
  384. }],
  385. blazesPriceTotalYear: 0,
  386. fireFightingCasualtiesYear: [{
  387. artificialDays: '0',
  388. artificialPrice: '0',
  389. vehicleNumber: '0',
  390. carNumber: '0',
  391. vehiclePrice: '0',
  392. planeNumber: '0',
  393. planePrice: '0'
  394. }],
  395. otherFireCostsYear: [{
  396. elseBlazesPrice: '0'
  397. }],
  398. fireLossTotal: 0,
  399. forestResources: [{
  400. forestArea: '0',
  401. forestPrice: '0',
  402. treesNumber: '0',
  403. treesPrice: '0'
  404. }],
  405. casualties: [{
  406. minorInjuriesNumber: '0',
  407. minorInjuriesPrice: '0',
  408. seriouslyInjuredNumber: '0',
  409. seriouslyInjuredPrice: '0',
  410. deathNumber: '0',
  411. deathPrice: '0'
  412. }],
  413. elseFireLossPrice: [{
  414. elseFireLossPrice: '0'
  415. }],
  416. blazesPriceTotal: 0,
  417. fireFightingCasualties: [{
  418. artificialDays: '0',
  419. artificialPrice: '0',
  420. vehicleNumber: '0',
  421. carNumber: '0',
  422. vehiclePrice: '0',
  423. planeNumber: '0',
  424. planePrice: '0'
  425. }],
  426. otherFireCosts: [{
  427. elseBlazesPrice: '0'
  428. }],
  429. pickYear: new Date(), //选择年份
  430. graphicsList: [], //地图区域
  431. fireList: [], //右侧活在列表
  432. eventChartData: [], //左侧eachar图表数据
  433. //左右缩进
  434. indentStyle: '',
  435. indentleft: '',
  436. indentright: '',
  437. indentText: '收起左右栏',
  438. indentdisabled: false,
  439. markersList: [], //点位列表
  440. }
  441. },
  442. methods: {
  443. /** ----------------------------------底部按钮公用组件开始------------------------------------- */
  444. bottomMenuList() {
  445. this.$refs.bottomMenu.selectTaskList()//获取任务列表
  446. this.$refs.bottomMenu.selectMessageList()//获取消息列表
  447. this.$refs.bottomMenu.linBanTreeselect()//查询林班层级树结构
  448. this.$refs.bottomMenu.deptTreeselect()//查询林场部门树结构
  449. },
  450. showEventDialog(eventCode) {
  451. //事件信息弹出
  452. this.$refs.eventdetailsdialog.showEventDialog(eventCode)
  453. },
  454. showDialog(click) {
  455. if (click == 'eventLocation') {
  456. this.$refs.eventLocation.showEventLocation()
  457. this.$refs.supermap.isEditableLayers = false
  458. this.$refs.bottomMenu.showChild = false
  459. this.$refs.bottomMenu.showBanChild = false
  460. this.$refs.bottomMenu.showChangChild = false
  461. } else if (click == 'editableLayers') {
  462. this.$refs.bottomMenu.showChild = false
  463. this.$refs.bottomMenu.showBanChild = false
  464. this.$refs.bottomMenu.showChangChild = false
  465. if (!this.$refs.supermap.isEditableLayers) {
  466. this.$refs.supermap.isEditableLayers = true
  467. } else {
  468. this.$refs.supermap.isEditableLayers = false
  469. }
  470. } else if (click == 'layerSwitching') {
  471. this.$refs.supermap.isEditableLayers = false
  472. this.$refs.bottomMenu.showBanChild = false
  473. this.$refs.bottomMenu.showChangChild = false
  474. if (!this.$refs.bottomMenu.showChild) {
  475. this.$refs.bottomMenu.showChild = true
  476. } else {
  477. this.$refs.bottomMenu.showChild = false
  478. }
  479. } else if (click == 'TVWall') {
  480. this.$refs.TVWall.showTVWall()
  481. this.$refs.supermap.isEditableLayers = false
  482. this.$refs.bottomMenu.showChild = false
  483. this.$refs.bottomMenu.showBanChild = false
  484. this.$refs.bottomMenu.showChangChild = false
  485. } else if (click == 'forestban') {
  486. this.$refs.supermap.isEditableLayers = false
  487. this.$refs.bottomMenu.showChild = false
  488. this.$refs.bottomMenu.showChangChild = false
  489. if (!this.$refs.bottomMenu.showBanChild) {
  490. this.$refs.bottomMenu.showBanChild = true
  491. } else {
  492. this.$refs.bottomMenu.showBanChild = false
  493. }
  494. } else if (click == 'forestchang') {
  495. this.$refs.supermap.isEditableLayers = false
  496. this.$refs.bottomMenu.showBanChild = false
  497. this.$refs.bottomMenu.showChild = false
  498. if (!this.$refs.bottomMenu.showChangChild) {
  499. this.$refs.bottomMenu.showChangChild = true
  500. } else {
  501. this.$refs.bottomMenu.showChangChild = false
  502. }
  503. }
  504. },
  505. //选择图层
  506. choseLayerSwitching(url, isClear) {
  507. this.$refs.supermap.layerSwitching(url, isClear)
  508. },
  509. //选择图层(传递数组)
  510. choseLayerSwitchingList(urlList) {
  511. this.$refs.supermap.layerSwitchingList(urlList)
  512. },
  513. //选择图层(传递数组) 带数据
  514. choseLayerSwitchingList_Data(urlList) {
  515. this.$refs.supermap.layerSwitchingList_Data(urlList)
  516. },
  517. /** ----------------------------------底部按钮公用组件结束------------------------------------- */
  518. choseFireList(id,eventId, index) {
  519. this.listCurrentIndex = index
  520. let that = this
  521. selectFireLoseByid({id:id,eventId:eventId}).then(res => {
  522. this.graphicsList = []
  523. //地图标记
  524. if (res.data.regionalFlagBOList != null && res.data.regionalFlagBOList.length > 0) {
  525. for (let i = 0; i < res.data.regionalFlagBOList.length; i++) {
  526. let latlng = {
  527. lat: res.data.regionalFlagBOList[i].latitude,
  528. lng: res.data.regionalFlagBOList[i].longitude
  529. }
  530. this.graphicsList.push(latlng)
  531. }
  532. setTimeout(() => {
  533. that.$refs.supermap.clearG()
  534. that.$refs.supermap.setGraphicsList(this.graphicsList, 'red')
  535. }, 1000)
  536. } else {
  537. that.$refs.supermap.clearG()
  538. }
  539. that.$refs.supermap.clearM(false)
  540. that.$refs.supermap.clearM(true)
  541. that.markersList = [];
  542. let markersMap = {
  543. lng: 124.59,
  544. lat: 43.02,
  545. icon: 'marker',
  546. bindPopupHtml: '',
  547. click: '',
  548. parameter: '',
  549. keepBindPopup: false,
  550. isAggregation: true
  551. }
  552. // markersMap.click = 'showEventDialog'
  553. markersMap.parameter = res.data.visuForestFireLossBO.eventCode
  554. markersMap.lng = res.data.visuForestFireLossBO.longitude
  555. markersMap.lat = res.data.visuForestFireLossBO.latitude
  556. markersMap.bindPopupHtml = '<div class="map-tip">' +
  557. '<span>' +
  558. ' <div class="d-l-con">' +
  559. ' <div class="d-l-l-text">' +
  560. ' <h4>经纬度:' + markersMap.lng + ',' + markersMap.lat + '</h4>' +
  561. ' </div>' +
  562. ' </div>' +
  563. ' </span>' +
  564. '<span>' +
  565. ' <div class="d-l-con">' +
  566. ' <div class="d-l-l-text">' +
  567. ' <h4>事件名称:' + res.data.visuForestFireLossBO.eventName + '</h4>' +
  568. ' </div>' +
  569. ' </div>' +
  570. ' </span>' +
  571. '<span>' +
  572. ' <div class="d-l-con">' +
  573. ' <div class="d-l-l-text">' +
  574. ' <h4>事件时间:' + res.data.visuForestFireLossBO.createTime + '</h4>' +
  575. ' </div>' +
  576. ' </div>' +
  577. ' </span>';
  578. markersMap.bindPopupHtml += '</div>'
  579. this.markersList.push(markersMap)
  580. that.$refs.supermap.setMarkers(that.markersList)
  581. //右侧
  582. this.fireLossTotal = res.data.visuForestFireLossBO.fireLossTotal != null ? res.data
  583. .visuForestFireLossBO.fireLossTotal : 0
  584. this.forestResources[0].forestArea = res.data.visuForestFireLossBO.forestArea != null ? res
  585. .data.visuForestFireLossBO.forestArea : 0
  586. this.forestResources[0].forestPrice = res.data.visuForestFireLossBO.forestPrice != null ? res
  587. .data.visuForestFireLossBO.forestPrice : 0
  588. this.forestResources[0].treesNumber = res.data.visuForestFireLossBO.treesNumber != null ? res
  589. .data.visuForestFireLossBO.treesNumber : 0
  590. this.forestResources[0].treesPrice = res.data.visuForestFireLossBO.treesPrice != null ? res
  591. .data.visuForestFireLossBO.treesPrice : 0
  592. this.casualties[0].minorInjuriesNumber = res.data.visuForestFireLossBO.minorInjuriesNumber !=
  593. null ? res.data.visuForestFireLossBO.minorInjuriesNumber : 0
  594. this.casualties[0].minorInjuriesPrice = res.data.visuForestFireLossBO.minorInjuriesPrice !=
  595. null ? res.data.visuForestFireLossBO.minorInjuriesPrice : 0
  596. this.casualties[0].seriouslyInjuredNumber = res.data.visuForestFireLossBO
  597. .seriouslyInjuredNumber != null ? res.data.visuForestFireLossBO.seriouslyInjuredNumber : 0
  598. this.casualties[0].seriouslyInjuredPrice = res.data.visuForestFireLossBO
  599. .seriouslyInjuredPrice != null ? res.data.visuForestFireLossBO.seriouslyInjuredPrice : 0
  600. this.casualties[0].deathNumber = res.data.visuForestFireLossBO.deathNumber != null ? res.data
  601. .visuForestFireLossBO.deathNumber : 0
  602. this.casualties[0].deathPrice = res.data.visuForestFireLossBO.deathPrice != null ? res.data
  603. .visuForestFireLossBO.deathPrice : 0
  604. this.elseFireLossPrice[0].elseFireLossPrice = res.data.visuForestFireLossBO
  605. .elseFireLossPrice != null ? res.data.visuForestFireLossBO.elseFireLossPrice : 0
  606. this.blazesPriceTotal = res.data.visuForestFireLossBO.blazesPriceTotal != null ? res.data
  607. .visuForestFireLossBO.blazesPriceTotal : 0
  608. this.fireFightingCasualties[0].artificialDays = res.data.visuForestFireLossBO.artificialDays !=
  609. null ? res.data.visuForestFireLossBO.artificialDays : 0
  610. this.fireFightingCasualties[0].artificialPrice = res.data.visuForestFireLossBO
  611. .artificialPrice != null ? res.data.visuForestFireLossBO.artificialPrice : 0
  612. this.fireFightingCasualties[0].vehicleNumber = res.data.visuForestFireLossBO.vehicleNumber !=
  613. null ? res.data.visuForestFireLossBO.vehicleNumber : 0
  614. this.fireFightingCasualties[0].carNumber = res.data.visuForestFireLossBO.carNumber != null ?
  615. res.data.visuForestFireLossBO.carNumber : 0
  616. this.fireFightingCasualties[0].vehiclePrice = res.data.visuForestFireLossBO.vehiclePrice !=
  617. null ? res.data.visuForestFireLossBO.vehiclePrice : 0
  618. this.fireFightingCasualties[0].planeNumber = res.data.visuForestFireLossBO.planeNumber !=
  619. null ? res.data.visuForestFireLossBO.planeNumber : 0
  620. this.fireFightingCasualties[0].planePrice = res.data.visuForestFireLossBO.planePrice != null ?
  621. res.data.visuForestFireLossBO.planePrice : 0
  622. this.otherFireCosts[0].elseBlazesPrice = res.data.visuForestFireLossBO.elseBlazesPrice !=
  623. null ? res.data.visuForestFireLossBO.elseBlazesPrice : 0
  624. })
  625. },
  626. getInit() {
  627. let that = this
  628. setTimeout(() => {
  629. that.graphicsList = []
  630. that.$refs.supermap.clearG()
  631. }, 1000)
  632. //获取左侧菜单列表
  633. getInit(this.pickYear.getYear() + 1900).then(res => {
  634. this.fireList = []
  635. // //地图标记
  636. // if (res.data.regionalFlagBOList != null && res.data.regionalFlagBOList.length > 0) {
  637. // for (let i = 0; i < res.data.regionalFlagBOList.length; i++) {
  638. // let latlng = {
  639. // lat: res.data.regionalFlagBOList[i].latitude,
  640. // lng: res.data.regionalFlagBOList[i].longitude
  641. // }
  642. // this.graphicsList.push(latlng)
  643. // }
  644. // setTimeout(() => {
  645. // that.$refs.supermap.clearG()
  646. // that.$refs.supermap.setGraphicsList(this.graphicsList, 'red')
  647. // }, 1000)
  648. // }else {
  649. // that.$refs.supermap.clearG()
  650. // }
  651. //右侧列表
  652. if (res.data.visuForestFireLossTimeBOList != null && res.data.visuForestFireLossTimeBOList
  653. .length > 0) {
  654. this.numberFiresYear = res.data.visuForestFireLossTimeBOList.length
  655. this.fireList = res.data.visuForestFireLossTimeBOList
  656. this.markersList = [];
  657. for (let i = 0; i < this.fireList.length; i++) {
  658. let markersMap = {
  659. lng: 124.59,
  660. lat: 43.02,
  661. icon: 'marker',
  662. bindPopupHtml: '',
  663. click: '',
  664. parameter: '',
  665. keepBindPopup: false,
  666. isAggregation: true
  667. }
  668. // markersMap.click = 'showEventDialog'
  669. markersMap.parameter = this.fireList[i].eventCode
  670. markersMap.lng = this.fireList[i].longitude
  671. markersMap.lat = this.fireList[i].latitude
  672. markersMap.bindPopupHtml = '<div class="map-tip">' +
  673. '<span>' +
  674. ' <div class="d-l-con">' +
  675. ' <div class="d-l-l-text">' +
  676. ' <h4>经纬度:' + this.fireList[i].longitude + ',' + this.fireList[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>事件名称:' + this.fireList[i].eventName + '</h4>' +
  684. ' </div>' +
  685. ' </div>' +
  686. ' </span>' +
  687. '<span>' +
  688. ' <div class="d-l-con">' +
  689. ' <div class="d-l-l-text">' +
  690. ' <h4>事件时间:' + this.fireList[i].createTime + '</h4>' +
  691. ' </div>' +
  692. ' </div>' +
  693. ' </span>';
  694. if (this.fireList[i].pictureType == 'image' && this.fireList[i].picturePath != null && this.fireList[i].picturePath != '') {
  695. markersMap.bindPopupHtml += '<span>' +
  696. ' <div class="d-l-con">' +
  697. ' <div class="d-l-l-text">' +
  698. '<img src="' + res.data[i].picturePath + '" style="width: 150px;height: 100px"/>' +
  699. ' </div>' +
  700. ' </div>' +
  701. ' </span>'
  702. }
  703. markersMap.bindPopupHtml += '</div>'
  704. this.markersList.push(markersMap)
  705. }
  706. that.$refs.supermap.clearM(false)
  707. that.$refs.supermap.clearM(true)
  708. that.$refs.supermap.setMarkers(that.markersList)
  709. } else {
  710. that.$refs.supermap.clearM(false)
  711. that.$refs.supermap.clearM(true)
  712. this.numberFiresYear = 0
  713. }
  714. //左侧
  715. if (res.data.visuForestFireLossBO != null) {
  716. this.forestFireLossTotal = res.data.visuForestFireLossBO.forestFireLossTotal != null ? res
  717. .data.visuForestFireLossBO.forestFireLossTotal : 0
  718. this.fireLossTotalYear = res.data.visuForestFireLossBO.fireLossTotal != null ? res.data
  719. .visuForestFireLossBO.fireLossTotal : 0
  720. this.forestResourcesYear[0].forestArea = res.data.visuForestFireLossBO.forestArea != null ?
  721. res.data.visuForestFireLossBO.forestArea : 0
  722. this.forestResourcesYear[0].forestPrice = res.data.visuForestFireLossBO.forestPrice !=
  723. null ? res.data.visuForestFireLossBO.forestPrice : 0
  724. this.forestResourcesYear[0].treesNumber = res.data.visuForestFireLossBO.treesNumber !=
  725. null ? res.data.visuForestFireLossBO.treesNumber : 0
  726. this.forestResourcesYear[0].treesPrice = res.data.visuForestFireLossBO.treesPrice != null ?
  727. res.data.visuForestFireLossBO.treesPrice : 0
  728. this.casualtiesYear[0].minorInjuriesNumber = res.data.visuForestFireLossBO
  729. .minorInjuriesNumber != null ? res.data.visuForestFireLossBO.minorInjuriesNumber : 0
  730. this.casualtiesYear[0].minorInjuriesPrice = res.data.visuForestFireLossBO
  731. .minorInjuriesPrice != null ? res.data.visuForestFireLossBO.minorInjuriesPrice : 0
  732. this.casualtiesYear[0].seriouslyInjuredNumber = res.data.visuForestFireLossBO
  733. .seriouslyInjuredNumber != null ? res.data.visuForestFireLossBO
  734. .seriouslyInjuredNumber : 0
  735. this.casualtiesYear[0].seriouslyInjuredPrice = res.data.visuForestFireLossBO
  736. .seriouslyInjuredPrice != null ? res.data.visuForestFireLossBO.seriouslyInjuredPrice :
  737. 0
  738. this.casualtiesYear[0].deathNumber = res.data.visuForestFireLossBO.deathNumber != null ?
  739. res.data.visuForestFireLossBO.deathNumber : 0
  740. this.casualtiesYear[0].deathPrice = res.data.visuForestFireLossBO.deathPrice != null ? res
  741. .data.visuForestFireLossBO.deathPrice : 0
  742. this.elseFireLossPriceYear[0].elseFireLossPrice = res.data.visuForestFireLossBO
  743. .elseFireLossPrice != null ? res.data.visuForestFireLossBO.elseFireLossPrice : 0
  744. this.blazesPriceTotalYear = res.data.visuForestFireLossBO.blazesPriceTotal != null ? res
  745. .data.visuForestFireLossBO.blazesPriceTotal : 0
  746. this.fireFightingCasualtiesYear[0].artificialDays = res.data.visuForestFireLossBO
  747. .artificialDays != null ? res.data.visuForestFireLossBO.artificialDays : 0
  748. this.fireFightingCasualtiesYear[0].artificialPrice = res.data.visuForestFireLossBO
  749. .artificialPrice != null ? res.data.visuForestFireLossBO.artificialPrice : 0
  750. this.fireFightingCasualtiesYear[0].vehicleNumber = res.data.visuForestFireLossBO
  751. .vehicleNumber != null ? res.data.visuForestFireLossBO.vehicleNumber : 0
  752. this.fireFightingCasualtiesYear[0].carNumber = res.data.visuForestFireLossBO.carNumber !=
  753. null ? res.data.visuForestFireLossBO.carNumber : 0
  754. this.fireFightingCasualtiesYear[0].vehiclePrice = res.data.visuForestFireLossBO
  755. .vehiclePrice != null ? res.data.visuForestFireLossBO.vehiclePrice : 0
  756. this.fireFightingCasualtiesYear[0].planeNumber = res.data.visuForestFireLossBO
  757. .planeNumber != null ? res.data.visuForestFireLossBO.planeNumber : 0
  758. this.fireFightingCasualtiesYear[0].planePrice = res.data.visuForestFireLossBO.planePrice !=
  759. null ? res.data.visuForestFireLossBO.planePrice : 0
  760. this.otherFireCostsYear[0].elseBlazesPrice = res.data.visuForestFireLossBO
  761. .elseBlazesPrice != null ? res.data.visuForestFireLossBO.elseBlazesPrice : 0
  762. } else {
  763. this.forestFireLossTotal = 0
  764. this.fireLossTotalYear = 0
  765. this.forestResourcesYear[0].forestArea = 0
  766. this.forestResourcesYear[0].forestPrice = 0
  767. this.forestResourcesYear[0].treesNumber = 0
  768. this.forestResourcesYear[0].treesPrice = 0
  769. this.casualtiesYear[0].minorInjuriesNumber = 0
  770. this.casualtiesYear[0].minorInjuriesPrice = 0
  771. this.casualtiesYear[0].seriouslyInjuredNumber = 0
  772. this.casualtiesYear[0].seriouslyInjuredPrice = 0
  773. this.casualtiesYear[0].deathNumber = 0
  774. this.casualtiesYear[0].deathPrice = 0
  775. this.elseFireLossPriceYear[0].elseFireLossPrice = 0
  776. this.blazesPriceTotalYear = 0
  777. this.fireFightingCasualtiesYear[0].artificialDays = 0
  778. this.fireFightingCasualtiesYear[0].artificialPrice = 0
  779. this.fireFightingCasualtiesYear[0].vehicleNumber = 0
  780. this.fireFightingCasualtiesYear[0].carNumber = 0
  781. this.fireFightingCasualtiesYear[0].vehiclePrice = 0
  782. this.fireFightingCasualtiesYear[0].planeNumber = 0
  783. this.fireFightingCasualtiesYear[0].planePrice = 0
  784. this.otherFireCostsYear[0].elseBlazesPrice = 0
  785. }
  786. //右侧
  787. this.fireLossTotal = res.data.visuForestFireLossBOFirst.fireLossTotal != null ? res.data
  788. .visuForestFireLossBOFirst.fireLossTotal : 0
  789. this.forestResources[0].forestArea = res.data.visuForestFireLossBOFirst.forestArea != null ?
  790. res.data.visuForestFireLossBOFirst.forestArea : 0
  791. this.forestResources[0].forestPrice = res.data.visuForestFireLossBOFirst.forestPrice != null ?
  792. res.data.visuForestFireLossBOFirst.forestPrice : 0
  793. this.forestResources[0].treesNumber = res.data.visuForestFireLossBOFirst.treesNumber != null ?
  794. res.data.visuForestFireLossBOFirst.treesNumber : 0
  795. this.forestResources[0].treesPrice = res.data.visuForestFireLossBOFirst.treesPrice != null ?
  796. res.data.visuForestFireLossBOFirst.treesPrice : 0
  797. this.casualties[0].minorInjuriesNumber = res.data.visuForestFireLossBOFirst
  798. .minorInjuriesNumber != null ? res.data.visuForestFireLossBOFirst.minorInjuriesNumber : 0
  799. this.casualties[0].minorInjuriesPrice = res.data.visuForestFireLossBOFirst
  800. .minorInjuriesPrice != null ? res.data.visuForestFireLossBOFirst.minorInjuriesPrice : 0
  801. this.casualties[0].seriouslyInjuredNumber = res.data.visuForestFireLossBOFirst
  802. .seriouslyInjuredNumber != null ? res.data.visuForestFireLossBOFirst
  803. .seriouslyInjuredNumber : 0
  804. this.casualties[0].seriouslyInjuredPrice = res.data.visuForestFireLossBOFirst
  805. .seriouslyInjuredPrice != null ? res.data.visuForestFireLossBOFirst.seriouslyInjuredPrice :
  806. 0
  807. this.casualties[0].deathNumber = res.data.visuForestFireLossBOFirst.deathNumber != null ? res
  808. .data.visuForestFireLossBOFirst.deathNumber : 0
  809. this.casualties[0].deathPrice = res.data.visuForestFireLossBOFirst.deathPrice != null ? res
  810. .data.visuForestFireLossBOFirst.deathPrice : 0
  811. this.elseFireLossPrice[0].elseFireLossPrice = res.data.visuForestFireLossBOFirst
  812. .elseFireLossPrice != null ? res.data.visuForestFireLossBOFirst.elseFireLossPrice : 0
  813. this.blazesPriceTotal = res.data.visuForestFireLossBOFirst.blazesPriceTotal != null ? res.data
  814. .visuForestFireLossBOFirst.blazesPriceTotal : 0
  815. this.fireFightingCasualties[0].artificialDays = res.data.visuForestFireLossBOFirst
  816. .artificialDays != null ? res.data.visuForestFireLossBOFirst.artificialDays : 0
  817. this.fireFightingCasualties[0].artificialPrice = res.data.visuForestFireLossBOFirst
  818. .artificialPrice != null ? res.data.visuForestFireLossBOFirst.artificialPrice : 0
  819. this.fireFightingCasualties[0].vehicleNumber = res.data.visuForestFireLossBOFirst
  820. .vehicleNumber != null ? res.data.visuForestFireLossBOFirst.vehicleNumber : 0
  821. this.fireFightingCasualties[0].carNumber = res.data.visuForestFireLossBOFirst.carNumber !=
  822. null ? res.data.visuForestFireLossBOFirst.carNumber : 0
  823. this.fireFightingCasualties[0].vehiclePrice = res.data.visuForestFireLossBOFirst
  824. .vehiclePrice != null ? res.data.visuForestFireLossBOFirst.vehiclePrice : 0
  825. this.fireFightingCasualties[0].planeNumber = res.data.visuForestFireLossBOFirst.planeNumber !=
  826. null ? res.data.visuForestFireLossBOFirst.planeNumber : 0
  827. this.fireFightingCasualties[0].planePrice = res.data.visuForestFireLossBOFirst.planePrice !=
  828. null ? res.data.visuForestFireLossBOFirst.planePrice : 0
  829. this.otherFireCosts[0].elseBlazesPrice = res.data.visuForestFireLossBOFirst.elseBlazesPrice !=
  830. null ? res.data.visuForestFireLossBOFirst.elseBlazesPrice : 0
  831. })
  832. },
  833. //事件chart
  834. eventChart() {
  835. // 基于准备好的dom,初始化echarts实例
  836. let myChart = echarts.init(document.getElementById('event-chart'))
  837. myChart.setOption({
  838. color: ['#2EACFF', '#FFA61C', '#2EC054', '#8C64D7'],
  839. tooltip: {
  840. trigger: 'item',
  841. formatter: '{a} <br/>{b} : {c} ({d}%)'
  842. },
  843. toolbox: {
  844. show: true
  845. },
  846. series: [{
  847. name: '事件分类',
  848. type: 'pie',
  849. roseType: true,
  850. radius: [30, 70],
  851. label: {
  852. show: true,
  853. formatter: '{b}\n{c} '
  854. },
  855. data: this.eventChartData
  856. }]
  857. })
  858. },
  859. //吉祥物收起左右框
  860. indent() {
  861. let list = document.getElementsByClassName('el-tooltip__popper')
  862. list[list.length - 1].style.display = 'none'
  863. if (this.indentStyle == '') {
  864. this.indentStyle = 'indent-style'
  865. this.indentleft = 'indent-left'
  866. this.indentright = 'indent-right'
  867. this.indentText = '展开左右栏'
  868. } else if (this.indentText == '展开左右栏') {
  869. this.indentStyle = ''
  870. this.indentleft = ''
  871. this.indentright = ''
  872. this.indentText = '收起左右栏'
  873. }
  874. },
  875. dropLocation(lat, lng) {
  876. this.$refs.supermap.dropLocation(lat, lng)
  877. }
  878. }
  879. }
  880. </script>
  881. <style lang="scss" scoped>
  882. @import '@/assets/styles/base.scss';
  883. .el-table__header {
  884. width: auto !important;
  885. }
  886. .d-dialog-con {
  887. position: absolute;
  888. left: -19rem;
  889. top: 0;
  890. }
  891. </style>