mainWell.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936
  1. <template>
  2. <div class="mainWell">
  3. <!-- 光钎测温 -->
  4. <div class="work-nav" v-if="listData.bundletube.length == 0 && strType!='sys_coalseam'">
  5. <div class="nav" v-for="(item, index) in topOutList" :key="index">
  6. <div class="pic" v-if="item.imgSrc">
  7. <img :src="imgUrl" alt="" />
  8. </div>
  9. <div class="content" v-if="item.label && item.value">
  10. <span>{{ item.label }}</span>
  11. <span>{{ item.value }}</span>
  12. </div>
  13. <div class="text" v-if="item.text">{{ item.text }}</div>
  14. </div>
  15. </div>
  16. <!-- 束管监测 -->
  17. <div class="work-nav" v-if="listData.bundletube.length!=0 && strType!='sys_coalseam'">
  18. <div class="box">
  19. <div class="contents">
  20. <img src="../../../../../assets/images/fire/pie.png" alt="" />
  21. <span class="text">{{ topContent.temperature }}</span>
  22. <span class="dw">°C</span>
  23. </div>
  24. <div class="contents">
  25. <div class="text">
  26. <span class="label">位置 : </span>
  27. <span class="value">{{ topContent.position }}</span>
  28. </div>
  29. <div class="text">
  30. <span class="label">时间 : </span>
  31. <span class="value">{{ topContent.time }}</span>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="box">
  36. <div class="text1">{{ topContent.warn }}</div>
  37. </div>
  38. </div>
  39. <div class="center-box" v-if="strType!='sys_coalseam'">
  40. <div class="box" v-for="(items, index) in tabList" :key="index">
  41. <div class="title">
  42. <span class="label">{{ items.label }}</span>
  43. <span class="details">{{ `${items.details}>>` }}</span>
  44. </div>
  45. <div class="content">
  46. <a-table v-if="index == 0" ref="table" size="small" :scroll="{ x: 0, y: 273 }" :columns="columns"
  47. :data-source="monitorlistYw" :pagination="false">
  48. <span slot="action" slot-scope="text, record"></span>
  49. </a-table>
  50. <a-table v-if="index == 1" ref="table1" size="small" :columns="columns" :data-source="monitorlistHy"
  51. :pagination="false" :scroll="{ y: 273 }">
  52. <span slot="action" slot-scope="text, record"> </span>
  53. </a-table>
  54. <a-table v-if="index == 2" ref="table" size="small" :scroll="{ y: 273 }" :columns="columns"
  55. :data-source="monitorlistPl" :pagination="false">
  56. <span slot="action" slot-scope="text, record"> </span>
  57. </a-table>
  58. </div>
  59. </div>
  60. </div>
  61. <div :class="listData.fiber.length!=0 ? 'center-box1' : 'center-box2'" v-if="strType=='sys_coalseam'">
  62. <div class="box" v-for="(items, index) in tabLists" :key="index">
  63. <div class="title">
  64. <span class="label">{{ items.label }}</span>
  65. <span class="details">{{ `${items.details}>>` }}</span>
  66. </div>
  67. <div class="content">
  68. <a-table v-if="index == 0" ref="table" size="small" :scroll="{ y: listData.fiber.length!=0 ? 160 : 320 }" :columns="columns"
  69. :data-source="monitorlistYw" :pagination="false">
  70. <span slot="action" slot-scope="text, record"></span>
  71. </a-table>
  72. <a-table v-if="index == 1" ref="table1" size="small" :columns="columns" :data-source="monitorlistHy"
  73. :pagination="false" :scroll="{ y: listData.fiber.length!=0 ? 160 : 320}">
  74. <span slot="action" slot-scope="text, record"> </span>
  75. </a-table>
  76. <a-table v-if="index == 2" ref="table" size="small" :scroll="{ y: listData.fiber.length!=0 ? 160 : 320 }" :columns="columns"
  77. :data-source="monitorlistPl" :pagination="false">
  78. <span slot="action" slot-scope="text, record"> </span>
  79. </a-table>
  80. <a-table v-if="index == 3" ref="table" size="small" :scroll="{ y: listData.fiber.length!=0 ? 160 : 320}" :columns="columns"
  81. :data-source="monitorlistWd" :pagination="false">
  82. <span slot="action" slot-scope="text, record"> </span>
  83. </a-table>
  84. </div>
  85. </div>
  86. </div>
  87. <div :class="strType=='sys_coalseam' ? 'footer-box1' : 'footer-box'" v-if="listData.bundletube.length == 0 && listData.fiber.length!=0">
  88. <div class="footer-title">
  89. <div class="echart-label">光钎测温系统实时温度监测</div>
  90. </div>
  91. <div class="echart-content">
  92. <echartLine2 :echartDataWd="echartDataWd"></echartLine2>
  93. </div>
  94. </div>
  95. <!-- 束管监测 -->
  96. <div class="content-s" v-if="listData.bundletube.length!=0 && strType!='sys_coalseam'">
  97. <div class="title-b">采空区密闭参数</div>
  98. <div class="card-btn">
  99. <div :class="activeIndex == index ? 'box1' : 'box'" v-for="(item, index) in mbList" :key="index"
  100. @click="btnClick(item, index)">
  101. <div class="label">{{ item.label }}</div>
  102. <div class="box-item box-item1">
  103. <span class="text-t">{{ `${item.label1}:` }}</span>
  104. <span class="text-v">{{ `${item.nd}%` }}</span>
  105. </div>
  106. <div class="box-item box-item2">
  107. <span class="text-t">{{ `${item.label2}:` }}</span>
  108. <span class="text-v">{{ item.time1 }}</span>
  109. </div>
  110. <div class="box-item box-item3">
  111. <span class="text-t">{{ `${item.label3}:` }}</span>
  112. <span class="text-v">{{ item.address }}</span>
  113. </div>
  114. </div>
  115. </div>
  116. <div class="echart-box">
  117. <div class="title-f">
  118. <div class="title-text">{{ `${type}趋势` }}</div>
  119. </div>
  120. <div class="echarts-box">
  121. <echartLine1 :echartDataSg="echartDataSg1"></echartLine1>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. </template>
  127. <script lang="ts" setup>
  128. import { ref, computed, reactive, watch, defineProps } from 'vue';
  129. import { topOutList, tabList,tabLists, columns, } from '../fire.data'
  130. import imgUrl from '../../../../../assets/images/fire/pie.png'
  131. import echartLine2 from './common/echartLine2.vue'
  132. import echartLine1 from './common/echartLine1.vue'
  133. let props = defineProps({
  134. listData: Object,
  135. strType:String
  136. });
  137. //束管监测-顶部区域数据
  138. let topContent = reactive({
  139. temperature: 0,
  140. position: '',
  141. time: '',
  142. warn: '',
  143. })
  144. //束管监测当前密闭参数激活选项
  145. let activeIndex = ref(0)
  146. //束管监测当前激活密闭参数类型
  147. let type = ref('O₂')
  148. //束管监测密闭参数列表
  149. let mbList = reactive([
  150. {
  151. label: 'O₂',
  152. label1: '浓度',
  153. label2: '时间',
  154. label3: '位置',
  155. nd: 0,
  156. time1: '',
  157. address: '',
  158. },
  159. {
  160. label: 'CO',
  161. label1: '浓度',
  162. label2: '时间',
  163. label3: '位置',
  164. nd: 0,
  165. time1: '',
  166. address: '',
  167. },
  168. {
  169. label: 'CO₂',
  170. label1: '浓度',
  171. label2: '时间',
  172. label3: '位置',
  173. nd: 0,
  174. time1: '',
  175. address: '',
  176. },
  177. {
  178. label: 'CH₄',
  179. label1: '浓度',
  180. label2: '时间',
  181. label3: '位置',
  182. nd: 0,
  183. time1: '',
  184. address: '',
  185. },
  186. {
  187. label: 'C₂H₂',
  188. label1: '浓度',
  189. label2: '时间',
  190. label3: '位置',
  191. nd: 0,
  192. time1: '',
  193. address: '',
  194. },
  195. {
  196. label: 'C₂H₄',
  197. label1: '浓度',
  198. label2: '时间',
  199. label3: '位置',
  200. nd: 0,
  201. time1: '',
  202. address: '',
  203. },
  204. ])
  205. let echartDataSg1 = reactive({
  206. xData: [],
  207. yData: [],
  208. lengedData: 'O₂',
  209. })
  210. let echartDataSgList = reactive<any[]>([])
  211. //外因火灾温度监测-图表数据
  212. let echartDataWd = reactive({
  213. xData: [],
  214. maxData: {
  215. data: [],
  216. lengedData: '实时温度',
  217. },
  218. })
  219. //烟雾传感器列表数据
  220. let monitorlistYw = reactive([])
  221. //火焰传感器列表数据
  222. let monitorlistHy = reactive([])
  223. //喷淋装置列表数据
  224. let monitorlistPl = reactive([])
  225. //温度传感器列表数据
  226. let monitorlistWd=reactive([])
  227. //束管监测密闭参数选项切换
  228. function btnClick(item, ind) {
  229. activeIndex.value = ind
  230. type.value = item.label
  231. echartDataSg1.xData.length = 0
  232. echartDataSg1.yData.length = 0
  233. echartDataSg1.lengedData = type.value
  234. switch (type.value) {
  235. case 'O₂':
  236. echartDataSgList.forEach(el => {
  237. echartDataSg1.xData.push(el.time)
  238. echartDataSg1.yData.push(el.o2val)
  239. })
  240. break;
  241. case 'C₂H₄':
  242. echartDataSgList.forEach(el => {
  243. echartDataSg1.xData.push(el.time)
  244. echartDataSg1.yData.push(el.ch2val)
  245. })
  246. break;
  247. case 'CO':
  248. echartDataSgList.forEach(el => {
  249. echartDataSg1.xData.push(el.time)
  250. echartDataSg1.yData.push(el.coval)
  251. })
  252. break;
  253. case 'CH₄':
  254. echartDataSgList.forEach(el => {
  255. echartDataSg1.xData.push(el.time)
  256. echartDataSg1.yData.push(el.chval)
  257. })
  258. break;
  259. case 'CO₂':
  260. echartDataSgList.forEach(el => {
  261. echartDataSg1.xData.push(el.time)
  262. echartDataSg1.yData.push(el.co2val)
  263. })
  264. break;
  265. case 'C₂H₂':
  266. echartDataSgList.forEach(el => {
  267. echartDataSg1.xData.push(el.time)
  268. echartDataSg1.yData.push(el.gasval)
  269. })
  270. break;
  271. }
  272. }
  273. watch(() => props.listData, (val) => {
  274. console.log(val, 'val---------------')
  275. props.listData = val
  276. if (JSON.stringify(val) != '{}') {
  277. echartDataSg1.xData.length = 0
  278. echartDataSg1.yData.length = 0
  279. echartDataSgList.length = 0
  280. echartDataWd.xData.length = 0
  281. echartDataWd.maxData.data.length = 0
  282. monitorlistYw.length = 0
  283. monitorlistHy.length = 0
  284. monitorlistPl.length = 0
  285. monitorlistWd.length=0
  286. if (val.fiber.length != 0) {
  287. topOutList[0].value = val.fiber[0].readData.fmax
  288. topOutList[1].value = val.fiber[0].readData.fmin
  289. topOutList[2].value = val.fiber[0].readData.favg
  290. topOutList[3].text = val.fiber[0].warnFlag ? '存在风险' : '正常'
  291. JSON.parse(val.fiber[0].readData.fibreTemperature).forEach(el => {
  292. echartDataWd.xData.push(el.pos)
  293. echartDataWd.maxData.data.push(el.value)
  294. })
  295. }
  296. if (val.bundletube.length != 0) {
  297. topContent.temperature = val.temperature[0] ? val.temperature[0].readData.temperature : '--'
  298. topContent.position = val.bundletube[0].strinstallpos || '--'
  299. topContent.time = val.bundletube[0].readTime || '--'
  300. topContent.warn = val.bundletube[0].warnLevel == 0 ? '正常' : val.bundletube[0].warnLevel == 101 ? '较低风险' : val.bundletube[0].warnLevel == 102 ? '低风险' : val.bundletube[0].warnLevel == 103 ? '中风险' : val.bundletube[0].warnLevel == 104 ? '高风险' : val.bundletube[0].warnLevel == 201 ? '报警' : '正常'
  301. val.bundletube[0].history.forEach(v => {
  302. echartDataSg1.xData.push(v.time)
  303. if (echartDataSg1.lengedData == 'O₂') {
  304. echartDataSg1.yData.push(v.o2val)
  305. } else if (echartDataSg1.lengedData == 'C₂H₄') {
  306. echartDataSg1.yData.push(v.ch2val)
  307. } else if (echartDataSg1.lengedData == 'CO') {
  308. echartDataSg1.yData.push(v.coval)
  309. } else if (echartDataSg1.lengedData == 'CH₄') {
  310. echartDataSg1.yData.push(v.chval)
  311. } else if (echartDataSg1.lengedData == 'CO₂') {
  312. echartDataSg1.yData.push(v.co2val)
  313. } else if (echartDataSg1.lengedData == 'C₂H₂') {
  314. echartDataSg1.yData.push(v.gasval)
  315. }
  316. echartDataSgList.push(v)
  317. })
  318. }
  319. if (val.smoke.length != 0) {
  320. val.smoke.forEach(el => {
  321. monitorlistYw.push(el)
  322. })
  323. }
  324. if (val.fire.length != 0) {
  325. val.fire.forEach(el => {
  326. monitorlistHy.push(el)
  327. })
  328. }
  329. if (val.spray.length != 0) {
  330. val.spray.forEach(el => {
  331. monitorlistPl.push(el)
  332. })
  333. }
  334. if(val.temperature.length!=0){
  335. val.temperature.forEach(el=>{
  336. monitorlistWd.push(el)
  337. })
  338. }
  339. }
  340. }, { immediate: true, deep: true })
  341. </script>
  342. <style lang="less" scoped>
  343. .mainWell {
  344. width: 100%;
  345. height: 100%;
  346. padding: 20px;
  347. box-sizing: border-box;
  348. overflow-y: auto;
  349. .work-nav {
  350. height: 15%;
  351. width: 100%;
  352. margin-bottom: 20px;
  353. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  354. background-size: 100% 100%;
  355. display: flex;
  356. justify-content: space-between;
  357. align-items: center;
  358. .nav {
  359. display: flex;
  360. justify-content: center;
  361. align-items: center;
  362. &:nth-child(1) {
  363. flex: 1;
  364. height: 100%;
  365. border-right: 2px solid;
  366. border-image: linear-gradient(to bottom, transparent, rgba(2, 70, 136, 1), transparent) 1 1 1;
  367. }
  368. &:nth-child(2) {
  369. flex: 1;
  370. height: 100%;
  371. border-right: 2px solid;
  372. border-image: linear-gradient(to bottom, transparent, rgba(2, 70, 136, 1), transparent) 1 1 1;
  373. }
  374. &:nth-child(3) {
  375. flex: 1;
  376. height: 100%;
  377. border-right: 2px solid;
  378. border-image: linear-gradient(to bottom, transparent, rgba(2, 70, 136, 1), transparent) 1 1 1;
  379. }
  380. &:nth-child(4) {
  381. flex: 1.2;
  382. color: #b3b8cc;
  383. font-size: 16px;
  384. height: 100%;
  385. border-right: 2px solid;
  386. border-image: linear-gradient(to bottom, transparent, rgba(2, 70, 136, 1), transparent) 1 1 1;
  387. }
  388. &:nth-child(5) {
  389. flex: 0.8;
  390. color: #2b87ff;
  391. font-size: 14px;
  392. height: 100%;
  393. }
  394. .pic {
  395. width: 26%;
  396. height: 84%;
  397. img {
  398. width: 100%;
  399. height: 100%;
  400. }
  401. }
  402. .content {
  403. height: 84%;
  404. margin-left: 15px;
  405. color: #fff;
  406. display: flex;
  407. flex-direction: column;
  408. justify-content: space-around;
  409. span {
  410. font-size: 14px;
  411. &:nth-child(1) {
  412. padding: 5px 0px;
  413. color: #b3b8cc;
  414. }
  415. &:nth-child(2) {
  416. font-family: 'douyuFont';
  417. font-size: 20px;
  418. color: #3df6ff;
  419. }
  420. }
  421. }
  422. }
  423. .nav:nth-child(1) .pic {
  424. background: url('../../../../../assets/images/fire/max.svg') no-repeat center;
  425. background-size: 50% 50%;
  426. }
  427. .nav:nth-child(2) .pic {
  428. background: url('../../../../../assets/images/fire/min.svg') no-repeat center;
  429. background-size: 50% 50%;
  430. }
  431. .nav:nth-child(3) .pic {
  432. background: url('../../../../../assets/images/fire/pj.svg') no-repeat center;
  433. background-size: 50% 50%;
  434. }
  435. .box {
  436. display: flex;
  437. &:nth-child(1) {
  438. justify-content: space-around;
  439. align-items: center;
  440. flex: 2;
  441. height: 100%;
  442. border-right: 2px solid;
  443. border-image: linear-gradient(to bottom, transparent, rgba(2, 70, 136, 1), transparent) 1 1 1;
  444. }
  445. &:nth-child(2) {
  446. flex: 1;
  447. justify-content: center;
  448. align-items: center;
  449. height: 100%;
  450. }
  451. .contents {
  452. height: 73%;
  453. &:nth-child(1) {
  454. width: 40%;
  455. display: flex;
  456. justify-content: center;
  457. align-items: center;
  458. img {
  459. position: relative;
  460. width: 23%;
  461. height: 100%;
  462. background: url('../../../../../assets/images/fire/pj.svg') no-repeat center;
  463. background-size: 50% 50%;
  464. }
  465. .text {
  466. font-family: 'douyuFont';
  467. font-size: 36px;
  468. margin: 0px 15px;
  469. color: #3df6ff;
  470. }
  471. .dw {
  472. font-size: 16px;
  473. color: #b3b8cc;
  474. }
  475. }
  476. &:nth-child(2) {
  477. width: 60%;
  478. display: flex;
  479. flex-direction: column;
  480. justify-content: space-around;
  481. .text {
  482. font-size: 18px;
  483. .label {
  484. color: #b3b8cc;
  485. font-weight: bold;
  486. }
  487. .value {
  488. font-family: 'douyuFont';
  489. color: #3df6ff;
  490. margin-left: 10px;
  491. }
  492. }
  493. }
  494. }
  495. .text1 {
  496. font-size: 18px;
  497. color: #b3b8cc;
  498. font-weight: bold;
  499. }
  500. }
  501. }
  502. .center-box {
  503. height: 47%;
  504. margin-bottom: 20px;
  505. display: flex;
  506. justify-content: space-between;
  507. align-items: center;
  508. .box {
  509. display: flex;
  510. flex-direction: column;
  511. width: 32%;
  512. height: 100%;
  513. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  514. background-size: 100% 100%;
  515. &:nth-child(2) {
  516. margin: 0px 20px;
  517. }
  518. .title {
  519. width: 100%;
  520. height: 40px;
  521. padding: 0px 15px;
  522. margin-bottom: 10px;
  523. border-bottom: 1px solid #0c3c88;
  524. box-sizing: border-box;
  525. display: flex;
  526. justify-content: space-between;
  527. align-items: center;
  528. .label {
  529. // font-family: 'douyuFont';
  530. font-size: 16px;
  531. color: #fff;
  532. }
  533. .details {
  534. font-size: 14px;
  535. color: #1f81df;
  536. }
  537. }
  538. .content {
  539. height: calc(100% - 40px);
  540. margin-bottom: 10px;
  541. }
  542. }
  543. }
  544. .center-box1 {
  545. height: 70%;
  546. margin-bottom: 20px;
  547. display: flex;
  548. justify-content: flex-start;
  549. align-items: flex-start;
  550. flex-wrap: wrap;
  551. .box {
  552. display: flex;
  553. flex-direction: column;
  554. width: calc(50% - 10px);
  555. height:calc(50% - 10px);
  556. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  557. background-size: 100% 100%;
  558. &:nth-child(1) {
  559. margin:0px 20px 20px 0px;
  560. }
  561. &:nth-child(3) {
  562. margin:0px 20px 0px 0px;
  563. }
  564. .title {
  565. width: 100%;
  566. height: 40px;
  567. padding: 0px 15px;
  568. margin-bottom: 10px;
  569. border-bottom: 1px solid #0c3c88;
  570. box-sizing: border-box;
  571. display: flex;
  572. justify-content: space-between;
  573. align-items: center;
  574. .label {
  575. font-size: 16px;
  576. color: #fff;
  577. }
  578. .details {
  579. font-size: 14px;
  580. color: #1f81df;
  581. }
  582. }
  583. .content {
  584. height: calc(100% - 40px);
  585. margin-bottom: 10px;
  586. }
  587. }
  588. }
  589. .center-box2 {
  590. height: 100%;
  591. display: flex;
  592. justify-content: flex-start;
  593. align-items: flex-start;
  594. flex-wrap: wrap;
  595. .box {
  596. display: flex;
  597. flex-direction: column;
  598. width: calc(50% - 10px);
  599. height:calc(50% - 10px);
  600. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  601. background-size: 100% 100%;
  602. &:nth-child(1) {
  603. margin:0px 20px 20px 0px;
  604. }
  605. &:nth-child(3) {
  606. margin:0px 20px 0px 0px;
  607. }
  608. .title {
  609. width: 100%;
  610. height: 40px;
  611. padding: 0px 15px;
  612. margin-bottom: 10px;
  613. border-bottom: 1px solid #0c3c88;
  614. box-sizing: border-box;
  615. display: flex;
  616. justify-content: space-between;
  617. align-items: center;
  618. .label {
  619. font-size: 16px;
  620. color: #fff;
  621. }
  622. .details {
  623. font-size: 14px;
  624. color: #1f81df;
  625. }
  626. }
  627. .content {
  628. height: calc(100% - 40px);
  629. margin-bottom: 10px;
  630. }
  631. }
  632. }
  633. .footer-box {
  634. height: calc(38% - 40px);
  635. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  636. background-size: 100% 100%;
  637. .footer-title {
  638. height: 30px;
  639. padding: 0px 15px;
  640. display: flex;
  641. justify-content: space-between;
  642. align-items: center;
  643. .echart-label {
  644. font-size: 16px;
  645. color: #fff;
  646. }
  647. }
  648. .echart-content {
  649. height: calc(100% - 30px);
  650. }
  651. }
  652. .footer-box1 {
  653. height: calc(30% - 20px);
  654. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  655. background-size: 100% 100%;
  656. .footer-title {
  657. height: 30px;
  658. padding: 0px 15px;
  659. display: flex;
  660. justify-content: space-between;
  661. align-items: center;
  662. .echart-label {
  663. font-size: 16px;
  664. color: #fff;
  665. }
  666. }
  667. .echart-content {
  668. height: calc(100% - 30px);
  669. }
  670. }
  671. .content-s{
  672. width: 100%;
  673. height: 608px;
  674. padding: 15px 20px 0px 20px;
  675. background: url('../../../../../assets/images/fire/bj1.png') no-repeat center;
  676. background-size: 100% 100%;
  677. box-sizing: border-box;
  678. .title-b {
  679. height: 30px;
  680. line-height: 30px;
  681. font-family: 'douyuFont';
  682. font-size: 16px;
  683. color: #3df6ff;
  684. }
  685. .card-btn {
  686. height: 28%;
  687. margin-bottom: 10px;
  688. display: flex;
  689. justify-content: space-between;
  690. .box {
  691. position: relative;
  692. width: 16%;
  693. height: 100%;
  694. background: url('../../../../../assets/images/fire/1.png') no-repeat center;
  695. background-size: 100% 100%;
  696. cursor: pointer;
  697. .label {
  698. position: absolute;
  699. left: 50%;
  700. top: 0;
  701. transform: translate(-50%);
  702. font-size: 16px;
  703. color: #fff;
  704. }
  705. .box-item {
  706. position: absolute;
  707. left: 50%;
  708. transform: translate(-50%, 0);
  709. width: 89%;
  710. height: 16%;
  711. padding: 0px 10px;
  712. display: flex;
  713. justify-content: space-between;
  714. align-items: center;
  715. background: url('../../../../../assets/images/fire/contetn.png') no-repeat center;
  716. background-size: 100% 100%;
  717. .text-t {
  718. width: 17%;
  719. color: #fff;
  720. font-size: 12px;
  721. }
  722. .text-v {
  723. width: 83%;
  724. font-family: 'douyuFont';
  725. font-size: 10px;
  726. color: #3df6ff;
  727. display: flex;
  728. justify-content: flex-end;
  729. }
  730. }
  731. .box-item1 {
  732. top: 24%;
  733. }
  734. .box-item2 {
  735. top: 50%;
  736. }
  737. .box-item3 {
  738. top: 75%;
  739. }
  740. }
  741. .box1 {
  742. position: relative;
  743. width: 16%;
  744. height: 100%;
  745. background: url('../../../../../assets/images/fire/2.png') no-repeat center;
  746. background-size: 100% 100%;
  747. cursor: pointer;
  748. .label {
  749. position: absolute;
  750. left: 50%;
  751. top: 0;
  752. transform: translate(-50%);
  753. font-size: 16px;
  754. color: #fff;
  755. }
  756. .box-item {
  757. position: absolute;
  758. left: 50%;
  759. transform: translate(-50%, 0);
  760. width: 89%;
  761. height: 16%;
  762. padding: 0px 10px;
  763. display: flex;
  764. justify-content: space-between;
  765. align-items: center;
  766. background: url('../../../../../assets/images/fire/contetn.png') no-repeat center;
  767. background-size: 100% 100%;
  768. .text-t {
  769. width: 17%;
  770. color: #fff;
  771. font-size: 12px;
  772. }
  773. .text-v {
  774. width: 83%;
  775. font-family: 'douyuFont';
  776. font-size: 10px;
  777. color: #3df6ff;
  778. display: flex;
  779. justify-content: flex-end;
  780. }
  781. }
  782. .box-item1 {
  783. top: 19%;
  784. }
  785. .box-item2 {
  786. top: 41%;
  787. }
  788. .box-item3 {
  789. top: 63%;
  790. }
  791. }
  792. }
  793. .echart-box {
  794. height: calc(72% - 41px);
  795. border: 1px solid #114aac;
  796. .title-f {
  797. height: 40px;
  798. padding: 0px 10px;
  799. box-sizing: border-box;
  800. display: flex;
  801. justify-content: space-between;
  802. align-items: center;
  803. .title-text {
  804. font-family: 'douyuFont';
  805. font-size: 16px;
  806. color: #3df6ff;
  807. }
  808. }
  809. .echarts-box {
  810. height: calc(100% - 40px);
  811. }
  812. }
  813. }
  814. }
  815. </style>