gatewaynMobeil.vue 44 KB

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