gatewaynNewPage.vue 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  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.releaseDept}}</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. // 1633346265041498113
  350. let userMes = JSON.parse(window.sessionStorage.getItem('user'))
  351. apiGetevaluationCircularDisplaylist(userMes.deptId).then(datas =>{
  352. if (datas && datas.data) {
  353. that.noticeData = datas.data
  354. }
  355. })
  356. },
  357. changeYearFn(val) {
  358. this.changeYear = val
  359. this.cupDataYearArr = {
  360. section: [],
  361. integration: []
  362. }
  363. this.cupDataSeasonArr = {
  364. section: [],
  365. integration: []
  366. }
  367. this.getGateWayData()
  368. },
  369. arrowLeft() {
  370. if (this.seasonStr === '第一季度') {
  371. this.seasonStr = '第三季度'
  372. } else if (this.seasonStr === '第二季度') {
  373. this.seasonStr = '第一季度'
  374. } else if (this.seasonStr === '第三季度') {
  375. this.seasonStr = '第二季度'
  376. }
  377. this.cupDataYearArr = {
  378. section: [],
  379. integration: []
  380. }
  381. this.cupDataSeasonArr = {
  382. section: [],
  383. integration: []
  384. }
  385. this.getGateWayData()
  386. },
  387. arrowRight() {
  388. if (this.seasonStr === '第一季度') {
  389. this.seasonStr = '第二季度'
  390. } else if (this.seasonStr === '第二季度') {
  391. this.seasonStr = '第三季度'
  392. } else if (this.seasonStr === '第三季度') {
  393. this.seasonStr = '第一季度'
  394. }
  395. this.cupDataYearArr = {
  396. section: [],
  397. integration: []
  398. }
  399. this.cupDataSeasonArr = {
  400. section: [],
  401. integration: []
  402. }
  403. this.getGateWayData()
  404. },
  405. // 获取首页数据
  406. getGateWayData() {
  407. let that = this
  408. let params = {
  409. binSection: '',
  410. year: that.changeYear,
  411. season: that.seasonStr === '第一季度' ? '1' : that.seasonStr === '第二季度' ? '2' : '3'
  412. }
  413. apiGetevaluationportallist(params).then(datas =>{
  414. if (datas && datas.data) {
  415. let secArr = ['HD', 'SD', 'XNYFG', 'GJYE', 'MDYTH']
  416. secArr.forEach(item =>{
  417. for(let i in datas.data.year) {
  418. let it = datas.data.year[i]
  419. if (item === i && i !== 'MDYTH') {
  420. let gradeA = 0
  421. let gradeB = 0
  422. let gradeC = 0
  423. let gradeD = 0
  424. let tableData = []
  425. it.forEach((iv, index) =>{
  426. if (index < 3) {
  427. let obj = iv
  428. if (index === 0) {
  429. obj.img = cup1
  430. } else if (index === 1) {
  431. obj.img = cup2
  432. } else if (index === 2) {
  433. obj.img = cup3
  434. }
  435. tableData.push(iv)
  436. }
  437. if (iv.grade === 'A') {
  438. gradeA ++
  439. } else if (iv.grade === 'B') {
  440. gradeB ++
  441. } else if (iv.grade === 'C') {
  442. gradeC ++
  443. } else if (iv.grade === 'D') {
  444. gradeD ++
  445. }
  446. })
  447. let obj = {
  448. name: item === 'HD' ? '火电板块' : item === 'SD' ? '水电板块' :item === 'XNYFG' ? '新能源' : '海外业务',
  449. nameEn: item,
  450. echartsData: {
  451. allNum: it.length,
  452. echarts: [
  453. { value: gradeA, name: 'A类' },
  454. { value: gradeB, name: 'B类' },
  455. { value: gradeC, name: 'C类' },
  456. { value: gradeD, name: 'D类' }
  457. ]
  458. },
  459. tableDatas: tableData,
  460. allTableData: it,
  461. section: [],
  462. sectionAll: []
  463. }
  464. that.cupDataYearArr.section.push(obj)
  465. } else if(item === i && i === 'MDYTH') {
  466. it.forEach((iv, index) =>{
  467. if (index<2) {
  468. if (index === 0) {
  469. iv.img = cup1
  470. } else if (index === 1) {
  471. iv.img = cup2
  472. }
  473. that.cupDataYearArr.integration.push(iv)
  474. }
  475. })
  476. }
  477. }
  478. })
  479. that.cupDataYearArr.section.forEach(item =>{
  480. for(let i in datas.data.season) {
  481. let it = datas.data.season[i]
  482. if (item.nameEn === i) {
  483. it.forEach((iv, index) =>{
  484. if (index<3) {
  485. item.section.push(iv)
  486. }
  487. })
  488. item.sectionAll = it
  489. }
  490. }
  491. })
  492. if (datas.data.season['MDYTH']) {
  493. datas.data.season['MDYTH'].forEach((item, index) =>{
  494. if (index<2) {
  495. that.cupDataSeasonArr.integration.push(item)
  496. }
  497. })
  498. }
  499. console.log(that.cupDataYearArr)
  500. console.log(that.cupDataSeasonArr)
  501. this.$nextTick(() =>{
  502. that.getEcharts(that.cupDataYearArr.section)
  503. })
  504. }
  505. })
  506. },
  507. getEcharts(datas) {
  508. datas.forEach((item, index) =>{
  509. this.getEchartsData(item.echartsData.echarts, 'pieChart'+index)
  510. })
  511. },
  512. getEchartsData(data, name) {
  513. let option = {
  514. color: ['#F65177', '#50C14E', '#5093E1', '#9DA5BE'],
  515. tooltip: {
  516. trigger: 'item'
  517. },
  518. series: [
  519. {
  520. name: '年度榜',
  521. type: 'pie',
  522. radius: ['50%', '70%'],
  523. avoidLabelOverlap: false,
  524. label: {
  525. show: false,
  526. position: 'center'
  527. },
  528. // emphasis: {
  529. // label: {
  530. // show: true,
  531. // fontSize: 10,
  532. // fontWeight: 'bold'
  533. // }
  534. // },
  535. labelLine: {
  536. show: false
  537. },
  538. data: data
  539. }
  540. ]
  541. };
  542. // 基于准备好的dom,初始化echarts实例
  543. let dom = document.getElementById(name);
  544. dom.removeAttribute("_echarts_instance_")
  545. let myChart = this.$echarts.init(dom);
  546. myChart.setOption(option);
  547. window.addEventListener("resize", function () {
  548. myChart.resize()
  549. })
  550. },
  551. yearSeeMore(name, type) {
  552. if (type === 'year') {
  553. this.$refs.yearFrom.init(name, this.changeYear, this.seasonStr)
  554. } else {
  555. this.$refs.seasonFrom.init(name, this.changeYear, this.seasonStr)
  556. }
  557. }
  558. }
  559. }
  560. </script>
  561. <style lang="less">
  562. .gatewayNewPage{
  563. height: 93vh;
  564. width: 87vw;
  565. background: #EDEFF5;
  566. padding: 15px 20px;
  567. .quarter{
  568. background: #fff;
  569. border-radius: 10px;
  570. // padding-right: 15px;
  571. .searchFn{
  572. height: 50px;
  573. display: flex;
  574. border-bottom: 1px solid #E1E3EA;
  575. .el-date-editor--year{
  576. width: 130px;
  577. margin: 10px 0 0 20px;
  578. .el-input__wrapper{
  579. background: #2C7EDC;
  580. height: 30px;
  581. .el-input__prefix, .el-input__inner, .el-input__suffix{
  582. color: #fff;
  583. }
  584. }
  585. }
  586. ::-webkit-input-placeholder{
  587. color: #fff;
  588. }
  589. .quarterChoose{
  590. position: relative;
  591. left: 33%;
  592. top: 15px;
  593. width: 225px;
  594. display: flex;
  595. justify-content: space-around;
  596. .choose{
  597. position: relative;
  598. top: -1px;
  599. }
  600. .el-icon{
  601. cursor: pointer;
  602. }
  603. }
  604. }
  605. .tableHeader{
  606. display: flex;
  607. border-bottom: 1px solid #E1E3EA;
  608. height: 75px;
  609. .headerComTit{
  610. height: 40px;
  611. border-bottom: 1px solid #E1E3EA;
  612. span{
  613. font-size: 14px;
  614. color: #3B7AD1;
  615. }
  616. }
  617. .headerNameTit{
  618. display: flex;
  619. justify-content: space-between;
  620. padding: 8px 20px;
  621. font-size: 14px;
  622. color: #414141;
  623. }
  624. .headerOne{
  625. width: 35px;
  626. background: #184FB4;
  627. }
  628. .headerTwo{
  629. width: 150px;
  630. border-right: 1px solid #E1E3EA;
  631. .headerTwoTit{
  632. position: relative;
  633. top: 10px;
  634. left: 40px;
  635. }
  636. }
  637. .headerThree{
  638. width: 350px;
  639. border-right: 1px solid #E1E3EA;
  640. .headerThreeTit{
  641. position: relative;
  642. top: 10px;
  643. left: 150px;
  644. }
  645. }
  646. .headerFour{
  647. width: calc(100% - 535px);
  648. .headerFourTit{
  649. position: relative;
  650. top: 10px;
  651. left: 40%;
  652. }
  653. }
  654. }
  655. .tableMain{
  656. display: flex;
  657. border-bottom: 1px solid #E1E3EA;
  658. height: 150px;
  659. .mainOne{
  660. width: 35px;
  661. background: #184FB4;
  662. span{
  663. display: inline-block;
  664. width: 20px;
  665. margin: 0 auto;
  666. line-height: 20px;
  667. font-size: 16px;
  668. font-weight: bold;
  669. color: #fff;
  670. position: relative;
  671. top: 30px;
  672. left: 10px;
  673. }
  674. }
  675. .mainTwo{
  676. width: 149px;
  677. border-right: 1px solid #E1E3EA;
  678. position: relative;
  679. .echartsNum{
  680. font-size: 16px;
  681. font-weight: 600;
  682. position: absolute;
  683. top: 42px;
  684. left: 65px;
  685. }
  686. .mainTwoComColor{
  687. display: inline-block;
  688. width: 6px;
  689. height: 6px;
  690. border-radius: 20px;
  691. margin-left: 15px;
  692. position: relative;
  693. top: -1px;
  694. }
  695. .mainTwoComTit{
  696. font-size: 14px;
  697. display: inline-block;
  698. margin-left: 5px;
  699. }
  700. }
  701. .mainThree{
  702. width: 350px;
  703. padding-top: 13px;
  704. border-right: 1px solid #E1E3EA;
  705. position: relative;
  706. .mainMore{
  707. width: 0;
  708. height: 0;
  709. border-top: 10px solid transparent;
  710. border-left: 10px solid #B6BBCB;
  711. border-right: 10px solid transparent;
  712. border-bottom: 10px solid transparent;
  713. position: absolute;
  714. top: -9px;
  715. right: -9px;
  716. transform: rotate(-45deg);
  717. cursor: pointer;
  718. }
  719. .mainThreeMsg{
  720. display: flex;
  721. margin: 0 10px;
  722. width: 100%;
  723. height: 33px;
  724. background: #F6F7FA;
  725. margin-bottom: 8px;
  726. padding-left: 10px;
  727. padding-top: 2px;
  728. border-radius: 5px;
  729. img{
  730. width: 20px;
  731. height: 20px;
  732. position: relative;
  733. top: 5px;
  734. margin-right: 10px;
  735. }
  736. .msgProgress{
  737. margin-top: 5px;
  738. display: flex;
  739. width: 90%;
  740. span{
  741. font-size: 14px;
  742. font-family: Microsoft YaHei;
  743. }
  744. span:nth-child(1){
  745. display: inline-block;
  746. width: 70%;
  747. font-weight: 400;
  748. color: #666;
  749. margin-right: 10px;
  750. }
  751. span:nth-child(2){
  752. font-weight: 600;
  753. margin-right: 30px;
  754. color: #F65177;
  755. }
  756. span:nth-child(3){
  757. font-weight: 600;
  758. color: #666;
  759. }
  760. }
  761. }
  762. }
  763. .mainFour{
  764. width: calc(100% - 536px);
  765. padding-top: 13px;
  766. position: relative;
  767. .mainMore{
  768. width: 0;
  769. height: 0;
  770. border-top: 10px solid transparent;
  771. border-left: 10px solid #B6BBCB;
  772. border-right: 10px solid transparent;
  773. border-bottom: 10px solid transparent;
  774. position: absolute;
  775. top: -9px;
  776. right: -9px;
  777. transform: rotate(-45deg);
  778. cursor: pointer;
  779. }
  780. .mainFourMsg{
  781. display: flex;
  782. margin: 0 10px;
  783. width: 100%;
  784. height: 33px;
  785. background: #F6F7FA;
  786. margin-bottom: 8px;
  787. padding-left: 10px;
  788. padding-top: 2px;
  789. border-radius: 5px;
  790. .mainFourImg{
  791. display: flex;
  792. justify-content: space-around;
  793. width: 65%;
  794. img{
  795. width: 20px;
  796. height: 20px;
  797. position: relative;
  798. top: 5px;
  799. margin-right: 33px;
  800. margin-left: 22px;
  801. }
  802. }
  803. span{
  804. font-size: 14px;
  805. font-family: Microsoft YaHei;
  806. position: relative;
  807. top: 6px;
  808. }
  809. span:nth-child(1){
  810. display: inline-block;
  811. width: 26%;
  812. font-weight: 400;
  813. color: #666;
  814. margin-right: 17px;
  815. }
  816. span:nth-child(2){
  817. font-weight: 600;
  818. margin-right: 15px;
  819. color: #666;
  820. }
  821. }
  822. }
  823. }
  824. .tableFooter{
  825. display: flex;
  826. height: 100px;
  827. .footerOne{
  828. width: 35px;
  829. background: #7D8297;
  830. border-radius: 0 0 0 10px;
  831. span{
  832. display: inline-block;
  833. width: 20px;
  834. margin: 0 auto;
  835. line-height: 16px;
  836. font-size: 16px;
  837. font-weight: bold;
  838. color: #fff;
  839. position: relative;
  840. top: 10px;
  841. left: 10px;
  842. }
  843. }
  844. .footerTwo{
  845. width: 500px;
  846. padding-top: 13px;
  847. border-right: 1px solid #E1E3EA;
  848. .footerTwoMsg{
  849. display: flex;
  850. margin: 0 10px;
  851. width: 100%;
  852. height: 33px;
  853. background: #F6F7FA;
  854. margin-bottom: 8px;
  855. padding-left: 10px;
  856. padding-top: 2px;
  857. border-radius: 5px;
  858. img{
  859. width: 20px;
  860. height: 20px;
  861. position: relative;
  862. top: 5px;
  863. margin-right: 10px;
  864. }
  865. .footerProgress{
  866. margin-top: 5px;
  867. display: flex;
  868. width: 91%;
  869. span{
  870. font-size: 14px;
  871. font-family: Microsoft YaHei;
  872. }
  873. .footerOneSpan{
  874. display: inline-block;
  875. width: 35%;
  876. font-weight: 400;
  877. color: #666;
  878. margin-right: 10px;
  879. }
  880. .el-progress{
  881. width: calc(50% - 15px);
  882. padding-right: 15px;
  883. position: relative;
  884. top: -3px;
  885. .el-progress__text{
  886. display: none;
  887. }
  888. }
  889. .footerTwoSpan{
  890. font-weight: 600;
  891. margin-right: 30px;
  892. color: #F65177;
  893. }
  894. .footerThreeSpan{
  895. font-weight: 600;
  896. color: #666;
  897. }
  898. }
  899. }
  900. }
  901. .footerThree{
  902. width: calc(100% - 536px);
  903. padding-top: 13px;position: relative;
  904. .mainMore{
  905. width: 0;
  906. height: 0;
  907. border-top: 10px solid transparent;
  908. border-left: 10px solid #B6BBCB;
  909. border-right: 10px solid transparent;
  910. border-bottom: 10px solid transparent;
  911. position: absolute;
  912. top: -9px;
  913. right: -9px;
  914. transform: rotate(-45deg);
  915. cursor: pointer;
  916. }
  917. .footerThreeMsg{
  918. display: flex;
  919. // margin: 0 10px;
  920. margin-left: 10px;
  921. margin-bottom: 8px;
  922. span{
  923. font-size: 14px;
  924. font-weight: 400;
  925. color: #666;
  926. font-family: Microsoft YaHei;
  927. }
  928. .footerImg{
  929. display: flex;
  930. border-radius: 5px;
  931. background: #F6F7FA;
  932. span{
  933. display: inline-block;
  934. width: 100%;
  935. height: 30px;
  936. padding: 5px 11px 0;
  937. position: relative;
  938. top: 2px;
  939. }
  940. img{
  941. width: 20px;
  942. height: 20px;
  943. position: relative;
  944. top: 5px;
  945. margin-right: 10px;
  946. position: relative;
  947. top: 7px;
  948. }
  949. }
  950. }
  951. }
  952. }
  953. }
  954. .report{
  955. margin-left: 20px;
  956. .gateway_report{
  957. width: 355px;
  958. background: #fff;
  959. // margin-right: 30px;
  960. margin-right: calc(100% - 355px);
  961. border-radius: 10px;
  962. padding-bottom: 10px;
  963. border: 1px solid #D6DBEA;
  964. .reportTit{
  965. padding: 21px 25px 10px 25px;
  966. background: #E3EFFF;
  967. border-radius: 10px 10px 0px 0px;
  968. p{
  969. font-size: 18px;
  970. font-family: Microsoft YaHei;
  971. font-weight: bold;
  972. color: #3B7AD1;
  973. }
  974. }
  975. .reportMain{
  976. height: 79vh !important;
  977. overflow-y: auto;
  978. .reportMain_msg{
  979. display: flex;
  980. padding: 25px 0 25px 27px;
  981. border-bottom: 1px solid #D6DBEA;
  982. .rightDiv{
  983. width: 4px;
  984. height: 40px;
  985. background: #4883D4;
  986. border-radius: 2px;
  987. position: relative;
  988. top: 2px;
  989. }
  990. .rightTitMsg{
  991. margin-left: 15px;
  992. p{
  993. width: 300px;
  994. overflow: hidden;
  995. text-overflow: ellipsis;
  996. white-space: nowrap;
  997. font-size: 16px;
  998. font-family: Microsoft YaHei;
  999. font-weight: bold;
  1000. color: #333333;
  1001. }
  1002. span{
  1003. font-size: 14px;
  1004. font-family: Microsoft YaHei;
  1005. font-weight: 400;
  1006. color: #8991B0;
  1007. }
  1008. }
  1009. }
  1010. }
  1011. }
  1012. }
  1013. }
  1014. </style>