gatewaynNewPage.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  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="value3" type="year" placeholder="选择年份" />
  7. <div class="quarterChoose">
  8. <el-icon :size="20" color="#3B7AD1"><ArrowLeft /></el-icon>
  9. <span class="choose">第一季度</span>
  10. <el-icon :size="20" color="#3B7AD1"><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 in 4" :key="it">
  56. <div class="mainOne">
  57. <span>火电板块</span>
  58. </div>
  59. <div class="mainTwo">
  60. <div class="echartsNum">18</div>
  61. <div id="pieChart" 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"></div>
  83. <div style="display: flex" v-for="(item, index) in cupMsgArr" :key="index">
  84. <div class="mainThreeMsg">
  85. <img :src="item.img" alt="">
  86. <div class="msgProgress">
  87. <span>{{item.name}}</span>
  88. <span>{{item.level}}</span>
  89. <span>{{item.points}}</span>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="mainFour">
  95. <div class="mainMore"></div>
  96. <div style="display: flex" v-for="(item, index) in chartsMsgArr" :key="index">
  97. <div class="mainFourMsg">
  98. <span>{{item.name}}</span>
  99. <span>{{item.points}}</span>
  100. <div class="mainFourImg">
  101. <img :src="item.jiaA === 0 ? cenImg : item.jiaA === 1 ? topImg : botImg" alt="">
  102. <img :src="item.jiaB === 0 ? cenImg : item.jiaB === 1 ? topImg : botImg" alt="">
  103. <img :src="item.guanA === 0 ? cenImg : item.guanA === 1 ? topImg : botImg" alt="">
  104. <img :src="item.guanB === 0 ? cenImg : item.guanB === 1 ? topImg : botImg" alt="">
  105. <img :src="item.gaoA === 0 ? cenImg : item.gaoA === 1 ? topImg : botImg" alt="">
  106. <img :src="item.gaoB === 0 ? cenImg : item.gaoB === 1 ? topImg : botImg" alt="">
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="tableFooter">
  113. <div class="footerOne">
  114. <span>煤电一体化</span>
  115. </div>
  116. <div class="footerTwo">
  117. <div style="display: flex" v-for="(item, index) in cupFootMsgArr" :key="index">
  118. <div class="footerTwoMsg">
  119. <img :src="item.img" alt="">
  120. <div class="footerProgress">
  121. <span class="footerOneSpan">{{item.name}}</span>
  122. <el-progress percentage="80" :stroke-width="5" />
  123. <span class="footerTwoSpan">{{item.level}}</span>
  124. <span class="footerThreeSpan">{{item.points}}</span>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. <div class="footerThree">
  130. <div class="mainMore"></div>
  131. <div style="display: flex" v-for="(item, index) in cupFootMsgArr" :key="index">
  132. <div class="footerThreeMsg" v-for="it in matterMsg" :key="it">
  133. <div class="footerImg">
  134. <span>{{it}}</span>
  135. <img :src="item.jiaA === 0 ? cenImg : item.jiaA === 1 ? topImg : botImg" alt="">
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </el-col>
  142. <el-col :span="5" class="report">
  143. <div class="gateway_report">
  144. <div class="reportTit">
  145. <p>通告栏</p>
  146. </div>
  147. <div class="reportMain">
  148. <div class="reportMain_msg" v-for="it in 10" :key="it">
  149. <div class="rightDiv"></div>
  150. <div class="rightTitMsg">
  151. <p>关于2022年度各单位年度考评得分</p>
  152. <div style="margin-top: 5px">
  153. <span style="margin-right: 10px">2023-01-15</span>
  154. <span>组织人事部</span>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. </el-col>
  161. </el-row>
  162. </div>
  163. </template>
  164. <script>
  165. import cup1 from '../assets/getwayImg/cup1.png'
  166. import cup2 from '../assets/getwayImg/cup2.png'
  167. import cup3 from '../assets/getwayImg/cup3.png'
  168. import topImg from '../assets/getwayImg/top.png'
  169. import botImg from '../assets/getwayImg/bot.png'
  170. import cenImg from '../assets/getwayImg/cen.png'
  171. export default {
  172. data() {
  173. return {
  174. cupMsgArr: [],
  175. cupFootMsgArr: [],
  176. chartsMsgArr: [],
  177. matterMsg: ['加分事项', '扣分事项', '管理加分', '管理扣分', '高于基准', '低于基准'],
  178. topImg: topImg,
  179. botImg: botImg,
  180. cenImg: cenImg,
  181. }
  182. },
  183. created() {
  184. this.cupMsgArr = [
  185. {
  186. level: 'A',
  187. points: '134',
  188. img: cup1,
  189. name: '大港电厂(广安津能)'
  190. },
  191. {
  192. level: 'A',
  193. points: '134',
  194. img: cup2,
  195. name: '怀安热电'
  196. },
  197. {
  198. level: 'A',
  199. points: '124',
  200. img: cup3,
  201. name: '滨海电力'
  202. }
  203. ]
  204. this.cupFootMsgArr = [
  205. {
  206. level: 'A',
  207. points: '134',
  208. img: cup1,
  209. name: '大港电厂(广安津能)'
  210. },
  211. {
  212. level: 'A',
  213. points: '134',
  214. img: cup2,
  215. name: '怀安热电'
  216. }
  217. ]
  218. this.chartsMsgArr = [
  219. {
  220. name: '中国国电电力上海庙公司',
  221. points: '134',
  222. jiaA: 1,
  223. jiaB: 2,
  224. guanA: 1,
  225. guanB: 0,
  226. gaoA: 1,
  227. gaoB: 0
  228. },
  229. {
  230. name: '中国国电电力上海庙公司',
  231. points: '134',
  232. jiaA: 1,
  233. jiaB: 2,
  234. guanA: 1,
  235. guanB: 0,
  236. gaoA: 1,
  237. gaoB: 0
  238. },
  239. {
  240. name: '中国国电电力上海庙公司',
  241. points: '134',
  242. jiaA: 1,
  243. jiaB: 2,
  244. guanA: 1,
  245. guanB: 0,
  246. gaoA: 1,
  247. gaoB: 0
  248. }
  249. ]
  250. },
  251. mounted() {
  252. this.getEchartsData()
  253. },
  254. methods: {
  255. getEchartsData() {
  256. let option = {
  257. color: ['#F65177', '#50C14E', '#5093E1', '#9DA5BE'],
  258. tooltip: {
  259. trigger: 'item'
  260. },
  261. series: [
  262. {
  263. name: 'Access From',
  264. type: 'pie',
  265. radius: ['50%', '70%'],
  266. avoidLabelOverlap: false,
  267. label: {
  268. show: false,
  269. position: 'center'
  270. },
  271. // emphasis: {
  272. // label: {
  273. // show: true,
  274. // fontSize: 10,
  275. // fontWeight: 'bold'
  276. // }
  277. // },
  278. labelLine: {
  279. show: false
  280. },
  281. data: [
  282. { value: 1048, name: 'Search Engine' },
  283. { value: 735, name: 'Direct' },
  284. { value: 580, name: 'Email' },
  285. { value: 484, name: 'Union Ads' }
  286. ]
  287. }
  288. ]
  289. };
  290. // 基于准备好的dom,初始化echarts实例
  291. let dom = document.getElementById('pieChart');
  292. dom.removeAttribute("_echarts_instance_")
  293. let myChart = this.$echarts.init(dom);
  294. myChart.setOption(option);
  295. window.addEventListener("resize", function () {
  296. myChart.resize()
  297. })
  298. },
  299. }
  300. }
  301. </script>
  302. <style lang="less">
  303. .gatewayNewPage{
  304. height: 93vh;
  305. width: 87vw;
  306. background: #EDEFF5;
  307. padding: 15px 20px;
  308. .quarter{
  309. background: #fff;
  310. border-radius: 10px;
  311. // padding-right: 15px;
  312. .searchFn{
  313. height: 50px;
  314. display: flex;
  315. border-bottom: 1px solid #E1E3EA;
  316. .el-date-editor--year{
  317. width: 130px;
  318. margin: 10px 0 0 20px;
  319. .el-input__wrapper{
  320. background: #2C7EDC;
  321. height: 30px;
  322. .el-input__prefix{
  323. color: #fff;
  324. }
  325. }
  326. }
  327. ::-webkit-input-placeholder{
  328. color: #fff;
  329. }
  330. .quarterChoose{
  331. position: relative;
  332. left: 33%;
  333. top: 15px;
  334. width: 225px;
  335. display: flex;
  336. justify-content: space-around;
  337. .choose{
  338. position: relative;
  339. top: -1px;
  340. }
  341. .el-icon{
  342. cursor: pointer;
  343. }
  344. }
  345. }
  346. .tableHeader{
  347. display: flex;
  348. border-bottom: 1px solid #E1E3EA;
  349. height: 75px;
  350. .headerComTit{
  351. height: 40px;
  352. border-bottom: 1px solid #E1E3EA;
  353. span{
  354. font-size: 14px;
  355. color: #3B7AD1;
  356. }
  357. }
  358. .headerNameTit{
  359. display: flex;
  360. justify-content: space-between;
  361. padding: 8px 20px;
  362. font-size: 14px;
  363. color: #414141;
  364. }
  365. .headerOne{
  366. width: 35px;
  367. background: #184FB4;
  368. }
  369. .headerTwo{
  370. width: 150px;
  371. border-right: 1px solid #E1E3EA;
  372. .headerTwoTit{
  373. position: relative;
  374. top: 10px;
  375. left: 40px;
  376. }
  377. }
  378. .headerThree{
  379. width: 350px;
  380. border-right: 1px solid #E1E3EA;
  381. .headerThreeTit{
  382. position: relative;
  383. top: 10px;
  384. left: 150px;
  385. }
  386. }
  387. .headerFour{
  388. width: calc(100% - 535px);
  389. .headerFourTit{
  390. position: relative;
  391. top: 10px;
  392. left: 40%;
  393. }
  394. }
  395. }
  396. .tableMain{
  397. display: flex;
  398. border-bottom: 1px solid #E1E3EA;
  399. height: 150px;
  400. .mainOne{
  401. width: 35px;
  402. background: #184FB4;
  403. span{
  404. display: inline-block;
  405. width: 20px;
  406. margin: 0 auto;
  407. line-height: 20px;
  408. font-size: 16px;
  409. font-weight: bold;
  410. color: #fff;
  411. position: relative;
  412. top: 30px;
  413. left: 10px;
  414. }
  415. }
  416. .mainTwo{
  417. width: 149px;
  418. border-right: 1px solid #E1E3EA;
  419. position: relative;
  420. .echartsNum{
  421. font-size: 16px;
  422. font-weight: 600;
  423. position: absolute;
  424. top: 42px;
  425. left: 65px;
  426. }
  427. .mainTwoComColor{
  428. display: inline-block;
  429. width: 6px;
  430. height: 6px;
  431. border-radius: 20px;
  432. margin-left: 15px;
  433. position: relative;
  434. top: -1px;
  435. }
  436. .mainTwoComTit{
  437. font-size: 14px;
  438. display: inline-block;
  439. margin-left: 5px;
  440. }
  441. }
  442. .mainThree{
  443. width: 350px;
  444. padding-top: 13px;
  445. border-right: 1px solid #E1E3EA;
  446. position: relative;
  447. .mainMore{
  448. width: 0;
  449. height: 0;
  450. border-top: 10px solid transparent;
  451. border-left: 10px solid #B6BBCB;
  452. border-right: 10px solid transparent;
  453. border-bottom: 10px solid transparent;
  454. position: absolute;
  455. top: -9px;
  456. right: -9px;
  457. transform: rotate(-45deg);
  458. cursor: pointer;
  459. }
  460. .mainThreeMsg{
  461. display: flex;
  462. margin: 0 10px;
  463. width: 100%;
  464. height: 33px;
  465. background: #F6F7FA;
  466. margin-bottom: 8px;
  467. padding-left: 10px;
  468. padding-top: 2px;
  469. border-radius: 5px;
  470. img{
  471. width: 20px;
  472. height: 20px;
  473. position: relative;
  474. top: 5px;
  475. margin-right: 10px;
  476. }
  477. .msgProgress{
  478. margin-top: 5px;
  479. display: flex;
  480. width: 90%;
  481. span{
  482. font-size: 14px;
  483. font-family: Microsoft YaHei;
  484. }
  485. span:nth-child(1){
  486. display: inline-block;
  487. width: 70%;
  488. font-weight: 400;
  489. color: #666;
  490. margin-right: 10px;
  491. }
  492. span:nth-child(2){
  493. font-weight: 600;
  494. margin-right: 30px;
  495. color: #F65177;
  496. }
  497. span:nth-child(3){
  498. font-weight: 600;
  499. color: #666;
  500. }
  501. }
  502. }
  503. }
  504. .mainFour{
  505. width: calc(100% - 536px);
  506. padding-top: 13px;
  507. position: relative;
  508. .mainMore{
  509. width: 0;
  510. height: 0;
  511. border-top: 10px solid transparent;
  512. border-left: 10px solid #B6BBCB;
  513. border-right: 10px solid transparent;
  514. border-bottom: 10px solid transparent;
  515. position: absolute;
  516. top: -9px;
  517. right: -9px;
  518. transform: rotate(-45deg);
  519. cursor: pointer;
  520. }
  521. .mainFourMsg{
  522. display: flex;
  523. margin: 0 10px;
  524. width: 100%;
  525. height: 33px;
  526. background: #F6F7FA;
  527. margin-bottom: 8px;
  528. padding-left: 10px;
  529. padding-top: 2px;
  530. border-radius: 5px;
  531. .mainFourImg{
  532. display: flex;
  533. justify-content: space-around;
  534. width: 65%;
  535. img{
  536. width: 20px;
  537. height: 20px;
  538. position: relative;
  539. top: 5px;
  540. margin-right: 33px;
  541. margin-left: 22px;
  542. }
  543. }
  544. span{
  545. font-size: 14px;
  546. font-family: Microsoft YaHei;
  547. position: relative;
  548. top: 6px;
  549. }
  550. span:nth-child(1){
  551. display: inline-block;
  552. width: 26%;
  553. font-weight: 400;
  554. color: #666;
  555. margin-right: 17px;
  556. }
  557. span:nth-child(2){
  558. font-weight: 600;
  559. margin-right: 15px;
  560. color: #666;
  561. }
  562. }
  563. }
  564. }
  565. .tableFooter{
  566. display: flex;
  567. height: 100px;
  568. .footerOne{
  569. width: 35px;
  570. background: #7D8297;
  571. border-radius: 0 0 0 10px;
  572. span{
  573. display: inline-block;
  574. width: 20px;
  575. margin: 0 auto;
  576. line-height: 16px;
  577. font-size: 16px;
  578. font-weight: bold;
  579. color: #fff;
  580. position: relative;
  581. top: 10px;
  582. left: 10px;
  583. }
  584. }
  585. .footerTwo{
  586. width: 500px;
  587. padding-top: 13px;
  588. border-right: 1px solid #E1E3EA;
  589. .footerTwoMsg{
  590. display: flex;
  591. margin: 0 10px;
  592. width: 100%;
  593. height: 33px;
  594. background: #F6F7FA;
  595. margin-bottom: 8px;
  596. padding-left: 10px;
  597. padding-top: 2px;
  598. border-radius: 5px;
  599. img{
  600. width: 20px;
  601. height: 20px;
  602. position: relative;
  603. top: 5px;
  604. margin-right: 10px;
  605. }
  606. .footerProgress{
  607. margin-top: 5px;
  608. display: flex;
  609. width: 91%;
  610. span{
  611. font-size: 14px;
  612. font-family: Microsoft YaHei;
  613. }
  614. .footerOneSpan{
  615. display: inline-block;
  616. width: 35%;
  617. font-weight: 400;
  618. color: #666;
  619. margin-right: 10px;
  620. }
  621. .el-progress{
  622. width: calc(50% - 15px);
  623. padding-right: 15px;
  624. position: relative;
  625. top: -3px;
  626. .el-progress__text{
  627. display: none;
  628. }
  629. }
  630. .footerTwoSpan{
  631. font-weight: 600;
  632. margin-right: 30px;
  633. color: #F65177;
  634. }
  635. .footerThreeSpan{
  636. font-weight: 600;
  637. color: #666;
  638. }
  639. }
  640. }
  641. }
  642. .footerThree{
  643. width: calc(100% - 536px);
  644. padding-top: 13px;position: relative;
  645. .mainMore{
  646. width: 0;
  647. height: 0;
  648. border-top: 10px solid transparent;
  649. border-left: 10px solid #B6BBCB;
  650. border-right: 10px solid transparent;
  651. border-bottom: 10px solid transparent;
  652. position: absolute;
  653. top: -9px;
  654. right: -9px;
  655. transform: rotate(-45deg);
  656. cursor: pointer;
  657. }
  658. .footerThreeMsg{
  659. display: flex;
  660. // margin: 0 10px;
  661. margin-left: 10px;
  662. margin-bottom: 8px;
  663. span{
  664. font-size: 14px;
  665. font-weight: 400;
  666. color: #666;
  667. font-family: Microsoft YaHei;
  668. }
  669. .footerImg{
  670. display: flex;
  671. border-radius: 5px;
  672. background: #F6F7FA;
  673. span{
  674. display: inline-block;
  675. width: 100%;
  676. height: 30px;
  677. padding: 5px 11px 0;
  678. position: relative;
  679. top: 2px;
  680. }
  681. img{
  682. width: 20px;
  683. height: 20px;
  684. position: relative;
  685. top: 5px;
  686. margin-right: 10px;
  687. position: relative;
  688. top: 7px;
  689. }
  690. }
  691. }
  692. }
  693. }
  694. }
  695. .report{
  696. margin-left: 20px;
  697. .gateway_report{
  698. width: 355px;
  699. background: #fff;
  700. // margin-right: 30px;
  701. margin-right: calc(100% - 355px);
  702. border-radius: 10px;
  703. padding-bottom: 10px;
  704. border: 1px solid #D6DBEA;
  705. .reportTit{
  706. padding: 21px 25px 10px 25px;
  707. background: #E3EFFF;
  708. border-radius: 10px 10px 0px 0px;
  709. p{
  710. font-size: 18px;
  711. font-family: Microsoft YaHei;
  712. font-weight: bold;
  713. color: #3B7AD1;
  714. }
  715. }
  716. .reportMain{
  717. height: 79vh !important;
  718. overflow-y: auto;
  719. .reportMain_msg{
  720. display: flex;
  721. padding: 25px 0 25px 27px;
  722. border-bottom: 1px solid #D6DBEA;
  723. .rightDiv{
  724. width: 4px;
  725. height: 40px;
  726. background: #4883D4;
  727. border-radius: 2px;
  728. position: relative;
  729. top: 2px;
  730. }
  731. .rightTitMsg{
  732. margin-left: 15px;
  733. p{
  734. width: 300px;
  735. overflow: hidden;
  736. text-overflow: ellipsis;
  737. white-space: nowrap;
  738. font-size: 16px;
  739. font-family: Microsoft YaHei;
  740. font-weight: bold;
  741. color: #333333;
  742. }
  743. span{
  744. font-size: 14px;
  745. font-family: Microsoft YaHei;
  746. font-weight: 400;
  747. color: #8991B0;
  748. }
  749. }
  750. }
  751. }
  752. }
  753. }
  754. }
  755. </style>