index.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
  1. <template>
  2. <div style="padding: 0px 35px; display: flex; justify-content: space-between; ">
  3. <div>
  4. <border-panel
  5. height="302px"
  6. style="margin-bottom: 6px; cursor: pointer"
  7. title="基础信息"
  8. @click="openBasicModal"
  9. >
  10. <BasicInfo :qy="qy" @showTc="showTc" @UnitType="UnitType" />
  11. </border-panel>
  12. <border-panel height="346px" style="margin-bottom: 6px" title="隐患排查">
  13. <HiddenDangerDetection :qy="qy" />
  14. </border-panel>
  15. <border-panel height="296px" header-cursor="pointer" title="自主管理" @click-header="openAutoManageModal">
  16. <AutonomousManagement @click-item="onClickAutonomousManagementItemHandler" :qy="qy" />
  17. </border-panel>
  18. </div>
  19. <div class="display: flex;">
  20. <div class="map" style="position: relative">
  21. <MapChartsCategory
  22. :mapHeatData="heatMap"
  23. :formatter="showLabel"
  24. :qx="qy"
  25. @selectArea="(area) => (qy = area)"
  26. />
  27. <div style="position: absolute; top: 10px; width: 500px">
  28. <SearchBox :area.sync="qy" />
  29. </div>
  30. <div class="tips" @click="getShoeInfo('smsMsgModal')" >提示</div>
  31. </div>
  32. <div>
  33. <border-panel
  34. title="警情动态"
  35. width="938px"
  36. height="321px"
  37. :header-type="1"
  38. >
  39. <AlarmingSituationDynamics :qx="qy" :PoliceList="PoliceList" />
  40. </border-panel>
  41. </div>
  42. </div>
  43. <div>
  44. <border-panel
  45. height="311px"
  46. style="margin-bottom: 6px; cursor: pointer"
  47. header-cursor="pointer"
  48. title="风险预警"
  49. @click-header="openBasicModal"
  50. >
  51. <RiskWarning :riskList="riskList" @showFxyj="showFxyj" :qy="qy" />
  52. <template #ext-header>
  53. <img src="../../assets/images/dd_wh.png" alt="" @click="getShoeInfo('whFxModal')">
  54. </template>
  55. </border-panel>
  56. <border-panel
  57. height="331px"
  58. style="margin-bottom: 6px; cursor: pointer"
  59. title="智慧消防"
  60. >
  61. <WisdomFire :frieList="frieList" :iotList="iotList" :qy="qy" />
  62. <ZhxfModalHeader slot="title" />
  63. </border-panel>
  64. <border-panel height="298px" title="火灾指标">
  65. <FireIndex :type="fireIndexType" :qx="qy" />
  66. <template #ext-header>
  67. <button-block
  68. :items="['月', '年']"
  69. @select-item="selectItemHandler"
  70. />
  71. </template>
  72. </border-panel>
  73. </div>
  74. <basic-modal top="120px" ref="basicInfoModal" name="基础信息">
  75. <BasicInfoModalContent :qy="qy" :default="defaultModel" />
  76. </basic-modal>
  77. <basic-modal top="120px" ref="autoManageModal" name="自主管理">
  78. <zzglModul ref="zzglModul"
  79. :queryParams="queryParams"
  80. :qy="qy" />
  81. </basic-modal>
  82. <!-- 风险问号弹窗 -->
  83. <basic-modal top="30px" ref="whFxModal" name="高层建筑消防安全风险分级分色判定标准" width="90%">
  84. <div style="display: flex; flex-direction: column; justify-content: center">
  85. <img class="imgs" src="../../assets/images/zl-fxyj.png" />
  86. </div>
  87. </basic-modal>
  88. <!-- 短信提示弹窗 -->
  89. <basic-modal top="120px" ref="smsMsgModal" name="信息提示" width="50%">
  90. <MessageTipModalContent :qy="qy" @close="onCloseModal" />
  91. </basic-modal>
  92. </div>
  93. </template>
  94. <script>
  95. import BasicInfo from "./components/BasicInfo.vue";
  96. import AlarmingSituationDynamics from "./components/AlarmingSituationDynamics/index.vue";
  97. import AutonomousManagement from "./components/AutonomousManagement/index.vue";
  98. import HiddenDangerDetection from "./components/HiddenDangerDetection/index.vue";
  99. import MapChartsCategory from "./components/MapChartsCategory.vue";
  100. import RiskWarning from "./components/RiskWarning.vue";
  101. import WisdomFire from "./components/WisdomFire.vue";
  102. import FireIndex from "./components/FireIndex/index.vue";
  103. import BasicInfoModalContent from "./components/BasicInfoModalContent.vue";
  104. import SearchBox from "@/components/SearchBox.vue";
  105. import zzglModul from "./components/zzglModul.vue";
  106. import { totaldata, getJqdt, getZxgjtj, getJrjzsbs, getDtskgzList } from "@/api/index.js";
  107. import { fxfb } from "@/api/risk";
  108. import { formatCityData, createMapChartWindowInfo } from "@/utils";
  109. import MessageTipModalContent from '@/components/MessageTipModalContent.vue'
  110. export default {
  111. name: "HomePage",
  112. components: {
  113. BasicInfo,
  114. WisdomFire,
  115. AlarmingSituationDynamics,
  116. MapChartsCategory,
  117. RiskWarning,
  118. AutonomousManagement,
  119. HiddenDangerDetection,
  120. FireIndex,
  121. BasicInfoModalContent,
  122. SearchBox,
  123. zzglModul,
  124. MessageTipModalContent
  125. },
  126. data() {
  127. return {
  128. riskList: [],
  129. // 传参
  130. qy: "重庆市",
  131. params: {
  132. pageSize: 100,
  133. pageNum: 1,
  134. },
  135. PoliceList: [],
  136. frieList: {},
  137. iotList: {},
  138. fireIndexType: 0,
  139. heatMap: [],
  140. defaultModel: {},
  141. mapType: {
  142. "红色": 90,
  143. "橙色": 70,
  144. "黄色": 50,
  145. "蓝色": 30,
  146. "绿色": 10
  147. },
  148. queryParams: {
  149. glxs: "", //管理形式
  150. wbxs: "", //维保形式
  151. dxjj: "" //大修基金
  152. },
  153. textInfo:`<div style="color: #fff;">
  154. <p style="text-indent: 31.6pt;">
  155. <br/>
  156. </p>
  157. <h1 style="text-align: center;">
  158. 高层建筑消防安全风险分级分色判定标准
  159. </h1>
  160. <h1 style="text-align: center;">
  161. (试行)
  162. </h1>
  163. <p style="text-indent: 31.6pt;">
  164. <br/>
  165. </p>
  166. <p style="text-indent: 31.6pt;">
  167. <span>一、高层建筑消防安全风险分级分色定义</span>
  168. </p>
  169. <p style="text-indent: 31.6pt;">
  170. 依据《中共中央办公厅国务院办公厅关于推进城市安全发展的意见》、《国务院安委会办公室关于实施遏制重特大事故工作指南构建双重预防机制的意见》,将高层建筑消防安全风险等级从高到低划分为重大风险、较大风险、一般风险和低风险,分别用红、橙、黄、蓝四种颜色标示。
  171. </p>
  172. <p style="text-indent: 31.6pt;">
  173. (一)重大风险(红):指该高层建筑火灾危险、致灾因素多,管控难度大,具有发生重大及以上火灾事故的可能性;
  174. </p>
  175. <p style="text-indent: 31.6pt;">
  176. (二)较大风险(橙)。指该高层建筑火灾危险、致灾因素较多,管控难度较大,具有发生较大火灾事故的可能性;
  177. </p>
  178. <p style="text-indent: 31.6pt;">
  179. (三)一般风险(黄)。指该高层建筑火灾危险、致灾因素较少,具有发生一般火灾事故的可能性;
  180. </p>
  181. <p style="text-indent: 31.6pt;">
  182. (四)低风险(蓝)。指该高层建筑火灾危险、致灾因素在受控范围内,发生火灾事故的可能性较小。
  183. </p>
  184. <p style="text-indent: 31.6pt;">
  185. <span>二、高层建筑火灾隐患分类</span>
  186. </p>
  187. <p style="text-indent: 31.6pt;">
  188. 参考《重大火灾隐患判定标准》(GB35151-2017),将此次排查隐患状态,根据发生火灾概率、后果严重性、扑救难度从高到低分为A、B、C类。其中住宅建筑隐患分类:A类3个,B类8个,C类11个;公共建筑隐患分类:A类4个,B类10个,C类10个。
  189. </p>
  190. <table width="100%" style="color: #fff; padding: 0 40px;" border="1">
  191. <colgroup>
  192. <col width="91"/>
  193. <col width="189"/>
  194. <col width="307"/>
  195. <col width="160"/>
  196. <col width="173"/>
  197. </colgroup>
  198. <tbody style="text-align: center; line-height: 30px; border: #fff 1px solid;">
  199. <tr>
  200. <th colspan="1" rowspan="1" style="border-right-width: 3px; cursor: auto;"></th>
  201. <th colspan="1" rowspan="1" style="border-right-width: 3px; cursor: auto;">
  202. 二级指标
  203. </th>
  204. <th colspan="1" rowspan="1" style="border-right-width: 3px; cursor: auto;">
  205. 排查结果
  206. </th>
  207. <th colspan="1" rowspan="1" style="border-right-width: 3px; cursor: auto;">
  208. 住宅建筑 隐患分类
  209. </th>
  210. <th colspan="1" rowspan="1" style="border-right-width: 3px;">
  211. 公共建筑 隐患分类
  212. </th>
  213. </tr>
  214. <tr>
  215. <td colspan="1" rowspan="10">
  216. 消防设施
  217. </td>
  218. <td colspan="1" rowspan="2">
  219. 室内消火栓系统
  220. </td>
  221. <td colspan="1" rowspan="1">
  222. 无水
  223. </td>
  224. <td colspan="1" rowspan="1">
  225. A
  226. </td>
  227. <td colspan="1" rowspan="1">
  228. A
  229. </td>
  230. </tr>
  231. <tr>
  232. <td colspan="1" rowspan="1">
  233. 压力不足、其他故障
  234. </td>
  235. <td colspan="1" rowspan="1">
  236. C
  237. </td>
  238. <td colspan="1" rowspan="1">
  239. C
  240. </td>
  241. </tr>
  242. <tr>
  243. <td colspan="1" rowspan="2">
  244. 室外消火栓系统
  245. </td>
  246. <td colspan="1" rowspan="1">
  247. 无水
  248. </td>
  249. <td colspan="1" rowspan="1">
  250. B
  251. </td>
  252. <td colspan="1" rowspan="1">
  253. B
  254. </td>
  255. </tr>
  256. <tr>
  257. <td colspan="1" rowspan="1">
  258. 压力不足、其他故障
  259. </td>
  260. <td colspan="1" rowspan="1">
  261. C
  262. </td>
  263. <td colspan="1" rowspan="1">
  264. C
  265. </td>
  266. </tr>
  267. <tr>
  268. <td colspan="1" rowspan="2">
  269. 自动喷水灭火系统
  270. </td>
  271. <td colspan="1" rowspan="1">
  272. 无水
  273. </td>
  274. <td colspan="1" rowspan="1">
  275. A
  276. </td>
  277. <td colspan="1" rowspan="1">
  278. A
  279. </td>
  280. </tr>
  281. <tr>
  282. <td colspan="1" rowspan="1">
  283. 压力不足、其他故障
  284. </td>
  285. <td colspan="1" rowspan="1">
  286. C
  287. </td>
  288. <td colspan="1" rowspan="1">
  289. C
  290. </td>
  291. </tr>
  292. <tr>
  293. <td colspan="1" rowspan="1">
  294. 火灾自动报警系统
  295. </td>
  296. <td colspan="1" rowspan="1">
  297. 设施故障,不具备 防灭火功能
  298. </td>
  299. <td colspan="1" rowspan="1">
  300. B
  301. </td>
  302. <td colspan="1" rowspan="1">
  303. B
  304. </td>
  305. </tr>
  306. <tr>
  307. <td colspan="1" rowspan="1">
  308. 机械防、排烟系统
  309. </td>
  310. <td colspan="1" rowspan="1">
  311. 设施故障,不具备 防灭火功能
  312. </td>
  313. <td colspan="1" rowspan="1">
  314. B
  315. </td>
  316. <td colspan="1" rowspan="1">
  317. B
  318. </td>
  319. </tr>
  320. <tr>
  321. <td colspan="1" rowspan="1">
  322. 防火卷帘
  323. </td>
  324. <td colspan="1" rowspan="1">
  325. 设施故障,不具备 防灭火功能
  326. </td>
  327. <td colspan="1" rowspan="1">
  328. B
  329. </td>
  330. <td colspan="1" rowspan="1">
  331. B
  332. </td>
  333. </tr>
  334. <tr>
  335. <td colspan="1" rowspan="1">
  336. 气体灭火系统
  337. </td>
  338. <td colspan="1" rowspan="1">
  339. 设施故障,不具备 防灭火功能
  340. </td>
  341. <td colspan="1" rowspan="1">
  342. B
  343. </td>
  344. <td colspan="1" rowspan="1">
  345. B
  346. </td>
  347. </tr>
  348. <tr>
  349. <td colspan="1" rowspan="2">
  350. 生命通道
  351. </td>
  352. <td colspan="1" rowspan="1">
  353. 消防车通道
  354. </td>
  355. <td colspan="1" rowspan="1">
  356. 存在堵塞、占用情况
  357. </td>
  358. <td colspan="1" rowspan="1">
  359. B
  360. </td>
  361. <td colspan="1" rowspan="1">
  362. B
  363. </td>
  364. </tr>
  365. <tr>
  366. <td colspan="1" rowspan="1">
  367. 建筑内疏散通道、 安全出口
  368. </td>
  369. <td colspan="1" rowspan="1">
  370. 被堵塞、占用或封闭
  371. </td>
  372. <td colspan="1" rowspan="1">
  373. C
  374. </td>
  375. <td colspan="1" rowspan="1">
  376. C
  377. </td>
  378. </tr>
  379. <tr>
  380. <td colspan="1" rowspan="3">
  381. 用电用气
  382. </td>
  383. <td colspan="1" rowspan="1">
  384. 电动自行车
  385. </td>
  386. <td colspan="1" rowspan="1">
  387. 存在违规停放充电现象
  388. </td>
  389. <td colspan="1" rowspan="1">
  390. C
  391. </td>
  392. <td colspan="1" rowspan="1">
  393. C
  394. </td>
  395. </tr>
  396. <tr>
  397. <td colspan="1" rowspan="1">
  398. 电气线路
  399. </td>
  400. <td colspan="1" rowspan="1">
  401. 存在私接乱拉
  402. </td>
  403. <td colspan="1" rowspan="1">
  404. C
  405. </td>
  406. <td colspan="1" rowspan="1">
  407. C
  408. </td>
  409. </tr>
  410. <tr>
  411. <td colspan="1" rowspan="1">
  412. 电缆井内防火封堵
  413. </td>
  414. <td colspan="1" rowspan="1">
  415. 防火封堵被破坏
  416. </td>
  417. <td colspan="1" rowspan="1">
  418. C
  419. </td>
  420. <td colspan="1" rowspan="1">
  421. C
  422. </td>
  423. </tr>
  424. <tr>
  425. <td colspan="1" rowspan="9">
  426. 日常管理
  427. </td>
  428. <td colspan="1" rowspan="1">
  429. 可燃雨棚
  430. </td>
  431. <td colspan="1" rowspan="1">
  432. 存在违规设置现象
  433. </td>
  434. <td colspan="1" rowspan="1">
  435. B
  436. </td>
  437. <td colspan="1" rowspan="1">
  438. B
  439. </td>
  440. </tr>
  441. <tr>
  442. <td colspan="1" rowspan="1">
  443. 突出外墙防护网
  444. </td>
  445. <td colspan="1" rowspan="1">
  446. 存在违规设置现象
  447. </td>
  448. <td colspan="1" rowspan="1">
  449. C
  450. </td>
  451. <td colspan="1" rowspan="1">
  452. C
  453. </td>
  454. </tr>
  455. <tr>
  456. <td colspan="1" rowspan="1">
  457. 人员密集场所 室内装修
  458. </td>
  459. <td colspan="1" rowspan="1">
  460. 违规采用 易燃可燃材料装修
  461. </td>
  462. <td colspan="1" rowspan="1">
  463. /
  464. </td>
  465. <td colspan="1" rowspan="1">
  466. B
  467. </td>
  468. </tr>
  469. <tr>
  470. <td colspan="1" rowspan="1">
  471. 易燃可燃彩钢板房
  472. </td>
  473. <td colspan="1" rowspan="1">
  474. 违规搭建 易燃可燃彩钢板房
  475. </td>
  476. <td colspan="1" rowspan="1">
  477. C
  478. </td>
  479. <td colspan="1" rowspan="1">
  480. B
  481. </td>
  482. </tr>
  483. <tr>
  484. <td colspan="1" rowspan="1">
  485. 避难层(间)
  486. </td>
  487. <td colspan="1" rowspan="1">
  488. 被占用或擅自改变用途
  489. </td>
  490. <td colspan="1" rowspan="1">
  491. B
  492. </td>
  493. <td colspan="1" rowspan="1">
  494. B
  495. </td>
  496. </tr>
  497. <tr>
  498. <td colspan="1" rowspan="1">
  499. 易燃易爆危险品
  500. </td>
  501. <td colspan="1" rowspan="1">
  502. 存在违规 储存、经营、使用
  503. </td>
  504. <td colspan="1" rowspan="1">
  505. A
  506. </td>
  507. <td colspan="1" rowspan="1">
  508. A
  509. </td>
  510. </tr>
  511. <tr>
  512. <td colspan="1" rowspan="1">
  513. 住宅部分与 非住宅部分楼梯
  514. </td>
  515. <td colspan="1" rowspan="1">
  516. 存在共用疏散楼梯
  517. </td>
  518. <td colspan="1" rowspan="1">
  519. /
  520. </td>
  521. <td colspan="1" rowspan="1">
  522. A
  523. </td>
  524. </tr>
  525. <tr>
  526. <td colspan="1" rowspan="1">
  527. 消防控制室值班人员
  528. </td>
  529. <td colspan="1" rowspan="1">
  530. 配备不到位
  531. </td>
  532. <td colspan="1" rowspan="1">
  533. C
  534. </td>
  535. <td colspan="1" rowspan="1">
  536. C
  537. </td>
  538. </tr>
  539. <tr>
  540. <td colspan="1" rowspan="1">
  541. 外墙装饰、广告牌
  542. </td>
  543. <td colspan="1" rowspan="1">
  544. 存在影响灭火救援的 装饰、广告牌
  545. </td>
  546. <td colspan="1" rowspan="1">
  547. C
  548. </td>
  549. <td colspan="1" rowspan="1">
  550. C
  551. </td>
  552. </tr>
  553. </tbody>
  554. </table>
  555. <p style="text-indent: 31.6pt;">
  556. <span>三、高层建筑消防安全风险分级分色判定规则</span>
  557. </p>
  558. <p style="text-indent: 31.6pt;">
  559. 按照A类隐患赋30分、B类隐患赋5分、C类隐患赋1分计算消防安全风险值
  560. </p>
  561. <table width="100%" style="color: #fff; padding: 0 40px;" border="1">
  562. <colgroup>
  563. <col width="228"/>
  564. <col width="377"/>
  565. </colgroup>
  566. <tbody style="text-align: center; line-height: 30px; border: #fff 1px solid;">
  567. <tr>
  568. <th colspan="1" rowspan="1" style="border-right-width: 3px; cursor: auto; ">
  569. 消防安全风险分色
  570. </th>
  571. <th colspan="1" rowspan="1" style="border-right-width: 3px; cursor: auto;">
  572. 消防安全风险值n
  573. </th>
  574. </tr>
  575. <tr>
  576. <td colspan="1" rowspan="1">
  577. 重大风险(红色)
  578. </td>
  579. <td colspan="1" rowspan="1">
  580. ≥60
  581. </td>
  582. </tr>
  583. <tr>
  584. <td colspan="1" rowspan="1">
  585. 较大风险(橙色)
  586. </td>
  587. <td colspan="1" rowspan="1">
  588. 60>n≥30
  589. </td>
  590. </tr>
  591. <tr>
  592. <td colspan="1" rowspan="1">
  593. 一般风险(黄色)
  594. </td>
  595. <td colspan="1" rowspan="1">
  596. 30>n≥6
  597. </td>
  598. </tr>
  599. <tr>
  600. <td colspan="1" rowspan="1">
  601. 低风险(蓝色)
  602. </td>
  603. <td colspan="1" rowspan="1">
  604. 6>n>0
  605. </td>
  606. </tr>
  607. <tr>
  608. <td colspan="1" rowspan="1">
  609. 无风险(绿色)
  610. </td>
  611. <td colspan="1" rowspan="1">
  612. n=0
  613. </td>
  614. </tr>
  615. </tbody>
  616. </table>
  617. <p>
  618. <br/>
  619. </p>
  620. <p>
  621. <br/>
  622. </p>
  623. <p>
  624. <br/>
  625. </p>
  626. </div>`
  627. }
  628. },
  629. watch: {
  630. qy() {
  631. this.getList();
  632. this.getFireList();
  633. this.getIotList();
  634. },
  635. },
  636. methods: {
  637. onCloseModal() {
  638. this.closeModal("smsMsgModal")
  639. },
  640. onClickAutonomousManagementItemHandler(data) {
  641. const temp = {
  642. glxs: "",
  643. wbxs: "",
  644. dxjj: "",
  645. }
  646. switch (data.index) {
  647. case 0:
  648. temp.glxs = data.value
  649. break;
  650. case 1:
  651. temp.wbxs = data.value
  652. break;
  653. case 2:
  654. temp.dxjj = data.value
  655. break;
  656. }
  657. this.queryParams = temp
  658. this.showModal("autoManageModal")
  659. },
  660. showLabel(params) {
  661. return createMapChartWindowInfo(
  662. {
  663. title: params.name,
  664. },
  665. () => {
  666. const item = params.data.meta
  667. let res =`
  668. <table>
  669. <tr >
  670. <td style="padding-bottom:8px;">${item.区域} 第<span style="font-size: 24px;color:red;font-weight:bold;">${item.区域排名 || 0}</span>名</td>
  671. <td></td>
  672. </tr>
  673. <tr>
  674. <td>直接财产损失 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${Math.ceil((item.直接财产损失 || 0) / 10000)}</span>万元</td>
  675. <td></td>
  676. </tr>
  677. <tr>
  678. <td>火灾起数 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${item.火灾起数 || 0}</span>起</td>
  679. <td>亡人数 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${item.亡人数 || 0}</span>人</td>
  680. </tr>
  681. <tr>
  682. <td>重大风险 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${item.重大风险 || 0}</span>栋</td>
  683. <td>较大风险 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${item.较大风险 || 0}</span>栋</td>
  684. </tr>
  685. <tr>
  686. <td>一般风险 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${item.一般风险 || 0}</span>栋</td>
  687. <td>低风险 <span style="font-size: 24px;color:#ffb800;font-weight:400;">${item.低风险 || 0}</span>栋</td>
  688. </tr>
  689. </table>
  690. `
  691. return res;
  692. }
  693. );
  694. },
  695. showTc(val) {
  696. if (val) {
  697. this.defaultModel = {
  698. qy: this.qy,
  699. dl: val
  700. }
  701. this.showModal("basicInfoModal");
  702. }
  703. },
  704. showFxyj(val){
  705. this.defaultModel = {
  706. qy: this.qy,
  707. fxdjYs: val
  708. }
  709. this.showModal("basicInfoModal");
  710. },
  711. openBasicModal() {
  712. this.showModal("basicInfoModal");
  713. },
  714. UnitType(name){
  715. const params={
  716. qy:this.qy,
  717. }
  718. if (name == "超高层建筑总数(栋)") {
  719. params.gd = "100米以上";
  720. }
  721. if (name == "2000年底前老旧住宅建筑总数(栋)") {
  722. params.jcnd = "2000年前";
  723. params.dl = "住宅建筑";
  724. }
  725. if (name == "2000年底前老旧商业混合体建筑总数(栋)") {
  726. params.jcnd = "2000年前";
  727. params.dl = "公共建筑";
  728. }
  729. this.defaultModel = params
  730. this.showModal("basicInfoModal");
  731. },
  732. getShoeInfo(name){
  733. this.showModal(name);
  734. },
  735. // 风险预警
  736. getList(){
  737. totaldata({...this.params,qy:this.qy==="重庆市"?"":this.qy}).then(res=>{
  738. if(res.data.code==200){
  739. this.riskList=res.data.rows
  740. }
  741. }).catch(error=>{
  742. this.$message({
  743. message: res.data.msg,
  744. type: "error"
  745. });
  746. })
  747. },
  748. selectItemHandler(idx) {
  749. this.fireIndexType = idx;
  750. },
  751. getStaic() {
  752. getJqdt(this.params).then((res) => {
  753. this.PoliceList = res.data.rows;
  754. });
  755. },
  756. //智慧消防
  757. getFireList() {
  758. getZxgjtj({
  759. ...this.params,
  760. name: this.qy === "重庆市" ? "" : this.qy,
  761. }).then((res) => {
  762. this.frieList = res.data.rows[0];
  763. });
  764. },
  765. // 物联网栋数
  766. getIotList() {
  767. getJrjzsbs({
  768. ...this.params,
  769. name: this.qy === "重庆市" ? "" : this.qy,
  770. }).then((res) => {
  771. this.iotList = res.data.rows[0];
  772. });
  773. },
  774. openAutoManageModal() {
  775. this.showModal("autoManageModal");
  776. },
  777. loadMapData() {
  778. getDtskgzList({
  779. pageNum: 1,
  780. pageSize: 42,
  781. }).then((res) => {
  782. let tempData = res.data.rows;
  783. this.heatMap = formatCityData(
  784. tempData.map((item) => ({
  785. name: item.qx,
  786. value: this.mapType[item.分区颜色],
  787. meta: item
  788. }))
  789. );
  790. });
  791. },
  792. },
  793. created() {
  794. this.getList();
  795. this.getStaic();
  796. this.getFireList();
  797. this.getIotList();
  798. this.loadMapData();
  799. },
  800. };
  801. </script>
  802. <style scoped>
  803. .map {
  804. flex: 1;
  805. }
  806. .imgs{
  807. display: inline-block;
  808. /* width: 100%;
  809. height: 700px; */
  810. }
  811. .tips {
  812. color: #9BC3FF;
  813. background: url('../../assets/images/border.png') no-repeat;
  814. background-size: 100% 100%;
  815. background-color: transparent;
  816. position: absolute;
  817. bottom: 20px;
  818. left: 5px;
  819. box-sizing: border-box;
  820. padding: 10px 20px;
  821. cursor: pointer;
  822. }
  823. </style>