gatewaynNewPage.vue 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021
  1. <template>
  2. <div class="gatewayNewPage">
  3. <el-row>
  4. <el-col :span="18" class="quarter">
  5. <div class="searchFn">
  6. <el-date-picker v-model="changeYear" type="year" value-format="YYYY" placeholder="选择年份" @change="changeYearFn" />
  7. <div class="quarterChoose">
  8. <el-icon :size="20" color="#3B7AD1" @click="arrowLeft"><ArrowLeft /></el-icon>
  9. <span class="choose">{{seasonStr}}</span>
  10. <el-icon :size="20" color="#3B7AD1" @click="arrowRight"><ArrowRight /></el-icon>
  11. </div>
  12. </div>
  13. <div class="tableHeader">
  14. <div class="headerOne"></div>
  15. <div class="headerTwo">
  16. <div class="headerComTit">
  17. <span class="headerTwoTit">评级统计</span>
  18. </div>
  19. </div>
  20. <div class="headerThree">
  21. <div class="headerComTit">
  22. <span class="headerThreeTit">年度榜</span>
  23. </div>
  24. <div class="headerNameTit">
  25. <div class="headerNameTit_left">
  26. <span>单位名称</span>
  27. </div>
  28. <div class="headerNameTit_right">
  29. <span>级别</span>
  30. <span style="margin-left: 20px">得分</span>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="headerFour">
  35. <div class="headerComTit">
  36. <span class="headerFourTit">考评排行榜</span>
  37. </div>
  38. <div class="headerNameTit">
  39. <div class="headerNameTit_left">
  40. <span>单位名称</span>
  41. </div>
  42. <div class="headerNameTit_right">
  43. <span>得分</span>
  44. <span style="margin-left: 20px">加分事项</span>
  45. <span style="margin-left: 20px">扣分事项</span>
  46. <span style="margin-left: 20px">管理加分</span>
  47. <span style="margin-left: 20px">管理扣分</span>
  48. <span style="margin-left: 20px">高于基准</span>
  49. <span style="margin-left: 20px">低于基准</span>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. <!-- v-for="it in 4" :key="it" -->
  55. <div class="tableMain" v-for="(it, index) in cupDataYearArr.section" :key="index">
  56. <div class="mainOne">
  57. <span :style="index === 2 ? 'top:45px': ''">{{it.name}}</span>
  58. </div>
  59. <div class="mainTwo">
  60. <div class="echartsNum" :style="it.echartsData.allNum < 10 ? 'left:70px': ''">{{it.echartsData.allNum}}</div>
  61. <div :id="'pieChart'+index" style="height: 100px;width: 100%"></div>
  62. <el-row>
  63. <el-col :span="12">
  64. <span class="mainTwoComColor" style="background: #F65177;"></span>
  65. <span class="mainTwoComTit">A级</span>
  66. </el-col>
  67. <el-col :span="12">
  68. <span class="mainTwoComColor" style="background: #50C14E;"></span>
  69. <span class="mainTwoComTit">B级</span>
  70. </el-col>
  71. <el-col :span="12">
  72. <span class="mainTwoComColor" style="background: #5093E1;"></span>
  73. <span class="mainTwoComTit">C级</span>
  74. </el-col>
  75. <el-col :span="12">
  76. <span class="mainTwoComColor" style="background: #9DA5BE;"></span>
  77. <span class="mainTwoComTit">D级</span>
  78. </el-col>
  79. </el-row>
  80. </div>
  81. <div class="mainThree">
  82. <div class="mainMore" @click="yearSeeMore(it.nameEn, 'year')"></div>
  83. <div style="display: flex" v-for="(item, index) in it.tableDatas" :key="index">
  84. <div class="mainThreeMsg">
  85. <img :src="item.img" alt="">
  86. <div class="msgProgress">
  87. <span>{{item.company}}</span>
  88. <span>{{item.grade}}</span>
  89. <span>{{item.score}}</span>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="mainFour">
  95. <div class="mainMore" @click="yearSeeMore(it.nameEn, 'season')"></div>
  96. <div style="display: flex" v-for="(item, index) in it.section" :key="index">
  97. <div class="mainFourMsg">
  98. <span>{{item.company}}</span>
  99. <span>{{item.score}}</span>
  100. <div class="mainFourImg">
  101. <el-popover
  102. placement="right-start"
  103. :title="item.company +' '+ item.score"
  104. :width="200"
  105. trigger="hover"
  106. :content="item.matter_heigh_note"
  107. >
  108. <template #reference>
  109. <img :src="item.matter_heigh === 0 ? cenImg : item.matter_heigh === 1 ? topImg : botImg" alt="">
  110. </template>
  111. </el-popover>
  112. <el-popover
  113. placement="right-start"
  114. :title="item.company +' '+ item.score"
  115. :width="200"
  116. trigger="hover"
  117. :content="item.manage_low_note"
  118. >
  119. <template #reference>
  120. <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
  121. </template>
  122. </el-popover>
  123. <el-popover
  124. placement="right-start"
  125. :title="item.company +' '+ item.score"
  126. :width="200"
  127. trigger="hover"
  128. :content="item.manage_height_note"
  129. >
  130. <template #reference>
  131. <img :src="item.manage_height === 0 ? cenImg : item.manage_height === 1 ? topImg : botImg" alt="">
  132. </template>
  133. </el-popover>
  134. <el-popover
  135. placement="right-start"
  136. :title="item.company +' '+ item.score"
  137. :width="200"
  138. trigger="hover"
  139. :content="item.manage_low_note"
  140. >
  141. <template #reference>
  142. <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
  143. </template>
  144. </el-popover>
  145. <el-popover
  146. placement="right-start"
  147. :title="item.company +' '+ item.score"
  148. :width="200"
  149. trigger="hover"
  150. :content="item.standard_heigh_note"
  151. >
  152. <template #reference>
  153. <img :src="item.standard_heigh === 0 ? cenImg : item.standard_heigh === 1 ? topImg : botImg" alt="">
  154. </template>
  155. </el-popover>
  156. <el-popover
  157. placement="right-start"
  158. :title="item.company +' '+ item.score"
  159. :width="200"
  160. trigger="hover"
  161. :content="item.standard_low_note"
  162. >
  163. <template #reference>
  164. <img :src="item.standard_low === 0 ? cenImg : item.standard_low === 1 ? topImg : botImg" alt="">
  165. </template>
  166. </el-popover>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. <div class="tableFooter">
  173. <div class="footerOne">
  174. <span>煤电一体化</span>
  175. </div>
  176. <div class="footerTwo">
  177. <div style="display: flex" v-for="(item, index) in cupDataYearArr.integration" :key="index">
  178. <div class="footerTwoMsg">
  179. <img :src="item.img" alt="">
  180. <div class="footerProgress">
  181. <span class="footerOneSpan">{{item.company}}</span>
  182. <el-progress :percentage="Math.floor((item.score/item.base_score)*100)" :stroke-width="5" />
  183. <span class="footerTwoSpan">{{item.grade}}</span>
  184. <span class="footerThreeSpan">{{item.score}}</span>
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. <div class="footerThree">
  190. <div class="mainMore" @click="yearSeeMore(it.nameEn, 'season')"></div>
  191. <div style="display: flex" v-for="(item, index) in cupDataSeasonArr.integration" :key="index">
  192. <div class="footerThreeMsg" v-for="it in matterMsg" :key="it">
  193. <div class="footerImg">
  194. <span>{{it}}</span>
  195. <el-popover
  196. placement="right-start"
  197. :title="item.company +' '+ item.score"
  198. :width="200"
  199. trigger="hover"
  200. :content="item.matter_heigh_note"
  201. >
  202. <template #reference>
  203. <img :src="item.matter_heigh === 0 ? cenImg : item.matter_heigh === 1 ? topImg : botImg" v-if="it === '加分事项'">
  204. </template>
  205. </el-popover>
  206. <el-popover
  207. placement="right-start"
  208. :title="item.company +' '+ item.score"
  209. :width="200"
  210. trigger="hover"
  211. :content="item.matter_low_note"
  212. >
  213. <template #reference>
  214. <img :src="item.matter_low === 0 ? cenImg : item.matter_low === 1 ? topImg : botImg" v-if="it === '扣分事项'">
  215. </template>
  216. </el-popover>
  217. <el-popover
  218. placement="right-start"
  219. :title="item.company +' '+ item.score"
  220. :width="200"
  221. trigger="hover"
  222. :content="item.manage_heigh_note"
  223. >
  224. <template #reference>
  225. <img :src="item.manage_heigh === 0 ? cenImg : item.manage_heigh === 1 ? topImg : botImg" v-if="it === '管理加分'">
  226. </template>
  227. </el-popover>
  228. <el-popover
  229. placement="right-start"
  230. :title="item.company +' '+ item.score"
  231. :width="200"
  232. trigger="hover"
  233. :content="item.manage_low_note"
  234. >
  235. <template #reference>
  236. <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" v-if="it === '管理扣分'">
  237. </template>
  238. </el-popover>
  239. <el-popover
  240. placement="right-start"
  241. :title="item.company +' '+ item.score"
  242. :width="200"
  243. trigger="hover"
  244. :content="item.standard_heigh_note"
  245. >
  246. <template #reference>
  247. <img :src="item.standard_heigh === 0 ? cenImg : item.standard_heigh === 1 ? topImg : botImg" v-if="it === '高于基准'">
  248. </template>
  249. </el-popover>
  250. <el-popover
  251. placement="right-start"
  252. :title="item.company +' '+ item.score"
  253. :width="200"
  254. trigger="hover"
  255. :content="item.standard_low_note"
  256. >
  257. <template #reference>
  258. <img :src="item.standard_low === 0 ? cenImg : item.standard_low === 1 ? topImg : botImg" v-if="it === '低于基准'">
  259. </template>
  260. </el-popover>
  261. </div>
  262. </div>
  263. </div>
  264. </div>
  265. </div>
  266. </el-col>
  267. <el-col :span="5" class="report">
  268. <div class="gateway_report">
  269. <div class="reportTit">
  270. <p>通告栏</p>
  271. </div>
  272. <div class="reportMain">
  273. <div class="reportMain_msg" v-for="it in noticeData" :key="it.id">
  274. <div class="rightDiv"></div>
  275. <div class="rightTitMsg">
  276. <p>{{it.noticeTitle}}</p>
  277. <div style="margin-top: 5px">
  278. <span style="margin-right: 10px">{{it.createTime.substring(0, it.createTime.indexOf(' '))}}</span>
  279. <span>{{it.releaseDeptName}}</span>
  280. </div>
  281. </div>
  282. </div>
  283. </div>
  284. </div>
  285. </el-col>
  286. </el-row>
  287. <year-from ref="yearFrom"></year-from>
  288. <season-from ref="seasonFrom"></season-from>
  289. </div>
  290. </template>
  291. <script>
  292. import cup1 from '../assets/getwayImg/cup1.png'
  293. import cup2 from '../assets/getwayImg/cup2.png'
  294. import cup3 from '../assets/getwayImg/cup3.png'
  295. import topImg from '../assets/getwayImg/topNew.png'
  296. import botImg from '../assets/getwayImg/botNew.png'
  297. import cenImg from '../assets/getwayImg/cenNew.png'
  298. import {apiGetevaluationportallist, apiGetevaluationCircularDisplaylist} from '../api/api'
  299. import yearFrom from './gateWay/gatewayNewYearFrom.vue'
  300. import seasonFrom from './gateWay/gatewayNewSeasonFrom.vue'
  301. export default {
  302. components: {yearFrom, seasonFrom},
  303. data() {
  304. return {
  305. noticeData: [],
  306. cupDataYearArr: {
  307. section: [],
  308. integration: []
  309. },
  310. cupDataSeasonArr: {
  311. section: [],
  312. integration: []
  313. },
  314. cupFootMsgArr: [],
  315. matterMsg: ['加分事项', '扣分事项', '管理加分', '管理扣分', '高于基准', '低于基准'],
  316. topImg: topImg,
  317. botImg: botImg,
  318. cenImg: cenImg,
  319. changeYear: '',
  320. seasonStr: '',
  321. seasonArr: ['第一季度', '第二季度', '第三季度']
  322. }
  323. },
  324. created() {
  325. this.changeYear = (new Date().getFullYear()-1).toString()
  326. this.seasonStr = '第一季度'
  327. this.cupFootMsgArr = [
  328. {
  329. level: 'A',
  330. points: '134',
  331. img: cup1,
  332. name: '大港电厂(广安津能)'
  333. },
  334. {
  335. level: 'A',
  336. points: '134',
  337. img: cup2,
  338. name: '怀安热电'
  339. }
  340. ]
  341. },
  342. mounted() {
  343. this.getGateWayData()
  344. this.getDeptNoticeData()
  345. },
  346. methods: {
  347. getDeptNoticeData() {
  348. let that = this
  349. let userMes = JSON.parse(window.sessionStorage.getItem('user'))
  350. if (userMes.deptId) {
  351. apiGetevaluationCircularDisplaylist(userMes.deptId).then(datas =>{
  352. if (datas && datas.data) {
  353. that.noticeData = datas.data
  354. }
  355. })
  356. }
  357. },
  358. changeYearFn(val) {
  359. this.changeYear = val
  360. this.cupDataYearArr = {
  361. section: [],
  362. integration: []
  363. }
  364. this.cupDataSeasonArr = {
  365. section: [],
  366. integration: []
  367. }
  368. this.getGateWayData()
  369. },
  370. arrowLeft() {
  371. if (this.seasonStr === '第一季度') {
  372. this.seasonStr = '第三季度'
  373. } else if (this.seasonStr === '第二季度') {
  374. this.seasonStr = '第一季度'
  375. } else if (this.seasonStr === '第三季度') {
  376. this.seasonStr = '第二季度'
  377. }
  378. this.cupDataYearArr = {
  379. section: [],
  380. integration: []
  381. }
  382. this.cupDataSeasonArr = {
  383. section: [],
  384. integration: []
  385. }
  386. this.getGateWayData()
  387. },
  388. arrowRight() {
  389. if (this.seasonStr === '第一季度') {
  390. this.seasonStr = '第二季度'
  391. } else if (this.seasonStr === '第二季度') {
  392. this.seasonStr = '第三季度'
  393. } else if (this.seasonStr === '第三季度') {
  394. this.seasonStr = '第一季度'
  395. }
  396. this.cupDataYearArr = {
  397. section: [],
  398. integration: []
  399. }
  400. this.cupDataSeasonArr = {
  401. section: [],
  402. integration: []
  403. }
  404. this.getGateWayData()
  405. },
  406. // 获取首页数据
  407. getGateWayData() {
  408. let that = this
  409. let params = {
  410. binSection: '',
  411. year: that.changeYear,
  412. season: that.seasonStr === '第一季度' ? '1' : that.seasonStr === '第二季度' ? '2' : '3'
  413. }
  414. apiGetevaluationportallist(params).then(datas =>{
  415. if (datas && datas.data) {
  416. let secArr = ['HD', 'SD', 'XNYFG', 'GJYE', 'MDYTH']
  417. secArr.forEach(item =>{
  418. for(let i in datas.data.year) {
  419. let it = datas.data.year[i]
  420. if (item === i && i !== 'MDYTH') {
  421. let gradeA = 0
  422. let gradeB = 0
  423. let gradeC = 0
  424. let gradeD = 0
  425. let tableData = []
  426. it.forEach((iv, index) =>{
  427. if (index < 3) {
  428. let obj = iv
  429. if (index === 0) {
  430. obj.img = cup1
  431. } else if (index === 1) {
  432. obj.img = cup2
  433. } else if (index === 2) {
  434. obj.img = cup3
  435. }
  436. tableData.push(iv)
  437. }
  438. if (iv.grade === 'A') {
  439. gradeA ++
  440. } else if (iv.grade === 'B') {
  441. gradeB ++
  442. } else if (iv.grade === 'C') {
  443. gradeC ++
  444. } else if (iv.grade === 'D') {
  445. gradeD ++
  446. }
  447. })
  448. let obj = {
  449. name: item === 'HD' ? '火电板块' : item === 'SD' ? '水电板块' :item === 'XNYFG' ? '新能源' : '海外业务',
  450. nameEn: item,
  451. echartsData: {
  452. allNum: it.length,
  453. echarts: [
  454. { value: gradeA, name: 'A类' },
  455. { value: gradeB, name: 'B类' },
  456. { value: gradeC, name: 'C类' },
  457. { value: gradeD, name: 'D类' }
  458. ]
  459. },
  460. tableDatas: tableData,
  461. allTableData: it,
  462. section: [],
  463. sectionAll: []
  464. }
  465. that.cupDataYearArr.section.push(obj)
  466. } else if(item === i && i === 'MDYTH') {
  467. it.forEach((iv, index) =>{
  468. if (index<2) {
  469. if (index === 0) {
  470. iv.img = cup1
  471. } else if (index === 1) {
  472. iv.img = cup2
  473. }
  474. that.cupDataYearArr.integration.push(iv)
  475. }
  476. })
  477. }
  478. }
  479. })
  480. that.cupDataYearArr.section.forEach(item =>{
  481. for(let i in datas.data.season) {
  482. let it = datas.data.season[i]
  483. if (item.nameEn === i) {
  484. it.forEach((iv, index) =>{
  485. if (index<3) {
  486. item.section.push(iv)
  487. }
  488. })
  489. item.sectionAll = it
  490. }
  491. }
  492. })
  493. if (datas.data.season['MDYTH']) {
  494. datas.data.season['MDYTH'].forEach((item, index) =>{
  495. if (index<2) {
  496. that.cupDataSeasonArr.integration.push(item)
  497. }
  498. })
  499. }
  500. console.log(that.cupDataYearArr)
  501. console.log(that.cupDataSeasonArr)
  502. this.$nextTick(() =>{
  503. that.getEcharts(that.cupDataYearArr.section)
  504. })
  505. }
  506. })
  507. },
  508. getEcharts(datas) {
  509. datas.forEach((item, index) =>{
  510. this.getEchartsData(item.echartsData.echarts, 'pieChart'+index)
  511. })
  512. },
  513. getEchartsData(data, name) {
  514. let option = {
  515. color: ['#F65177', '#50C14E', '#5093E1', '#9DA5BE'],
  516. tooltip: {
  517. trigger: 'item'
  518. },
  519. series: [
  520. {
  521. name: '年度榜',
  522. type: 'pie',
  523. radius: ['50%', '70%'],
  524. avoidLabelOverlap: false,
  525. label: {
  526. show: false,
  527. position: 'center'
  528. },
  529. // emphasis: {
  530. // label: {
  531. // show: true,
  532. // fontSize: 10,
  533. // fontWeight: 'bold'
  534. // }
  535. // },
  536. labelLine: {
  537. show: false
  538. },
  539. data: data
  540. }
  541. ]
  542. };
  543. // 基于准备好的dom,初始化echarts实例
  544. let dom = document.getElementById(name);
  545. dom.removeAttribute("_echarts_instance_")
  546. let myChart = this.$echarts.init(dom);
  547. myChart.setOption(option);
  548. window.addEventListener("resize", function () {
  549. myChart.resize()
  550. })
  551. },
  552. yearSeeMore(name, type) {
  553. if (type === 'year') {
  554. this.$refs.yearFrom.init(name, this.changeYear, this.seasonStr)
  555. } else {
  556. this.$refs.seasonFrom.init(name, this.changeYear, this.seasonStr)
  557. }
  558. }
  559. }
  560. }
  561. </script>
  562. <style lang="less">
  563. .gatewayNewPage{
  564. height: 93vh;
  565. width: 87vw;
  566. background: #EDEFF5;
  567. padding: 15px 20px;
  568. .quarter{
  569. background: #fff;
  570. border-radius: 10px;
  571. // padding-right: 15px;
  572. .searchFn{
  573. height: 50px;
  574. display: flex;
  575. border-bottom: 1px solid #E1E3EA;
  576. .el-date-editor--year{
  577. width: 130px;
  578. margin: 10px 0 0 20px;
  579. .el-input__wrapper{
  580. background: #2C7EDC;
  581. height: 30px;
  582. .el-input__prefix, .el-input__inner, .el-input__suffix{
  583. color: #fff;
  584. }
  585. }
  586. }
  587. ::-webkit-input-placeholder{
  588. color: #fff;
  589. }
  590. .quarterChoose{
  591. position: relative;
  592. left: 33%;
  593. top: 15px;
  594. width: 225px;
  595. display: flex;
  596. justify-content: space-around;
  597. .choose{
  598. position: relative;
  599. top: -1px;
  600. }
  601. .el-icon{
  602. cursor: pointer;
  603. }
  604. }
  605. }
  606. .tableHeader{
  607. display: flex;
  608. border-bottom: 1px solid #E1E3EA;
  609. height: 75px;
  610. .headerComTit{
  611. height: 40px;
  612. border-bottom: 1px solid #E1E3EA;
  613. span{
  614. font-size: 14px;
  615. color: #3B7AD1;
  616. }
  617. }
  618. .headerNameTit{
  619. display: flex;
  620. justify-content: space-between;
  621. padding: 8px 20px;
  622. font-size: 14px;
  623. color: #414141;
  624. }
  625. .headerOne{
  626. width: 35px;
  627. background: #184FB4;
  628. }
  629. .headerTwo{
  630. width: 150px;
  631. border-right: 1px solid #E1E3EA;
  632. .headerTwoTit{
  633. position: relative;
  634. top: 10px;
  635. left: 40px;
  636. }
  637. }
  638. .headerThree{
  639. width: 350px;
  640. border-right: 1px solid #E1E3EA;
  641. .headerThreeTit{
  642. position: relative;
  643. top: 10px;
  644. left: 150px;
  645. }
  646. }
  647. .headerFour{
  648. width: calc(100% - 535px);
  649. .headerFourTit{
  650. position: relative;
  651. top: 10px;
  652. left: 40%;
  653. }
  654. }
  655. }
  656. .tableMain{
  657. display: flex;
  658. border-bottom: 1px solid #E1E3EA;
  659. height: 150px;
  660. .mainOne{
  661. width: 35px;
  662. background: #184FB4;
  663. span{
  664. display: inline-block;
  665. width: 20px;
  666. margin: 0 auto;
  667. line-height: 20px;
  668. font-size: 16px;
  669. font-weight: bold;
  670. color: #fff;
  671. position: relative;
  672. top: 30px;
  673. left: 10px;
  674. }
  675. }
  676. .mainTwo{
  677. width: 149px;
  678. border-right: 1px solid #E1E3EA;
  679. position: relative;
  680. .echartsNum{
  681. font-size: 16px;
  682. font-weight: 600;
  683. position: absolute;
  684. top: 42px;
  685. left: 65px;
  686. }
  687. .mainTwoComColor{
  688. display: inline-block;
  689. width: 6px;
  690. height: 6px;
  691. border-radius: 20px;
  692. margin-left: 15px;
  693. position: relative;
  694. top: -1px;
  695. }
  696. .mainTwoComTit{
  697. font-size: 14px;
  698. display: inline-block;
  699. margin-left: 5px;
  700. }
  701. }
  702. .mainThree{
  703. width: 350px;
  704. padding-top: 13px;
  705. border-right: 1px solid #E1E3EA;
  706. position: relative;
  707. .mainMore{
  708. width: 0;
  709. height: 0;
  710. border-top: 10px solid transparent;
  711. border-left: 10px solid #B6BBCB;
  712. border-right: 10px solid transparent;
  713. border-bottom: 10px solid transparent;
  714. position: absolute;
  715. top: -9px;
  716. right: -9px;
  717. transform: rotate(-45deg);
  718. cursor: pointer;
  719. }
  720. .mainThreeMsg{
  721. display: flex;
  722. margin: 0 10px;
  723. width: 100%;
  724. height: 33px;
  725. background: #F6F7FA;
  726. margin-bottom: 8px;
  727. padding-left: 10px;
  728. padding-top: 2px;
  729. border-radius: 5px;
  730. img{
  731. width: 20px;
  732. height: 20px;
  733. position: relative;
  734. top: 5px;
  735. margin-right: 10px;
  736. }
  737. .msgProgress{
  738. margin-top: 5px;
  739. display: flex;
  740. width: 90%;
  741. span{
  742. font-size: 14px;
  743. font-family: Microsoft YaHei;
  744. }
  745. span:nth-child(1){
  746. display: inline-block;
  747. width: 70%;
  748. font-weight: 400;
  749. color: #666;
  750. margin-right: 10px;
  751. }
  752. span:nth-child(2){
  753. font-weight: 600;
  754. margin-right: 30px;
  755. color: #F65177;
  756. }
  757. span:nth-child(3){
  758. font-weight: 600;
  759. color: #666;
  760. }
  761. }
  762. }
  763. }
  764. .mainFour{
  765. width: calc(100% - 536px);
  766. padding-top: 13px;
  767. position: relative;
  768. .mainMore{
  769. width: 0;
  770. height: 0;
  771. border-top: 10px solid transparent;
  772. border-left: 10px solid #B6BBCB;
  773. border-right: 10px solid transparent;
  774. border-bottom: 10px solid transparent;
  775. position: absolute;
  776. top: -9px;
  777. right: -9px;
  778. transform: rotate(-45deg);
  779. cursor: pointer;
  780. }
  781. .mainFourMsg{
  782. display: flex;
  783. margin: 0 10px;
  784. width: 100%;
  785. height: 33px;
  786. background: #F6F7FA;
  787. margin-bottom: 8px;
  788. padding-left: 10px;
  789. padding-top: 2px;
  790. border-radius: 5px;
  791. .mainFourImg{
  792. display: flex;
  793. justify-content: space-around;
  794. width: 65%;
  795. img{
  796. width: 20px;
  797. height: 20px;
  798. position: relative;
  799. top: 5px;
  800. margin-right: 33px;
  801. margin-left: 22px;
  802. }
  803. }
  804. span{
  805. font-size: 14px;
  806. font-family: Microsoft YaHei;
  807. position: relative;
  808. top: 6px;
  809. }
  810. span:nth-child(1){
  811. display: inline-block;
  812. width: 26%;
  813. font-weight: 400;
  814. color: #666;
  815. margin-right: 17px;
  816. }
  817. span:nth-child(2){
  818. font-weight: 600;
  819. margin-right: 15px;
  820. color: #666;
  821. }
  822. }
  823. }
  824. }
  825. .tableFooter{
  826. display: flex;
  827. height: 100px;
  828. .footerOne{
  829. width: 35px;
  830. background: #7D8297;
  831. border-radius: 0 0 0 10px;
  832. span{
  833. display: inline-block;
  834. width: 20px;
  835. margin: 0 auto;
  836. line-height: 16px;
  837. font-size: 16px;
  838. font-weight: bold;
  839. color: #fff;
  840. position: relative;
  841. top: 10px;
  842. left: 10px;
  843. }
  844. }
  845. .footerTwo{
  846. width: 500px;
  847. padding-top: 13px;
  848. border-right: 1px solid #E1E3EA;
  849. .footerTwoMsg{
  850. display: flex;
  851. margin: 0 10px;
  852. width: 100%;
  853. height: 33px;
  854. background: #F6F7FA;
  855. margin-bottom: 8px;
  856. padding-left: 10px;
  857. padding-top: 2px;
  858. border-radius: 5px;
  859. img{
  860. width: 20px;
  861. height: 20px;
  862. position: relative;
  863. top: 5px;
  864. margin-right: 10px;
  865. }
  866. .footerProgress{
  867. margin-top: 5px;
  868. display: flex;
  869. width: 91%;
  870. span{
  871. font-size: 14px;
  872. font-family: Microsoft YaHei;
  873. }
  874. .footerOneSpan{
  875. display: inline-block;
  876. width: 35%;
  877. font-weight: 400;
  878. color: #666;
  879. margin-right: 10px;
  880. }
  881. .el-progress{
  882. width: calc(50% - 15px);
  883. padding-right: 15px;
  884. position: relative;
  885. top: -3px;
  886. .el-progress__text{
  887. display: none;
  888. }
  889. }
  890. .footerTwoSpan{
  891. font-weight: 600;
  892. margin-right: 30px;
  893. color: #F65177;
  894. }
  895. .footerThreeSpan{
  896. font-weight: 600;
  897. color: #666;
  898. }
  899. }
  900. }
  901. }
  902. .footerThree{
  903. width: calc(100% - 536px);
  904. padding-top: 13px;position: relative;
  905. .mainMore{
  906. width: 0;
  907. height: 0;
  908. border-top: 10px solid transparent;
  909. border-left: 10px solid #B6BBCB;
  910. border-right: 10px solid transparent;
  911. border-bottom: 10px solid transparent;
  912. position: absolute;
  913. top: -9px;
  914. right: -9px;
  915. transform: rotate(-45deg);
  916. cursor: pointer;
  917. }
  918. .footerThreeMsg{
  919. display: flex;
  920. // margin: 0 10px;
  921. margin-left: 10px;
  922. margin-bottom: 8px;
  923. span{
  924. font-size: 14px;
  925. font-weight: 400;
  926. color: #666;
  927. font-family: Microsoft YaHei;
  928. }
  929. .footerImg{
  930. display: flex;
  931. border-radius: 5px;
  932. background: #F6F7FA;
  933. span{
  934. display: inline-block;
  935. width: 100%;
  936. height: 30px;
  937. padding: 5px 11px 0;
  938. position: relative;
  939. top: 2px;
  940. }
  941. img{
  942. width: 20px;
  943. height: 20px;
  944. position: relative;
  945. top: 5px;
  946. margin-right: 10px;
  947. position: relative;
  948. top: 7px;
  949. }
  950. }
  951. }
  952. }
  953. }
  954. }
  955. .report{
  956. margin-left: 20px;
  957. .gateway_report{
  958. width: 355px;
  959. background: #fff;
  960. // margin-right: 30px;
  961. margin-right: calc(100% - 355px);
  962. border-radius: 10px;
  963. padding-bottom: 10px;
  964. border: 1px solid #D6DBEA;
  965. .reportTit{
  966. padding: 21px 25px 10px 25px;
  967. background: #E3EFFF;
  968. border-radius: 10px 10px 0px 0px;
  969. p{
  970. font-size: 18px;
  971. font-family: Microsoft YaHei;
  972. font-weight: bold;
  973. color: #3B7AD1;
  974. }
  975. }
  976. .reportMain{
  977. height: 79vh !important;
  978. overflow-y: auto;
  979. .reportMain_msg{
  980. display: flex;
  981. padding: 25px 0 25px 27px;
  982. border-bottom: 1px solid #D6DBEA;
  983. .rightDiv{
  984. width: 4px;
  985. height: 40px;
  986. background: #4883D4;
  987. border-radius: 2px;
  988. position: relative;
  989. top: 2px;
  990. }
  991. .rightTitMsg{
  992. margin-left: 15px;
  993. p{
  994. width: 300px;
  995. overflow: hidden;
  996. text-overflow: ellipsis;
  997. white-space: nowrap;
  998. font-size: 16px;
  999. font-family: Microsoft YaHei;
  1000. font-weight: bold;
  1001. color: #333333;
  1002. }
  1003. span{
  1004. font-size: 14px;
  1005. font-family: Microsoft YaHei;
  1006. font-weight: 400;
  1007. color: #8991B0;
  1008. }
  1009. }
  1010. }
  1011. }
  1012. }
  1013. }
  1014. }
  1015. </style>