map.vue 77 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630
  1. <template>
  2. <div class="map">
  3. <HeaderNav
  4. ref="header"
  5. :wpId="fcId"
  6. @firstRender="firstRender"
  7. @typeFlag="typeFlag"
  8. :isShows="false"
  9. />
  10. <!-- 山西左侧信息 -->
  11. <div v-if="mapName !== 'KGDL_FGS'">
  12. <div class="security-days safe_power">
  13. <div class="text">安全天数:</div>
  14. <div class="num">
  15. <span class="font-num">{{
  16. StationinformationData?.qt?.aqts
  17. ? StationinformationData.qt?.aqts
  18. : "0"
  19. }}</span>
  20. <span class="unit">天</span>
  21. </div>
  22. <div class="security">
  23. <div class="text">资产统计:</div>
  24. <div class="num">
  25. <span class="font-num">
  26. {{
  27. wpId.includes("FDC") || wpId.includes("GDC")
  28. ? (
  29. StationinformationData?.station[wpId]?.zjrl / 1000
  30. ).toFixed(2)
  31. : StationinformationData?.qt?.zzjrl
  32. }}
  33. </span>
  34. <span class="unit-t">MW</span>
  35. </div>
  36. <div class="lineBox">
  37. <div class="fd-rl" v-if="tabShow == -1 || tabShow == 0">
  38. <span class="text">风电</span>
  39. <span class="font-num">
  40. {{
  41. wpId.includes("FDC")
  42. ? (
  43. StationinformationData?.station[wpId]?.zjrl / 1000
  44. ).toFixed(2)
  45. : StationinformationData?.qt?.fdzzjrl
  46. }}
  47. </span>
  48. <span class="unit">MW</span>
  49. </div>
  50. <div class="gf-rl" v-if="tabShow == -2 || tabShow == 0">
  51. <span class="text">光伏</span>
  52. <span class="font-num">{{
  53. wpId.includes("GDC")
  54. ? (
  55. StationinformationData?.station[wpId]?.zjrl / 1000
  56. ).toFixed(2)
  57. : StationinformationData?.qt?.gfzzjrl
  58. }}</span>
  59. <span class="unit">MW</span>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. <div
  65. class="qjny-info safe_power"
  66. @mouseenter="switchShow = true"
  67. @mouseleave="switchShow = false"
  68. >
  69. <ul>
  70. <li v-show="tabShow == -1 || tabShow == 0">
  71. <div class="imgs">
  72. <img src="@assets/imgs/downF.png" />
  73. <img src="@assets/imgs/windup.png" class="qty_img" />
  74. </div>
  75. <p class="qty_tit">
  76. 风场数量
  77. <sapn class="qty_value">
  78. {{
  79. wpId.includes("FDC")
  80. ? 1
  81. : StationinformationData?.cblpoint.qjny_fcts
  82. }}</sapn
  83. >
  84. <span class="qty_u">个</span>
  85. </p>
  86. <div class="qty_content">
  87. <p class="qty_imag">
  88. 风机台数
  89. <span class="qty_val">
  90. {{
  91. wpId.includes("FDC")
  92. ? StationinformationData?.station[wpId]?.zjts
  93. : StationinformationData?.cblpoint.qjny_fj_ts
  94. }} </span
  95. ><span class="qty_unit">台</span>
  96. </p>
  97. <p class="qty_imag">
  98. 陆地风机
  99. <span class="qty_val">
  100. {{
  101. wpId.includes("FDC")
  102. ? StationinformationData?.station[wpId]?.zjts
  103. : StationinformationData?.cblpoint.qjny_fj_ts
  104. }} </span
  105. ><span class="qty_unit">台</span>
  106. </p>
  107. <p class="qty_imag">
  108. 海上风机
  109. <span class="qty_val">
  110. {{
  111. wpId.includes("FDC")
  112. ? StationinformationData?.station[wpId]?.zjts
  113. : StationinformationData?.cblpoint.qjny_fj_ts
  114. }} </span
  115. ><span class="qty_unit">台</span>
  116. </p>
  117. </div>
  118. </li>
  119. <li class="line" v-show="tabShow == 0"></li>
  120. <li v-show="tabShow == 0 || tabShow == -2">
  121. <div class="imgs">
  122. <img src="@assets/imgs/downg.png" />
  123. <img src="@assets/imgs/ptyup.png" class="qty_img" />
  124. </div>
  125. <p class="qty_tit">
  126. 光伏数量
  127. <sapn class="qty_value" id="pv">{{
  128. wpId.includes("GDC")
  129. ? 1
  130. : StationinformationData?.cblpoint.qjny_gfts
  131. }}</sapn>
  132. <span class="qty_u">个</span>
  133. </p>
  134. <div class="qty_content">
  135. <p class="qty_imag">
  136. 逆变器
  137. <span class="qty_val">
  138. {{
  139. wpId.includes("GDC")
  140. ? StationinformationData?.station[wpId]?.jzzjts +
  141. StationinformationData?.station[wpId]?.zczjts
  142. : StationinformationData?.cblpoint.qjny_gf_jzts +
  143. StationinformationData?.cblpoint.qjny_gf_zcts
  144. }}
  145. </span>
  146. <span class="qty_unit">台</span>
  147. </p>
  148. <p class="qty_imag">
  149. 集中式<span class="qty_val">
  150. {{
  151. wpId.includes("GDC")
  152. ? StationinformationData?.station[wpId]?.jzzjts
  153. : StationinformationData?.cblpoint.qjny_gf_jzts
  154. }} </span
  155. ><span class="qty_unit">台</span>
  156. </p>
  157. <p class="qty_imag">
  158. 组串式<span class="qty_val">
  159. {{
  160. wpId.includes("GDC")
  161. ? StationinformationData?.station[wpId]?.zczjts
  162. : StationinformationData?.cblpoint.qjny_gf_zcts
  163. }} </span
  164. ><span class="qty_unit">台</span>
  165. </p>
  166. </div>
  167. </li>
  168. </ul>
  169. <div class="switch-jrqk" v-show="switchShow">
  170. <div><img src="@/assets/imgs/arrows.png" /> 接入情况</div>
  171. <ul>
  172. <li v-show="tabShow == -1 || tabShow == 0">
  173. <div class="imgs">
  174. <img src="@assets/imgs/downF.png" />
  175. <img src="@assets/imgs/windup.png" class="qty_img" />
  176. </div>
  177. <p class="qty_tit">
  178. 风场数量
  179. <sapn class="qty_value">
  180. {{
  181. wpId.includes("FDC")
  182. ? 1
  183. : StationinformationData?.cblpoint?.jr_fcts
  184. }}</sapn
  185. >
  186. <span class="qty_u">个</span>
  187. </p>
  188. <div class="qty_content">
  189. <p class="qty_imag">
  190. 风机台数<span class="qty_val">
  191. {{
  192. wpId.includes("FDC")
  193. ? StationinformationData?.station[wpId]?.zjts
  194. : StationinformationData?.cblpoint?.jr_fj_ts
  195. }} </span
  196. ><span class="qty_unit">台</span>
  197. </p>
  198. <p class="qty_imag">
  199. 陆地风机<span class="qty_val">
  200. {{
  201. wpId.includes("FDC")
  202. ? StationinformationData?.station[wpId]?.zjts
  203. : StationinformationData?.cblpoint?.jr_fj_ts
  204. }} </span
  205. ><span class="qty_unit">台</span>
  206. </p>
  207. <p class="qty_imag">
  208. 海上风机<span class="qty_val">
  209. {{
  210. wpId.includes("FDC")
  211. ? StationinformationData?.station[wpId]?.zjts
  212. : StationinformationData?.cblpoint?.jr_fj_ts
  213. }} </span
  214. ><span class="qty_unit">台</span>
  215. </p>
  216. </div>
  217. </li>
  218. <li class="line" v-if="tabShow == 0"></li>
  219. <li v-show="tabShow == 0 || tabShow == -2">
  220. <div class="imgs">
  221. <img src="@assets/imgs/downg.png" />
  222. <img src="@assets/imgs/ptyup.png" class="qty_img" />
  223. </div>
  224. <p class="qty_tit">
  225. 光伏数量
  226. <sapn class="qty_value" id="pv">
  227. {{
  228. wpId.includes("GDC")
  229. ? 1
  230. : StationinformationData?.cblpoint?.jr_gfts
  231. }}</sapn
  232. >
  233. <span class="qty_u">个</span>
  234. </p>
  235. <div class="qty_content">
  236. <p class="qty_imag">
  237. 逆变器<span class="qty_val">
  238. {{
  239. wpId.includes("GDC")
  240. ? StationinformationData?.station[wpId]?.jzzjts +
  241. StationinformationData?.station[wpId]?.zczjts
  242. : StationinformationData?.cblpoint.jr_gf_jzts +
  243. StationinformationData?.cblpoint.jr_gf_zcts
  244. }}
  245. </span>
  246. <span class="qty_unit">台</span>
  247. </p>
  248. <p class="qty_imag">
  249. 集中式<span class="qty_val">
  250. {{
  251. wpId.includes("GDC")
  252. ? StationinformationData?.station[wpId]?.jzzjts
  253. : StationinformationData?.cblpoint?.jr_gf_jzts
  254. }} </span
  255. ><span class="qty_unit">台</span>
  256. </p>
  257. <p class="qty_imag">
  258. 组串式<span class="qty_val">
  259. {{
  260. wpId.includes("GDC")
  261. ? StationinformationData?.station[wpId]?.zczjts
  262. : StationinformationData?.cblpoint?.jr_gf_zcts
  263. }} </span
  264. ><span class="qty_unit">台</span>
  265. </p>
  266. </div>
  267. </li>
  268. </ul>
  269. </div>
  270. </div>
  271. <div class="ecoName safe_power">
  272. <p class="ecoTitle">社会贡献<span>万吨/月</span></p>
  273. <ul>
  274. <li class="eco_count">
  275. <div class="svg-icon svg-icon-green">
  276. <svg-icon class="" svgid="svg-煤" />
  277. </div>
  278. <p class="eco_val text-ellipsis">
  279. {{ (StationinformationData?.qt.jym / 10000).toFixed(2) }}
  280. </p>
  281. <p class="eco_name">煤</p>
  282. </li>
  283. <li class="eco_count">
  284. <div class="svg-icon svg-icon-green">
  285. <svg-icon class="" svgid="svg-水" />
  286. </div>
  287. <p class="eco_val text-ellipsis">
  288. {{ (StationinformationData?.qt.jys / 10000).toFixed(2) }}
  289. </p>
  290. <p class="eco_name">水</p>
  291. </li>
  292. <li class="eco_count">
  293. <div class="kind">
  294. <div class="svg-icon svg-icon-green">
  295. <svg-icon svgid="svg-co2" />
  296. </div>
  297. </div>
  298. <p class="eco_val text-ellipsis">
  299. {{ (StationinformationData?.qt.co2 / 10000).toFixed(2) }}
  300. </p>
  301. <p class="eco_name">二氧化碳</p>
  302. </li>
  303. <li class="eco_count">
  304. <div class="kind">
  305. <div class="svg-icon svg-icon-green">
  306. <svg-icon svgid="svg-so2" />
  307. </div>
  308. </div>
  309. <p class="eco_val text-ellipsis">
  310. {{ (StationinformationData?.qt.so2 / 10000).toFixed(2) }}
  311. </p>
  312. <p class="eco_name">二氧化硫</p>
  313. </li>
  314. </ul>
  315. </div>
  316. <div class="my_echarts safe_power" v-if="penetrateType == 3">
  317. <power-echarts :CurveValues="CurveValues" width="680px" :ratio="1000" />
  318. </div>
  319. </div>
  320. <!-- 全国左侧信息 -->
  321. <div class="leftBox" v-if="mapName == 'KGDL_FGS'">
  322. <div
  323. :class="
  324. $store.state.themeName === 'light' ? 'new-home-light' : 'new-home'
  325. "
  326. >
  327. <div class="security-day">
  328. <div class="text">清洁能源产业总装机容量:</div>
  329. <div class="num">
  330. <span class="font-num">{{
  331. StationinformationData?.qt?.zzjrl
  332. }}</span>
  333. <span class="unit">MW</span>
  334. </div>
  335. <div class="security">
  336. <div class="lineBox">
  337. <div v-if="activeTab == -1 || activeTab == 0">
  338. <span>风电</span>
  339. <span class="num font-num">{{
  340. StationinformationData?.qt?.fdzzjrl
  341. }}</span>
  342. <span class="unit">MW</span>
  343. </div>
  344. <div v-if="activeTab == -2 || activeTab == 0">
  345. <span>光伏</span>
  346. <span class="num font-num">{{
  347. StationinformationData?.qt?.gfzzjrl
  348. }}</span>
  349. <span class="unit">MW</span>
  350. </div>
  351. </div>
  352. <div class="text">安全天数:</div>
  353. <div class="num">
  354. <span class="font-num">{{
  355. StationinformationData?.qt?.aqts || 0
  356. }}</span>
  357. <span class="unit-t">天</span>
  358. </div>
  359. </div>
  360. </div>
  361. <div
  362. class="energy-system-box box1"
  363. :class="activeTab == -1 || activeTab == -2 ? 'piggy-tab-width' : ''"
  364. >
  365. <div class="energy-system-content clearfix">
  366. <div class="title">
  367. <span class="title-name">清洁能源公司</span>
  368. <span class="title-all-title">总装机容量 :</span>
  369. <span class="title-all-content" v-if="activeTab == 0">{{
  370. Number(StationinformationData?.cblpoint?.qjny_zzjrl) || 0
  371. }}</span>
  372. <span class="title-all-content" v-if="activeTab == -1">{{
  373. StationinformationData?.cblpoint?.qjny_fd_zjrl || 0
  374. }}</span>
  375. <span class="title-all-content" v-if="activeTab == -2">{{
  376. StationinformationData?.cblpoint?.qjny_gf_zjrl || 0
  377. }}</span>
  378. <span class="title-all-unit">MW</span>
  379. </div>
  380. <div
  381. class="left-content float-left"
  382. :class="activeTab == -1 ? 'piggy-bank' : ''"
  383. v-if="activeTab == -1 || activeTab == 0"
  384. >
  385. <div class="img-num clearfix">
  386. <div class="img float-left">
  387. <img src="../../../assets/home/fc_1.png" alt="" />
  388. </div>
  389. <div class="num float-left">
  390. <span>风电场数量</span> <br />
  391. <span>{{ StationinformationData?.cblpoint?.qjny_fcts }}</span>
  392. <span>个</span>
  393. </div>
  394. </div>
  395. <div class="capacity">
  396. <div class="item">
  397. <el-row>
  398. <el-col :span="8"><span>风机台数</span></el-col>
  399. <el-col :span="9"
  400. ><span>{{
  401. StationinformationData?.cblpoint?.qjny_fj_ts
  402. }}</span></el-col
  403. >
  404. <el-col :span="7"><span>台</span></el-col>
  405. </el-row>
  406. </div>
  407. </div>
  408. </div>
  409. <div
  410. class="right-content float-left"
  411. :class="activeTab == -2 ? 'piggy-bank' : ''"
  412. v-if="activeTab == -2 || activeTab == 0"
  413. >
  414. <div class="img-num clearfix">
  415. <div class="img float-left">
  416. <img src="../../../assets/home/gf_1.png" alt="" />
  417. </div>
  418. <div class="num float-left">
  419. <span>光伏电站数量</span> <br />
  420. <span>{{ StationinformationData?.cblpoint?.qjny_gfts }}</span>
  421. <span>个</span>
  422. </div>
  423. </div>
  424. <div class="capacity">
  425. <div class="item">
  426. <el-row>
  427. <el-col :span="8"><span>集中式</span></el-col>
  428. <el-col :span="9"
  429. ><span>{{
  430. StationinformationData?.cblpoint?.qjny_gf_jzts
  431. }}</span></el-col
  432. >
  433. <el-col :span="7"><span>台</span></el-col>
  434. </el-row>
  435. </div>
  436. <div class="item">
  437. <el-row>
  438. <el-col :span="8"><span>组串式</span></el-col>
  439. <el-col :span="9"
  440. ><span>{{
  441. StationinformationData?.cblpoint?.qjny_gf_zcts
  442. }}</span></el-col
  443. >
  444. <el-col :span="7"><span>台</span></el-col>
  445. </el-row>
  446. </div>
  447. </div>
  448. </div>
  449. </div>
  450. </div>
  451. <div
  452. class="energy-system-box box2"
  453. :class="activeTab == -1 || activeTab == -2 ? 'piggy-tab-width' : ''"
  454. >
  455. <div class="energy-system-content clearfix">
  456. <div class="title">
  457. <span class="title-name">系统接入情况</span>
  458. <span class="title-all-title">总装机容量 :</span>
  459. <span class="title-all-content" v-if="activeTab == 0">{{
  460. Number(StationinformationData?.cblpoint?.jr_zzjrl) || 0
  461. }}</span>
  462. <span class="title-all-content" v-if="activeTab == -1">{{
  463. StationinformationData?.cblpoint?.jr_fd_zjrl || 0
  464. }}</span>
  465. <span class="title-all-content" v-if="activeTab == -2">{{
  466. StationinformationData?.cblpoint?.jr_gf_zjrl || 0
  467. }}</span>
  468. <span class="title-all-unit">MW</span>
  469. </div>
  470. <div
  471. class="left-content float-left"
  472. :class="activeTab == -1 ? 'piggy-bank' : ''"
  473. v-if="activeTab == -1 || activeTab == 0"
  474. >
  475. <div class="img-num clearfix">
  476. <div>
  477. <div class="img float-left">
  478. <img src="../../../assets/home/fc_1.png" alt="" />
  479. </div>
  480. <div class="num float-left">
  481. <span>风电场数量</span> <br />
  482. <span>{{ StationinformationData?.cblpoint?.jr_fcts }}</span>
  483. <span>个</span>
  484. </div>
  485. </div>
  486. </div>
  487. <div class="capacity">
  488. <div class="item">
  489. <el-row>
  490. <el-col :span="8"><span>装机容量</span></el-col>
  491. <el-col :span="9"
  492. ><span>{{
  493. StationinformationData?.cblpoint?.jr_fd_zjrl
  494. }}</span></el-col
  495. >
  496. <el-col :span="7"><span>MW</span></el-col>
  497. </el-row>
  498. </div>
  499. <div class="item">
  500. <el-row>
  501. <el-col :span="8"><span>风机台数</span></el-col>
  502. <el-col :span="9"
  503. ><span>{{
  504. StationinformationData?.cblpoint?.jr_fj_ts
  505. }}</span></el-col
  506. >
  507. <el-col :span="7"><span>台</span></el-col>
  508. </el-row>
  509. </div>
  510. </div>
  511. </div>
  512. <div
  513. class="right-content float-left"
  514. :class="activeTab == -2 ? 'piggy-bank' : ''"
  515. v-if="activeTab == -2 || activeTab == 0"
  516. >
  517. <div class="img-num clearfix">
  518. <div class="img float-left">
  519. <img src="../../../assets/home/gf_1.png" alt="" />
  520. </div>
  521. <div class="num float-left">
  522. <span>光伏电站数量</span> <br />
  523. <span>{{ StationinformationData?.cblpoint?.jr_gfts }}</span>
  524. <span>个</span>
  525. </div>
  526. </div>
  527. <div class="capacity">
  528. <div class="item">
  529. <el-row>
  530. <el-col :span="8"><span>装机容量</span></el-col>
  531. <el-col :span="9"
  532. ><span>{{
  533. StationinformationData?.cblpoint?.jr_gf_zjrl || 0
  534. }}</span></el-col
  535. >
  536. <el-col :span="7"><span>MW</span></el-col>
  537. </el-row>
  538. </div>
  539. <div class="item">
  540. <el-row>
  541. <el-col :span="8"><span>集中式</span></el-col>
  542. <el-col :span="9"
  543. ><span>{{
  544. StationinformationData?.cblpoint?.jr_gf_jzts || 0
  545. }}</span></el-col
  546. >
  547. <el-col :span="7"><span>台</span></el-col>
  548. </el-row>
  549. </div>
  550. <div class="item">
  551. <el-row>
  552. <el-col :span="8"><span>组串式</span></el-col>
  553. <el-col :span="9"
  554. ><span>{{
  555. StationinformationData?.cblpoint?.jr_gf_zcts || 0
  556. }}</span></el-col
  557. >
  558. <el-col :span="7"><span>台</span></el-col>
  559. </el-row>
  560. </div>
  561. </div>
  562. </div>
  563. </div>
  564. </div>
  565. <div class="energy-system-box box3">
  566. <div class="model-bg">
  567. <div class="titles">
  568. <div class="name">节能减排</div>
  569. <div class="unit">(单位: 万吨)</div>
  570. </div>
  571. <div class="save">
  572. <div class="save-item">
  573. <div
  574. class="jnjp-icon svg-icon svg-icon-green"
  575. style="width:5.5vh,height:5.5vh"
  576. >
  577. <svg-icon class="" svgid="svg-煤" />
  578. </div>
  579. <div class="save-value">
  580. {{
  581. Number(
  582. Number(StationinformationData?.qt?.jym) / 10000
  583. ).toFixed(2)
  584. }}
  585. </div>
  586. <div class="save-name">煤</div>
  587. </div>
  588. <div class="save-item">
  589. <div class="jnjp-icon svg-icon svg-icon-green">
  590. <svg-icon class="" svgid="svg-水" />
  591. </div>
  592. <div class="save-value">
  593. {{
  594. Number(
  595. Number(StationinformationData?.qt?.jys) / 10000
  596. ).toFixed(2)
  597. }}
  598. </div>
  599. <div class="save-name">水</div>
  600. </div>
  601. <div class="save-item">
  602. <div class="kind">
  603. <div class="jnjp-icon1 svg-icon svg-icon-green">
  604. <svg-icon class="" svgid="svg-co2" />
  605. </div>
  606. </div>
  607. <div class="save-value">
  608. {{
  609. Number(
  610. Number(StationinformationData?.qt?.co2) / 10000
  611. ).toFixed(2)
  612. }}
  613. </div>
  614. <div class="save-name">二氧化碳</div>
  615. </div>
  616. <div class="save-item">
  617. <div class="kind">
  618. <div class="jnjp-icon1 svg-icon svg-icon-green">
  619. <svg-icon class="" svgid="svg-so2" />
  620. </div>
  621. </div>
  622. <div class="save-value">
  623. {{
  624. Number(
  625. Number(StationinformationData?.qt?.so2) / 10000
  626. ).toFixed(2)
  627. }}
  628. </div>
  629. <div class="save-name">二氧化硫</div>
  630. </div>
  631. </div>
  632. </div>
  633. </div>
  634. </div>
  635. </div>
  636. <!-- 展示当前场站名称 -->
  637. <div class="name-box" v-if="mapName != 'KGDL_FGS'">
  638. <div class="name-box-title">
  639. {{ currentTitle }}
  640. </div>
  641. </div>
  642. <!-- 返回按钮 -->
  643. <div
  644. class="return"
  645. @click="
  646. backMap(
  647. stationList[currents - 1]?.wpId,
  648. stationList[currents - 1]?.name
  649. )
  650. "
  651. v-show="currents != 0"
  652. >
  653. <span class="svg-icon svg-icon-sm">
  654. <svg-icon :svgid="'svg-arrow-dpwn-1'" />
  655. </span>
  656. 返回
  657. </div>
  658. <!-- 地图 -->
  659. <div class="map-img">
  660. <!-- 全国 -->
  661. <SvgMapNX
  662. v-if="mapName === 'KGDL_FGS'"
  663. :homeSuspensionWindowsData="homeSuspensionWindowsData"
  664. :mapList="mapList"
  665. :show="showType"
  666. :data="sourceMap"
  667. @clickLabel="clickLabel"
  668. >
  669. </SvgMapNX>
  670. <!-- 山西 -->
  671. <SX
  672. v-if="mapName !== 'KGDL_FGS'"
  673. :clickFlag="mapName"
  674. :showType="showType"
  675. :companyid="companyid"
  676. :data="StationinformationData"
  677. @clickLabel="clickLabel"
  678. >
  679. </SX>
  680. </div>
  681. <!-- 全国右侧信息 -->
  682. <div
  683. class="right"
  684. v-if="mapName == 'KGDL_FGS'"
  685. :class="activeTab == -1 || activeTab == -2 ? 'top-distance' : ''"
  686. >
  687. <el-dialog
  688. class="dialogs"
  689. width="80%"
  690. v-model="dialogElectric"
  691. :show-close="true"
  692. >
  693. <template #title>
  694. <div class="dialog-title">
  695. <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
  696. <div class="title">{{ showName }}</div>
  697. </div>
  698. </template>
  699. <div class="dialog-body" style="height: 40vh">
  700. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  701. <div class="date">
  702. <div
  703. class="day"
  704. :class="electronType === 'day' ? 'active' : ''"
  705. @click="handleElectricDetail('day', '日发电量', type)"
  706. >
  707. </div>
  708. <div
  709. class="mouth"
  710. :class="electronType === 'month' ? 'active' : ''"
  711. @click="handleElectricDetail('month', '月发电量', type)"
  712. >
  713. </div>
  714. <div
  715. class="year"
  716. :class="electronType === 'year' ? 'active' : ''"
  717. @click="handleElectricDetail('year', '年发电量', type)"
  718. >
  719. </div>
  720. </div>
  721. <BarCharts
  722. :list="barList"
  723. width="100%"
  724. height="45vh"
  725. :ratio="10000"
  726. :showLegend="true"
  727. :top="30"
  728. :units="units"
  729. :interval="electronType === 'day' ? 1 : 0"
  730. :showkey="showkey"
  731. :showName="showName"
  732. :color="colors"
  733. >
  734. </BarCharts>
  735. </div>
  736. </el-dialog>
  737. <Row type="flex" style="margin-bottom: 20px">
  738. <Col :span="24">
  739. <div class="model-bg-new">
  740. <div class="titles">
  741. <div class="name">实时负荷</div>
  742. <div class="unit">(单位: MW)</div>
  743. </div>
  744. <power-review-home :data="powerDataHome" :id="wpId" />
  745. </div>
  746. <!-- @chartClick="showPowerChart" -->
  747. </Col>
  748. </Row>
  749. <Row
  750. type="flex"
  751. style="margin-bottom: 20px"
  752. v-if="activeTab == -1 || activeTab == 0"
  753. >
  754. <Col :span="24">
  755. <div class="model-bg-new-right">
  756. <div class="infos">
  757. <div class="titles">
  758. <div class="amount">
  759. <div class="icon fengji-icon svg-icon svg-icon-white"></div>
  760. <img
  761. class="amount-image"
  762. src="@/assets/png/wind.png"
  763. alt=""
  764. />
  765. <div class="amount-nums">
  766. <text class="num-item">{{
  767. StationinformationData?.cblpoint?.jr_fj_ts
  768. }}</text>
  769. </div>
  770. </div>
  771. <div
  772. v-if="
  773. !(
  774. wpId.includes('FDC') ||
  775. wpId.includes('GC') ||
  776. wpId.includes('GDC')
  777. )
  778. "
  779. class="info-nums"
  780. >
  781. 风电场<text class="nums">{{
  782. StationinformationData?.cblpoint?.jr_fcts
  783. }}</text>
  784. </div>
  785. </div>
  786. <div class="types">
  787. <div class="type-model">
  788. <div class="type-name" style="color: #1d99ff">待机</div>
  789. <div class="type-num">
  790. {{ StationinformationData?.mxztmap?.fd_djnum || 0 }}
  791. </div>
  792. </div>
  793. <div class="type-model">
  794. <div class="type-name" style="color: #05bb4c">运行</div>
  795. <div class="type-num">
  796. {{ StationinformationData?.mxztmap?.fd_yxnum || 0 }}
  797. </div>
  798. </div>
  799. <div class="type-model">
  800. <div class="type-name" style="color: #ba3237">故障</div>
  801. <div class="type-num">
  802. {{ StationinformationData?.mxztmap?.fd_gznum || 0 }}
  803. </div>
  804. </div>
  805. <div class="type-model">
  806. <div class="type-name" style="color: #e17e23">检修</div>
  807. <div class="type-num">
  808. {{ StationinformationData?.mxztmap?.fd_jxnum || 0 }}
  809. </div>
  810. </div>
  811. <div class="type-model">
  812. <div class="type-name" style="color: #c531c7">限电</div>
  813. <div class="type-num">
  814. {{ StationinformationData?.mxztmap?.fd_xdnum || 0 }}
  815. </div>
  816. </div>
  817. <div class="type-model">
  818. <div class="type-name" style="color: #fff">受累</div>
  819. <div class="type-num">
  820. {{ StationinformationData?.mxztmap?.fd_slnum || 0 }}
  821. </div>
  822. </div>
  823. <div class="type-model">
  824. <div class="type-name" style="color: #606769">离线</div>
  825. <div class="type-num">
  826. {{ StationinformationData?.mxztmap?.fd_lxnum || 0 }}
  827. </div>
  828. </div>
  829. </div>
  830. <div class="tabSwitchover">
  831. <div class="unit"><span>(单位: 万kWh)</span></div>
  832. </div>
  833. <div
  834. v-for="(item, index) in ForecastPowerNewHome_fc"
  835. :key="index"
  836. >
  837. <div class="power-charts">
  838. <div class="power-name">{{ item[0].name }}</div>
  839. <div class="power-item">
  840. <div class="power-value">
  841. <span
  842. :style="
  843. item[0].color === 1
  844. ? 'background-color:#4B55AE'
  845. : 'background-color:#05BB4C'
  846. "
  847. ></span>
  848. <span>{{ item[0].total }}</span>
  849. </div>
  850. <list-bar-chart-2-home
  851. :list="item"
  852. height="55px"
  853. width="250px"
  854. @click="
  855. handleElectricDetail(item[0].id, item[0].name, 'fc')
  856. "
  857. />
  858. </div>
  859. </div>
  860. </div>
  861. </div>
  862. </div>
  863. </Col>
  864. </Row>
  865. <Row
  866. type="flex"
  867. style="margin-bottom: 20px"
  868. v-if="activeTab == -2 || activeTab == 0"
  869. >
  870. <Col :span="24">
  871. <div class="model-bg-new-right">
  872. <div class="infos">
  873. <div class="titles">
  874. <div class="amount">
  875. <div class="icon fengji-icon svg-icon svg-icon-white"></div>
  876. <img class="amount-image" src="@/assets/png/sun.png" alt="" />
  877. <div class="amount-nums">
  878. <text class="num-item">{{
  879. Number(
  880. StationinformationData?.cblpoint?.jr_gf_jzts +
  881. StationinformationData?.cblpoint?.jr_gf_zcts
  882. ) || 0
  883. }}</text>
  884. </div>
  885. </div>
  886. <div class="info-nums">
  887. 电站<text class="nums">{{
  888. StationinformationData?.cblpoint?.jr_gfts
  889. }}</text>
  890. </div>
  891. </div>
  892. <div class="types">
  893. <div class="type-model">
  894. <div class="type-name" style="color: #1d99ff">待机</div>
  895. <div class="type-num">
  896. {{ StationinformationData?.mxztmap?.gf_djnum || 0 }}
  897. </div>
  898. </div>
  899. <div class="type-model">
  900. <div class="type-name" style="color: #05bb4c">运行</div>
  901. <div class="type-num">
  902. {{ StationinformationData?.mxztmap?.gf_yxnum || 0 }}
  903. </div>
  904. </div>
  905. <div class="type-model">
  906. <div class="type-name" style="color: #ba3237">故障</div>
  907. <div class="type-num">
  908. {{ StationinformationData?.mxztmap?.gf_gznum || 0 }}
  909. </div>
  910. </div>
  911. <div class="type-model">
  912. <div class="type-name" style="color: #e17e23">检修</div>
  913. <div class="type-num">
  914. {{ StationinformationData?.mxztmap?.gf_jxnum || 0 }}
  915. </div>
  916. </div>
  917. <div class="type-model">
  918. <div class="type-name" style="color: #c531c7">限电</div>
  919. <div class="type-num">
  920. {{ StationinformationData?.mxztmap?.gf_xdnum || 0 }}
  921. </div>
  922. </div>
  923. <div class="type-model">
  924. <div class="type-name" style="color: #fff">受累</div>
  925. <div class="type-num">
  926. {{ StationinformationData?.mxztmap?.gf_slnum || 0 }}
  927. </div>
  928. </div>
  929. <div class="type-model">
  930. <div class="type-name" style="color: #606769">离线</div>
  931. <div class="type-num">
  932. {{ StationinformationData?.mxztmap?.gf_lxnum || 0 }}
  933. </div>
  934. </div>
  935. </div>
  936. <div class="tabSwitchover">
  937. <div class="unit"><span>(单位: 万kWh)</span></div>
  938. </div>
  939. <div
  940. v-for="(item, index) in ForecastPowerNewHome_gf"
  941. :key="index"
  942. >
  943. <div class="power-charts">
  944. <div class="power-name">{{ item[0].name }}</div>
  945. <div class="power-item">
  946. <div class="power-value">
  947. <span
  948. :style="
  949. index % 2 === 0
  950. ? 'background-color:#4B55AE'
  951. : 'background-color:#05BB4C'
  952. "
  953. ></span>
  954. <span>{{ item[0].total }}</span>
  955. </div>
  956. <list-bar-chart-2-home
  957. :list="item"
  958. height="55px"
  959. width="250px"
  960. @click="
  961. handleElectricDetail(item[0].id, item[0].name, 'gf')
  962. "
  963. />
  964. </div>
  965. </div>
  966. </div>
  967. </div>
  968. </div>
  969. </Col>
  970. </Row>
  971. </div>
  972. <div v-if="mapName !== 'KGDL_FGS'">
  973. <!-- 山西右侧信息 -->
  974. <div class="card wind_card">
  975. <el-row>
  976. <el-col v-show="tabShow == 0 || tabShow == -1">
  977. <div class="grid-content">
  978. <div class="img" @click="handleClick('SSPJFS', '实时风速')">
  979. <img
  980. src="@/assets/imgs/pointer.png"
  981. :style="{ transform: windSpeedRota }"
  982. />
  983. <div class="information">
  984. {{ (StationinformationData?.qt?.ssfs).toFixed(2) }}
  985. </div>
  986. <div class="unit">m/s</div>
  987. <p>实时风速</p>
  988. </div>
  989. </div>
  990. </el-col>
  991. <el-col v-show="tabShow == 0 || tabShow == -2">
  992. <div
  993. class="grid-content"
  994. @click="handleClick('RPJGZD', '光照强度')"
  995. >
  996. <div class="img">
  997. <img
  998. src="@/assets/imgs/pointer.png"
  999. :style="{ transform: illuminationRota }"
  1000. />
  1001. <div class="information">
  1002. {{ (StationinformationData?.qt?.gzzs / 1000).toFixed(2) }}
  1003. </div>
  1004. <div class="unit">W/m²</div>
  1005. <p>光照强度</p>
  1006. </div>
  1007. </div>
  1008. </el-col>
  1009. <el-col>
  1010. <div class="grid-content" @click="handleClick('SSZGL', '实际功率')">
  1011. <div class="img">
  1012. <img
  1013. src="@/assets/imgs/pointer.png"
  1014. :style="{ transform: actualPowerRota }"
  1015. />
  1016. <div class="information">
  1017. {{ (StationinformationData?.qt?.sjgl / 1000).toFixed(2) }}
  1018. </div>
  1019. <div class="unit">MW</div>
  1020. <p>实际功率</p>
  1021. </div>
  1022. </div>
  1023. </el-col>
  1024. <el-col>
  1025. <div
  1026. class="grid-content"
  1027. @click="handleClick('SSZLLGL', '理论功率')"
  1028. >
  1029. <div class="img">
  1030. <img
  1031. src="@/assets/imgs/pointer.png"
  1032. :style="{ transform: ideaPowerRota }"
  1033. />
  1034. <div class="information">
  1035. {{ (StationinformationData?.qt?.llgl / 1000).toFixed(2) }}
  1036. </div>
  1037. <div class="unit">MW</div>
  1038. <p>理论功率</p>
  1039. </div>
  1040. </div>
  1041. </el-col>
  1042. <el-col v-show="tabShow == -1">
  1043. <div
  1044. class="grid-content"
  1045. @click="handleClick('FNLYL', '风能利用率')"
  1046. >
  1047. <div class="img">
  1048. <img
  1049. src="@/assets/imgs/pointer.png"
  1050. :style="{ transform: guarantee }"
  1051. />
  1052. <div class="information">
  1053. {{ (StationinformationData?.qt?.fnlyl / 1000).toFixed(2) }}
  1054. </div>
  1055. <div class="unit">%</div>
  1056. <p>风能利用率</p>
  1057. </div>
  1058. </div>
  1059. </el-col>
  1060. <el-col v-show="tabShow == -2">
  1061. <div
  1062. class="grid-content"
  1063. @click="handleClick('FNLYL', '光能利用率')"
  1064. >
  1065. <div class="img">
  1066. <img
  1067. src="@/assets/imgs/pointer.png"
  1068. :style="{ transform: guarantee }"
  1069. />
  1070. <div class="information">
  1071. {{ (StationinformationData?.qt?.fnlyl / 1000).toFixed(2) }}
  1072. </div>
  1073. <div class="unit">%</div>
  1074. <p>光能利用率</p>
  1075. </div>
  1076. </div>
  1077. </el-col>
  1078. </el-row>
  1079. </div>
  1080. <div class="card electric_card">
  1081. <el-header>
  1082. <span class="title"></span>
  1083. <soan class="unit">(单位:万kWh)</soan>
  1084. </el-header>
  1085. <el-row
  1086. style="cursor: pointer"
  1087. v-for="(item, index) in fdlList"
  1088. :key="index"
  1089. @click="handleElectricDetail(item.id, item.title)"
  1090. >
  1091. <el-col :span="4">{{ item.title }}</el-col>
  1092. <el-col :span="14">
  1093. <div class="electric">
  1094. <div
  1095. class="progress_bar"
  1096. :style="{
  1097. width:
  1098. item.value && item.value1
  1099. ? (item.value / 10000 / item.value1) * 100 + '%'
  1100. : '0',
  1101. }"
  1102. >
  1103. <span class="count">{{ (item.value / 10000).toFixed(2) }}</span>
  1104. <span class="img"></span>
  1105. </div>
  1106. </div>
  1107. </el-col>
  1108. <el-col :span="4">{{ item.value1 }}</el-col>
  1109. </el-row>
  1110. <el-row class="summarize">
  1111. <div
  1112. class="summarize-left"
  1113. @click="handleUsingDetail('month', 'yfdl', '月利用小时')"
  1114. >
  1115. <p>月利用小时</p>
  1116. <p>
  1117. <span>
  1118. {{ StationinformationData?.qt?.ylyxs?.toFixed(2) }}
  1119. </span>
  1120. <span>小时</span>
  1121. </p>
  1122. </div>
  1123. <div class="line"></div>
  1124. <div
  1125. class="summarize-right"
  1126. @click="handleUsingDetail('year', 'nfdl', '年利用小时')"
  1127. >
  1128. <p>年利用小时</p>
  1129. <p>
  1130. <span>{{ StationinformationData?.qt?.nlyxs?.toFixed(2) }}</span>
  1131. <span>小时</span>
  1132. </p>
  1133. </div>
  1134. </el-row>
  1135. </div>
  1136. <div class="card station_card">
  1137. <el-row class="card_header" v-if="tabShow == 0 || tabShow == -1">
  1138. <el-col :span="12">
  1139. <img
  1140. src="@/assets/imgs/windmill.png"
  1141. style="display: inline-block"
  1142. />
  1143. <span>{{
  1144. wpId.includes("FDC")
  1145. ? StationinformationData?.station[wpId]?.zjts
  1146. : StationinformationData?.cblpoint?.jr_fj_ts
  1147. }}</span
  1148. >台
  1149. </el-col>
  1150. <el-col :span="12">
  1151. 场站<span>{{
  1152. wpId.includes("FDC")
  1153. ? 1
  1154. : StationinformationData?.cblpoint?.jr_fcts
  1155. }}</span
  1156. >个
  1157. </el-col>
  1158. </el-row>
  1159. <windLightDetial
  1160. v-if="tabShow == -1"
  1161. :dataDetial="StationinformationData?.sbztmap?.fd"
  1162. ></windLightDetial>
  1163. <windlightSimple
  1164. v-if="tabShow == 0"
  1165. :dataSimple="StationinformationData?.sbztmap?.fd"
  1166. />
  1167. <el-row class="card_header" v-if="tabShow == 0 || tabShow == -2">
  1168. <el-col :span="12">
  1169. <img src="@/assets/imgs/gfmill.png" style="display: inline-block" />
  1170. <span>{{
  1171. wpId.includes("GDC")
  1172. ? StationinformationData?.station[wpId]?.jzzjts +
  1173. StationinformationData?.station[wpId]?.zczjts
  1174. : StationinformationData?.cblpoint?.jr_gf_zcts +
  1175. StationinformationData?.cblpoint?.jr_gf_jzts
  1176. }}</span
  1177. >台
  1178. </el-col>
  1179. <el-col :span="12">
  1180. 场站<span>{{
  1181. wpId.includes("GDC")
  1182. ? 1
  1183. : StationinformationData?.cblpoint?.jr_gfts
  1184. }}</span
  1185. >个
  1186. </el-col>
  1187. </el-row>
  1188. <windLightDetial
  1189. v-if="tabShow == -2"
  1190. :dataDetial="StationinformationData?.sbztmap?.fd"
  1191. ></windLightDetial>
  1192. <windlightSimple
  1193. v-if="tabShow == 0"
  1194. :dataSimple="StationinformationData?.sbztmap?.gf"
  1195. />
  1196. </div>
  1197. <!-- 实时负荷弹窗 -->
  1198. <el-dialog
  1199. class="dialogs"
  1200. width="70%"
  1201. v-model="dialogVisible"
  1202. :show-close="true"
  1203. >
  1204. <template #title>
  1205. <div class="dialog-title">
  1206. <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
  1207. <div class="title">{{ showName }}</div>
  1208. </div>
  1209. </template>
  1210. <div class="dialog-body" style="height: 40vh">
  1211. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  1212. <windChartCom
  1213. :windCurveValues="chartsData"
  1214. :CurveTitle="showName"
  1215. height="38vh"
  1216. chartId="windChar"
  1217. />
  1218. </div>
  1219. </el-dialog>
  1220. <!-- 发电量,利用小时弹窗 -->
  1221. <el-dialog
  1222. class="dialogs"
  1223. width="80%"
  1224. v-model="dialogElectric"
  1225. :show-close="true"
  1226. >
  1227. <template #title>
  1228. <div class="dialog-title">
  1229. <img class="dialog-title-img" src="@assets/imgs/dialog-title.png" />
  1230. <div class="title">{{ showName }}</div>
  1231. </div>
  1232. </template>
  1233. <div class="dialog-body" style="height: 40vh">
  1234. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  1235. <div class="date" v-if="showkey === 'electric'">
  1236. <div
  1237. class="day"
  1238. :class="electronType === 'day' ? 'active' : ''"
  1239. @click="handleElectricDetail('day', '日发电量')"
  1240. >
  1241. </div>
  1242. <div
  1243. class="mouth"
  1244. :class="electronType === 'month' ? 'active' : ''"
  1245. @click="handleElectricDetail('month', '月发电量')"
  1246. >
  1247. </div>
  1248. <div
  1249. class="year"
  1250. :class="electronType === 'year' ? 'active' : ''"
  1251. @click="handleElectricDetail('year', '年发电量')"
  1252. >
  1253. </div>
  1254. </div>
  1255. <div class="date" v-if="showkey === 'using'">
  1256. <div
  1257. class="day"
  1258. :class="electronType === 'month' ? 'active' : ''"
  1259. @click="handleUsingDetail('month', 'yfdl', '月利用小时')"
  1260. >
  1261. </div>
  1262. <div
  1263. class="year"
  1264. :class="electronType === 'year' ? 'active' : ''"
  1265. @click="handleUsingDetail('year', 'nfdl', '年利用小时')"
  1266. >
  1267. </div>
  1268. </div>
  1269. <BarCharts
  1270. :list="barList"
  1271. width="100%"
  1272. height="45vh"
  1273. :ratio="10000"
  1274. :showLegend="true"
  1275. :top="30"
  1276. :units="units"
  1277. :interval="electronType === 'day' ? 1 : 0"
  1278. :showkey="showkey"
  1279. :showName="showName"
  1280. :color="colors"
  1281. >
  1282. </BarCharts>
  1283. </div>
  1284. </el-dialog>
  1285. </div>
  1286. </div>
  1287. </template>
  1288. <script>
  1289. import Row from "@/components/coms/grid/row.vue";
  1290. import Col from "@/components/coms/grid/col.vue";
  1291. import PowerReviewHome from "./power-review-home.vue";
  1292. import ListBarChart2Home from "@/components/chart/bar/list-bar-chart2-home.vue";
  1293. //全国地图总览
  1294. import SvgMapNX from "./map/svg-map-nx.vue";
  1295. // 山西
  1296. import SX from "./map/SX.vue";
  1297. import PowerEcharts from "@/components/chart/powerEcharts.vue";
  1298. import HeaderNav from "@/components//headerNav/index.vue";
  1299. import SvgIcon from "../../../components/coms/icon/svg-icon.vue";
  1300. import windLightDetial from "./windLightDetial.vue";
  1301. import windlightSimple from "./windlightSimple.vue";
  1302. import {
  1303. FindRealtimeInfo,
  1304. FindUtilizationhours,
  1305. FindPlanproject,
  1306. } from "@/api/home/home.js";
  1307. import dayjs from "dayjs";
  1308. import windChartCom from "./windChartCom.vue";
  1309. import BarCharts from "./barCharts.vue";
  1310. export default {
  1311. // 名称
  1312. name: "Map",
  1313. // 使用组件
  1314. components: {
  1315. SvgMapNX,
  1316. SX,
  1317. Row,
  1318. Col,
  1319. PowerReviewHome,
  1320. ListBarChart2Home,
  1321. SvgIcon,
  1322. HeaderNav,
  1323. PowerEcharts,
  1324. windLightDetial,
  1325. windlightSimple,
  1326. windChartCom,
  1327. BarCharts,
  1328. },
  1329. props: {
  1330. wpId: { type: String, default: "KGDL_FGS0" },
  1331. homeSuspensionWindowsData: { type: Object, default: () => {} },
  1332. mapList: { type: Array, default: () => [] },
  1333. ForecastPowerNewHome_gf: { type: Array, default: () => [] },
  1334. ForecastPowerNewHome_fc: { type: Array, default: () => [] },
  1335. qyPower: { type: Object, default: () => {} },
  1336. powerDataHome: { type: Object, default: () => {} },
  1337. StationinformationData: { type: Object, default: () => {} },
  1338. CurveValues: { type: Object, default: () => {} },
  1339. },
  1340. mounted() {
  1341. this.fcId = this.wpId;
  1342. this.sourceMap = this.data;
  1343. },
  1344. // 数据
  1345. data() {
  1346. return {
  1347. mapName: "KGDL_FGS",
  1348. switchShow: false, //接入情况弹窗
  1349. fdlList: [], //山西区域实时负荷列表
  1350. penetrateType: 0, //24小时功率曲线开关
  1351. fcId: "", //场站
  1352. showType: "all",
  1353. sourceMap: {},
  1354. activeTab: 0, //当前tab
  1355. currentTitle: "", //当前名称
  1356. currents: 0, //当前层级
  1357. stationList: [
  1358. {
  1359. name: "全部",
  1360. wpId: "KGDL_FGS",
  1361. },
  1362. {
  1363. name: "清洁能源",
  1364. wpId: "SXJ_RGN",
  1365. },
  1366. ],
  1367. flag: false,
  1368. companyid: "",
  1369. companyname: "",
  1370. showName: "",
  1371. dialogVisible: false, //实时负荷弹窗开关
  1372. chartsData: [],
  1373. electronType: "D",
  1374. showkey: "",
  1375. dialogElectric: false, //发电量、利用小时弹窗开关
  1376. units: ["万kWh"],
  1377. ratio: 1,
  1378. colors: ["#1c99ff", "#05BB4C"],
  1379. barList: [
  1380. {
  1381. name: "",
  1382. value: [],
  1383. },
  1384. ],
  1385. type: "fc", //发电量展示类型
  1386. tabShow: 0,
  1387. };
  1388. },
  1389. emits: {
  1390. onEnter: null,
  1391. onBack: null,
  1392. },
  1393. // 函数
  1394. methods: {
  1395. firstRender(activeTab, showType, wpId, name) {
  1396. this.activeTab = activeTab;
  1397. this.tabShow = activeTab;
  1398. this.showType = showType;
  1399. //当wpId是FDC/GDC时,此时点击全部、风电、光伏按钮,展示山西地图及对应的公司信息
  1400. let fcId = wpId;
  1401. if ((wpId.includes("FDC") || wpId.includes("GDC")) && this.flag) {
  1402. if (name != "清洁能源") {
  1403. // 如果公司不是清洁能源,查找当前wpid对应的公司id并赋值给wpId
  1404. for (var key in this.StationinformationData.station) {
  1405. if (key == wpId) {
  1406. fcId = this.StationinformationData.station[key].companyid;
  1407. }
  1408. }
  1409. } else {
  1410. fcId = "SXJ_RGN";
  1411. }
  1412. this.flag = true;
  1413. this.penetrateType = 3;
  1414. this.currents = 1;
  1415. this.mapName =
  1416. this.currents == 0
  1417. ? "KGDL_FGS"
  1418. : name
  1419. ? name
  1420. : this.stationList[this.currents].wpId;
  1421. this.companyid = fcId;
  1422. this.companyname = name;
  1423. this.currentTitle = name;
  1424. }
  1425. this.$emit("mapClicks", fcId, activeTab);
  1426. this.$emit("currentActiveTab", this.penetrateType);
  1427. },
  1428. backMap(wpId, planBtnName) {
  1429. this.penetrateType = this.currents == 0 ? 0 : 3;
  1430. this.currents--;
  1431. this.mapName =
  1432. this.currents == 0 ? "KGDL_FGS" : this.stationList[this.currents].wpId;
  1433. this.currentTitle =
  1434. this.currents == 0
  1435. ? ""
  1436. : this.companyname
  1437. ? this.companyname
  1438. : planBtnName;
  1439. let wpIds =
  1440. this.currents == 0
  1441. ? "KGDL_FGS"
  1442. : this.companyname
  1443. ? this.companyid
  1444. : wpId;
  1445. this.$emit("mapClickBack", wpIds, this.activeTab);
  1446. this.$emit("currentActiveTab", this.penetrateType);
  1447. },
  1448. clickLabel(wpId, planBtnName, penetrateType) {
  1449. this.penetrateType = penetrateType;
  1450. this.currents++;
  1451. if (this.currents > 1) {
  1452. this.currents = 2;
  1453. }
  1454. this.mapName = wpId;
  1455. this.fcId =
  1456. wpId.includes("FDC") || wpId.includes("GDC")
  1457. ? wpId
  1458. : this.companyname
  1459. ? this.companyid
  1460. : wpId;
  1461. this.currentTitle =
  1462. wpId.includes("FDC") || wpId.includes("GDC")
  1463. ? planBtnName
  1464. : this.companyname
  1465. ? this.companyname
  1466. : planBtnName;
  1467. this.tabShow = this.activeTab;
  1468. this.$emit("mapClick", this.fcId, this.activeTab);
  1469. this.tabShow = wpId.includes("FDC") ? -1 : wpId.includes("GDC") ? -2 : 0;
  1470. this.flag = wpId.includes("FDC") || wpId.includes("GDC") ? true : false;
  1471. this.$emit("currentActiveTab", penetrateType);
  1472. },
  1473. handleClick(uniformCode, title) {
  1474. let key = "";
  1475. switch (uniformCode) {
  1476. case "SSPJFS":
  1477. key = "ssfs";
  1478. break;
  1479. case "SSZLLGL":
  1480. key = "llgl";
  1481. break;
  1482. case "SSZGL":
  1483. key = "sjgl";
  1484. break;
  1485. case "FNLYL":
  1486. key = "fnlyl";
  1487. break;
  1488. case "RPJGZD":
  1489. key = "gzzs";
  1490. break;
  1491. }
  1492. FindRealtimeInfo({
  1493. uniformCode,
  1494. wpId:
  1495. this.fcId +
  1496. (this.fcId.includes("FDC") || this.fcId.includes("GDC")
  1497. ? ""
  1498. : this.activeTab),
  1499. }).then(({ data }) => {
  1500. this.dialogVisible = true;
  1501. this.chartsData = data.map((item) => {
  1502. return {
  1503. dateTime: dayjs()
  1504. .startOf("date")
  1505. .add(item.hours, "hour")
  1506. .format("YYYY-MM-DD HH:mm:ss"),
  1507. value: item[key],
  1508. };
  1509. });
  1510. this.showName = title;
  1511. });
  1512. },
  1513. handleUsingDetail(timetype, key, title) {
  1514. let format = timetype == "month" ? "YYYY-MM" : "YYYY";
  1515. this.showkey = "using";
  1516. this.electronType = timetype;
  1517. FindUtilizationhours({
  1518. wpId:
  1519. this.fcId +
  1520. (this.fcId.includes("FDC") || this.fcId.includes("GDC")
  1521. ? ""
  1522. : this.activeTab),
  1523. timetype,
  1524. }).then(({ data }) => {
  1525. this.dialogElectric = true;
  1526. let barList = data.map((item) => {
  1527. if (timetype == "month") {
  1528. return {
  1529. dateTime: dayjs()
  1530. .startOf("year")
  1531. .add(item.hours - 1, "month")
  1532. .format("YYYY-MM"),
  1533. value: item[key],
  1534. };
  1535. } else {
  1536. return {
  1537. dateTime: dayjs()
  1538. .startOf(timetype)
  1539. .subtract(item.hours, timetype)
  1540. .format(format),
  1541. value: item[key],
  1542. };
  1543. }
  1544. });
  1545. if (timetype == "month") {
  1546. this.barList = [
  1547. {
  1548. name: title,
  1549. yAxisIndex: 0,
  1550. value: barList,
  1551. },
  1552. ];
  1553. } else {
  1554. this.barList = [
  1555. {
  1556. name: title,
  1557. yAxisIndex: 0,
  1558. value: barList.reverse(),
  1559. },
  1560. ];
  1561. }
  1562. this.barList = [
  1563. {
  1564. name: title,
  1565. yAxisIndex: 0,
  1566. value: barList,
  1567. },
  1568. ];
  1569. this.showName = title;
  1570. });
  1571. },
  1572. handleElectricDetail(timetype, title, type) {
  1573. let wpId = "";
  1574. if (type) {
  1575. this.type = type;
  1576. type == "fc" ? (wpId = this.fcId + "-1") : (wpId = this.fcId + "-2");
  1577. } else {
  1578. wpId =
  1579. this.fcId +
  1580. (this.fcId.includes("FDC") || this.fcId.includes("GDC")
  1581. ? ""
  1582. : this.activeTab);
  1583. }
  1584. this.dialogElectric = true;
  1585. let format =
  1586. timetype == "day" ? "MM-DD" : timetype == "month" ? "YYYY-MM" : "YYYY";
  1587. this.showkey = "electric";
  1588. this.electronType = timetype;
  1589. FindPlanproject({
  1590. wpId,
  1591. timetype,
  1592. }).then(({ data }) => {
  1593. this.dialogElectric = true;
  1594. let sjdlList = data.map((item) => {
  1595. if (timetype == "month") {
  1596. return {
  1597. dateTime: dayjs()
  1598. .startOf("year")
  1599. .add(item.hours - 1, "month")
  1600. .format("YYYY-MM"),
  1601. value: item.sjdl.toFixed(2),
  1602. };
  1603. } else if (timetype == "year") {
  1604. return {
  1605. dateTime: dayjs()
  1606. .startOf(timetype)
  1607. .subtract(item.hours, timetype)
  1608. .format(format),
  1609. value: item.sjdl.toFixed(2),
  1610. };
  1611. } else {
  1612. return {
  1613. dateTime: dayjs()
  1614. .startOf("month")
  1615. .add(item.hours - 1, "day")
  1616. .format("MM-DD"),
  1617. value: item.sjdl.toFixed(2),
  1618. };
  1619. }
  1620. });
  1621. let jhdlList = data.map((item) => {
  1622. if (timetype == "month") {
  1623. return {
  1624. dateTime: dayjs()
  1625. .startOf("year")
  1626. .add(item.hours - 1, "month")
  1627. .format("YYYY-MM"),
  1628. value: item.jhdl.toFixed(2),
  1629. };
  1630. } else if (timetype == "year") {
  1631. return {
  1632. dateTime: dayjs()
  1633. .startOf(timetype)
  1634. .subtract(item.hours, timetype)
  1635. .format(format),
  1636. value: item.jhdl.toFixed(2),
  1637. };
  1638. } else {
  1639. return {
  1640. dateTime: dayjs()
  1641. .startOf("month")
  1642. .add(item.hours - 1, "day")
  1643. .format("MM-DD"),
  1644. value: item.jhdl.toFixed(2),
  1645. };
  1646. }
  1647. });
  1648. this.barList = [
  1649. {
  1650. name: "实际电量",
  1651. value:
  1652. timetype == "day" || timetype == "month"
  1653. ? sjdlList
  1654. : sjdlList.reverse(),
  1655. },
  1656. {
  1657. name: "计划电量",
  1658. value:
  1659. timetype == "day" || timetype == "month"
  1660. ? jhdlList
  1661. : jhdlList.reverse(),
  1662. },
  1663. ];
  1664. this.showName = title;
  1665. });
  1666. },
  1667. },
  1668. watch: {
  1669. wpId(res) {
  1670. this.fcId = res;
  1671. },
  1672. qyPower(val) {
  1673. if (Object.keys(val).length) {
  1674. let data = val;
  1675. this.fdlList = [
  1676. {
  1677. title: "日发电量",
  1678. id: "day",
  1679. value:
  1680. this.tabShow == 0
  1681. ? data.qy_r_sjdl
  1682. : this.tabShow == -1
  1683. ? data.fd_r_sjdl
  1684. : data.gf_r_sjdl,
  1685. value1:
  1686. this.tabShow == 0
  1687. ? data.qy_r_jhdl
  1688. : this.tabShow == -1
  1689. ? data.fd_r_jhdl
  1690. : data.gf_r_jhdl,
  1691. },
  1692. {
  1693. title: "月发电量",
  1694. id: "month",
  1695. value:
  1696. this.tabShow == 0
  1697. ? data.qy_y_sjdl
  1698. : this.tabShow == -1
  1699. ? data.fd_y_sjdl
  1700. : data.gf_y_sjdl,
  1701. value1:
  1702. this.tabShow == 0
  1703. ? data.qy_y_jhdl
  1704. : this.tabShow == -1
  1705. ? data.fd_y_jhdl
  1706. : data.gf_y_jhdl,
  1707. },
  1708. {
  1709. title: "年发电量",
  1710. id: "year",
  1711. value:
  1712. this.tabShow == 0
  1713. ? data.qy_n_sjdl
  1714. : this.tabShow == -1
  1715. ? data.fd_n_sjdl
  1716. : data.gf_n_sjdl,
  1717. value1:
  1718. this.tabShow == 0
  1719. ? data.qy_n_jhdl
  1720. : this.tabShow == -1
  1721. ? data.fd_n_jhdl
  1722. : data.gf_n_jhdl,
  1723. },
  1724. ];
  1725. }
  1726. },
  1727. data(res) {
  1728. this.sourceMap = res;
  1729. },
  1730. },
  1731. computed: {
  1732. // 实时风速
  1733. windSpeedRota() {
  1734. let count = this.StationinformationData?.qt?.ssfs / 25;
  1735. let result = Number((310 * count + 50).toFixed(0));
  1736. if (result) {
  1737. if (result > 310) {
  1738. return "rotateZ(310deg)";
  1739. } else {
  1740. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  1741. }
  1742. } else {
  1743. return "rotateZ(50deg)";
  1744. }
  1745. },
  1746. // 理论功率
  1747. ideaPowerRota() {
  1748. let zctj =
  1749. this.wpId.includes("FDC") || this.wpId.includes("GDC")
  1750. ? (
  1751. this.StationinformationData?.station[this.wpId]?.zjrl / 1000
  1752. ).toFixed(2)
  1753. : this.StationinformationData?.qt?.zzjrl;
  1754. let count = this.StationinformationData?.qt?.llgl / 1000 / zctj;
  1755. let result = Number((310 * count + 50).toFixed(0));
  1756. if (result) {
  1757. if (result > 310) {
  1758. return "rotateZ(310deg)";
  1759. } else {
  1760. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  1761. }
  1762. } else {
  1763. return "rotateZ(50deg)";
  1764. }
  1765. },
  1766. // 光照指数
  1767. illuminationRota() {
  1768. let count = this.StationinformationData?.qt?.gzzs / 1200;
  1769. let result = Number((310 * count + 50).toFixed(0));
  1770. if (result) {
  1771. if (result > 310) {
  1772. return "rotateZ(310deg)";
  1773. } else {
  1774. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  1775. }
  1776. } else {
  1777. return "rotateZ(50deg)";
  1778. }
  1779. },
  1780. //总保证功率
  1781. guarantee() {
  1782. let count = Number(this.StationinformationData?.qt?.fnlyl) / 100;
  1783. let result = Number((310 * count + 50).toFixed(0));
  1784. if (result) {
  1785. if (result > 310) {
  1786. return "rotateZ(310deg)";
  1787. } else {
  1788. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  1789. }
  1790. } else {
  1791. return "rotateZ(50deg)";
  1792. }
  1793. },
  1794. // 实际功率
  1795. actualPowerRota() {
  1796. let zctj =
  1797. this.wpId.includes("FDC") || this.wpId.includes("GDC")
  1798. ? (
  1799. this.StationinformationData?.station[this.wpId]?.zjrl / 1000
  1800. ).toFixed(2)
  1801. : this.StationinformationData?.qt?.zzjrl;
  1802. let count = this.StationinformationData?.qt?.sjgl / 1000 / zctj;
  1803. let result = Number((310 * count + 50).toFixed(0));
  1804. if (result) {
  1805. if (result > 310) {
  1806. return "rotateZ(310deg)";
  1807. } else {
  1808. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  1809. }
  1810. } else {
  1811. return "rotateZ(50deg)";
  1812. }
  1813. },
  1814. },
  1815. };
  1816. </script>
  1817. <style lang="less">
  1818. ul,
  1819. ul li,
  1820. p {
  1821. margin: 0;
  1822. padding: 0;
  1823. list-style: none;
  1824. }
  1825. .airForceStation {
  1826. position: relative;
  1827. background-color: rgba(3, 5, 9, 0.5);
  1828. padding: 20px;
  1829. // width: 320px;
  1830. margin-bottom: 15px;
  1831. span {
  1832. color: #b1b1b1;
  1833. }
  1834. .title {
  1835. font-size: 18px;
  1836. line-height: 28px;
  1837. margin: 15px 0;
  1838. display: flex;
  1839. align-items: center;
  1840. justify-content: left;
  1841. span {
  1842. color: #fff;
  1843. }
  1844. }
  1845. .collectInstall {
  1846. display: flex;
  1847. margin-bottom: 10px;
  1848. }
  1849. .listItem {
  1850. display: flex;
  1851. margin-bottom: 10px;
  1852. }
  1853. .line {
  1854. display: flex;
  1855. margin-bottom: 10px;
  1856. }
  1857. .name {
  1858. flex: 4;
  1859. }
  1860. .num {
  1861. flex: 3;
  1862. color: #fff;
  1863. font-weight: bold;
  1864. font-size: 19px;
  1865. // text-align: center;
  1866. }
  1867. .unit {
  1868. flex: 1;
  1869. font-size: 14px;
  1870. font-weight: 400;
  1871. color: #999999;
  1872. }
  1873. }
  1874. .piggy-bank {
  1875. width: 100% !important;
  1876. border: 0 !important;
  1877. }
  1878. .float-left {
  1879. float: left;
  1880. }
  1881. .float-right {
  1882. float: right;
  1883. }
  1884. .map {
  1885. position: relative;
  1886. width: 100%;
  1887. height: 100%;
  1888. .light {
  1889. position: fixed;
  1890. z-index: -1;
  1891. width: 100vw;
  1892. height: 100vh;
  1893. top: 0;
  1894. left: 0;
  1895. }
  1896. .back {
  1897. position: fixed;
  1898. z-index: -1;
  1899. width: 100vw;
  1900. height: 100vh;
  1901. top: 0;
  1902. left: 0;
  1903. background: url(../../../assets/background-home.png) no-repeat;
  1904. background-size: 100% 100%;
  1905. }
  1906. .leftBox {
  1907. margin-top: 20px;
  1908. margin-left: 20px;
  1909. .model-bg {
  1910. width: 100%;
  1911. min-height: 135px;
  1912. background-color: rgba(3, 5, 9, 0.5);
  1913. border-radius: 6px;
  1914. display: flex;
  1915. flex-direction: column;
  1916. padding: 1% 5%;
  1917. .titles {
  1918. height: 45px;
  1919. border-bottom: 1px solid #333333;
  1920. display: flex;
  1921. flex-direction: row;
  1922. align-items: center;
  1923. justify-content: space-between;
  1924. .name {
  1925. font-size: 16px;
  1926. color: #ffffff;
  1927. }
  1928. .unit {
  1929. font-size: 12px;
  1930. color: #b1b1b1;
  1931. }
  1932. }
  1933. .save {
  1934. display: flex;
  1935. flex-direction: row;
  1936. align-items: center;
  1937. width: 100%;
  1938. margin: 17px 0;
  1939. .save-item {
  1940. width: 25%;
  1941. display: flex;
  1942. flex-direction: column;
  1943. align-items: center;
  1944. .kind {
  1945. width: 20px;
  1946. height: 22px;
  1947. .kind-img {
  1948. width: 100%;
  1949. height: 100%;
  1950. }
  1951. }
  1952. .save-value {
  1953. font-size: 16px;
  1954. color: #ffffff;
  1955. margin: 10px 0;
  1956. }
  1957. .save-name {
  1958. font-size: 12px;
  1959. color: #b3b3b3;
  1960. }
  1961. }
  1962. }
  1963. }
  1964. .new-home {
  1965. .energy-system-box {
  1966. position: absolute;
  1967. left: 20px;
  1968. width: 400px;
  1969. box-sizing: border-box;
  1970. background-color: rgba(3, 5, 9, 0.5);
  1971. &.box1 {
  1972. top: 288px;
  1973. }
  1974. &.box2 {
  1975. top: 488px;
  1976. }
  1977. &.box3 {
  1978. top: 720px;
  1979. }
  1980. .energy-system-content {
  1981. padding: 5px 5px 15px 5px;
  1982. .title-all {
  1983. margin-left: 5px;
  1984. margin-bottom: 8px;
  1985. }
  1986. .title-all-content {
  1987. color: #05bb4c;
  1988. font-weight: bold;
  1989. font-size: 19px;
  1990. }
  1991. .title-all-title {
  1992. font-size: 13px;
  1993. }
  1994. .title-all-unit {
  1995. font-size: 12px;
  1996. color: #b1b1b1;
  1997. margin-left: 5px;
  1998. }
  1999. .title {
  2000. color: #fff;
  2001. font-size: 18px;
  2002. line-height: 28px;
  2003. margin: 10px 0.5vh;
  2004. text-align: right;
  2005. .title-name {
  2006. float: left;
  2007. }
  2008. }
  2009. .right-content,
  2010. .left-content {
  2011. width: 50%;
  2012. .img-num {
  2013. display: flex;
  2014. justify-content: left;
  2015. align-items: center;
  2016. padding-left: 10px;
  2017. .img {
  2018. margin-right: 10px;
  2019. }
  2020. .num {
  2021. span {
  2022. font-size: 14px;
  2023. font-weight: 400;
  2024. color: #999999;
  2025. }
  2026. span:nth-child(3) {
  2027. font-size: 19px;
  2028. font-weight: bold;
  2029. color: #05bb4c;
  2030. line-height: 27px;
  2031. }
  2032. span:nth-child(4) {
  2033. margin-left: 15px;
  2034. }
  2035. }
  2036. }
  2037. .capacity {
  2038. .item {
  2039. margin-top: 9px;
  2040. .el-row {
  2041. .el-col:nth-child(1) {
  2042. text-align: left;
  2043. font-size: 14px;
  2044. font-weight: 400;
  2045. color: #999999;
  2046. }
  2047. .el-col:nth-child(2) {
  2048. font-size: 16px;
  2049. font-weight: bold;
  2050. color: #ffffff;
  2051. }
  2052. .el-col:nth-child(3) {
  2053. font-size: 14px;
  2054. font-weight: 400;
  2055. color: #999999;
  2056. }
  2057. }
  2058. }
  2059. }
  2060. }
  2061. .left-content {
  2062. }
  2063. .right-content {
  2064. border-left: 1px dashed #4e4040;
  2065. padding-left: 10px;
  2066. }
  2067. }
  2068. }
  2069. .security-day {
  2070. .lineBox {
  2071. display: flex;
  2072. & > div {
  2073. margin-right: 20px;
  2074. }
  2075. margin: 12px 0 15px;
  2076. .num {
  2077. color: @green;
  2078. font-size: 16px;
  2079. margin-bottom: 15px;
  2080. margin: 0 7px;
  2081. }
  2082. .unit {
  2083. font-size: 12px;
  2084. color: #5e6269;
  2085. }
  2086. }
  2087. .text {
  2088. font-size: 20px;
  2089. color: @write;
  2090. }
  2091. .num {
  2092. color: @green;
  2093. font-size: 35px;
  2094. .unit {
  2095. font-size: 24px;
  2096. position: relative;
  2097. margin-left: 0.556vh;
  2098. top: -0.185vh;
  2099. }
  2100. .unit-t {
  2101. font-size: 12px;
  2102. margin-left: 10px;
  2103. }
  2104. }
  2105. .text1 {
  2106. font-size: 14px;
  2107. color: @write;
  2108. }
  2109. .num1 {
  2110. color: @green;
  2111. font-size: 24px;
  2112. margin-bottom: 15px;
  2113. .unit {
  2114. font-size: 12px;
  2115. position: relative;
  2116. margin-left: 0.556vh;
  2117. color: #5e6269;
  2118. }
  2119. }
  2120. }
  2121. }
  2122. //亮
  2123. .new-home-light {
  2124. margin-top: -50px;
  2125. margin-left: 20px;
  2126. .airForceStation {
  2127. position: relative;
  2128. background-color: #d1d6d9;
  2129. padding: 20px;
  2130. width: 320px;
  2131. margin-bottom: 15px;
  2132. span {
  2133. color: #000;
  2134. }
  2135. .title {
  2136. font-size: 18px;
  2137. line-height: 28px;
  2138. margin: 15px 0;
  2139. display: flex;
  2140. align-items: center;
  2141. justify-content: left;
  2142. span {
  2143. color: #000;
  2144. }
  2145. }
  2146. .collectInstall {
  2147. display: flex;
  2148. margin-bottom: 10px;
  2149. }
  2150. .listItem {
  2151. display: flex;
  2152. margin-bottom: 10px;
  2153. }
  2154. .line {
  2155. display: flex;
  2156. margin-bottom: 10px;
  2157. }
  2158. .name {
  2159. flex: 4;
  2160. }
  2161. .num {
  2162. flex: 3;
  2163. color: #000;
  2164. font-weight: bold;
  2165. font-size: 19px;
  2166. // text-align: center;
  2167. }
  2168. .unit {
  2169. flex: 1;
  2170. font-size: 14px;
  2171. font-weight: 400;
  2172. color: #000;
  2173. }
  2174. }
  2175. .piggy-tab-width {
  2176. width: 350px !important;
  2177. }
  2178. .energy-system-box {
  2179. width: 400px;
  2180. box-sizing: border-box;
  2181. margin-bottom: 21px;
  2182. margin-top: 5px;
  2183. background-color: #d1d6d9;
  2184. .model-bg {
  2185. width: 100%;
  2186. min-height: 135px;
  2187. background-color: #d1d6d9;
  2188. border-radius: 6px;
  2189. display: flex;
  2190. flex-direction: column;
  2191. padding: 1% 5%;
  2192. .titles {
  2193. height: 45px;
  2194. border-bottom: 1px solid #333333;
  2195. display: flex;
  2196. flex-direction: row;
  2197. align-items: center;
  2198. justify-content: space-between;
  2199. .name {
  2200. font-size: 16px;
  2201. color: #000;
  2202. }
  2203. .unit {
  2204. font-size: 12px;
  2205. color: #000;
  2206. }
  2207. }
  2208. .save {
  2209. display: flex;
  2210. flex-direction: row;
  2211. align-items: center;
  2212. width: 100%;
  2213. margin: 17px 0;
  2214. .save-item {
  2215. width: 25%;
  2216. display: flex;
  2217. flex-direction: column;
  2218. align-items: center;
  2219. .kind {
  2220. width: 20px;
  2221. height: 22px;
  2222. .kind-img {
  2223. width: 100%;
  2224. height: 100%;
  2225. }
  2226. }
  2227. .save-value {
  2228. font-size: 16px;
  2229. color: #ffffff;
  2230. margin: 10px 0;
  2231. }
  2232. .save-name {
  2233. font-size: 12px;
  2234. color: #b3b3b3;
  2235. }
  2236. }
  2237. }
  2238. }
  2239. .energy-system-bgc {
  2240. padding: 115px;
  2241. width: 100%;
  2242. opacity: 0.3;
  2243. background-color: rgba(83, 98, 104, 0.2);
  2244. }
  2245. .energy-system-content {
  2246. padding: 5px 5px 15px 5px;
  2247. .title-all {
  2248. margin-left: 5px;
  2249. margin-bottom: 8px;
  2250. }
  2251. .title-all-content {
  2252. color: #05bb4c;
  2253. font-weight: bold;
  2254. font-size: 19px;
  2255. }
  2256. .title-all-title {
  2257. font-size: 13px;
  2258. }
  2259. .title-all-unit {
  2260. font-size: 12px;
  2261. color: #000;
  2262. margin-left: 5px;
  2263. }
  2264. .title {
  2265. color: #000;
  2266. font-size: 16px;
  2267. line-height: 28px;
  2268. margin: 10px 0.5vh;
  2269. text-align: right;
  2270. .title-name {
  2271. float: left;
  2272. }
  2273. }
  2274. .right-content,
  2275. .left-content {
  2276. width: 50%;
  2277. .img-num {
  2278. text-align: center;
  2279. display: flex;
  2280. justify-content: center;
  2281. align-items: center;
  2282. .img {
  2283. margin-right: 10px;
  2284. }
  2285. .num {
  2286. span {
  2287. font-size: 14px;
  2288. font-weight: 400;
  2289. color: #000;
  2290. }
  2291. span:nth-child(3) {
  2292. font-size: 19px;
  2293. font-weight: bold;
  2294. color: #05bb4c;
  2295. line-height: 27px;
  2296. }
  2297. span:nth-child(4) {
  2298. margin-left: 15px;
  2299. }
  2300. }
  2301. }
  2302. .capacity {
  2303. .item {
  2304. margin-top: 9px;
  2305. .el-row {
  2306. .el-col:nth-child(1) {
  2307. text-align: center;
  2308. font-size: 14px;
  2309. font-weight: 400;
  2310. color: #000;
  2311. }
  2312. .el-col:nth-child(2) {
  2313. font-size: 16px;
  2314. font-weight: bold;
  2315. color: #05bb4c;
  2316. }
  2317. .el-col:nth-child(3) {
  2318. font-size: 14px;
  2319. font-weight: 400;
  2320. color: #000;
  2321. }
  2322. }
  2323. }
  2324. }
  2325. }
  2326. .left-content {
  2327. }
  2328. .right-content {
  2329. border-left: 1px dashed #4e4040;
  2330. }
  2331. }
  2332. }
  2333. .security-day {
  2334. .lineBox {
  2335. margin: 12px 0 15px;
  2336. .num {
  2337. color: @green;
  2338. font-size: 16px;
  2339. margin-bottom: 15px;
  2340. margin: 0 7px;
  2341. }
  2342. .unit {
  2343. font-size: 12px;
  2344. color: #5e6269;
  2345. }
  2346. }
  2347. .text {
  2348. font-size: 20px;
  2349. color: @write;
  2350. }
  2351. .num {
  2352. color: @green;
  2353. font-size: 35px;
  2354. .unit {
  2355. font-size: 24px;
  2356. position: relative;
  2357. margin-left: 0.556vh;
  2358. top: -0.185vh;
  2359. }
  2360. .unit-t {
  2361. font-size: 12px;
  2362. margin-left: 10px;
  2363. }
  2364. }
  2365. .text1 {
  2366. font-size: 14px;
  2367. color: @write;
  2368. }
  2369. .num1 {
  2370. color: @green;
  2371. font-size: 24px;
  2372. margin-bottom: 15px;
  2373. .unit {
  2374. font-size: 12px;
  2375. position: relative;
  2376. margin-left: 0.556vh;
  2377. color: #5e6269;
  2378. }
  2379. }
  2380. }
  2381. }
  2382. }
  2383. .security-day {
  2384. .text {
  2385. font-size: 24px;
  2386. color: @write;
  2387. }
  2388. .num {
  2389. color: @green;
  2390. font-size: 50px;
  2391. .unit {
  2392. font-size: 24px;
  2393. position: relative;
  2394. margin-left: 0.556vh;
  2395. top: -0.185vh;
  2396. }
  2397. }
  2398. .text1 {
  2399. font-size: 14px;
  2400. color: @write;
  2401. }
  2402. .num1 {
  2403. color: @green;
  2404. font-size: 24px;
  2405. margin-bottom: 15px;
  2406. .unit {
  2407. font-size: 12px;
  2408. position: relative;
  2409. margin-left: 0.556vh;
  2410. color: #5e6269;
  2411. }
  2412. }
  2413. }
  2414. .name-box {
  2415. margin: 1.852vh;
  2416. display: inline-block;
  2417. z-index: 2;
  2418. position: absolute;
  2419. display: flex;
  2420. flex-direction: column;
  2421. top: 200px;
  2422. left: 445px;
  2423. width: 200px;
  2424. .name-box-title {
  2425. font-size: 2.222vh;
  2426. font-weight: 400;
  2427. color: #ffffff;
  2428. line-height: 1;
  2429. cursor: pointer;
  2430. }
  2431. .name-box-period {
  2432. margin-top: 2.222vh;
  2433. .name-box-period-label,
  2434. .name-box-period-value {
  2435. font-size: 1.481vh;
  2436. font-weight: 400;
  2437. line-height: 1;
  2438. }
  2439. .name-box-period-label {
  2440. color: #fefefe;
  2441. }
  2442. .name-box-period-value {
  2443. color: #05bb4c;
  2444. }
  2445. }
  2446. }
  2447. .return {
  2448. position: absolute;
  2449. display: flex;
  2450. z-index: 2;
  2451. align-items: center;
  2452. top: 150px;
  2453. left: 460px;
  2454. width: 110px;
  2455. font-size: @fontsize-l;
  2456. color: fade(@white, 80);
  2457. cursor: pointer;
  2458. border: 1px solid transparent;
  2459. padding: 6px 16px;
  2460. color: #05bb4c;
  2461. border: 1px solid #05bb4c;
  2462. font-size: 22px;
  2463. .svg-icon {
  2464. margin-right: 0.7407vh;
  2465. svg {
  2466. transform: rotate(90deg);
  2467. use {
  2468. transition: all 0.3s;
  2469. fill: @green;
  2470. }
  2471. }
  2472. }
  2473. transition: all 0.3s;
  2474. &:hover {
  2475. color: @green;
  2476. border: 1px solid @green;
  2477. .svg-icon {
  2478. svg {
  2479. use {
  2480. fill: @green;
  2481. }
  2482. }
  2483. }
  2484. }
  2485. }
  2486. .compass {
  2487. position: absolute;
  2488. right: 16px;
  2489. bottom: 32px;
  2490. border-radius: 50%;
  2491. &::after {
  2492. content: "";
  2493. position: absolute;
  2494. top: 4px;
  2495. left: 4px;
  2496. border-radius: 50%;
  2497. width: 36px;
  2498. height: 36px;
  2499. box-shadow: inset 0px -5px 10px 0px @green;
  2500. }
  2501. svg {
  2502. height: 45px;
  2503. width: 45px;
  2504. }
  2505. }
  2506. .map-img {
  2507. // width: calc(100% - 14.815vh);
  2508. width: 100%;
  2509. // height: calc(100% - 14.815vh);
  2510. height: 100%;
  2511. // margin: 7.407vh 0;
  2512. position: absolute;
  2513. z-index: 1;
  2514. top: 0;
  2515. left: 0;
  2516. @keyframes rotate {
  2517. from {
  2518. transform: rotateX(70deg);
  2519. }
  2520. to {
  2521. transform: rotateX(0deg);
  2522. }
  2523. }
  2524. img {
  2525. width: 100%;
  2526. animation: rotate 3s;
  2527. animation-direction: alternate;
  2528. animation-iteration-count: infinite;
  2529. }
  2530. }
  2531. }
  2532. .island {
  2533. position: absolute;
  2534. right: 20vw;
  2535. bottom: 0px;
  2536. }
  2537. .island_light {
  2538. position: absolute;
  2539. right: 21vw;
  2540. bottom: 4vh;
  2541. }
  2542. .clearfix::after {
  2543. content: "";
  2544. clear: both;
  2545. height: 0;
  2546. line-height: 0;
  2547. visibility: hidden;
  2548. display: block;
  2549. }
  2550. .clearfix {
  2551. zoom: 1;
  2552. }
  2553. </style>