center-area-green.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. <template>
  2. <div class="center-area-green">
  3. <div class="container">
  4. <div class="risk-score">
  5. <div class="item-label">风险得分</div>
  6. <div class="item-val">{{ paramDatas.riskLevel !== undefined && paramDatas.riskLevel !== null ?
  7. paramDatas.riskLevel
  8. : '-' }}</div>
  9. </div>
  10. <div class="dust-warn">
  11. <div class="dust-icon"></div>
  12. <div class="item-content" @click="showModal('dust')">
  13. <div class="ite-label">粉尘监测预警</div>
  14. <div class="ite-val">{{ paramDatas.fc == 0
  15. ? '低风险'
  16. : paramDatas.fc == 101
  17. ? '低风险'
  18. : paramDatas.fc == 102
  19. ? '一般风险'
  20. : paramDatas.fc == 103
  21. ? '较大风险'
  22. : paramDatas.fc == 104
  23. ? '重大风险'
  24. : paramDatas.fc == 201
  25. ? '报警'
  26. : paramDatas.fc }}</div>
  27. </div>
  28. </div>
  29. <div class="vent-warn">
  30. <div class="vent-icon"></div>
  31. <div class="item-content" @click="showModal('vent')">
  32. <div class="ite-label">通风监测预警</div>
  33. <div class="ite-val">{{ paramDatas.tf == 0
  34. ? '低风险'
  35. : paramDatas.tf == 101
  36. ? '低风险'
  37. : paramDatas.tf == 102
  38. ? '一般风险'
  39. : paramDatas.tf == 103
  40. ? '较大风险'
  41. : paramDatas.tf == 104
  42. ? '重大风险'
  43. : paramDatas.tf == 201
  44. ? '报警'
  45. : paramDatas.tf }}</div>
  46. </div>
  47. </div>
  48. <div class="gas-warn">
  49. <div class="gas-icon"></div>
  50. <div class="item-content1">
  51. <div class="ite-content" @click="showModal('gas')">
  52. <div class="ite-label">瓦斯监测预警</div>
  53. <div class="ite-val">{{ paramDatas.ws == 0
  54. ? '低风险'
  55. : paramDatas.ws == 101
  56. ? '低风险'
  57. : paramDatas.ws == 102
  58. ? '一般风险'
  59. : paramDatas.ws == 103
  60. ? '较大风险'
  61. : paramDatas.ws == 104
  62. ? '重大风险'
  63. : paramDatas.ws == 201
  64. ? '报警'
  65. : paramDatas.ws }}</div>
  66. </div>
  67. <div class="ite-content">
  68. <div class="ite-label">矿井瓦斯等级鉴定</div>
  69. <div class="ite-val">{{ sysOrgCode == 'sdmtjtbdmk' ? '高瓦斯' : '低瓦斯' }}</div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="device-warn">
  74. <div class="device-icon"></div>
  75. <div class="item-content" @click="showModal('sbyj')">
  76. <div class="ite-label">设备监测预警</div>
  77. <div class="ite-val">{{ paramDatas.sb == 0
  78. ? '低风险'
  79. : paramDatas.sb == 101
  80. ? '低风险'
  81. : paramDatas.sb == 102
  82. ? '一般风险'
  83. : paramDatas.sb == 103
  84. ? '较大风险'
  85. : paramDatas.sb == 104
  86. ? '重大风险'
  87. : paramDatas.sb == 201
  88. ? '报警'
  89. : paramDatas.sb }}</div>
  90. </div>
  91. </div>
  92. <div class="fire-warn">
  93. <div class="fire-icon"></div>
  94. <div class="item-content" @click="showModal('fire')" >
  95. <div class="ite-label">火灾监测预警</div>
  96. <div class="ite-val">{{ paramDatas.fire == 0
  97. ? '低风险'
  98. : paramDatas.fire == 101
  99. ? '低风险'
  100. : paramDatas.fire == 102
  101. ? '一般风险'
  102. : paramDatas.fire == 103
  103. ? '较大风险'
  104. : paramDatas.fire == 104
  105. ? '重大风险'
  106. : paramDatas.fire == 201
  107. ? '报警'
  108. : paramDatas.fire }}</div>
  109. </div>
  110. </div>
  111. <div class="db-warn">
  112. <div class="db-icon"></div>
  113. <div class="item-content" @click="showModal('Minepressure')">
  114. <div class="ite-label">顶板</div>
  115. <div class="ite-val">低风险</div>
  116. </div>
  117. </div>
  118. <div class="sz-warn">
  119. <div class="sz-icon"></div>
  120. <div class="item-content" @click="showModal('waterLevel')">
  121. <div class="ite-label">水灾</div>
  122. <div class="ite-val">低风险</div>
  123. </div>
  124. </div>
  125. <div class="risk-echartbox">
  126. <RiskWarnLevel :echartData="paramDatas.riskData"></RiskWarnLevel>
  127. </div>
  128. </div>
  129. </div>
  130. </template>
  131. <script lang="ts" setup>
  132. import { reactive, watch } from 'vue'
  133. import { useRouter } from 'vue-router';
  134. import { useGlobSetting } from '/@/hooks/setting';
  135. import RiskWarnLevel from './dz-risk.vue'
  136. let props = defineProps({
  137. paramData: {
  138. type: Object,
  139. default: () => {
  140. return {}
  141. }
  142. }
  143. })
  144. let router = useRouter();
  145. let paramDatas = reactive<any>({})
  146. const { sysOrgCode, sysDataType } = useGlobSetting();
  147. //跳转详情
  148. function showModal(data) {
  149. switch (data) {
  150. case 'vent':
  151. router.push('/ventilate/warn/home');
  152. break;
  153. case 'fire':
  154. router.push('/fire/warn/home');
  155. break;
  156. case 'dust':
  157. router.push('/dust/warn/home');
  158. break;
  159. case 'waterLevel':
  160. console.log('waterLevel');
  161. router.push('/warn/waterLevel/home');
  162. break;
  163. case 'gas':
  164. router.push('/gas/warn/home');
  165. break;
  166. case 'sbyj':
  167. router.push('/device/warn/home');
  168. break;
  169. case 'Minepressure':
  170. router.push('/monitorChannel/monitor-Minepressure');
  171. break;
  172. }
  173. }
  174. watch(() => props.paramData, (newV, oldV) => {
  175. paramDatas = newV
  176. }, { immediate: true, deep: true })
  177. </script>
  178. <style lang="less" scoped>
  179. @import '/@/design/theme.less';
  180. @{theme-deepblue} {
  181. .center-area-green {
  182. --image-model_container_img: url('@/assets/images/themify/deepblue/home-container/configurable/1-1.png');
  183. --image-model_risk_score: url('@/assets/images/themify/deepblue/home-container/configurable/1-2.png');
  184. --image-model_dust_warn: url('@/assets/images/themify/deepblue/home-container/configurable/1-7.png');
  185. --image-model_vent_warn: url('@/assets/images/themify/deepblue/home-container/configurable/1-5.png');
  186. --image-model_gas_warn: url('@/assets/images/themify/deepblue/home-container/configurable/1-3.png');
  187. --image-model_device_warn: url('@/assets/images/themify/deepblue/home-container/configurable/1-6.png');
  188. --image-model_fire_warn: url('@/assets/images/themify/deepblue/home-container/configurable/1-4.png');
  189. --image-model_db_warn: url('@/assets/images/themify/deepblue/home-container/configurable/db-green.png');
  190. --image-model_sz_warn: url('@/assets/images/themify/deepblue/home-container/configurable/sz-green.png');
  191. --image-model_item_content: url('@/assets/images/themify/deepblue/home-container/configurable/1-8.png');
  192. --image-model_item_content1: url('@/assets/images/themify/deepblue/home-container/configurable/1-9.png');
  193. }
  194. }
  195. .center-area-green {
  196. --image-model_container_img: url('@/assets/images/home-green/1-1.png');
  197. --image-model_risk_score: url('@/assets/images/home-green/1-2.png');
  198. --image-model_dust_warn: url('@/assets/images/home-green/1-7.png');
  199. --image-model_vent_warn: url('@/assets/images/home-green/1-5.png');
  200. --image-model_gas_warn: url('@/assets/images/home-green/1-3.png');
  201. --image-model_device_warn: url('@/assets/images/home-green/1-6.png');
  202. --image-model_fire_warn: url('@/assets/images/home-green/1-4.png');
  203. --image-model_db_warn: url('@/assets/images/home-green/db-green.png');
  204. --image-model_sz_warn: url('@/assets/images/home-green/sz-green.png');
  205. --image-model_item_content: url('@/assets/images/home-green/1-8.png');
  206. --image-model_item_content1: url('@/assets/images/home-green/1-9.png');
  207. height: 100%;
  208. .container {
  209. position: relative;
  210. width: 100%;
  211. height: calc(100% - 30px);
  212. margin-top: 60px;
  213. background: var(--image-model_container_img) no-repeat center;
  214. background-size: 100% 100%;
  215. }
  216. .risk-echartbox {
  217. position: absolute;
  218. left: 0px;
  219. top: -72px;
  220. width: 220px;
  221. height: 170px;
  222. }
  223. .risk-score {
  224. position: absolute;
  225. left: 50%;
  226. top: -65px;
  227. transform: translate(-44%, 0);
  228. width: 206px;
  229. height: 60px;
  230. font-size: 18px;
  231. color: #fff;
  232. background: var(--image-model_risk_score) no-repeat;
  233. background-size: 100% 100%;
  234. .item-label {
  235. text-align: center;
  236. margin-bottom: 5px;
  237. }
  238. .item-val {
  239. text-align: center;
  240. font-family: 'douyuFont';
  241. }
  242. }
  243. .dust-warn {
  244. position: absolute;
  245. left: 242px;
  246. top: 52px;
  247. width: 132px;
  248. height: 108px;
  249. background: var(--image-model_dust_warn) no-repeat;
  250. background-size: 100% 100%;
  251. }
  252. .vent-warn {
  253. position: absolute;
  254. left: 200px;
  255. top: 334px;
  256. width: 132px;
  257. height: 108px;
  258. background: var(--image-model_vent_warn) no-repeat;
  259. background-size: 100% 100%;
  260. }
  261. .gas-warn {
  262. position: absolute;
  263. left: 420px;
  264. top: 436px;
  265. width: 132px;
  266. height: 108px;
  267. background: var(--image-model_gas_warn) no-repeat;
  268. background-size: 100% 100%;
  269. }
  270. .device-warn {
  271. position: absolute;
  272. right: 196px;
  273. top: 340px;
  274. width: 132px;
  275. height: 108px;
  276. background: var(--image-model_device_warn) no-repeat;
  277. background-size: 100% 100%;
  278. }
  279. .fire-warn {
  280. position: absolute;
  281. right: 178px;
  282. top: 58px;
  283. width: 132px;
  284. height: 108px;
  285. background: var(--image-model_fire_warn) no-repeat;
  286. background-size: 100% 100%;
  287. }
  288. .db-warn {
  289. position: absolute;
  290. left: 42px;
  291. top: 182px;
  292. width: 132px;
  293. height: 108px;
  294. background: var(--image-model_db_warn) no-repeat;
  295. background-size: 100% 100%;
  296. }
  297. .sz-warn {
  298. position: absolute;
  299. right:34px;
  300. top: 136px;
  301. width: 132px;
  302. height: 108px;
  303. background: var(--image-model_sz_warn) no-repeat;
  304. background-size: 100% 100%;
  305. }
  306. .item-content {
  307. position: absolute;
  308. left: -4px;
  309. top: -54px;
  310. width: 127px;
  311. height: 56px;
  312. background: var(--image-model_item_content) no-repeat;
  313. background-size: 100% 100%;
  314. }
  315. .item-content1 {
  316. display: flex;
  317. position: absolute;
  318. left: -60px;
  319. top: -54px;
  320. width: 258px;
  321. height: 56px;
  322. background: var(--image-model_item_content1) no-repeat;
  323. background-size: 100% 100%;
  324. }
  325. .ite-label {
  326. text-align: center;
  327. margin-bottom: 10px;
  328. padding-top: 4px;
  329. font-size: 12px;
  330. }
  331. .ite-val {
  332. width: 100%;
  333. text-align: center;
  334. font-family: 'douyuFont';
  335. font-size: 12px;
  336. }
  337. .ite-content {
  338. width: 50%;
  339. height: 100%;
  340. }
  341. }
  342. </style>