1
0

WisdomFire.vue 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. <template>
  2. <div>
  3. <div class="num-box">
  4. <!-- 物联网建筑数量 -->
  5. <div class="build-num">
  6. <div class="build">
  7. <span
  8. ><img src="@/assets/images/Vector (3).png" alt="" />
  9. <span>已接入物联网建筑数</span>
  10. </span>
  11. <span class="num">{{ iotList?.wlwlds }}</span>
  12. <span class="build-line">栋</span>
  13. </div>
  14. </div>
  15. <!-- 设备数 -->
  16. <div class="point-num">
  17. <div class="build-num" style="background: none; margin-bottom: 10px">
  18. <div class="build">
  19. <span
  20. >点位总数
  21. <span class="num">{{ iotList?.jrsbzs }}</span> 个
  22. </span>
  23. <span
  24. >在线
  25. <span class="online">{{ iotList?.jrsbzxs }}</span>个
  26. </span>
  27. <span
  28. >告警
  29. <span class="warning">{{
  30. iotList?.gjlds ? iotList?.gjlds : 0
  31. }}</span>个
  32. </span>
  33. </div>
  34. </div>
  35. <div>
  36. <span class="onlines on-line" style="margin: 0px 20px"> 在线</span>
  37. <span class="offlines on-line">告警</span>
  38. </div>
  39. <div class="pressure">
  40. <!-- 水压 -->
  41. <div class="pressure-num" @click="toIot('水压监测')">
  42. <div class="pressure-bg" >
  43. {{ frieList.syzs ? frieList.syzs : 0
  44. }}<span style="margin-right: 1px"
  45. ><span style="margin-right: 1px">/</span></span
  46. >
  47. <span>{{ frieList.syds ? frieList.syds : 0 }}</span>
  48. <div style="font-size: 12px; margin-top: 5px">(个/栋)</div>
  49. </div>
  50. <ul class="pressure-list" >
  51. <li style="font-size: 12px; margin: 6px 0 0 10px">
  52. {{ listNum[0] }}
  53. </li>
  54. <li class="pressure-line">
  55. <!-- 在线 -->
  56. <span class="onlines on-line"></span>
  57. <!-- <img
  58. class="pressure-img"
  59. src="../../assets/images/Ellipse 275.png"
  60. alt=""
  61. /> -->
  62. <span class="bumer" style="font-size: 16px; margin-left: 2px">
  63. {{ frieList.syzxs ? frieList.syzxs : 0
  64. }}<span style="margin-right: 1px">/</span>
  65. <span>{{ frieList.syzxlds ? frieList.syzxlds : 0 }}</span>
  66. <span class="unit" style="font-size: 12px">(个/栋)</span>
  67. </span>
  68. </li>
  69. <li class="pressure-line" >
  70. <!-- 离线 -->
  71. <span class="offlines on-line"></span>
  72. <!-- <img
  73. class="pressure-img"
  74. src="../../assets/images/Ellipse 275 (1).png"
  75. alt=""
  76. /> -->
  77. <span class="bumer" style="margin-left: 2px">
  78. {{ frieList.sygjs ? frieList.sygjs : 0
  79. }}<span style="margin-right: 1px">/</span>
  80. <span>{{ frieList.sygjlds ? frieList.sygjlds : 0 }}</span>
  81. <span style="font-size: 12px">(个/栋)</span>
  82. </span>
  83. <!-- <span class="unit">(个/栋)</span> -->
  84. </li>
  85. </ul>
  86. </div>
  87. <!--点气火灾 -->
  88. <div class="pressure-num" @click="toIot('电气火灾监测')">
  89. <div class="pressure-bg">
  90. {{ frieList.dqhzzs ? frieList.dqhzzs : 0
  91. }}<span style="margin-right: 1px">/</span>
  92. <span>{{ frieList.dqhzds ? frieList.dqhzds : 0 }}</span>
  93. <div style="font-size: 12px; margin-top: 5px">(个/栋)</div>
  94. </div>
  95. <ul class="pressure-list">
  96. <li style="font-size: 12px; margin: 6px 0 0 10px">
  97. {{ listNum[1] }}
  98. </li>
  99. <li class="pressure-line">
  100. <!-- 在线 -->
  101. <span class="onlines on-line"></span>
  102. <!-- <img
  103. class="pressure-img"
  104. src="../../assets/images/Ellipse 275.png"
  105. alt=""
  106. /> -->
  107. <span class="bumer" style="font-size: 16px; margin-left: 2px"
  108. >{{ frieList.dqhzzxs ? frieList.dqhzzxs : 0
  109. }}<span style="margin-right: 1px">/</span>
  110. <span>{{ frieList.dqhzzxlds ? frieList.dqhzzxlds : 0 }}</span>
  111. <span class="unit" style="font-size: 12px">(个/栋)</span>
  112. </span>
  113. </li>
  114. <li class="pressure-line">
  115. <!-- 离线 -->
  116. <span class="offlines on-line"></span>
  117. <!-- <img
  118. class="pressure-img"
  119. src="../../assets/images/Ellipse 275 (1).png"
  120. alt=""
  121. /> -->
  122. <span class="bumer" style="margin-left: 2px"
  123. >{{ frieList.dqhzgjs ? frieList.dqhzgjs : 0
  124. }}<span style="margin-right: 1px">/</span>
  125. <span>{{ frieList.dqhzgjlds ? frieList.dqhzgjlds : 0 }}</span>
  126. <span style="font-size: 12px">(个/栋)</span>
  127. </span>
  128. <!-- <span class="unit">(个/栋)</span> -->
  129. </li>
  130. </ul>
  131. </div>
  132. <!-- 生命通道 -->
  133. <div class="pressure-num" @click="toIot('生命通道监测')">
  134. <div class="pressure-bg">
  135. {{ frieList.smtdzs ? frieList.smtdzs : 0
  136. }}<span style="margin-right: 1px"></span>
  137. <!-- <span>{{ frieList.smtdlds ? frieList.smtdlds : 0 }}</span> -->
  138. <div style="font-size: 12px; margin-top: 5px">个</div>
  139. </div>
  140. <ul class="pressure-list">
  141. <li style="font-size: 12px; margin: 6px 0 0 10px">
  142. {{ listNum[2] }}
  143. </li>
  144. <li class="pressure-line">
  145. <!-- 在线 -->
  146. <span class="onlines on-line"></span>
  147. <!-- <img
  148. class="pressure-img"
  149. src="../../assets/images/Ellipse 275.png"
  150. alt=""
  151. /> -->
  152. <span class="bumer" style="font-size: 16px; margin-left: 2px"
  153. >{{ frieList.smtdzxs?frieList.smtdzxs : 0}}
  154. <!-- <span style="margin-right: 1px">/</span> -->
  155. <!-- <span>{{ frieList.smtdzxlds ? frieList.smtdzxlds : 0 }}</span> -->
  156. <span class="unit" style="font-size: 12px">(个)</span>
  157. </span>
  158. </li>
  159. <li class="pressure-line">
  160. <!-- 离线 -->
  161. <span class="offlines on-line"></span>
  162. <!-- <img
  163. class="pressure-img"
  164. src="../../assets/images/Ellipse 275 (1).png"
  165. alt=""
  166. /> -->
  167. <span class="bumer" style="margin-left: 2px"
  168. >{{ frieList.smtdgjs ? frieList.smtdgjs : 0 }}
  169. <!-- <span style="margin-right: 1px">/</span> -->
  170. <!-- <span>{{ frieList.smtdgjlds ? frieList.smtdgjlds : 0 }}</span> -->
  171. <span style="font-size: 12px">(个)</span>
  172. </span>
  173. <!-- <span class="unit">(个/栋)</span> -->
  174. </li>
  175. </ul>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. <basic-modal top="120px" ref="feirModal1" name="智慧消防">
  181. <fxfbCont :qy="qy" :sbType="sbType" />
  182. </basic-modal>
  183. </div>
  184. </template>
  185. <script>
  186. import fxfbCont from '../../Iot/components/fxfbCont.vue';
  187. export default {
  188. props: {
  189. frieList: Object,
  190. iotList: Object,
  191. qy:String
  192. },
  193. components:{fxfbCont},
  194. data() {
  195. return {
  196. listNum: ["水压监测点位", "电气火灾监测点位", "生命通道监测点位"],
  197. sbType:''
  198. };
  199. },
  200. mounted() {
  201. },
  202. methods:{
  203. openFrieModal1() {
  204. this.showModal("feirModal1");
  205. },
  206. toIot(val){
  207. this.sbType=val
  208. this.showModal('feirModal1')
  209. }
  210. }
  211. };
  212. </script>
  213. <style scoped>
  214. .num-box {
  215. width: 414px;
  216. display: flex;
  217. flex-direction: column;
  218. padding: 10px 12px;
  219. }
  220. .build-num {
  221. width: 100%;
  222. height: 42px;
  223. background: #657f91;
  224. border-radius: 5px;
  225. }
  226. .build {
  227. height: 100%;
  228. display: flex;
  229. justify-content: space-around;
  230. align-items: center;
  231. font-size: 12px;
  232. color: #fff;
  233. }
  234. .point-num {
  235. flex: 1;
  236. /* margin-top: 10px; */
  237. }
  238. .num {
  239. font-size: 30px;
  240. color: #ffd74b;
  241. margin-left: 5px;
  242. }
  243. img {
  244. width: 20px;
  245. height: 19px;
  246. }
  247. .online {
  248. font-size: 30px;
  249. color: #00ff66;
  250. margin-left: 5px;
  251. }
  252. .warning {
  253. font-size: 30px;
  254. color: #ff4b23;
  255. margin-left: 5px;
  256. }
  257. .pressure {
  258. margin-top: 10px;
  259. display: flex;
  260. justify-content: space-between;
  261. }
  262. .pressure-num {
  263. /* width: 30%; */
  264. height: 150px;
  265. /* letter-spacing: 1px; */
  266. font-size: 12px;
  267. text-align: center;
  268. }
  269. .pressure-img {
  270. display: inline-block !important;
  271. width: 8px;
  272. height: 8px;
  273. margin-left: 5px;
  274. }
  275. .pressure-list {
  276. font-size: 12px;
  277. color: #fff;
  278. text-align: left;
  279. font-family: "Abel";
  280. }
  281. .onlines::after {
  282. background-color: #2fde60;
  283. }
  284. .offlines::after {
  285. background-color: #ff4f4f;
  286. }
  287. .on-line::after {
  288. content: "";
  289. display: inline-block;
  290. width: 8px;
  291. height: 8px;
  292. border-radius: 50%;
  293. margin-left: 5px;
  294. }
  295. .on-line {
  296. letter-spacing: 2px;
  297. }
  298. .pressure-bg {
  299. width: 66px;
  300. height: 77px;
  301. background: url("@/assets/images/water.png") no-repeat;
  302. font-size: 20px;
  303. text-align: center;
  304. padding-left: 3px;
  305. padding-top: 10px;
  306. box-sizing: border-box;
  307. margin: auto;
  308. }
  309. /* .pressure-line {
  310. display: flex;
  311. justify-content: space-between;
  312. align-items: center;
  313. } */
  314. .bumer {
  315. display: inline-block;
  316. font-size: 16px;
  317. margin-top: 5px;
  318. }
  319. .unit {
  320. margin-right: 12px;
  321. }
  322. .build-line {
  323. display: inline-block;
  324. margin-top: 6px;
  325. }
  326. </style>