index.vue 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205
  1. <template>
  2. <div class="homePage" :class="!swichTheme ? 'themeDarkHome' : 'themeLightHome'" :style="pageHeight">
  3. <div class="homeMain">
  4. <div class="leftMain">
  5. <div style="height:55px"></div>
  6. <!-- 天气预测 -->
  7. <div class="weather">
  8. <div class="comHeader">
  9. <div class="headerLeft">
  10. <span class="gray"></span>
  11. <span class="blue"></span>
  12. </div>
  13. <div class="headerRight">
  14. <span class="headerName">天气预测</span>
  15. <span class="headerZs">
  16. <span class="headerZsN"></span>
  17. </span>
  18. </div>
  19. </div>
  20. <div class="weatherMain">
  21. <div class="weatherMain_top">
  22. <div class="wetherImg">
  23. <img :src="tianqi" alt="">
  24. </div>
  25. <div class="wetherMsg">
  26. <span class="wetherMsg_Du">11°</span>
  27. <div class="wetherMsg_Det">
  28. <span style="margin-left:5px">阴</span>
  29. <span>北风</span>
  30. <span>3-4级</span>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="weatherMain_bot">
  35. <div class="weaMain" v-for="it in weatherArr" :key="it.name">
  36. <img :src="it.img" alt="">
  37. <p class="pOne">{{it.value}}</p>
  38. <p class="pTwo">{{it.name}}</p>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. <!-- 预测电量 -->
  44. <div class="Electric">
  45. <div class="comHeader">
  46. <div class="headerLeft">
  47. <span class="gray"></span>
  48. <span class="blue"></span>
  49. </div>
  50. <div class="headerRight">
  51. <div class="headerNaAll">
  52. <span class="headerNa">预测电量</span>
  53. <span class="headerNa2">单位:万kWh</span>
  54. </div>
  55. <span class="headerZs">
  56. <span class="headerZsN"></span>
  57. </span>
  58. </div>
  59. </div>
  60. <div class="electricMain">
  61. <div v-for="(item, index) in dayFa" :key="index" class="electricMain_day">
  62. <div class="powerCharts">
  63. <div class="powerName">{{ item[0].name }}</div>
  64. <div class="powerItem">
  65. <div class="powerValue">
  66. <span style="background-color:#FF9B23"></span>
  67. <span>{{ item[0].total }}</span>
  68. </div>
  69. <forecast-bar-component :list="item" height="40px" width="410px" />
  70. </div>
  71. </div>
  72. </div>
  73. <div style="margin-top: 20px">
  74. <div v-for="(item, index) in monthFa" :key="index" class="electricMain_month">
  75. <div class="powerCharts">
  76. <div class="powerName">{{ item[0].name }}</div>
  77. <div class="powerItem">
  78. <div class="powerValue">
  79. <span style="background-color:#FF9B23"></span>
  80. <span>{{ item[0].total }}</span>
  81. </div>
  82. <forecast-bar-component :list="item" height="40px" width="410px" />
  83. </div>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. <!-- 实际功率 -->
  90. <div class="power">
  91. <div class="comHeader">
  92. <div class="headerLeft">
  93. <span class="gray"></span>
  94. <span class="blue"></span>
  95. </div>
  96. <div class="headerRight">
  97. <div class="headerNaAll">
  98. <span class="headerNa">实际功率</span>
  99. <span class="headerNa2">单位:万kWh</span>
  100. </div>
  101. <span class="headerZs">
  102. <span class="headerZsN"></span>
  103. </span>
  104. </div>
  105. </div>
  106. <div class="powerMain">
  107. <echarts-gauge-component :data="powerDataHome" />
  108. </div>
  109. </div>
  110. </div>
  111. <div class="map">
  112. <p class="dingbian">定边县</p>
  113. <p class="jingbian">靖边县</p>
  114. <div class="fengjiSty" v-for="it in fengjiArr" :key="it" :style="fengjiStyFn(it)">
  115. <div class="mainSv">
  116. <img :src="fengji" class="fengjiImg">
  117. <img :src="quan" class="quanImg">
  118. <img :src="fengjiBack" class="fengjiBackImg">
  119. <span class="dianSty"></span>
  120. </div>
  121. <div class="mainMsg">
  122. <span>{{it.name}}</span>
  123. </div>
  124. </div>
  125. </div>
  126. <div class="rightMain">
  127. <div style="height:55px"></div>
  128. <!-- 电量分析 -->
  129. <div class="powerAnalysis">
  130. <div class="comHeader">
  131. <div class="headerLeft">
  132. <span class="gray"></span>
  133. <span class="blue"></span>
  134. </div>
  135. <div class="headerRight">
  136. <div class="headerNaAll">
  137. <span class="headerNa">电量分析</span>
  138. <span class="headerNa2">单位:万kWh</span>
  139. </div>
  140. <span class="headerZs">
  141. <span class="headerZsN"></span>
  142. </span>
  143. </div>
  144. </div>
  145. <div class="powerAnalysisMain">
  146. <div class="analysRadio">
  147. <el-radio-group v-model="powerAnalyRadio">
  148. <el-radio-button label="日" value="日" />
  149. <el-radio-button label="月" value="月" />
  150. <el-radio-button label="年" value="年" />
  151. </el-radio-group>
  152. </div>
  153. <div class="analysMain">
  154. <div class="analysMain_left">
  155. <div class="analLeftTop">
  156. <img :src="dlTop1" alt="">
  157. <span>增发电量</span>
  158. <span>30</span>
  159. </div>
  160. <div class="analLeftEcharts">
  161. <echarts-pie :data="analyPieData" :index="1" />
  162. <span class="echartsNum">25%</span>
  163. <span class="echartsName">提升率</span>
  164. </div>
  165. <div class="analLeftBot">
  166. <div class="analLeftBot_top">
  167. <img :src="zengfa" class="leftImg">
  168. <div class="analyleftbottopAll">
  169. <div class="analyleftbottopName">及时并网增发电量</div>
  170. <div class="analyleftbottopSty">
  171. <span>30</span>
  172. <img :src="dlTop2" alt="">
  173. </div>
  174. </div>
  175. </div>
  176. <div class="analLeftBot_top">
  177. <img :src="zengfa" class="leftImg">
  178. <div class="analyleftbottopAll">
  179. <div class="analyleftbottopName">主动维护降低损失电量</div>
  180. <div class="analyleftbottopSty">
  181. <span>30</span>
  182. <img :src="dlTop2" alt="">
  183. </div>
  184. </div>
  185. </div>
  186. </div>
  187. </div>
  188. <div class="analysMain_left">
  189. <div class="analLeftTop">
  190. <img :src="dlBot1" alt="">
  191. <span>增发电量</span>
  192. <span>30</span>
  193. </div>
  194. <div class="analLeftEcharts">
  195. <echarts-pie :data="analyPieData" :index="2" />
  196. <span class="echartsNum">25%</span>
  197. <span class="echartsName">提升率</span>
  198. </div>
  199. <div class="analLeftBot">
  200. <div class="analLeftBot_top">
  201. <img :src="sunshi" class="leftImg">
  202. <div class="analyleftbottopAll">
  203. <div class="analyleftbottopName">及时并网增发电量</div>
  204. <div class="analyleftbottopSty">
  205. <span>30</span>
  206. <img :src="dlBot2" alt="">
  207. </div>
  208. </div>
  209. </div>
  210. <div class="analLeftBot_top">
  211. <img :src="sunshi" class="leftImg">
  212. <div class="analyleftbottopAll">
  213. <div class="analyleftbottopName">主动维护降低损失电量</div>
  214. <div class="analyleftbottopSty">
  215. <span>30</span>
  216. <img :src="dlBot2" alt="">
  217. </div>
  218. </div>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. <!-- 计划电量 -->
  226. <div class="powerPlan">
  227. <div class="comHeader">
  228. <div class="headerLeft">
  229. <span class="gray"></span>
  230. <span class="blue"></span>
  231. </div>
  232. <div class="headerRight">
  233. <div class="headerNaAll">
  234. <span class="headerNa">计划电量完成情况</span>
  235. </div>
  236. <span class="headerZs">
  237. <span class="headerZsN"></span>
  238. </span>
  239. </div>
  240. </div>
  241. <div class="powerPlanMain">
  242. <div class="analysRadio">
  243. <el-radio-group v-model="powerPlanRadio">
  244. <el-radio-button label="风" value="风" />
  245. <el-radio-button label="光" value="光" disabled />
  246. <el-radio-button label="总" value="总" disabled />
  247. </el-radio-group>
  248. </div>
  249. <div class="planMain">
  250. <div class="planMain_left">
  251. <div class="analysMain_echarts">
  252. <echarts-pie-2 :data="powerPlanData" :index="1" />
  253. </div>
  254. <div class="analysMain_Msg">
  255. <div class="analysMain_Msg_top">
  256. <div class="analysMain_Msg_top_flex">
  257. <span>计划</span>
  258. <span>343</span>
  259. </div>
  260. <div class="analysMain_Msg_top_flex">
  261. <span>实际</span>
  262. <span>434</span>
  263. </div>
  264. </div>
  265. <div class="analysMain_Msg_bot">
  266. <span>月计划完成率</span>
  267. </div>
  268. </div>
  269. </div>
  270. <div class="planMain_left">
  271. <div class="analysMain_echarts">
  272. <echarts-pie-2 :data="powerPlanData" :index="2" />
  273. </div>
  274. <div class="analysMain_Msg">
  275. <div class="analysMain_Msg_top">
  276. <div class="analysMain_Msg_top_flex">
  277. <span>计划</span>
  278. <span>343</span>
  279. </div>
  280. <div class="analysMain_Msg_top_flex">
  281. <span>实际</span>
  282. <span>434</span>
  283. </div>
  284. </div>
  285. <div class="analysMain_Msg_bot">
  286. <span>月计划完成率</span>
  287. </div>
  288. </div>
  289. </div>
  290. </div>
  291. </div>
  292. </div>
  293. </div>
  294. </div>
  295. <div class="footer">
  296. <div class="monthPower">
  297. <div id="monthPowers" style="width:100%;height:100%"></div>
  298. </div>
  299. <div class="hover72Power">
  300. <div id="hover72Powers" style="width:100%;height:100%"></div>
  301. </div>
  302. </div>
  303. </div>
  304. </template>
  305. <script>
  306. import fengji from '@/assets/images/indexCom/fengji.png'
  307. import quan from '@/assets/images/indexCom/quan.png'
  308. import fengjiBack from '@/assets/images/indexCom/fengjiBack.png'
  309. import tixing from '@/assets/images/indexCom/tixing.png'
  310. import tianqi from '@/assets/menuImg/power_tqyb.png'
  311. import dlTop1 from '@/assets/images/indexCom/dlTop1.png'
  312. import dlTop2 from '@/assets/images/indexCom/dlTop2.png'
  313. import dlBot1 from '@/assets/images/indexCom/dlBot1.png'
  314. import dlBot2 from '@/assets/images/indexCom/dlBot2.png'
  315. import zengfa from '@/assets/images/indexCom/zengfa.png'
  316. import sunshi from '@/assets/images/indexCom/sunshi.png'
  317. import wea1 from '@/assets/images/indexCom/wea_1.png'
  318. import wea2 from '@/assets/images/indexCom/wea_2.png'
  319. import wea3 from '@/assets/images/indexCom/wea_3.png'
  320. import wea4 from '@/assets/images/indexCom/wea_4.png'
  321. import wea5 from '@/assets/images/indexCom/wea_5.png'
  322. import forecastBarComponent from "@/components/homeComponent/forecastBarComponent.vue";
  323. import echartsGaugeComponent from "@/components/homeComponent/echartsGaugeComponent.vue";
  324. import echartsPie from "@/components/homeComponent/echartsPie.vue";
  325. import echartsPie2 from "@/components/homeComponent/echartsPie2.vue";
  326. export default {
  327. components: {
  328. forecastBarComponent,
  329. echartsGaugeComponent,
  330. echartsPie,
  331. echartsPie2,
  332. },
  333. data() {
  334. return {
  335. fengji: fengji,
  336. quan: quan,
  337. fengjiBack: fengjiBack,
  338. tixing: tixing,
  339. tianqi: tianqi,
  340. wea1: wea1,
  341. wea2: wea2,
  342. wea3: wea3,
  343. wea4: wea4,
  344. wea5: wea5,
  345. dlTop1: dlTop1,
  346. dlTop2: dlTop2,
  347. dlBot1: dlBot1,
  348. dlBot2: dlBot2,
  349. zengfa: zengfa,
  350. sunshi: sunshi,
  351. weatherArr: [],
  352. fengjiArr: [],
  353. dayFa: [],
  354. monthFa: [],
  355. powerDataHome: [],
  356. powerAnalyRadio: '日',
  357. analyPieData: [],
  358. powerPlanRadio: '风',
  359. powerPlanData: []
  360. }
  361. },
  362. created() {
  363. this.weatherArr = [{
  364. name: '能见度',
  365. value: 20,
  366. img: wea1
  367. },
  368. {
  369. name: '湿度',
  370. value: 70.5,
  371. img: wea2
  372. },
  373. {
  374. name: '气压',
  375. value: 99,
  376. img: wea3
  377. },
  378. {
  379. name: '日出时间',
  380. value: '04:36',
  381. img: wea4
  382. },
  383. {
  384. name: '日落时间',
  385. value: '18:50',
  386. img: wea5
  387. },
  388. ]
  389. this.fengjiArr = [{
  390. name: '繁食沟风电场',
  391. left: '23%',
  392. top: '43%'
  393. },
  394. {
  395. name: '新庄风电场',
  396. left: '35%',
  397. top: '31%'
  398. },
  399. {
  400. name: '草山梁风电场',
  401. left: '45%',
  402. top: '41%'
  403. },
  404. {
  405. name: '雷家山风电场',
  406. left: '52%',
  407. top: '28%'
  408. },
  409. {
  410. name: '吉山梁风电场',
  411. left: '58%',
  412. top: '42%'
  413. },
  414. {
  415. name: '左庄风电场',
  416. left: '64%',
  417. top: '50%'
  418. },
  419. ]
  420. this.dayFa = [
  421. [{
  422. name: "日发电量",
  423. id: "day",
  424. value: (12548 / 10000).toFixed(2),
  425. color: '#FF9B23',
  426. total: (32548 / 10000).toFixed(2),
  427. }, ],
  428. [{
  429. name: "日预测电量",
  430. id: "day2",
  431. value: (12548 / 10000).toFixed(2),
  432. color: '#FF9B23',
  433. total: (32548 / 10000).toFixed(2),
  434. }, ],
  435. ]
  436. this.monthFa = [
  437. [{
  438. name: "月发电量",
  439. id: "day",
  440. value: (12548 / 10000).toFixed(2),
  441. color: '#1C99FF',
  442. total: (32548 / 10000).toFixed(2),
  443. }, ],
  444. [{
  445. name: "月预测电量",
  446. id: "day2",
  447. value: (12548 / 10000).toFixed(2),
  448. color: '#1C99FF',
  449. total: (32548 / 10000).toFixed(2),
  450. }, ],
  451. ]
  452. this.powerDataHome = [{
  453. title: "风速",
  454. value: 15,
  455. max: 25,
  456. unit: "MW",
  457. },
  458. {
  459. title: "保证功率",
  460. value: 1254,
  461. max: 3000,
  462. unit: "MW",
  463. },
  464. {
  465. title: "应发功率",
  466. value: 3256,
  467. max: 4000,
  468. unit: "MW",
  469. },
  470. {
  471. title: "实发功率",
  472. value: 3256,
  473. max: 4000,
  474. unit: "MW",
  475. },
  476. ];
  477. },
  478. computed: {
  479. pageHeight() {
  480. return {
  481. 'height': document.documentElement.clientHeight - 50 + 'px'
  482. }
  483. }
  484. },
  485. mounted() {
  486. this.getPowerBar()
  487. this.getPowerLine()
  488. },
  489. methods: {
  490. fengjiStyFn(it) {
  491. return `left:${it.left};top:${it.top}`
  492. },
  493. getPowerBar(xAxis, series) {
  494. let option = {
  495. title: {
  496. text: '月发电量',
  497. left: '10px',
  498. top: '20px',
  499. textStyle: {
  500. fontSize: '16',
  501. fontWeight: 400,
  502. color: '#fff'
  503. }
  504. },
  505. color: ['#7981AF', '#1C99FF', '#E57F25'],
  506. tooltip: {
  507. trigger: 'axis',
  508. axisPointer: {
  509. type: 'shadow'
  510. }
  511. },
  512. grid: {
  513. left: '2%',
  514. right: '2%',
  515. bottom: '5%',
  516. height: '90px',
  517. containLabel: true
  518. },
  519. legend: {
  520. right: '20',
  521. data: ['日发电量', '上网电量', '购网电量']
  522. },
  523. xAxis: [{
  524. type: 'category',
  525. axisTick: {
  526. show: false
  527. },
  528. data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  529. }],
  530. yAxis: [{
  531. type: 'value',
  532. splitNumber: 3.5,
  533. splitLine: {
  534. lineStyle: {
  535. color: ['#393F4D']
  536. }
  537. },
  538. name: '单位:万KWh'
  539. }],
  540. series: [{
  541. data: [120, 200, 150, 80, 70, 110, 130],
  542. barGap: '0',
  543. type: 'bar'
  544. },
  545. {
  546. data: [120, 200, 150, 80, 70, 110, 130],
  547. type: 'bar'
  548. },
  549. {
  550. data: [120, 200, 150, 80, 70, 110, 130],
  551. type: 'bar'
  552. }
  553. ]
  554. };
  555. if (!this.theme) {
  556. option.backgroundColor = ''
  557. }
  558. // 基于准备好的dom,初始化echarts实例
  559. let dom = document.getElementById('monthPowers');
  560. dom.removeAttribute("_echarts_instance_") ? 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. getPowerLine(xAxis, legend, series) {
  568. let option = {
  569. title: {
  570. text: '72小时功率曲线',
  571. left: '10px',
  572. top: '20px',
  573. textStyle: {
  574. fontSize: '16',
  575. fontWeight: 400,
  576. color: '#fff'
  577. }
  578. },
  579. tooltip: {
  580. trigger: 'axis'
  581. },
  582. color: ['#7981AF', '#1C99FF', '#E57F25'],
  583. legend: {
  584. // width: '380',
  585. right: '20',
  586. data: legend
  587. },
  588. grid: {
  589. left: '2%',
  590. right: '2%',
  591. bottom: '5%',
  592. height: '90px',
  593. containLabel: true
  594. },
  595. xAxis: {
  596. type: 'category',
  597. boundaryGap: false,
  598. data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  599. },
  600. yAxis: {
  601. type: 'value',
  602. splitNumber: 3,
  603. splitLine: {
  604. lineStyle: {
  605. color: ['#393F4D']
  606. }
  607. },
  608. name: '单位:万KWh'
  609. },
  610. series: [{
  611. data: [820, 932, 901, 934, 1290, 1330, 1320],
  612. type: 'line',
  613. symbol: 'none'
  614. }]
  615. };
  616. if (!this.theme) {
  617. option.backgroundColor = ''
  618. }
  619. // 基于准备好的dom,初始化echarts实例
  620. let dom = document.getElementById('hover72Powers');
  621. dom.removeAttribute("_echarts_instance_") ? dom.removeAttribute("_echarts_instance_") : ''
  622. let myChart = this.$echarts.init(dom);
  623. myChart.setOption(option);
  624. window.addEventListener("resize", function () {
  625. myChart.resize()
  626. })
  627. },
  628. }
  629. }
  630. </script>
  631. <style lang="less">
  632. .homePage {
  633. height: 100%;
  634. .homeMain {
  635. display: flex;
  636. width: 100%;
  637. height: 74vh;
  638. .comHeader {
  639. height: 28px;
  640. display: flex;
  641. .headerLeft {
  642. height: 28px;
  643. width: 20px;
  644. position: relative;
  645. .gray {
  646. position: absolute;
  647. left: 5px;
  648. top: 3px;
  649. display: inline-block;
  650. width: 5px;
  651. height: 5px;
  652. background: #CBD2E2;
  653. }
  654. .blue {
  655. position: absolute;
  656. left: 5px;
  657. top: 20px;
  658. display: inline-block;
  659. width: 5px;
  660. height: 5px;
  661. background: #1C99FF;
  662. transform: rotate(45deg);
  663. }
  664. }
  665. .headerRight {
  666. width: 427px;
  667. height: 28px;
  668. background: #2D3138;
  669. position: relative;
  670. .headerName {
  671. font-family: Microsoft YaHei;
  672. font-weight: 400;
  673. font-size: 16px;
  674. color: #FFFFFF;
  675. line-height: 28px;
  676. margin-left: 10px;
  677. }
  678. .headerNaAll {
  679. display: flex;
  680. justify-content: space-between;
  681. .headerNa {
  682. font-family: Microsoft YaHei;
  683. font-weight: 400;
  684. font-size: 16px;
  685. color: #FFFFFF;
  686. line-height: 28px;
  687. margin-left: 10px;
  688. }
  689. .headerNa2 {
  690. font-family: Microsoft YaHei;
  691. font-weight: 400;
  692. font-size: 12px;
  693. color: #787F8F;
  694. line-height: 28px;
  695. margin-right: 8px;
  696. }
  697. }
  698. .headerZs {
  699. display: inline-block;
  700. position: absolute;
  701. right: 0;
  702. top: 22px;
  703. width: 32px;
  704. height: 6px;
  705. background: #0F0F0F;
  706. .headerZsN {
  707. position: relative;
  708. top: -8px;
  709. left: 2px;
  710. display: inline-block;
  711. width: 30px;
  712. height: 4px;
  713. background: #41454C;
  714. }
  715. }
  716. }
  717. }
  718. .leftMain {
  719. width: 25%;
  720. height: 100%;
  721. margin-left: 37px;
  722. .weather {
  723. margin-bottom: 30px;
  724. .weatherMain {
  725. margin-top: 15px;
  726. .weatherMain_top {
  727. display: flex;
  728. .wetherImg {
  729. img {
  730. width: 48px;
  731. height: 48px;
  732. }
  733. margin: 9px 0 0 25px;
  734. }
  735. .wetherMsg {
  736. margin-left: 21px;
  737. .wetherMsg_Du {
  738. font-family: SourceHanSansCN;
  739. font-weight: 400;
  740. font-size: 30px;
  741. color: #FFFFFF;
  742. }
  743. .wetherMsg_Det {
  744. display: flex;
  745. span {
  746. font-family: Microsoft YaHei;
  747. font-weight: 400;
  748. font-size: 14px;
  749. color: #FFFFFF;
  750. margin-right: 25px;
  751. }
  752. }
  753. }
  754. }
  755. .weatherMain_bot {
  756. display: flex;
  757. justify-content: space-around;
  758. margin-top: 18px;
  759. .weaMain {
  760. text-align: center;
  761. .pOne {
  762. font-family: SourceHanSansCN;
  763. font-weight: 400;
  764. font-size: 14px;
  765. color: #FFFFFF;
  766. line-height: 28px;
  767. }
  768. .pTwo {
  769. font-family: Microsoft YaHei;
  770. font-weight: 400;
  771. font-size: 14px;
  772. color: #8B93A6;
  773. }
  774. }
  775. }
  776. }
  777. }
  778. .Electric {
  779. margin-bottom: 30px;
  780. .electricMain {
  781. padding-top: 20px;
  782. .electricMain_day,
  783. .electricMain_month {
  784. .powerCharts {
  785. position: relative;
  786. display: flex;
  787. flex-direction: row;
  788. align-items: flex-end;
  789. width: 100%;
  790. margin-top: 5px;
  791. margin-left: 10px;
  792. .powerName {
  793. position: absolute;
  794. left: 15px;
  795. top: -8px;
  796. font-family: Microsoft YaHei;
  797. font-weight: 400;
  798. font-size: 14px;
  799. color: #8B93A6;
  800. line-height: 28px;
  801. }
  802. .powerItem {
  803. display: flex;
  804. position: relative;
  805. .powerValue {
  806. font-size: 12px;
  807. font-family: Bicubik;
  808. position: absolute;
  809. right: -12px;
  810. top: 17px;
  811. span:nth-child(1) {
  812. width: 5px;
  813. height: 5px;
  814. border-radius: 5px;
  815. display: inline-block;
  816. background-color: #fff;
  817. margin-right: 5px;
  818. }
  819. span:nth-child(2) {
  820. font-family: Bicubik;
  821. font-weight: 400;
  822. font-size: 12px;
  823. color: #FFFFFF;
  824. position: relative;
  825. top: 2px;
  826. }
  827. }
  828. }
  829. }
  830. }
  831. }
  832. }
  833. .power {
  834. .powerMain {
  835. margin-top: 10px;
  836. }
  837. }
  838. }
  839. .map {
  840. width: 50%;
  841. height: 100%;
  842. position: relative;
  843. .dingbian,
  844. .jingbian {
  845. font-family: Microsoft YaHei;
  846. font-weight: 400;
  847. font-size: 18px;
  848. color: #A5ABB7;
  849. line-height: 35px;
  850. text-shadow: 0px 1px 2px #070A11;
  851. }
  852. .dingbian {
  853. position: absolute;
  854. top: 68%;
  855. left: 15%;
  856. }
  857. .jingbian {
  858. position: absolute;
  859. top: 30%;
  860. left: 67%;
  861. }
  862. .fengjiSty {
  863. position: absolute;
  864. width: 40px;
  865. .mainSv {
  866. position: relative;
  867. width: 40px;
  868. .quanImg {
  869. position: absolute;
  870. left: 5px;
  871. bottom: -2px;
  872. }
  873. .fengjiBackImg {
  874. position: absolute;
  875. bottom: -2px;
  876. left: -5px;
  877. }
  878. .dianSty {
  879. display: inline-block;
  880. width: 6px;
  881. height: 7px;
  882. background: #31FBFD;
  883. border-radius: 50%;
  884. position: absolute;
  885. left: 3px;
  886. }
  887. }
  888. .mainMsg {
  889. width: 105px;
  890. height: 30px;
  891. background-image: url('@/assets/images/indexCom/tixing.png');
  892. background-repeat: no-repeat;
  893. position: absolute;
  894. bottom: -7px;
  895. left: -98px;
  896. span {
  897. font-family: Microsoft YaHei;
  898. font-weight: 400;
  899. font-size: 14px;
  900. color: #FFFFFF;
  901. line-height: 23px;
  902. position: relative;
  903. left: 6px;
  904. top: 2px;
  905. }
  906. }
  907. }
  908. }
  909. .rightMain {
  910. width: 25%;
  911. height: 100%;
  912. .analysRadio {
  913. margin: 16px 0 7px 20px;
  914. .el-radio-group {
  915. height: 28px;
  916. .el-radio-button {
  917. .el-radio-button__inner {
  918. width: 48px;
  919. background: transparent;
  920. color: #fff;
  921. border: 1px solid #3B4C6C;
  922. }
  923. }
  924. .is-active {
  925. background: linear-gradient(90deg, rgba(28, 113, 255, 0), rgba(28, 113, 255, 0.6));
  926. }
  927. }
  928. }
  929. .powerAnalysis {
  930. .powerAnalysisMain {
  931. .analysMain {
  932. margin-left: 20px;
  933. width: 100%;
  934. display: flex;
  935. .analysMain_left {
  936. width: 50%;
  937. .analLeftTop {
  938. display: flex;
  939. img {
  940. width: 14px;
  941. height: 14px;
  942. position: relative;
  943. top: 5px;
  944. }
  945. span {
  946. font-family: Microsoft YaHei;
  947. font-weight: 400;
  948. font-size: 14px;
  949. color: #8B93A6;
  950. line-height: 28px;
  951. margin-left: 3px;
  952. }
  953. }
  954. .analLeftEcharts {
  955. position: relative;
  956. .echartsNum {
  957. position: absolute;
  958. top: 30%;
  959. left: 38%;
  960. font-family: Bicubik;
  961. font-weight: 400;
  962. font-size: 16px;
  963. color: #1C99FF;
  964. }
  965. .echartsName {
  966. position: absolute;
  967. top: 50%;
  968. left: 38%;
  969. font-family: Microsoft YaHei;
  970. font-weight: 400;
  971. font-size: 14px;
  972. color: #8B93A6;
  973. }
  974. }
  975. .analLeftBot {
  976. .analLeftBot_top {
  977. display: flex;
  978. .leftImg {
  979. width: 36px;
  980. height: 36px;
  981. }
  982. .analyleftbottopAll {
  983. margin-left: 2px;
  984. .analyleftbottopName {
  985. position: relative;
  986. top: -5px;
  987. font-family: Microsoft YaHei;
  988. font-weight: 400;
  989. font-size: 14px;
  990. color: #8B93A6;
  991. line-height: 28px;
  992. }
  993. .analyleftbottopSty {
  994. display: flex;
  995. position: relative;
  996. top: -13px;
  997. span {
  998. font-family: Bicubik;
  999. font-weight: 400;
  1000. font-size: 16px;
  1001. color: #FFFFFF;
  1002. line-height: 28px;
  1003. }
  1004. img {
  1005. width: 12px;
  1006. height: 12px;
  1007. position: relative;
  1008. top: 8px;
  1009. left: 8px;
  1010. }
  1011. }
  1012. }
  1013. }
  1014. }
  1015. }
  1016. }
  1017. }
  1018. }
  1019. .powerPlan {
  1020. margin-top: 30px;
  1021. .powerPlanMain {
  1022. .planMain {
  1023. width: calc(100% - 20px);
  1024. display: flex;
  1025. justify-content: space-around;
  1026. .planMain_left {
  1027. padding: 0 20px;
  1028. width: calc(50% - 40px);
  1029. .analysMain_echarts {
  1030. width: 100%;
  1031. text-align: center;
  1032. border-bottom: 1px dashed #393F4D;
  1033. }
  1034. .analysMain_Msg {
  1035. .analysMain_Msg_top {
  1036. display: flex;
  1037. justify-content: space-between;
  1038. width: 100%;
  1039. .analysMain_Msg_top_flex {
  1040. display: flex;
  1041. justify-content: space-between;
  1042. padding: 0 20px;
  1043. width: 60px;
  1044. span:nth-child(1) {
  1045. font-family: Microsoft YaHei;
  1046. font-weight: 400;
  1047. font-size: 14px;
  1048. color: #8B93A6;
  1049. line-height: 28px;
  1050. }
  1051. span:nth-child(2) {
  1052. font-family: Arial;
  1053. font-weight: 400;
  1054. font-size: 14px;
  1055. color: #FFFFFF;
  1056. line-height: 28px;
  1057. }
  1058. }
  1059. }
  1060. .analysMain_Msg_bot {
  1061. background: #2D3138;
  1062. // opacity: 0.5;
  1063. text-align: center;
  1064. span {
  1065. font-family: Microsoft YaHei;
  1066. font-weight: 400;
  1067. font-size: 14px;
  1068. color: #8B93A6;
  1069. line-height: 28px;
  1070. }
  1071. }
  1072. }
  1073. }
  1074. }
  1075. }
  1076. }
  1077. }
  1078. }
  1079. .footer {
  1080. display: flex;
  1081. justify-content: space-between;
  1082. padding: 0 36px;
  1083. width: calc(100% - 72px);
  1084. height: 19vh;
  1085. .monthPower {
  1086. width: calc(50% - 10px);
  1087. background: rgba(41, 45, 53, 0.4);
  1088. border-radius: 6px;
  1089. }
  1090. .hover72Power {
  1091. width: calc(50% - 10px);
  1092. background: rgba(41, 45, 53, 0.4);
  1093. border-radius: 6px;
  1094. }
  1095. }
  1096. }
  1097. .themeDarkHome {
  1098. background-color: #0F0F0F;
  1099. background-image: url('@/assets/images/indexCom/backImg_B.png');
  1100. background-repeat: no-repeat;
  1101. .homeMain {
  1102. .map {
  1103. background-image: url('@/assets/images/indexCom/map_B.png');
  1104. background-repeat: no-repeat;
  1105. background-size: 90%;
  1106. background-position: center;
  1107. }
  1108. }
  1109. }
  1110. </style>