map.vue 112 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780
  1. <template>
  2. <div class="map">
  3. <HeaderNav
  4. ref="header"
  5. :wpId="wpId"
  6. :currents="currents"
  7. @firstRender="firstRender"
  8. @typeFlag="typeFlag"
  9. :isShows="false"
  10. />
  11. <!-- 山西左侧信息 -->
  12. <div
  13. v-if="currentTitle != '全国'"
  14. class="sx-left-box"
  15. :style="{ zIndex: dialogShow ? 6 : 5 }"
  16. >
  17. <div class="security-days safe_power" :data-type="$store.state.moreSty">
  18. <div class="text">安全天数:</div>
  19. <div class="num">
  20. <span class="font-num">{{
  21. StationinformationData?.qt?.aqts
  22. ? StationinformationData.qt?.aqts
  23. : "0"
  24. }}</span>
  25. <span class="unit">天</span>
  26. </div>
  27. <div class="security">
  28. <div v-if="wpId.includes('FDC') || wpId.includes('GDC')" class="text">
  29. {{ currentTitle }}资产统计:
  30. </div>
  31. <div v-else-if="tabShow == 0" class="text">资产统计:</div>
  32. <div v-else-if="tabShow == -1" class="text">风电资产统计:</div>
  33. <div v-else-if="tabShow == -2" class="text">光伏资产统计:</div>
  34. <div class="num">
  35. <span class="font-num">
  36. {{
  37. wpId.includes("FDC") || wpId.includes("GDC")
  38. ? (
  39. StationinformationData?.station[wpId]?.zjrl / 1000
  40. ).toFixed(2)
  41. : activeTab == 0
  42. ? StationinformationData?.qt?.zzjrl
  43. : activeTab == -1
  44. ? StationinformationData?.qt?.fdzzjrl
  45. : StationinformationData?.qt?.gfzzjrl
  46. }}
  47. </span>
  48. <span class="unit">MW</span>
  49. </div>
  50. <div class="lineBox">
  51. <div class="fd-rl" v-if="tabShow == 0">
  52. <span class="text">风电</span>
  53. <span class="num font-num">
  54. {{
  55. wpId.includes("FDC")
  56. ? (
  57. StationinformationData?.station[wpId]?.zjrl / 1000
  58. ).toFixed(2)
  59. : StationinformationData?.qt?.fdzzjrl
  60. }}
  61. </span>
  62. <span class="unit">MW</span>
  63. </div>
  64. <div class="gf-rl" v-if="tabShow == 0">
  65. <span class="text">光伏</span>
  66. <span class="font-num">{{
  67. wpId.includes("GDC")
  68. ? (
  69. StationinformationData?.station[wpId]?.zjrl / 1000
  70. ).toFixed(2)
  71. : StationinformationData?.qt?.gfzzjrl
  72. }}</span>
  73. <span class="unit">MW</span>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. <div
  79. class="qjny-info safe_power"
  80. :data-type="$store.state.moreSty"
  81. @mouseenter="switchShow = true"
  82. @mouseleave="switchShow = false"
  83. :style="{ width: tabShow == 0 ? '406px' : 'calc(170px + 20px)' }"
  84. >
  85. <ul>
  86. <li v-show="tabShow == -1 || tabShow == 0">
  87. <div class="imgs">
  88. <img
  89. src="@/assets/home/fc_1.png"
  90. alt=""
  91. v-if="$store.state.moreSty === 'greenSty'"
  92. />
  93. <img src="@/assets/home/fc_b_1.png" alt="" v-else />
  94. </div>
  95. <p class="qty_tit">
  96. 风场数量
  97. <sapn class="qty_value">
  98. {{
  99. wpId.includes("FDC")
  100. ? 1
  101. : StationinformationData?.cblpoint.qjny_fcts
  102. }}</sapn
  103. >
  104. <span class="qty_u">个</span>
  105. </p>
  106. <div class="qty_content">
  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. <p class="qty_imag">
  118. 陆地风机
  119. <span class="qty_val">
  120. {{
  121. wpId.includes("FDC")
  122. ? StationinformationData?.station[wpId]?.zjts
  123. : StationinformationData?.cblpoint.qjny_fj_ts
  124. }} </span
  125. ><span class="qty_unit">台</span>
  126. </p>
  127. <p class="qty_imag">
  128. 海上风机
  129. <span class="qty_val">
  130. {{
  131. wpId.includes("FDC")
  132. ? StationinformationData?.station[wpId]?.hszjts
  133. : StationinformationData?.cblpoint.qjny_hsfj_ts
  134. }} </span
  135. ><span class="qty_unit">台</span>
  136. </p>
  137. </div>
  138. </li>
  139. <li class="line" v-show="tabShow == 0"></li>
  140. <li v-show="tabShow == 0 || tabShow == -2">
  141. <div class="imgs">
  142. <!-- <img src="@/assets/home/gf_1.png" alt="" /> -->
  143. <img
  144. src="@/assets/home/gf_1.png"
  145. alt=""
  146. v-if="$store.state.moreSty === 'greenSty'"
  147. />
  148. <img src="@/assets/home/gf_b_1.png" alt="" v-else />
  149. </div>
  150. <p class="qty_tit">
  151. 光伏数量
  152. <sapn class="qty_value" id="pv">{{
  153. wpId.includes("GDC")
  154. ? 1
  155. : StationinformationData?.cblpoint.qjny_gfts
  156. }}</sapn>
  157. <span class="qty_u">个</span>
  158. </p>
  159. <div class="qty_content">
  160. <p class="qty_imag">
  161. 逆变器
  162. <span class="qty_val">
  163. {{
  164. wpId.includes("GDC")
  165. ? StationinformationData?.station[wpId]?.jzzjts +
  166. StationinformationData?.station[wpId]?.zczjts
  167. : StationinformationData?.cblpoint.qjny_gf_jzts +
  168. StationinformationData?.cblpoint.qjny_gf_zcts
  169. }}
  170. </span>
  171. <span class="qty_unit">台</span>
  172. </p>
  173. <p class="qty_imag">
  174. 集中式<span class="qty_val">
  175. {{
  176. wpId.includes("GDC")
  177. ? StationinformationData?.station[wpId]?.jzzjts
  178. : StationinformationData?.cblpoint.qjny_gf_jzts
  179. }} </span
  180. ><span class="qty_unit">台</span>
  181. </p>
  182. <p class="qty_imag">
  183. 组串式<span class="qty_val">
  184. {{
  185. wpId.includes("GDC")
  186. ? StationinformationData?.station[wpId]?.zczjts
  187. : StationinformationData?.cblpoint.qjny_gf_zcts
  188. }} </span
  189. ><span class="qty_unit">台</span>
  190. </p>
  191. </div>
  192. </li>
  193. </ul>
  194. <div
  195. class="switch-jrqk"
  196. v-show="switchShow"
  197. :data-type="$store.state.moreSty"
  198. >
  199. <div>
  200. <img
  201. src="@/assets/imgs/arrows.png"
  202. v-if="$store.state.moreSty === 'greenSty'"
  203. />
  204. <img src="@/assets/imgs/arrows_b.png" v-else />
  205. 接入情况
  206. </div>
  207. <ul>
  208. <li v-show="tabShow == -1 || tabShow == 0">
  209. <div class="imgs">
  210. <!-- <img src="@/assets/home/fc_1.png" alt="" /> -->
  211. <img
  212. src="@/assets/home/fc_1.png"
  213. alt=""
  214. v-if="$store.state.moreSty === 'greenSty'"
  215. />
  216. <img src="@/assets/home/fc_b_1.png" alt="" v-else />
  217. </div>
  218. <p class="qty_tit">
  219. 风场数量
  220. <sapn class="qty_value">
  221. {{
  222. wpId.includes("FDC")
  223. ? 1
  224. : StationinformationData?.cblpoint?.jr_fcts
  225. }}</sapn
  226. >
  227. <span class="qty_u">个</span>
  228. </p>
  229. <div class="qty_content">
  230. <p class="qty_imag">
  231. 风机台数<span class="qty_val">
  232. {{
  233. wpId.includes("FDC")
  234. ? StationinformationData?.station[wpId]?.zjts
  235. : StationinformationData?.cblpoint?.jr_fj_ts
  236. }} </span
  237. ><span class="qty_unit">台</span>
  238. </p>
  239. <p class="qty_imag">
  240. 陆地风机<span class="qty_val">
  241. {{
  242. wpId.includes("FDC")
  243. ? StationinformationData?.station[wpId]?.zjts
  244. : StationinformationData?.cblpoint?.jr_fj_ts
  245. }} </span
  246. ><span class="qty_unit">台</span>
  247. </p>
  248. <p class="qty_imag">
  249. 海上风机<span class="qty_val">
  250. {{
  251. wpId.includes("FDC")
  252. ? StationinformationData?.station[wpId]?.hszjts
  253. : StationinformationData?.cblpoint?.qjny_hsfj_ts
  254. }} </span
  255. ><span class="qty_unit">台</span>
  256. </p>
  257. </div>
  258. </li>
  259. <li class="line" v-if="tabShow == 0"></li>
  260. <li v-show="tabShow == 0 || tabShow == -2">
  261. <div class="imgs">
  262. <!-- <img src="@/assets/home/gf_1.png" alt="" /> -->
  263. <img
  264. src="@/assets/home/gf_1.png"
  265. alt=""
  266. v-if="$store.state.moreSty === 'greenSty'"
  267. />
  268. <img src="@/assets/home/gf_b_1.png" alt="" v-else />
  269. </div>
  270. <p class="qty_tit">
  271. 光伏数量
  272. <sapn class="qty_value" id="pv">
  273. {{
  274. wpId.includes("GDC")
  275. ? 1
  276. : StationinformationData?.cblpoint?.jr_gfts
  277. }}</sapn
  278. >
  279. <span class="qty_u">个</span>
  280. </p>
  281. <div class="qty_content">
  282. <p class="qty_imag">
  283. 逆变器<span class="qty_val">
  284. {{
  285. wpId.includes("GDC")
  286. ? StationinformationData?.station[wpId]?.jzzjts +
  287. StationinformationData?.station[wpId]?.zczjts
  288. : StationinformationData?.cblpoint.jr_gf_jzts +
  289. StationinformationData?.cblpoint.jr_gf_zcts
  290. }}
  291. </span>
  292. <span class="qty_unit">台</span>
  293. </p>
  294. <p class="qty_imag">
  295. 集中式<span class="qty_val">
  296. {{
  297. wpId.includes("GDC")
  298. ? StationinformationData?.station[wpId]?.jzzjts
  299. : StationinformationData?.cblpoint?.jr_gf_jzts
  300. }} </span
  301. ><span class="qty_unit">台</span>
  302. </p>
  303. <p class="qty_imag">
  304. 组串式<span class="qty_val">
  305. {{
  306. wpId.includes("GDC")
  307. ? StationinformationData?.station[wpId]?.zczjts
  308. : StationinformationData?.cblpoint?.jr_gf_zcts
  309. }} </span
  310. ><span class="qty_unit">台</span>
  311. </p>
  312. </div>
  313. </li>
  314. </ul>
  315. </div>
  316. </div>
  317. <div class="ecoName safe_power">
  318. <p class="ecoTitle">社会贡献<span>万吨/月</span></p>
  319. <ul>
  320. <li class="eco_count">
  321. <div class="svg-icon svg-icon-green">
  322. <svg-icon class="" svgid="svg-煤" />
  323. </div>
  324. <p class="eco_val text-ellipsis">
  325. {{ (StationinformationData?.qt.jym).toFixed(2) }}
  326. </p>
  327. <p class="eco_name">煤</p>
  328. </li>
  329. <li class="eco_count">
  330. <div class="svg-icon svg-icon-green">
  331. <svg-icon class="" svgid="svg-水" />
  332. </div>
  333. <p class="eco_val text-ellipsis">
  334. {{ (StationinformationData?.qt.jys).toFixed(2) }}
  335. </p>
  336. <p class="eco_name">水</p>
  337. </li>
  338. <li class="eco_count">
  339. <div class="kind">
  340. <div class="svg-icon svg-icon-green">
  341. <svg-icon svgid="svg-co2" />
  342. </div>
  343. </div>
  344. <p class="eco_val text-ellipsis">
  345. {{ (StationinformationData?.qt.co2).toFixed(2) }}
  346. </p>
  347. <p class="eco_name">二氧化碳</p>
  348. </li>
  349. <li class="eco_count">
  350. <div class="kind">
  351. <div class="svg-icon svg-icon-green">
  352. <svg-icon svgid="svg-so2" />
  353. </div>
  354. </div>
  355. <p class="eco_val text-ellipsis">
  356. {{ (StationinformationData?.qt.so2).toFixed(2) }}
  357. </p>
  358. <p class="eco_name">二氧化硫</p>
  359. </li>
  360. </ul>
  361. </div>
  362. <div
  363. class="my_echarts safe_power"
  364. v-if="penetrateType == 3"
  365. @dblclick="handleShowCharts(currentTitle)"
  366. >
  367. <power-echarts
  368. :CurveValues="CurveValues"
  369. width="680px"
  370. height="220px"
  371. :unit="'MW'"
  372. :ratio="1000"
  373. :id="'cut-power'"
  374. :orient="'horizontal'"
  375. />
  376. </div>
  377. </div>
  378. <el-dialog
  379. class="dialogs"
  380. width="80%"
  381. top="100px"
  382. v-model="dialogShow"
  383. :show-close="true"
  384. destroy-on-close
  385. >
  386. <template #title>
  387. <div class="dialog-title">
  388. <div class="title">{{ showName }}</div>
  389. </div>
  390. </template>
  391. <div class="dialog-body" style="height: 600px">
  392. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  393. <power-echarts
  394. :id="'show-chart'"
  395. :showTitle="false"
  396. :CurveValues="showCharts"
  397. width="100%"
  398. height="560px"
  399. :unit="'MW'"
  400. :orient="'horizontal'"
  401. />
  402. </div>
  403. </el-dialog>
  404. <!-- 全国左侧信息 -->
  405. <div class="leftBox" v-if="currentTitle == '全国'">
  406. <div
  407. :class="
  408. $store.state.themeName === 'light' ? 'new-home-light' : 'new-home'
  409. "
  410. >
  411. <div class="security-day" :data-type="$store.state.moreSty">
  412. <div v-if="activeTab == 0" class="text">清洁能源产业总装机容量:</div>
  413. <div v-if="activeTab == -1" class="text">
  414. 清洁能源产业风电总装机容量:
  415. </div>
  416. <div v-if="activeTab == -2" class="text">
  417. 清洁能源产业光伏总装机容量:
  418. </div>
  419. <div class="num">
  420. <span class="font-num" v-if="activeTab == 0">{{
  421. StationinformationData?.qt?.zzjrl
  422. }}</span>
  423. <span class="font-num" v-if="activeTab == -1">{{
  424. StationinformationData?.qt?.fdzzjrl
  425. }}</span>
  426. <span class="font-num" v-if="activeTab == -2">{{
  427. StationinformationData?.qt?.gfzzjrl
  428. }}</span>
  429. <span class="unit">MW</span>
  430. </div>
  431. <div class="security">
  432. <div class="lineBox">
  433. <div v-if="activeTab == 0">
  434. <span>风电</span>
  435. <span class="num font-num">{{
  436. StationinformationData?.qt?.fdzzjrl
  437. }}</span>
  438. <span class="unit">MW</span>
  439. </div>
  440. <div v-if="activeTab == 0">
  441. <span>光伏</span>
  442. <span class="num font-num">{{
  443. StationinformationData?.qt?.gfzzjrl
  444. }}</span>
  445. <span class="unit">MW</span>
  446. </div>
  447. </div>
  448. <div class="text">安全天数:</div>
  449. <div class="num">
  450. <span class="font-num">{{
  451. StationinformationData?.qt?.aqts || 0
  452. }}</span>
  453. <span class="unit-t">天</span>
  454. </div>
  455. </div>
  456. </div>
  457. <template v-if="true">
  458. <div
  459. class="energy-system-box box1"
  460. :class="activeTab == -1 || activeTab == -2 ? 'piggy-tab-width' : ''"
  461. v-if="false"
  462. >
  463. <div
  464. class="energy-system-content clearfix"
  465. :data-type="$store.state.moreSty"
  466. >
  467. <div class="title">
  468. <span class="title-name">清洁能源公司</span>
  469. <span class="title-all-title">总装机容量 :</span>
  470. <span class="title-all-content" v-if="activeTab == 0">{{
  471. Number(StationinformationData?.cblpoint?.qjny_zzjrl) || 0
  472. }}</span>
  473. <span class="title-all-content" v-if="activeTab == -1">{{
  474. StationinformationData?.cblpoint?.qjny_fd_zjrl || 0
  475. }}</span>
  476. <span class="title-all-content" v-if="activeTab == -2">{{
  477. StationinformationData?.cblpoint?.qjny_gf_zjrl || 0
  478. }}</span>
  479. <span class="title-all-unit">MW</span>
  480. </div>
  481. <div
  482. class="left-content float-left"
  483. :class="activeTab == -1 ? 'piggy-bank' : ''"
  484. v-if="activeTab == -1 || activeTab == 0"
  485. >
  486. <div class="img-num clearfix">
  487. <div class="img float-left">
  488. <img
  489. src="@/assets/home/fc_1.png"
  490. alt=""
  491. v-if="$store.state.moreSty === 'greenSty'"
  492. />
  493. <img src="@/assets/home/fc_b_1.png" alt="" v-else />
  494. </div>
  495. <div class="num float-left">
  496. <span>风电场数量</span> <br />
  497. <span>{{
  498. StationinformationData?.cblpoint?.qjny_fcts
  499. }}</span>
  500. <span>个</span>
  501. </div>
  502. </div>
  503. <div class="capacity">
  504. <div class="item">
  505. <el-row align="middle">
  506. <el-col :span="8"><span>装机容量</span></el-col>
  507. <el-col :span="9"
  508. ><span>{{
  509. StationinformationData?.cblpoint?.qjny_fd_zjrl
  510. }}</span></el-col
  511. >
  512. <el-col :span="7"><span>MW</span></el-col>
  513. </el-row>
  514. </div>
  515. <!-- <div class="item">
  516. <el-row>
  517. <el-col :span="8"><span>风机台数</span></el-col>
  518. <el-col :span="9"
  519. ><span>{{
  520. StationinformationData?.cblpoint?.qjny_fj_ts
  521. }}</span></el-col
  522. >
  523. <el-col :span="7"><span>台</span></el-col>
  524. </el-row>
  525. </div> -->
  526. </div>
  527. </div>
  528. <div
  529. class="right-content float-left"
  530. :class="activeTab == -2 ? 'piggy-bank' : ''"
  531. v-if="activeTab == -2 || activeTab == 0"
  532. >
  533. <div class="img-num clearfix">
  534. <div class="img float-left">
  535. <img
  536. src="@/assets/home/gf_1.png"
  537. alt=""
  538. v-if="$store.state.moreSty === 'greenSty'"
  539. />
  540. <img src="@/assets/home/gf_b_1.png" alt="" v-else />
  541. </div>
  542. <div class="num float-left">
  543. <span>光伏电站数量</span> <br />
  544. <span>{{
  545. StationinformationData?.cblpoint?.qjny_gfts
  546. }}</span>
  547. <span>个</span>
  548. </div>
  549. </div>
  550. <div class="capacity">
  551. <div class="item">
  552. <el-row>
  553. <el-col :span="8"><span>装机容量</span></el-col>
  554. <el-col :span="9"
  555. ><span>{{
  556. StationinformationData?.cblpoint?.qjny_gf_zjrl
  557. }}</span></el-col
  558. >
  559. <el-col :span="7"><span>MW</span></el-col>
  560. </el-row>
  561. </div>
  562. <!-- <div class="item">
  563. <el-row>
  564. <el-col :span="8"><span>集中式</span></el-col>
  565. <el-col :span="9"
  566. ><span>{{
  567. StationinformationData?.cblpoint?.qjny_gf_jzts
  568. }}</span></el-col
  569. >
  570. <el-col :span="7"><span>台</span></el-col>
  571. </el-row>
  572. </div>
  573. <div class="item">
  574. <el-row>
  575. <el-col :span="8"><span>组串式</span></el-col>
  576. <el-col :span="9"
  577. ><span>{{
  578. StationinformationData?.cblpoint?.qjny_gf_zcts
  579. }}</span></el-col
  580. >
  581. <el-col :span="7"><span>台</span></el-col>
  582. </el-row>
  583. </div> -->
  584. </div>
  585. </div>
  586. </div>
  587. </div>
  588. <div
  589. class="energy-system-box box2"
  590. :class="activeTab == -1 || activeTab == -2 ? 'piggy-tab-width' : ''"
  591. v-if="false"
  592. >
  593. <div
  594. class="energy-system-content clearfix"
  595. :data-type="$store.state.moreSty"
  596. >
  597. <div class="title">
  598. <span class="title-name">系统接入情况</span>
  599. <span class="title-all-title">总装机容量 :</span>
  600. <span class="title-all-content" v-if="activeTab == 0">{{
  601. Number(StationinformationData?.cblpoint?.jr_zzjrl) || 0
  602. }}</span>
  603. <span class="title-all-content" v-if="activeTab == -1">{{
  604. StationinformationData?.cblpoint?.jr_fd_zjrl || 0
  605. }}</span>
  606. <span class="title-all-content" v-if="activeTab == -2">{{
  607. StationinformationData?.cblpoint?.jr_gf_zjrl || 0
  608. }}</span>
  609. <span class="title-all-unit">MW</span>
  610. </div>
  611. <div
  612. class="left-content float-left"
  613. :class="activeTab == -1 ? 'piggy-bank' : ''"
  614. v-if="activeTab == -1 || activeTab == 0"
  615. >
  616. <div class="img-num clearfix">
  617. <div>
  618. <div class="img float-left">
  619. <img
  620. src="@/assets/home/fc_1.png"
  621. alt=""
  622. v-if="$store.state.moreSty === 'greenSty'"
  623. />
  624. <img src="@/assets/home/fc_b_1.png" alt="" v-else />
  625. </div>
  626. <div class="num float-left">
  627. <span>风电场数量</span> <br />
  628. <span>{{
  629. StationinformationData?.cblpoint?.jr_fcts
  630. }}</span>
  631. <span>个</span>
  632. </div>
  633. </div>
  634. </div>
  635. <div class="capacity">
  636. <div class="item">
  637. <el-row>
  638. <el-col :span="8"><span>装机容量</span></el-col>
  639. <el-col :span="9"
  640. ><span>{{
  641. StationinformationData?.cblpoint?.jr_fd_zjrl
  642. }}</span></el-col
  643. >
  644. <el-col :span="7"><span>MW</span></el-col>
  645. </el-row>
  646. </div>
  647. <div class="item">
  648. <el-row>
  649. <el-col :span="8"><span>风机台数</span></el-col>
  650. <el-col :span="9"
  651. ><span>{{
  652. StationinformationData?.cblpoint?.jr_fj_ts
  653. }}</span></el-col
  654. >
  655. <el-col :span="7"><span>台</span></el-col>
  656. </el-row>
  657. </div>
  658. </div>
  659. </div>
  660. <div
  661. class="right-content float-left"
  662. :class="activeTab == -2 ? 'piggy-bank' : ''"
  663. v-if="activeTab == -2 || activeTab == 0"
  664. >
  665. <div class="img-num clearfix">
  666. <div class="img float-left">
  667. <img
  668. src="@/assets/home/gf_1.png"
  669. alt=""
  670. v-if="$store.state.moreSty === 'greenSty'"
  671. />
  672. <img src="@/assets/home/gf_b_1.png" alt="" v-else />
  673. </div>
  674. <div class="num float-left">
  675. <span>光伏电站数量</span> <br />
  676. <span>{{ StationinformationData?.cblpoint?.jr_gfts }}</span>
  677. <span>个</span>
  678. </div>
  679. </div>
  680. <div class="capacity">
  681. <div class="item">
  682. <el-row>
  683. <el-col :span="8"><span>装机容量</span></el-col>
  684. <el-col :span="9"
  685. ><span>{{
  686. StationinformationData?.cblpoint?.jr_gf_zjrl || 0
  687. }}</span></el-col
  688. >
  689. <el-col :span="7"><span>MW</span></el-col>
  690. </el-row>
  691. </div>
  692. <div class="item">
  693. <el-row>
  694. <el-col :span="8"><span>集中式</span></el-col>
  695. <el-col :span="9"
  696. ><span>{{
  697. StationinformationData?.cblpoint?.jr_gf_jzts || 0
  698. }}</span></el-col
  699. >
  700. <el-col :span="7"><span>台</span></el-col>
  701. </el-row>
  702. </div>
  703. <div class="item">
  704. <el-row>
  705. <el-col :span="8"><span>组串式</span></el-col>
  706. <el-col :span="9"
  707. ><span>{{
  708. StationinformationData?.cblpoint?.jr_gf_zcts || 0
  709. }}</span></el-col
  710. >
  711. <el-col :span="7"><span>台</span></el-col>
  712. </el-row>
  713. </div>
  714. </div>
  715. </div>
  716. </div>
  717. </div>
  718. <div class="energy-system-box box3" v-if="false">
  719. <div class="model-bg">
  720. <div class="titles">
  721. <div class="name">节能减排</div>
  722. <div class="unit">(单位: 万吨)</div>
  723. </div>
  724. <div class="save">
  725. <div class="save-item">
  726. <div
  727. class="jnjp-icon svg-icon svg-icon-green"
  728. style="width:20px,height:20px"
  729. >
  730. <svg-icon class="" svgid="svg-煤" />
  731. </div>
  732. <div class="save-value">
  733. {{
  734. Number(Number(StationinformationData?.qt?.jym)).toFixed(2)
  735. }}
  736. </div>
  737. <div class="save-name">煤</div>
  738. </div>
  739. <div class="save-item">
  740. <div class="jnjp-icon svg-icon svg-icon-green">
  741. <svg-icon class="" svgid="svg-水" />
  742. </div>
  743. <div class="save-value">
  744. {{
  745. Number(Number(StationinformationData?.qt?.jys)).toFixed(2)
  746. }}
  747. </div>
  748. <div class="save-name">水</div>
  749. </div>
  750. <div class="save-item">
  751. <div class="kind">
  752. <div class="svg-icon svg-icon-green co2">
  753. <svg-icon class="" svgid="svg-co2" />
  754. </div>
  755. </div>
  756. <div class="save-value">
  757. {{
  758. Number(Number(StationinformationData?.qt?.co2)).toFixed(2)
  759. }}
  760. </div>
  761. <div class="save-name">二氧化碳</div>
  762. </div>
  763. <div class="save-item">
  764. <div class="kind">
  765. <div class="svg-icon svg-icon-green so2">
  766. <svg-icon class="" svgid="svg-so2" />
  767. </div>
  768. </div>
  769. <div class="save-value">
  770. {{
  771. Number(Number(StationinformationData?.qt?.so2)).toFixed(2)
  772. }}
  773. </div>
  774. <div class="save-name">二氧化硫</div>
  775. </div>
  776. </div>
  777. </div>
  778. </div>
  779. <div class="leftZbBox">
  780. <span class="zbTitle">清洁能源公司发电指标</span>
  781. <div class="fTitle">
  782. <span class="name">总装机容量:</span>
  783. <span class="num">{{ zbMap.zjrl }}</span>
  784. <span class="unit">MW</span>
  785. </div>
  786. <div class="tb">
  787. <div class="zbDetailBox">
  788. <div class="item">
  789. <p class="name">月利用小时</p>
  790. <p class="num">{{ zbMap.yllxs }}</p>
  791. <p class="unit">小时</p>
  792. </div>
  793. <div class="item">
  794. <p class="name">年利用小时</p>
  795. <p class="num">{{ zbMap.nllxs }}</p>
  796. <p class="unit">小时</p>
  797. </div>
  798. <div class="item">
  799. <p class="name">日35KV发电量</p>
  800. <p class="num">{{ zbMap.r35kv }}</p>
  801. <p class="unit">万kWh</p>
  802. </div>
  803. <div class="item">
  804. <p class="name">月35KV发电量</p>
  805. <p class="num">{{ zbMap.y35kv }}</p>
  806. <p class="unit">万kWh</p>
  807. </div>
  808. </div>
  809. </div>
  810. <div class="tb">
  811. <div class="zbDetailBox">
  812. <div class="item">
  813. <p class="name">年35KV发电量</p>
  814. <p class="num">{{ zbMap.n35kv }}</p>
  815. <p class="unit">万kWh</p>
  816. </div>
  817. <div class="item">
  818. <p class="name">日上网电量</p>
  819. <p class="num">{{ zbMap.rswdl }}</p>
  820. <p class="unit">万KWh</p>
  821. </div>
  822. <div class="item">
  823. <p class="name">月上网电量</p>
  824. <p class="num">{{ zbMap.yswdl }}</p>
  825. <p class="unit">万KWh</p>
  826. </div>
  827. <div class="item">
  828. <p class="name">年上网电量</p>
  829. <p class="num">{{ zbMap.nswdl }}</p>
  830. <p class="unit">万KWh</p>
  831. </div>
  832. </div>
  833. </div>
  834. </div>
  835. <div class="leftZbBox">
  836. <span class="zbTitle">清洁能源公司损失电量指标</span>
  837. <!-- <div class="fTitle">
  838. <span class="name">总装机容量:</span>
  839. <span class="num">{{ zbMap.zjrl }}</span>
  840. <span class="unit">MW</span>
  841. </div> -->
  842. <div class="tb">
  843. <div class="zbDetailBox">
  844. <div class="item">
  845. <p class="name">日维护损失</p>
  846. <p class="num">{{ zbMap.rwhssdl }}</p>
  847. <p class="unit">万KWh</p>
  848. </div>
  849. <div class="item">
  850. <p class="name">日故障损失</p>
  851. <p class="num">{{ zbMap.rgzssdl }}</p>
  852. <p class="unit">万KWh</p>
  853. </div>
  854. <div class="item">
  855. <p class="name">日性能损失</p>
  856. <p class="num">{{ zbMap.rxnssdl }}</p>
  857. <p class="unit">万KWh</p>
  858. </div>
  859. <div class="item">
  860. <p class="name">月维护损失</p>
  861. <p class="num">{{ zbMap.ywhssdl }}</p>
  862. <p class="unit">万KWh</p>
  863. </div>
  864. <div class="item">
  865. <p class="name">月故障损失</p>
  866. <p class="num">{{ zbMap.ygzssdl }}</p>
  867. <p class="unit">万KWh</p>
  868. </div>
  869. </div>
  870. </div>
  871. <div class="tb">
  872. <div class="zbDetailBox">
  873. <div class="item">
  874. <p class="name">月性能损失</p>
  875. <p class="num">{{ zbMap.yxnssdl }}</p>
  876. <p class="unit">万KWh</p>
  877. </div>
  878. <div class="item">
  879. <p class="name">年维护损失</p>
  880. <p class="num">{{ zbMap.nwhssdl }}</p>
  881. <p class="unit">万KWh</p>
  882. </div>
  883. <div class="item">
  884. <p class="name">年故障损失</p>
  885. <p class="num">{{ zbMap.ngzssdl }}</p>
  886. <p class="unit">万KWh</p>
  887. </div>
  888. <div class="item">
  889. <p class="name">年性能损失</p>
  890. <p class="num">{{ zbMap.nxnssdl }}</p>
  891. <p class="unit">万KWh</p>
  892. </div>
  893. </div>
  894. </div>
  895. </div>
  896. <div class="hover72Power">
  897. <div
  898. id="hover72Powers"
  899. style="width: 100%; height: 100%"
  900. ></div>
  901. </div>
  902. </template>
  903. </div>
  904. </div>
  905. <!-- 展示当前场站名称 -->
  906. <div
  907. class="name-box"
  908. :style="{ zIndex: dialogShow || dialogVisible || dialogElectric ? 2 : 7 }"
  909. v-if="currentTitle != '全国'"
  910. >
  911. <div class="name-box-title">
  912. {{ currentTitle }}
  913. </div>
  914. </div>
  915. <!-- 返回按钮 -->
  916. <div
  917. class="return"
  918. :data-type="$store.state.moreSty"
  919. :style="{ zIndex: dialogShow || dialogVisible || dialogElectric ? 2 : 7 }"
  920. @click="
  921. backMap(
  922. stationList[currents - 1]?.wpId,
  923. stationList[currents - 1]?.name
  924. )
  925. "
  926. v-show="currents != 0"
  927. >
  928. <span class="svg-icon svg-icon-sm">
  929. <svg-icon :svgid="'svg-arrow-dpwn-1'" />
  930. </span>
  931. 返回
  932. </div>
  933. <!-- 地图 -->
  934. <div class="map-img">
  935. <!-- 全国 -->
  936. <SvgMapNX
  937. v-if="currentTitle == '全国'"
  938. :homeSuspensionWindowsData="homeSuspensionWindowsData"
  939. :mapList="mapList"
  940. :show="showType"
  941. :data="StationinformationData"
  942. @clickLabel="clickLabel"
  943. >
  944. </SvgMapNX>
  945. <!-- 山西 -->
  946. <SX
  947. v-if="currentTitle != '全国'"
  948. :showType="showType"
  949. :companyid="companyid"
  950. :data="StationinformationData"
  951. @clickLabel="clickLabel"
  952. >
  953. </SX>
  954. </div>
  955. <!-- 全国右侧信息 -->
  956. <div
  957. class="right"
  958. v-if="currentTitle == '全国'"
  959. :class="activeTab == -1 || activeTab == -2 ? 'top-distance' : ''"
  960. >
  961. <el-dialog
  962. class="dialogs"
  963. width="80%"
  964. top="100px"
  965. v-model="dialogElectric"
  966. :show-close="true"
  967. >
  968. <template #title>
  969. <div class="dialog-title">
  970. <!-- <div class="title">{{ showName }}</div> -->
  971. <div class="title">发电量详情</div>
  972. </div>
  973. </template>
  974. <div class="dialog-body" style="height: 500px">
  975. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  976. <div class="date">
  977. <div
  978. class="day"
  979. :class="electronType === 'day' ? 'active' : ''"
  980. @click="handleElectricDetail('day', '日发电量', type)"
  981. >
  982. </div>
  983. <div
  984. class="mouth"
  985. :class="electronType === 'month' ? 'active' : ''"
  986. @click="handleElectricDetail('month', '月发电量', type)"
  987. >
  988. </div>
  989. <div
  990. class="year"
  991. :class="electronType === 'year' ? 'active' : ''"
  992. @click="handleElectricDetail('year', '年发电量', type)"
  993. >
  994. </div>
  995. </div>
  996. <BarCharts
  997. :list="barList"
  998. width="100%"
  999. height="500px"
  1000. :ratio="10000"
  1001. :showLegend="true"
  1002. :top="30"
  1003. :units="units"
  1004. :interval="electronType === 'day' ? 1 : 0"
  1005. :showkey="showkey"
  1006. :showName="showName"
  1007. :color="colors"
  1008. >
  1009. </BarCharts>
  1010. </div>
  1011. </el-dialog>
  1012. <Row type="flex" style="margin-bottom: 30px">
  1013. <Col :span="24">
  1014. <div class="model-bg-new">
  1015. <div class="titles">
  1016. <div class="name">
  1017. {{ activeTab == 0 ? "风电负荷" : "关键指标" }}
  1018. </div>
  1019. <!-- <div class="unit">(单位: MW)</div> -->
  1020. </div>
  1021. <power-review-home
  1022. :data="powerDataHome"
  1023. :id="wpIds"
  1024. :type="activeTab"
  1025. @chartClick="showPowerChart"
  1026. />
  1027. </div>
  1028. <!-- @chartClick="showPowerChart" -->
  1029. </Col>
  1030. </Row>
  1031. <!-- 风电场 -->
  1032. <Row
  1033. type="flex"
  1034. style="margin-bottom: 30px"
  1035. v-if="activeTab == -1 || activeTab == 0"
  1036. >
  1037. <Col :span="24">
  1038. <div class="model-bg-new-right">
  1039. <div class="infos">
  1040. <div class="titles">
  1041. <div class="amount">
  1042. <div
  1043. class="icon fengji-icon svg-icon svg-icon-white"
  1044. :class="
  1045. $store.state.moreSty === 'greenSty'
  1046. ? 'fengji-icon-box-green'
  1047. : 'fengji-icon-box-blue'
  1048. "
  1049. ></div>
  1050. <img
  1051. class="amount-image"
  1052. src="@/assets/png/wind.png"
  1053. alt=""
  1054. />
  1055. <div class="amount-nums">
  1056. <text class="num-item">{{
  1057. StationinformationData?.cblpoint?.jr_fj_ts
  1058. }}</text>
  1059. </div>
  1060. </div>
  1061. <div
  1062. v-if="
  1063. !(
  1064. wpId.includes('FDC') ||
  1065. wpId.includes('GC') ||
  1066. wpId.includes('GDC')
  1067. )
  1068. "
  1069. class="info-nums"
  1070. >
  1071. 风电场<text class="nums">{{
  1072. StationinformationData?.cblpoint?.jr_fcts
  1073. }}</text>
  1074. </div>
  1075. </div>
  1076. <div class="types">
  1077. <div class="type-model">
  1078. <div class="type-name" style="color: #1d99ff">待机</div>
  1079. <div class="type-num">
  1080. {{ StationinformationData?.mxztmap?.fd_djnum || 0 }}
  1081. </div>
  1082. </div>
  1083. <div class="type-model">
  1084. <div class="type-name" style="color: #05bb4c">运行</div>
  1085. <div class="type-num">
  1086. {{ StationinformationData?.mxztmap?.fd_yxnum || 0 }}
  1087. </div>
  1088. </div>
  1089. <div class="type-model">
  1090. <div class="type-name" style="color: #ba3237">故障</div>
  1091. <div class="type-num">
  1092. {{ StationinformationData?.mxztmap?.fd_gznum || 0 }}
  1093. </div>
  1094. </div>
  1095. <div class="type-model">
  1096. <div class="type-name" style="color: #e17e23">检修</div>
  1097. <div class="type-num">
  1098. {{ StationinformationData?.mxztmap?.fd_jxnum || 0 }}
  1099. </div>
  1100. </div>
  1101. <div class="type-model">
  1102. <div class="type-name" style="color: #c531c7">限电</div>
  1103. <div class="type-num">
  1104. {{ StationinformationData?.mxztmap?.fd_xdnum || 0 }}
  1105. </div>
  1106. </div>
  1107. <div class="type-model">
  1108. <div class="type-name" style="color: #fff">受累</div>
  1109. <div class="type-num">
  1110. {{ StationinformationData?.mxztmap?.fd_slnum || 0 }}
  1111. </div>
  1112. </div>
  1113. <div class="type-model">
  1114. <div class="type-name" style="color: #606769">离线</div>
  1115. <div class="type-num">
  1116. {{ StationinformationData?.mxztmap?.fd_lxnum || 0 }}
  1117. </div>
  1118. </div>
  1119. </div>
  1120. <div class="tabSwitchover">
  1121. <div class="unit"><span>(单位: 万kWh)</span></div>
  1122. </div>
  1123. <div
  1124. v-for="(item, index) in ForecastPowerNewHome_fc"
  1125. :key="index"
  1126. >
  1127. <div class="power-charts">
  1128. <div class="power-name">{{ item[0].name }}</div>
  1129. <div class="power-item">
  1130. <div class="power-value">
  1131. <span
  1132. :style="
  1133. item[0].color === 1
  1134. ? 'background-color:#4B55AE'
  1135. : 'background-color:#05BB4C'
  1136. "
  1137. ></span>
  1138. <span>{{ item[0].total }}</span>
  1139. </div>
  1140. <list-bar-chart-2-home
  1141. :list="item"
  1142. height="55px"
  1143. width="250px"
  1144. @click="
  1145. handleElectricDetail(item[0].id, item[0].name, 'fc')
  1146. "
  1147. />
  1148. </div>
  1149. </div>
  1150. </div>
  1151. </div>
  1152. </div>
  1153. </Col>
  1154. </Row>
  1155. <!-- 光电站 -->
  1156. <Row type="flex" v-if="activeTab == -2 || activeTab == 0">
  1157. <Col :span="24">
  1158. <div class="model-bg-new-right">
  1159. <div class="infos">
  1160. <div class="titles">
  1161. <div class="amount">
  1162. <div
  1163. class="icon fengji-icon svg-icon svg-icon-white"
  1164. :class="
  1165. $store.state.moreSty === 'greenSty'
  1166. ? 'fengji-icon-box-green'
  1167. : 'fengji-icon-box-blue'
  1168. "
  1169. ></div>
  1170. <img
  1171. class="amount-image"
  1172. src="@/assets/png/sy-sun.png"
  1173. alt=""
  1174. />
  1175. <div class="amount-nums">
  1176. <text class="num-item">{{
  1177. Number(
  1178. StationinformationData?.cblpoint?.jr_gf_jzts +
  1179. StationinformationData?.cblpoint?.jr_gf_zcts
  1180. ) || 0
  1181. }}</text>
  1182. </div>
  1183. </div>
  1184. <div class="info-nums">
  1185. 电站<text class="nums">{{
  1186. StationinformationData?.cblpoint?.jr_gfts
  1187. }}</text>
  1188. </div>
  1189. </div>
  1190. <div class="types">
  1191. <div class="type-model">
  1192. <div class="type-name" style="color: #1d99ff">待机</div>
  1193. <div class="type-num">
  1194. {{ StationinformationData?.mxztmap?.gf_djnum || 0 }}
  1195. </div>
  1196. </div>
  1197. <div class="type-model">
  1198. <div class="type-name" style="color: #05bb4c">运行</div>
  1199. <div class="type-num">
  1200. {{ StationinformationData?.mxztmap?.gf_yxnum || 0 }}
  1201. </div>
  1202. </div>
  1203. <div class="type-model">
  1204. <div class="type-name" style="color: #ba3237">故障</div>
  1205. <div class="type-num">
  1206. {{ StationinformationData?.mxztmap?.gf_gznum || 0 }}
  1207. </div>
  1208. </div>
  1209. <div class="type-model">
  1210. <div class="type-name" style="color: #e17e23">检修</div>
  1211. <div class="type-num">
  1212. {{ StationinformationData?.mxztmap?.gf_jxnum || 0 }}
  1213. </div>
  1214. </div>
  1215. <div class="type-model">
  1216. <div class="type-name" style="color: #c531c7">限电</div>
  1217. <div class="type-num">
  1218. {{ StationinformationData?.mxztmap?.gf_xdnum || 0 }}
  1219. </div>
  1220. </div>
  1221. <div class="type-model">
  1222. <div class="type-name" style="color: #fff">受累</div>
  1223. <div class="type-num">
  1224. {{ StationinformationData?.mxztmap?.gf_slnum || 0 }}
  1225. </div>
  1226. </div>
  1227. <div class="type-model">
  1228. <div class="type-name" style="color: #606769">离线</div>
  1229. <div class="type-num">
  1230. {{ StationinformationData?.mxztmap?.gf_lxnum || 0 }}
  1231. </div>
  1232. </div>
  1233. </div>
  1234. <div class="tabSwitchover">
  1235. <div class="unit"><span>(单位: 万kWh)</span></div>
  1236. </div>
  1237. <div
  1238. v-for="(item, index) in ForecastPowerNewHome_gf"
  1239. :key="index"
  1240. >
  1241. <div class="power-charts">
  1242. <div class="power-name">{{ item[0].name }}</div>
  1243. <div class="power-item">
  1244. <div class="power-value">
  1245. <span
  1246. :style="
  1247. index % 2 === 0
  1248. ? 'background-color:#4B55AE'
  1249. : 'background-color:#05BB4C'
  1250. "
  1251. ></span>
  1252. <span>{{ item[0].total }}</span>
  1253. </div>
  1254. <list-bar-chart-2-home
  1255. :list="item"
  1256. height="55px"
  1257. width="250px"
  1258. @click="
  1259. handleElectricDetail(item[0].id, item[0].name, 'gf')
  1260. "
  1261. />
  1262. </div>
  1263. </div>
  1264. </div>
  1265. </div>
  1266. </div>
  1267. </Col>
  1268. </Row>
  1269. </div>
  1270. <!-- 全国实时负荷/关键指标弹窗 -->
  1271. <el-dialog
  1272. class="dialogs"
  1273. width="80%"
  1274. top="120px"
  1275. v-model="dialogGroupRealname"
  1276. :show-close="true"
  1277. destroy-on-close
  1278. >
  1279. <template #title>
  1280. <div class="dialog-title">
  1281. <div class="title">
  1282. {{ currentTitle != "全国" ? currentTitle : "" }}{{ showName }}
  1283. </div>
  1284. </div>
  1285. </template>
  1286. <div class="dialog-body" style="height: 500px">
  1287. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  1288. <windChartCom
  1289. :windCurveValues="groupList"
  1290. :unit="unit"
  1291. :CurveTitle="chartName"
  1292. width="100%"
  1293. height="480px"
  1294. chartId="windChar"
  1295. />
  1296. </div>
  1297. </el-dialog>
  1298. <div class="sx-right-box" v-if="currentTitle != '全国'">
  1299. <!-- 山西右侧信息 -->
  1300. <div class="card wind_card bluecard">
  1301. <power-review-home
  1302. :data="powerDataHome"
  1303. :id="wpIds"
  1304. @chartClick="showPowerChart"
  1305. />
  1306. </div>
  1307. <div class="card electric_card bluecard">
  1308. <el-header>
  1309. <span class="title"></span>
  1310. <soan class="unit">(单位:万kWh)</soan>
  1311. </el-header>
  1312. <el-row class="fdl-wrapper">
  1313. <div
  1314. class="power-div"
  1315. v-for="(item, index) in tabShow == 0
  1316. ? ForecastPowerNewHome_qy
  1317. : tabShow == -1
  1318. ? ForecastPowerNewHome_fc
  1319. : ForecastPowerNewHome_gf"
  1320. :key="index"
  1321. >
  1322. <div class="power-charts">
  1323. <div class="power-name">{{ item[0].name }}</div>
  1324. <div class="power-item">
  1325. <div class="power-value">
  1326. <span
  1327. :style="
  1328. item[0].color === 1
  1329. ? 'background-color:#4B55AE'
  1330. : 'background-color:#05BB4C'
  1331. "
  1332. ></span>
  1333. <span>{{ item[0].total }}</span>
  1334. </div>
  1335. <list-bar-chart-2-home
  1336. :list="item"
  1337. height="55px"
  1338. width="250px"
  1339. @click="handleElectricDetail(item[0].id, item[0].name)"
  1340. />
  1341. </div>
  1342. </div>
  1343. </div>
  1344. </el-row>
  1345. <el-row class="summarize">
  1346. <div
  1347. class="summarize-left"
  1348. @click="handleUsingDetail('month', '月利用小时')"
  1349. >
  1350. <p>月利用小时</p>
  1351. <p>
  1352. <span>
  1353. {{ StationinformationData?.qt?.ylyxs?.toFixed(2) }}
  1354. </span>
  1355. <span>小时</span>
  1356. </p>
  1357. </div>
  1358. <div class="line"></div>
  1359. <div
  1360. class="summarize-right"
  1361. @click="handleUsingDetail('year', '年利用小时')"
  1362. >
  1363. <p>年利用小时</p>
  1364. <p>
  1365. <span>{{ StationinformationData?.qt?.nlyxs?.toFixed(2) }}</span>
  1366. <span>小时</span>
  1367. </p>
  1368. </div>
  1369. </el-row>
  1370. </div>
  1371. <div class="card station_card bluecard">
  1372. <el-row class="card_header" v-if="tabShow == 0 || tabShow == -1">
  1373. <el-col :span="12">
  1374. <img
  1375. src="@/assets/imgs/windmill.png"
  1376. style="display: inline-block"
  1377. />
  1378. <span>{{
  1379. wpId.includes("FDC")
  1380. ? StationinformationData?.station[wpId]?.zjts
  1381. : StationinformationData?.cblpoint?.jr_fj_ts
  1382. }}</span
  1383. >台
  1384. </el-col>
  1385. <el-col :span="12">
  1386. 场站<span>{{
  1387. wpId.includes("FDC")
  1388. ? 1
  1389. : StationinformationData?.cblpoint?.jr_fcts
  1390. }}</span
  1391. >个
  1392. </el-col>
  1393. </el-row>
  1394. <windLightDetial
  1395. v-if="tabShow == -1"
  1396. :dataDetial="StationinformationData?.sbztmap?.fd"
  1397. ></windLightDetial>
  1398. <windlightSimple
  1399. v-if="tabShow == 0"
  1400. :dataSimple="StationinformationData?.sbztmap?.fd"
  1401. />
  1402. <el-row class="card_header" v-if="tabShow == 0 || tabShow == -2">
  1403. <el-col :span="12">
  1404. <img src="@/assets/imgs/gfmill.png" style="display: inline-block" />
  1405. <span>{{
  1406. wpId.includes("GDC")
  1407. ? StationinformationData?.station[wpId]?.jzzjts +
  1408. StationinformationData?.station[wpId]?.zczjts
  1409. : StationinformationData?.cblpoint?.jr_gf_zcts +
  1410. StationinformationData?.cblpoint?.jr_gf_jzts
  1411. }}</span
  1412. >台
  1413. </el-col>
  1414. <el-col :span="12">
  1415. 场站<span>{{
  1416. wpId.includes("GDC")
  1417. ? 1
  1418. : StationinformationData?.cblpoint?.jr_gfts
  1419. }}</span
  1420. >个
  1421. </el-col>
  1422. </el-row>
  1423. <windLightDetial
  1424. v-if="tabShow == -2"
  1425. :dataDetial="StationinformationData?.sbztmap?.gf"
  1426. ></windLightDetial>
  1427. <windlightSimple
  1428. v-if="tabShow == 0"
  1429. :dataSimple="StationinformationData?.sbztmap?.gf"
  1430. />
  1431. </div>
  1432. <!-- 发电量,利用小时弹窗 -->
  1433. <el-dialog
  1434. class="dialogs"
  1435. width="80%"
  1436. top="120px"
  1437. v-model="dialogElectric"
  1438. :show-close="true"
  1439. destroy-on-close
  1440. >
  1441. <template #title>
  1442. <div class="dialog-title">
  1443. <div class="title">{{ currentTitle }}{{ showName }}</div>
  1444. </div>
  1445. </template>
  1446. <div class="dialog-body" style="height: 500px">
  1447. <img class="dialog-img" src="@assets/imgs/dialog.png" />
  1448. <div class="date" v-if="showkey === 'electric'">
  1449. <div
  1450. class="day"
  1451. :class="electronType === 'day' ? 'active' : ''"
  1452. @click="handleElectricDetail('day', '日发电量')"
  1453. >
  1454. </div>
  1455. <div
  1456. class="mouth"
  1457. :class="electronType === 'month' ? 'active' : ''"
  1458. @click="handleElectricDetail('month', '月发电量')"
  1459. >
  1460. </div>
  1461. <div
  1462. class="year"
  1463. :class="electronType === 'year' ? 'active' : ''"
  1464. @click="handleElectricDetail('year', '年发电量')"
  1465. >
  1466. </div>
  1467. </div>
  1468. <div class="date" v-if="showkey === 'using'">
  1469. <div
  1470. class="day"
  1471. :class="electronType === 'month' ? 'active' : ''"
  1472. @click="handleUsingDetail('month', '月利用小时')"
  1473. >
  1474. </div>
  1475. <div
  1476. class="year"
  1477. :class="electronType === 'year' ? 'active' : ''"
  1478. @click="handleUsingDetail('year', '年利用小时')"
  1479. >
  1480. </div>
  1481. </div>
  1482. <BarCharts
  1483. :list="barList"
  1484. height="500px"
  1485. :ratio="10000"
  1486. :showLegend="true"
  1487. :top="30"
  1488. :units="showkey === 'electric' ? '万kWh' : '小时'"
  1489. :interval="electronType === 'day' ? 1 : 0"
  1490. :showkey="showkey"
  1491. :showName="showName"
  1492. :color="colors"
  1493. >
  1494. </BarCharts>
  1495. </div>
  1496. </el-dialog>
  1497. </div>
  1498. <!-- 地图下方表格 -->
  1499. <div class="bTable" v-if="false">
  1500. <table class="table-card">
  1501. <tr>
  1502. <td class="text">装机容量</td>
  1503. <td class="value">{{ zbMap.zjrl }}</td>
  1504. <td class="unit">MW</td>
  1505. </tr>
  1506. <tr>
  1507. <td class="text">月利用小时</td>
  1508. <td class="value">{{ zbMap.yllxs }}</td>
  1509. <td class="unit">小时</td>
  1510. </tr>
  1511. <tr>
  1512. <td class="text">年利用小时</td>
  1513. <td class="value">{{ zbMap.nllxs }}</td>
  1514. <td class="unit">小时</td>
  1515. </tr>
  1516. <tr>
  1517. <td class="text">日35KV发电量</td>
  1518. <td class="value">{{ zbMap.r35kv }}</td>
  1519. <td class="unit">万kWh</td>
  1520. </tr>
  1521. <tr>
  1522. <td class="text">月35KV发电量</td>
  1523. <td class="value">{{ zbMap.y35kv }}</td>
  1524. <td class="unit">万kWh</td>
  1525. </tr>
  1526. <tr>
  1527. <td class="text">年35KV发电量</td>
  1528. <td class="value">{{ zbMap.n35kv }}</td>
  1529. <td class="unit">万kWh</td>
  1530. </tr>
  1531. </table>
  1532. <table class="table-card">
  1533. <tr>
  1534. <td class="text">日上网电量</td>
  1535. <td class="value">{{ zbMap.rswdl }}</td>
  1536. <td class="unit">万kWh</td>
  1537. </tr>
  1538. <tr>
  1539. <td class="text">月上网电量</td>
  1540. <td class="value">{{ zbMap.yswdl }}</td>
  1541. <td class="unit">万kWh</td>
  1542. </tr>
  1543. <tr>
  1544. <td class="text">年上网电量</td>
  1545. <td class="value">{{ zbMap.nswdl }}</td>
  1546. <td class="unit">万kWh</td>
  1547. </tr>
  1548. <tr>
  1549. <td class="text">日维护损失电量</td>
  1550. <td class="value">{{ zbMap.rwhssdl }}</td>
  1551. <td class="unit">万kWh</td>
  1552. </tr>
  1553. <tr>
  1554. <td class="text">日故障损失电量</td>
  1555. <td class="value">{{ zbMap.rgzssdl }}</td>
  1556. <td class="unit">万kWh</td>
  1557. </tr>
  1558. <tr>
  1559. <td class="text">日性能损失电量</td>
  1560. <td class="value">{{ zbMap.rxnssdl }}</td>
  1561. <td class="unit">万kWh</td>
  1562. </tr>
  1563. </table>
  1564. <table class="table-card">
  1565. <tr>
  1566. <td class="text">月维护损失电量</td>
  1567. <td class="value">{{ zbMap.ywhssdl }}</td>
  1568. <td class="unit">万kWh</td>
  1569. </tr>
  1570. <tr>
  1571. <td class="text">月故障损失电量</td>
  1572. <td class="value">{{ zbMap.ygzssdl }}</td>
  1573. <td class="unit">万kWh</td>
  1574. </tr>
  1575. <tr>
  1576. <td class="text">月性能损失电量</td>
  1577. <td class="value">{{ zbMap.yxnssdl }}</td>
  1578. <td class="unit">万kWh</td>
  1579. </tr>
  1580. <tr>
  1581. <td class="text">年维护损失电量</td>
  1582. <td class="value">{{ zbMap.nwhssdl }}</td>
  1583. <td class="unit">万kWh</td>
  1584. </tr>
  1585. <tr>
  1586. <td class="text">年故障损失电量</td>
  1587. <td class="value">{{ zbMap.ngzssdl }}</td>
  1588. <td class="unit">万kWh</td>
  1589. </tr>
  1590. <tr>
  1591. <td class="text">年性能损失电量</td>
  1592. <td class="value">{{ zbMap.nxnssdl }}</td>
  1593. <td class="unit">万kWh</td>
  1594. </tr>
  1595. </table>
  1596. </div>
  1597. </div>
  1598. </template>
  1599. <script>
  1600. import Row from "@/components/coms/grid/row.vue";
  1601. import Col from "@/components/coms/grid/col.vue";
  1602. import PowerReviewHome from "./power-review-home.vue";
  1603. import ListBarChart2Home from "@/components/chart/bar/list-bar-chart2-home.vue";
  1604. //全国地图总览
  1605. import SvgMapNX from "./map/svg-map-nx.vue";
  1606. // 山西
  1607. import SX from "./map/SX.vue";
  1608. import PowerEcharts from "@/components/chart/powerEcharts.vue";
  1609. import HeaderNav from "@/components/headerNav/index.vue";
  1610. import SvgIcon from "../../../components/coms/icon/svg-icon.vue";
  1611. import windLightDetial from "./windLightDetial.vue";
  1612. import windlightSimple from "./windlightSimple.vue";
  1613. import {
  1614. FindRealtimeInfo,
  1615. FindUtilizationhours,
  1616. FindPlanproject,
  1617. FindBasicDataInfo,
  1618. FindPowerInfo,
  1619. FindProjectplan,
  1620. } from "@/api/home/home.js";
  1621. import dayjs from "dayjs";
  1622. import windChartCom from "./windChartCom.vue";
  1623. import BarCharts from "@/views/Home/components/barCharts.vue";
  1624. import dataJson from "./mapdataJson.json";
  1625. import datasvgJson from "./map/svgMapNxJson.json";
  1626. export default {
  1627. // 名称
  1628. name: "Map",
  1629. // 使用组件
  1630. components: {
  1631. SvgMapNX,
  1632. SX,
  1633. Row,
  1634. Col,
  1635. PowerReviewHome,
  1636. ListBarChart2Home,
  1637. SvgIcon,
  1638. HeaderNav,
  1639. PowerEcharts,
  1640. windLightDetial,
  1641. windlightSimple,
  1642. windChartCom,
  1643. BarCharts,
  1644. },
  1645. // 数据
  1646. data() {
  1647. return {
  1648. activeTab: 0, //当前tab
  1649. barList: [
  1650. {
  1651. name: "",
  1652. value: [],
  1653. },
  1654. ], //发电量利用小时柱状图
  1655. currentTitle: "全国", //当前地图名称
  1656. currents: 0, //当前层级
  1657. CurveValues: {
  1658. value: [
  1659. {
  1660. title: "",
  1661. value: [],
  1662. },
  1663. ],
  1664. }, //24小时功率曲线
  1665. companyid: "",
  1666. companyname: "",
  1667. chartsData: [], //实时负荷曲线
  1668. colors: ["#1c99ff", "#05BB4C"],
  1669. dialogVisible: false, //实时负荷弹窗开关
  1670. dialogElectric: false, //发电量、利用小时弹窗开关
  1671. electronType: "day", //日月年切换值
  1672. flag: false, //判断场站id
  1673. ForecastPowerNewHome_fc: [], //全国的风电发电量列表
  1674. ForecastPowerNewHome_gf: [], //全国的光伏发电量列表
  1675. ForecastPowerNewHome_qy: [], //区域发电量列表
  1676. fdlList: [], //山西区域实时负荷列表
  1677. homeSuspensionWindowsData: [], //全国区域所有地区数据
  1678. historyWpId: "", //历史场站id
  1679. mapList: [
  1680. { text: "山西", code: "sxqyxx" },
  1681. { text: "内蒙", code: "nmqyxx" },
  1682. { text: "新疆", code: "xjqyxx" },
  1683. { text: "河北", code: "hbqyxx" },
  1684. { text: "陕西", code: "xsqyxx" },
  1685. { text: "山东", code: "sdqyxx" },
  1686. { text: "西藏", code: "xzqyxx" },
  1687. ],
  1688. penetrateType: 0, //24小时功率曲线开关
  1689. powerDataHome: {},
  1690. qyPower: {},
  1691. ratio: 1,
  1692. showType: "all",
  1693. stationList: [
  1694. {
  1695. name: "全部",
  1696. wpId: "KGDL_FGS",
  1697. },
  1698. {
  1699. name: "山西",
  1700. wpId: "SXJ_RGN",
  1701. },
  1702. ],
  1703. switchShow: false, //接入情况弹窗
  1704. showName: "",
  1705. chartName: "",
  1706. StationinformationData: [],
  1707. showkey: "",
  1708. dialogGroupRealname: false, //全国实时负荷弹窗开关
  1709. groupList: [], //全国实时负荷弹窗数据
  1710. type: "fc", //发电量展示类型
  1711. tabShow: 0,
  1712. timmer: null, // 计时器
  1713. timmer2: null,
  1714. units: ["万kWh"],
  1715. unit: "", //实时负荷弹窗单位
  1716. wpId: "KGDL_FGS",
  1717. wpIds: "KGDL_FGS0",
  1718. dialogShow: false,
  1719. showCharts: {
  1720. value: [
  1721. {
  1722. title: "",
  1723. value: [],
  1724. },
  1725. ],
  1726. },
  1727. zbMap: {
  1728. zjrl: 1204.1,
  1729. yllxs: 200.52,
  1730. nllxs: 755.32,
  1731. r35kv: 540.68,
  1732. y35kv: 24144.83,
  1733. n35kv: 100948.37,
  1734. rswdl: 534.91,
  1735. yswdl: 23733.96,
  1736. nswdl: 89330.55,
  1737. rwhssdl: 10.57,
  1738. rgzssdl: 1.25,
  1739. rxnssdl: 105.72,
  1740. ywhssdl: 375.94,
  1741. ygzssdl: 265.72,
  1742. yxnssdl: 3519.21,
  1743. nwhssdl: 609.71,
  1744. ngzssdl: 406.73,
  1745. nxnssdl: 5499.68,
  1746. },
  1747. };
  1748. },
  1749. emits: {
  1750. onEnter: null,
  1751. onBack: null,
  1752. },
  1753. mounted() {
  1754. this.StationinformationData = dataJson.StationinformationData;
  1755. this.powerDataHome = dataJson.powerDataHome;
  1756. this.CurveValues = dataJson.Powertrend.value;
  1757. this.barList = [
  1758. {
  1759. name: "时间",
  1760. value: [
  1761. {
  1762. dateTime: "09-09 02:00:00",
  1763. },
  1764. {
  1765. dateTime: "09-10 02:00:00",
  1766. },
  1767. {
  1768. dateTime: "09-11 02:00:00",
  1769. },
  1770. {
  1771. dateTime: "09-12 02:00:00",
  1772. },
  1773. {
  1774. dateTime: "09-13 02:00:00",
  1775. },
  1776. {
  1777. dateTime: "09-14 02:00:00",
  1778. },
  1779. {
  1780. dateTime: "09-15 02:00:00",
  1781. },
  1782. {
  1783. dateTime: "09-16 02:00:00",
  1784. },
  1785. ],
  1786. },
  1787. {
  1788. name: "测试1",
  1789. value: [147, 258, 369, 123, 456, 789, 159, 357],
  1790. },
  1791. {
  1792. name: "测试2",
  1793. value: [47, 28, 69, 23, 46, 79, 59, 57],
  1794. },
  1795. ];
  1796. this.$nextTick(() => {
  1797. this.initPageData({
  1798. data: {
  1799. "72time": dataJson["72time"],
  1800. },
  1801. });
  1802. });
  1803. },
  1804. // 函数
  1805. methods: {
  1806. initPageData(res) {
  1807. let that = this;
  1808. const theme = sessionStorage.getItem("theme") === "true" ? true : false;
  1809. if (res && res.data) {
  1810. // 72小时功率曲线
  1811. if (res.data["72time"] && res.data["72time"].length > 0) {
  1812. let xAxis = [];
  1813. let seriesSpeed = [];
  1814. let seriesGl = [];
  1815. let seriesSJ = [];
  1816. let seriesYc = [];
  1817. res.data["72time"].forEach((it) => {
  1818. xAxis.push(dayjs(it.time).format("MM-DD HH:mm"));
  1819. seriesSpeed.push(it.speed);
  1820. seriesGl.push(it.expectedpower);
  1821. seriesSJ.push(it.power);
  1822. seriesYc.push(it.predictedpower);
  1823. });
  1824. let series = [
  1825. {
  1826. name: "平均风速",
  1827. data: seriesSpeed,
  1828. yAxisIndex: 1,
  1829. type: "line",
  1830. symbol: "none",
  1831. },
  1832. {
  1833. name: "理论功率",
  1834. data: seriesGl,
  1835. type: "line",
  1836. symbol: "none",
  1837. yAxisIndex: 0,
  1838. },
  1839. {
  1840. name: "实际功率",
  1841. data: seriesSJ,
  1842. type: "line",
  1843. symbol: "none",
  1844. yAxisIndex: 0,
  1845. },
  1846. {
  1847. name: "预测功率",
  1848. data: seriesYc,
  1849. type: "line",
  1850. symbol: "none",
  1851. yAxisIndex: 0,
  1852. },
  1853. ];
  1854. const allPowerData = seriesGl.concat(seriesSJ, seriesYc);
  1855. const powerMin = Math.min(...allPowerData);
  1856. const powerMax = Math.max(...allPowerData);
  1857. const windSpeedMin = Math.min(...seriesSpeed);
  1858. const windSpeedMax = Math.max(...seriesSpeed);
  1859. const splitNumber = 4;
  1860. that.getPowerLine(
  1861. xAxis,
  1862. series,
  1863. powerMin,
  1864. powerMax,
  1865. windSpeedMin,
  1866. windSpeedMax,
  1867. splitNumber
  1868. );
  1869. }
  1870. }
  1871. },
  1872. getPowerLine(
  1873. xAxis,
  1874. series,
  1875. powerMin,
  1876. powerMax,
  1877. windSpeedMin,
  1878. windSpeedMax,
  1879. splitNumber
  1880. ) {
  1881. const theme = this.$store.state.themeName === "dark" ? true : false;
  1882. let myChart;
  1883. let legendState = {};
  1884. if (this.chart72Options?.getOption) {
  1885. legendState = this.chart72Options.getOption().legend[0].selected;
  1886. }
  1887. let option = {
  1888. animation: true,
  1889. backgroundColor: "rgba(3, 5, 9, 0.75)",
  1890. title: {
  1891. text: "风速功率曲线",
  1892. left: "5px",
  1893. top: "5px",
  1894. textStyle: {
  1895. fontSize: "16",
  1896. fontWeight: 400,
  1897. color: "#fff",
  1898. },
  1899. },
  1900. tooltip: {
  1901. trigger: "axis",
  1902. },
  1903. color: ["#7981AF", "#1C99FF", "#E57F25", "#f25656"],
  1904. legend: {
  1905. right: "5",
  1906. top: "5",
  1907. itemWidth: 5,
  1908. itemHeight: 5,
  1909. data: ["平均风速", "理论功率", "实际功率", "预测功率"],
  1910. textStyle: {
  1911. color: "#fff",
  1912. },
  1913. selected: legendState,
  1914. },
  1915. grid: {
  1916. left: "2%",
  1917. right: "2%",
  1918. bottom: "5%",
  1919. height: "110px",
  1920. containLabel: true,
  1921. },
  1922. xAxis: {
  1923. type: "category",
  1924. boundaryGap: false,
  1925. data: xAxis,
  1926. axisLine: {
  1927. lineStyle: {
  1928. color: "#fff",
  1929. },
  1930. },
  1931. },
  1932. yAxis: [
  1933. {
  1934. type: "value",
  1935. splitLine: {
  1936. lineStyle: {
  1937. color: "#fff",
  1938. type: "dashed", // 修改为虚线
  1939. opacity: 0,
  1940. },
  1941. },
  1942. name: "单位:MW",
  1943. axisLine: {
  1944. lineStyle: {
  1945. color: "#fff",
  1946. },
  1947. },
  1948. min: powerMin,
  1949. max: powerMax, // 动态设置最大值
  1950. interval: parseFloat(
  1951. ((powerMax - powerMin) / splitNumber).toFixed(4)
  1952. ),
  1953. splitNumber,
  1954. axisLabel: {
  1955. formatter(value) {
  1956. return parseInt(value);
  1957. },
  1958. },
  1959. },
  1960. {
  1961. type: "value",
  1962. splitLine: {
  1963. lineStyle: {
  1964. color: "#fff",
  1965. type: "dashed", // 修改为虚线
  1966. opacity: 0.2,
  1967. },
  1968. },
  1969. name: "单位:m/s",
  1970. axisLine: {
  1971. lineStyle: {
  1972. color: "#fff",
  1973. },
  1974. },
  1975. min: windSpeedMin,
  1976. max: windSpeedMax, // 动态设置最大值
  1977. splitNumber,
  1978. interval: parseFloat(
  1979. ((windSpeedMax - windSpeedMin) / splitNumber).toFixed(4)
  1980. ),
  1981. axisLabel: {
  1982. formatter(value) {
  1983. return parseFloat(value.toFixed(1));
  1984. },
  1985. },
  1986. },
  1987. ],
  1988. series: series,
  1989. };
  1990. // 基于准备好的dom,初始化echarts实例
  1991. let dom = document.getElementById("hover72Powers");
  1992. dom && dom.removeAttribute("_echarts_instance_");
  1993. myChart = this.$echarts.init(dom);
  1994. this.chart72Options = myChart;
  1995. myChart.setOption(option);
  1996. window.addEventListener("resize", () => {
  1997. myChart.resize();
  1998. });
  1999. },
  2000. //放大24小时功率曲线
  2001. handleShowCharts(title) {
  2002. // console.log(title);
  2003. this.showCharts = this.CurveValues;
  2004. this.showName = `${title}24小时功率预测曲线`;
  2005. this.dialogShow = true;
  2006. },
  2007. // 点击地图展示类型
  2008. mapClick(wpId, activeTab) {
  2009. clearInterval(this.timmer);
  2010. clearInterval(this.timmer2);
  2011. this.timmer = null;
  2012. this.timmer2 = null;
  2013. this.activeTab = activeTab;
  2014. this.wpId = wpId;
  2015. this.wpIds =
  2016. wpId.includes("FDC") || wpId.includes("GDC") ? wpId : wpId + activeTab;
  2017. // this.requestData();
  2018. this.requestMockData();
  2019. this.findProjectPlan();
  2020. this.timmer2 = setInterval(() => {
  2021. this.findProjectPlan(); //发电量
  2022. if (this.penetrateType == 3) {
  2023. this.getData(this.wpIds); //24小时功率曲线
  2024. }
  2025. }, 15 * 60 * 1000);
  2026. },
  2027. mapClicks(wpId, activeTab) {
  2028. this.historyWpId = wpId;
  2029. this.mapClick(wpId, activeTab);
  2030. },
  2031. mapClickBack(wpId, activeTab) {
  2032. this.historyWpId = wpId;
  2033. this.activeTab = activeTab;
  2034. this.mapClick(this.historyWpId, activeTab);
  2035. },
  2036. currentActiveTab(penetrateType) {
  2037. this.penetrateType = penetrateType;
  2038. if (penetrateType === 3) {
  2039. this.getData(this.wpIds);
  2040. }
  2041. },
  2042. // 请求服务
  2043. requestMockData() {
  2044. this.homeSuspensionWindowsData = datasvgJson.homeSuspensionWindowsData;
  2045. },
  2046. requestData() {
  2047. FindBasicDataInfo({ wpId: this.wpIds }).then(({ data }) => {
  2048. this.StationinformationData = data;
  2049. if (Object.keys(data).length) {
  2050. let mapInfos = [];
  2051. this.mapList.forEach((item) => {
  2052. for (var key in data.sytc) {
  2053. if (item.code == key) {
  2054. data.sytc[key].name = item.text;
  2055. mapInfos.push({ ...data.sytc[key] });
  2056. }
  2057. }
  2058. });
  2059. mapInfos.forEach((element) => {
  2060. element.industryState = true;
  2061. element.companyState = true;
  2062. if (element.name == "山西") {
  2063. if (!Object.hasOwn(element, "sxgszzjrl")) {
  2064. element.companyState = false;
  2065. }
  2066. if (!Object.hasOwn(element, "sxcyzzjrl")) {
  2067. element.industryState = false;
  2068. }
  2069. this.homeSuspensionWindowsData.sxqyxx = { ...element };
  2070. } else if (element.name == "新疆") {
  2071. if (!Object.hasOwn(element, "xjgszzjrl")) {
  2072. element.companyState = false;
  2073. }
  2074. if (!Object.hasOwn(element, "xjcyzzjrl")) {
  2075. element.industryState = false;
  2076. }
  2077. this.homeSuspensionWindowsData.xjqyxx = { ...element };
  2078. } else if (element.name == "内蒙") {
  2079. if (!Object.hasOwn(element, "nmgszzjrl")) {
  2080. element.companyState = false;
  2081. }
  2082. if (!Object.hasOwn(element, "nmcyzzjrl")) {
  2083. element.industryState = false;
  2084. }
  2085. this.homeSuspensionWindowsData.nmqyxx = { ...element };
  2086. } else if (element.name == "西藏") {
  2087. if (!Object.hasOwn(element, "xzgszzjrl")) {
  2088. element.companyState = false;
  2089. }
  2090. if (!Object.hasOwn(element, "xzcyzzjrl")) {
  2091. element.industryState = false;
  2092. }
  2093. this.homeSuspensionWindowsData.xzqyxx = { ...element };
  2094. } else if (element.name == "山东") {
  2095. if (!Object.hasOwn(element, "sdgszzjrl")) {
  2096. element.companyState = false;
  2097. }
  2098. if (!Object.hasOwn(element, "sdcyzzjrl")) {
  2099. element.industryState = false;
  2100. }
  2101. this.homeSuspensionWindowsData.sdqyxx = { ...element };
  2102. } else if (element.name == "陕西") {
  2103. if (!Object.hasOwn(element, "xsgszzjrl")) {
  2104. element.companyState = false;
  2105. }
  2106. if (!Object.hasOwn(element, "xscyzzjrl")) {
  2107. element.industryState = false;
  2108. }
  2109. this.homeSuspensionWindowsData.xsqyxx = { ...element };
  2110. } else if (element.name == "河北") {
  2111. if (!Object.hasOwn(element, "hbgszzjrl")) {
  2112. element.companyState = false;
  2113. }
  2114. if (!Object.hasOwn(element, "hbcyzzjrl")) {
  2115. element.industryState = false;
  2116. }
  2117. this.homeSuspensionWindowsData.hbqyxx = { ...element };
  2118. }
  2119. });
  2120. if (this.tabShow == -1) {
  2121. this.powerDataHome = [
  2122. {
  2123. title: "实时风速",
  2124. value: (data?.qt?.ssfs).toFixed(2),
  2125. dialogTitle: "实时风速",
  2126. max: 3000,
  2127. unit: "m/s",
  2128. },
  2129. {
  2130. title: "实际功率",
  2131. value: (data?.qt?.fdsjgl).toFixed(2),
  2132. dialogTitle: "实际功率",
  2133. max: 3000,
  2134. unit: "MW",
  2135. },
  2136. {
  2137. title: "风能利用率",
  2138. value: (data?.qt?.fnlyl).toFixed(2),
  2139. dialogTitle: "风能利用率",
  2140. max: 100,
  2141. unit: "%",
  2142. },
  2143. ];
  2144. } else if (this.tabShow == 0) {
  2145. if (this.currentTitle != "全国") {
  2146. if (this.currentTitle.includes("风电场")) {
  2147. this.powerDataHome = [
  2148. {
  2149. title: "实时风速",
  2150. value: (data?.qt?.ssfs).toFixed(2),
  2151. dialogTitle: "实时风速",
  2152. max: 3000,
  2153. unit: "m/s",
  2154. },
  2155. {
  2156. title: "实际功率",
  2157. value: (data?.qt?.fdsjgl).toFixed(2),
  2158. dialogTitle: "实际功率",
  2159. max: 3000,
  2160. unit: "MW",
  2161. },
  2162. {
  2163. title: "风能利用率",
  2164. value: (data?.qt?.fnlyl).toFixed(2),
  2165. dialogTitle: "风能利用率",
  2166. max: 100,
  2167. unit: "%",
  2168. },
  2169. ];
  2170. } else if (this.currentTitle.includes("电站")) {
  2171. this.powerDataHome = [
  2172. {
  2173. title: "光照强度",
  2174. value: (data?.qt?.gzzs).toFixed(2),
  2175. dialogTitle: "光照强度",
  2176. max: 3000,
  2177. unit: "W/m²",
  2178. },
  2179. {
  2180. title: "实际功率",
  2181. value: (data?.qt?.sjgl).toFixed(2),
  2182. dialogTitle: "实际功率",
  2183. max: 3000,
  2184. unit: "MW",
  2185. },
  2186. {
  2187. title: "光能利用率",
  2188. value: (data?.qt?.fnlyl).toFixed(2),
  2189. dialogTitle: "光能利用率",
  2190. max: 100,
  2191. unit: "%",
  2192. },
  2193. ];
  2194. } else {
  2195. this.powerDataHome = [
  2196. {
  2197. title: "实时风速",
  2198. value: (data?.qt?.ssfs).toFixed(2),
  2199. dialogTitle: "实时风速",
  2200. max: 3000,
  2201. unit: "m/s",
  2202. },
  2203. {
  2204. title: "光照强度",
  2205. value: (data?.qt?.gzzs).toFixed(2),
  2206. dialogTitle: "光照强度",
  2207. max: 3000,
  2208. unit: "W/m²",
  2209. },
  2210. {
  2211. title: "实际功率",
  2212. value: (data?.qt?.sjgl).toFixed(2),
  2213. dialogTitle: "实际功率",
  2214. max: 3000,
  2215. unit: "MW",
  2216. },
  2217. ];
  2218. }
  2219. } else {
  2220. this.powerDataHome = [
  2221. {
  2222. title: "清洁能源",
  2223. value: (data?.qt?.sjgl).toFixed(2),
  2224. dialogTitle: "清洁能源实时功率详情",
  2225. max: 3000,
  2226. unit: "MW",
  2227. },
  2228. {
  2229. title: "风电",
  2230. value: (data?.qt?.fdsjgl).toFixed(2),
  2231. dialogTitle: "风电实时功率详情",
  2232. max: 3000,
  2233. unit: "MW",
  2234. },
  2235. {
  2236. title: "光伏",
  2237. value: (data?.qt?.gfsjgl).toFixed(2),
  2238. dialogTitle: "光伏实时功率详情",
  2239. max: 3000,
  2240. unit: "MW",
  2241. },
  2242. ];
  2243. }
  2244. } else if (this.tabShow == -2) {
  2245. this.powerDataHome = [
  2246. {
  2247. title: "光照强度",
  2248. value: (data?.qt?.gzzs).toFixed(2),
  2249. dialogTitle: "光照强度",
  2250. max: 3000,
  2251. unit: "W/m²",
  2252. },
  2253. {
  2254. title: "实际功率",
  2255. value: (data?.qt?.sjgl).toFixed(2),
  2256. dialogTitle: "实际功率",
  2257. max: 3000,
  2258. unit: "MW",
  2259. },
  2260. {
  2261. title: "光能利用率",
  2262. value: (data?.qt?.fnlyl).toFixed(2),
  2263. dialogTitle: "光能利用率",
  2264. max: 100,
  2265. unit: "%",
  2266. },
  2267. ];
  2268. }
  2269. let sbztmap = {
  2270. fd: {},
  2271. gf: {},
  2272. };
  2273. for (var key in data.mxztmap) {
  2274. let a = key.substring(3, key.length);
  2275. if (key.includes("gf_")) {
  2276. sbztmap.gf[a] = data.mxztmap[key];
  2277. } else if (key.includes("fd_")) {
  2278. sbztmap.fd[a] = data.mxztmap[key];
  2279. }
  2280. }
  2281. this.StationinformationData.sbztmap = sbztmap;
  2282. }
  2283. });
  2284. },
  2285. // 发电量
  2286. findProjectPlan() {
  2287. // FindProjectplan({ wpId: this.wpIds }).then(({ data }) => {
  2288. // this.qyPower = data.proplanmap;
  2289. let data = dataJson.FindProjectplanData;
  2290. this.qyPower = data.proplanmap;
  2291. this.ForecastPowerNewHome_fc = [
  2292. [
  2293. {
  2294. name: "日发电量",
  2295. id: "day",
  2296. value: data?.proplanmap
  2297. ? data?.proplanmap?.fd_r_sjdl < 0
  2298. ? 0
  2299. : (data?.proplanmap?.fd_r_sjdl / 10000).toFixed(2)
  2300. : 0,
  2301. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2302. total: data?.proplanmap
  2303. ? data?.proplanmap?.fd_r_jhdl < 0
  2304. ? 0
  2305. : data?.proplanmap?.fd_r_jhdl
  2306. : 0,
  2307. },
  2308. ],
  2309. [
  2310. {
  2311. name: "月发电量",
  2312. id: "month",
  2313. value: data?.proplanmap
  2314. ? data?.proplanmap?.fd_y_sjdl < 0
  2315. ? 0
  2316. : (data?.proplanmap?.fd_y_sjdl / 10000).toFixed(2)
  2317. : 0,
  2318. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2319. total: data?.proplanmap
  2320. ? data?.proplanmap?.fd_y_jhdl < 0
  2321. ? 0
  2322. : data?.proplanmap?.fd_y_jhdl
  2323. : 0,
  2324. },
  2325. ],
  2326. [
  2327. {
  2328. name: "年发电量",
  2329. id: "year",
  2330. value: data?.proplanmap
  2331. ? data?.proplanmap?.fd_n_sjdl < 0
  2332. ? 0
  2333. : (data?.proplanmap?.fd_n_sjdl / 10000).toFixed(2)
  2334. : 0,
  2335. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2336. total: data?.proplanmap
  2337. ? data?.proplanmap?.fd_n_jhdl < 0
  2338. ? 0
  2339. : data?.proplanmap?.fd_n_jhdl
  2340. : 0,
  2341. },
  2342. ],
  2343. ];
  2344. this.ForecastPowerNewHome_gf = [
  2345. [
  2346. {
  2347. name: "日发电量",
  2348. id: "day",
  2349. value: data?.proplanmap
  2350. ? data?.proplanmap?.gf_r_sjdl < 0
  2351. ? 0
  2352. : (data?.proplanmap?.gf_r_sjdl / 10000).toFixed(2)
  2353. : 0,
  2354. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2355. total: data?.proplanmap
  2356. ? data?.proplanmap?.gf_r_jhdl < 0
  2357. ? 0
  2358. : data?.proplanmap?.gf_r_jhdl
  2359. : 0,
  2360. },
  2361. ],
  2362. [
  2363. {
  2364. name: "月发电量",
  2365. id: "month",
  2366. value: data?.proplanmap
  2367. ? data?.proplanmap?.gf_y_sjdl < 0
  2368. ? 0
  2369. : (data?.proplanmap?.gf_y_sjdl / 10000).toFixed(2)
  2370. : 0,
  2371. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2372. total: data?.proplanmap
  2373. ? data?.proplanmap?.gf_y_jhdl < 0
  2374. ? 0
  2375. : data?.proplanmap?.gf_y_jhdl
  2376. : 0,
  2377. },
  2378. ],
  2379. [
  2380. {
  2381. name: "年发电量",
  2382. id: "year",
  2383. value: data?.proplanmap
  2384. ? data?.proplanmap?.gf_n_sjdl < 0
  2385. ? 0
  2386. : (data?.proplanmap?.gf_n_sjdl / 10000).toFixed(2)
  2387. : 0,
  2388. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2389. total: data?.proplanmap
  2390. ? data?.proplanmap?.gf_n_jhdl < 0
  2391. ? 0
  2392. : data?.proplanmap?.gf_n_jhdl
  2393. : 0,
  2394. },
  2395. ],
  2396. ];
  2397. this.ForecastPowerNewHome_qy = [
  2398. [
  2399. {
  2400. name: "日发电量",
  2401. id: "day",
  2402. value: data?.proplanmap
  2403. ? data?.proplanmap?.qy_r_sjdl < 0
  2404. ? 0
  2405. : (data?.proplanmap?.qy_r_sjdl / 10000).toFixed(2)
  2406. : 0,
  2407. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2408. total: data?.proplanmap
  2409. ? data?.proplanmap?.qy_r_jhdl < 0
  2410. ? 0
  2411. : data?.proplanmap?.qy_r_jhdl
  2412. : 0,
  2413. },
  2414. ],
  2415. [
  2416. {
  2417. name: "月发电量",
  2418. id: "month",
  2419. value: data?.proplanmap
  2420. ? data?.proplanmap?.qy_y_sjdl < 0
  2421. ? 0
  2422. : (data?.proplanmap?.qy_y_sjdl / 10000).toFixed(2)
  2423. : 0,
  2424. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2425. total: data?.proplanmap
  2426. ? data?.proplanmap?.qy_y_jhdl < 0
  2427. ? 0
  2428. : data?.proplanmap?.qy_y_jhdl
  2429. : 0,
  2430. },
  2431. ],
  2432. [
  2433. {
  2434. name: "年发电量",
  2435. id: "year",
  2436. value: data?.proplanmap
  2437. ? data?.proplanmap?.qy_n_sjdl < 0
  2438. ? 0
  2439. : (data?.proplanmap?.qy_n_sjdl / 10000).toFixed(2)
  2440. : 0,
  2441. color: this.$store.state.moreSty === "greenSty" ? 0 : 1,
  2442. total: data?.proplanmap
  2443. ? data?.proplanmap?.qy_n_jhdl < 0
  2444. ? 0
  2445. : data?.proplanmap?.qy_n_jhdl
  2446. : 0,
  2447. },
  2448. ],
  2449. ];
  2450. // });
  2451. },
  2452. // 获取场站24小时功率图
  2453. getData(wpId) {
  2454. FindPowerInfo({ id: wpId }).then((res) => {
  2455. if (res.data) {
  2456. let Powertrend = {
  2457. // 图表所用单位
  2458. units: ["(万KWh)", ""],
  2459. value: [
  2460. {
  2461. title: "预测功率",
  2462. smooth: true, // 使用单位
  2463. value: [],
  2464. },
  2465. {
  2466. title: "理论功率",
  2467. smooth: true, // 使用单位
  2468. value: [],
  2469. },
  2470. {
  2471. title: "实际功率",
  2472. smooth: true, // 使用单位
  2473. value: [],
  2474. },
  2475. ],
  2476. };
  2477. Powertrend.value[0].value = res.data.map((item) => {
  2478. return {
  2479. dateTime: dayjs()
  2480. .startOf("date")
  2481. .add(item.hours, "hour")
  2482. .format("YYYY-MM-DD HH:mm:ss"),
  2483. value: item.bzgl,
  2484. };
  2485. });
  2486. Powertrend.value[1].value = res.data.map((item) => {
  2487. return {
  2488. dateTime: dayjs()
  2489. .startOf("date")
  2490. .add(item.hours, "hour")
  2491. .format("YYYY-MM-DD HH:mm:ss"),
  2492. value: item.llgl,
  2493. };
  2494. });
  2495. Powertrend.value[2].value = res.data.map((item) => {
  2496. return {
  2497. dateTime: dayjs()
  2498. .startOf("date")
  2499. .add(item.hours, "hour")
  2500. .format("YYYY-MM-DD HH:mm:ss"),
  2501. value: item.sjgl,
  2502. };
  2503. });
  2504. this.CurveValues = Powertrend.value;
  2505. }
  2506. });
  2507. },
  2508. firstRender(activeTab, showType, wpId, name) {
  2509. this.activeTab = activeTab;
  2510. this.tabShow = activeTab;
  2511. this.showType = showType;
  2512. //当wpId是FDC/GDC时,此时点击全部、风电、光伏按钮,展示山西地图及对应的公司信息
  2513. let fcId = wpId;
  2514. if ((wpId.includes("FDC") || wpId.includes("GDC")) && this.flag) {
  2515. if (name != "山西") {
  2516. fcId = this.historyWpId;
  2517. } else {
  2518. fcId = "SXJ_RGN";
  2519. }
  2520. this.flag = true;
  2521. this.penetrateType = 3;
  2522. this.currents = 1;
  2523. }
  2524. this.companyid = fcId;
  2525. this.companyname = name;
  2526. this.currentTitle = name || "全国";
  2527. this.mapClicks(fcId, activeTab);
  2528. this.currentActiveTab(this.penetrateType);
  2529. },
  2530. backMap(wpId, planBtnName) {
  2531. this.penetrateType = this.currents == 0 ? 0 : 3;
  2532. this.currents--;
  2533. this.currentTitle =
  2534. this.currents == 0
  2535. ? "全国"
  2536. : this.companyname
  2537. ? this.companyname
  2538. : planBtnName;
  2539. let wpIds =
  2540. this.currents == 0
  2541. ? "KGDL_FGS"
  2542. : this.companyname
  2543. ? this.companyid
  2544. : wpId;
  2545. this.tabShow = this.activeTab;
  2546. this.mapClickBack(wpIds, this.activeTab);
  2547. this.currentActiveTab(this.penetrateType);
  2548. },
  2549. clickLabel(wpId, planBtnName, penetrateType) {
  2550. this.penetrateType = penetrateType;
  2551. this.currents++;
  2552. if (this.currents > 1) {
  2553. this.currents = 2;
  2554. }
  2555. this.wpId =
  2556. wpId.includes("FDC") || wpId.includes("GDC")
  2557. ? wpId
  2558. : this.companyname
  2559. ? this.companyid
  2560. : wpId;
  2561. this.currentTitle =
  2562. wpId.includes("FDC") || wpId.includes("GDC")
  2563. ? planBtnName
  2564. : this.companyname
  2565. ? this.companyname
  2566. : planBtnName;
  2567. this.mapClick(this.wpId, this.activeTab);
  2568. if (wpId.includes("FDC") || wpId.includes("GDC")) {
  2569. this.tabShow = wpId.includes("FDC")
  2570. ? -1
  2571. : wpId.includes("GDC")
  2572. ? -2
  2573. : 0;
  2574. } else {
  2575. this.tabShow = this.activeTab;
  2576. }
  2577. this.flag = wpId.includes("FDC") || wpId.includes("GDC") ? true : false;
  2578. this.currentActiveTab(penetrateType);
  2579. },
  2580. // 全国实时负荷点击弹窗
  2581. showPowerChart({ dialogTitle, data, chartName = "", unit }) {
  2582. this.dialogGroupRealname = true;
  2583. this.unit = unit;
  2584. this.showName = dialogTitle;
  2585. this.chartName = chartName ? chartName : dialogTitle;
  2586. this.groupList = data;
  2587. },
  2588. // 区域实时负荷点击弹窗
  2589. handleClick(uniformCode, title, unit) {
  2590. let key = "";
  2591. switch (uniformCode) {
  2592. case "SSPJFS":
  2593. key = "ssfs";
  2594. break;
  2595. case "SSZLLGL":
  2596. key = "llgl";
  2597. break;
  2598. case "SSZGL":
  2599. key = "sjgl";
  2600. break;
  2601. case "FNLYL":
  2602. key = "fnlyl";
  2603. break;
  2604. case "RPJGZD":
  2605. key = "gzzs";
  2606. break;
  2607. }
  2608. FindRealtimeInfo({
  2609. uniformCode,
  2610. wpId:
  2611. this.wpId +
  2612. (this.wpId.includes("FDC") || this.wpId.includes("GDC")
  2613. ? ""
  2614. : this.activeTab),
  2615. }).then(({ data }) => {
  2616. this.dialogVisible = true;
  2617. this.chartsData = data.map((item) => {
  2618. return {
  2619. dateTime: dayjs()
  2620. .startOf("date")
  2621. .add(item.hours, "hour")
  2622. .format("MM-DD HH:mm"),
  2623. value: item[key],
  2624. };
  2625. });
  2626. this.unit = unit;
  2627. this.showName = title;
  2628. });
  2629. },
  2630. handleUsingDetail(timetype, title) {
  2631. let format = timetype == "month" ? "YYYY-MM" : "YYYY";
  2632. this.showkey = "using";
  2633. this.electronType = timetype;
  2634. FindPlanproject({
  2635. wpId:
  2636. this.wpId +
  2637. (this.wpId.includes("FDC") || this.wpId.includes("GDC")
  2638. ? ""
  2639. : this.activeTab),
  2640. timetype,
  2641. }).then(({ data }) => {
  2642. this.dialogElectric = true;
  2643. let barList = data.map((item) => {
  2644. if (timetype == "month") {
  2645. return {
  2646. dateTime: dayjs()
  2647. .startOf("year")
  2648. .add(item.hours - 1, "month")
  2649. .format("YYYY-MM"),
  2650. value: item["lyxs"],
  2651. };
  2652. } else {
  2653. return {
  2654. dateTime: dayjs()
  2655. .startOf(timetype)
  2656. .subtract(item.hours, timetype)
  2657. .format(format),
  2658. value: item["lyxs"],
  2659. };
  2660. }
  2661. });
  2662. if (timetype == "month") {
  2663. this.barList = [
  2664. {
  2665. name: title,
  2666. yAxisIndex: 0,
  2667. value: barList,
  2668. },
  2669. ];
  2670. } else {
  2671. this.barList = [
  2672. {
  2673. name: title,
  2674. yAxisIndex: 0,
  2675. value: barList.reverse(),
  2676. },
  2677. ];
  2678. }
  2679. this.barList = [
  2680. {
  2681. name: title,
  2682. yAxisIndex: 0,
  2683. value: barList,
  2684. },
  2685. ];
  2686. this.showName = title;
  2687. });
  2688. },
  2689. handleElectricDetail(timetype, title, type) {
  2690. let wpId = "";
  2691. if (type) {
  2692. this.type = type;
  2693. type == "fc" ? (wpId = this.wpId + "-1") : (wpId = this.wpId + "-2");
  2694. } else {
  2695. wpId =
  2696. this.wpId +
  2697. (this.wpId.includes("FDC") || this.wpId.includes("GDC")
  2698. ? ""
  2699. : this.activeTab);
  2700. }
  2701. this.dialogElectric = true;
  2702. let format =
  2703. timetype == "day" ? "MM-DD" : timetype == "month" ? "YYYY-MM" : "YYYY";
  2704. this.showkey = "electric";
  2705. this.electronType = timetype;
  2706. FindPlanproject({
  2707. wpId,
  2708. timetype,
  2709. }).then(({ data }) => {
  2710. // this.dialogElectric = true;
  2711. let sjdlList = data.map((item) => {
  2712. if (timetype == "month") {
  2713. return {
  2714. dateTime: dayjs()
  2715. .startOf("year")
  2716. .add(item.hours - 1, "month")
  2717. .format("YYYY-MM"),
  2718. value: item.sjdl.toFixed(2),
  2719. };
  2720. } else if (timetype == "year") {
  2721. return {
  2722. dateTime: dayjs()
  2723. .startOf(timetype)
  2724. .subtract(item.hours, timetype)
  2725. .format(format),
  2726. value: item.sjdl.toFixed(2),
  2727. };
  2728. } else {
  2729. return {
  2730. dateTime: dayjs()
  2731. .startOf("month")
  2732. .add(item.hours - 1, "day")
  2733. .format("MM-DD"),
  2734. value: item.sjdl.toFixed(2),
  2735. };
  2736. }
  2737. });
  2738. let jhdlList = data.map((item) => {
  2739. if (timetype == "month") {
  2740. return {
  2741. dateTime: dayjs()
  2742. .startOf("year")
  2743. .add(item.hours - 1, "month")
  2744. .format("YYYY-MM"),
  2745. value: item.jhdl.toFixed(2),
  2746. };
  2747. } else if (timetype == "year") {
  2748. return {
  2749. dateTime: dayjs()
  2750. .startOf(timetype)
  2751. .subtract(item.hours, timetype)
  2752. .format(format),
  2753. value: item.jhdl.toFixed(2),
  2754. };
  2755. } else {
  2756. return {
  2757. dateTime: dayjs()
  2758. .startOf("month")
  2759. .add(item.hours - 1, "day")
  2760. .format("MM-DD"),
  2761. value: item.jhdl.toFixed(2),
  2762. };
  2763. }
  2764. });
  2765. this.barList = [
  2766. {
  2767. name: "实际电量",
  2768. value:
  2769. timetype == "day" || timetype == "month"
  2770. ? sjdlList
  2771. : sjdlList.reverse(),
  2772. },
  2773. {
  2774. name: "计划电量",
  2775. value:
  2776. timetype == "day" || timetype == "month"
  2777. ? jhdlList
  2778. : jhdlList.reverse(),
  2779. },
  2780. ];
  2781. this.showName = title;
  2782. });
  2783. },
  2784. },
  2785. unmounted() {
  2786. clearInterval(this.timmer);
  2787. clearInterval(this.timmer2);
  2788. this.timmer = null;
  2789. this.timmer2 = null;
  2790. },
  2791. watch: {
  2792. qyPower(val) {
  2793. if (Object.keys(val).length) {
  2794. let data = val;
  2795. this.fdlList = [
  2796. [
  2797. {
  2798. title: "日发电量",
  2799. id: "day",
  2800. value:
  2801. this.tabShow == 0
  2802. ? data.qy_r_sjdl
  2803. : this.tabShow == -1
  2804. ? data.fd_r_sjdl
  2805. : data.gf_r_sjdl,
  2806. color: 1,
  2807. total:
  2808. this.tabShow == 0
  2809. ? data.qy_r_jhdl
  2810. : this.tabShow == -1
  2811. ? data.fd_r_jhdl
  2812. : data.gf_r_jhdl,
  2813. },
  2814. ],
  2815. [
  2816. {
  2817. title: "月发电量",
  2818. id: "month",
  2819. value:
  2820. this.tabShow == 0
  2821. ? data.qy_y_sjdl
  2822. : this.tabShow == -1
  2823. ? data.fd_y_sjdl
  2824. : data.gf_y_sjdl,
  2825. color: 1,
  2826. total:
  2827. this.tabShow == 0
  2828. ? data.qy_y_jhdl
  2829. : this.tabShow == -1
  2830. ? data.fd_y_jhdl
  2831. : data.gf_y_jhdl,
  2832. },
  2833. ],
  2834. [
  2835. {
  2836. title: "年发电量",
  2837. id: "year",
  2838. value:
  2839. this.tabShow == 0
  2840. ? data.qy_n_sjdl
  2841. : this.tabShow == -1
  2842. ? data.fd_n_sjdl
  2843. : data.gf_n_sjdl,
  2844. color: 0,
  2845. total:
  2846. this.tabShow == 0
  2847. ? data.qy_n_jhdl
  2848. : this.tabShow == -1
  2849. ? data.fd_n_jhdl
  2850. : data.gf_n_jhdl,
  2851. },
  2852. ],
  2853. ];
  2854. }
  2855. },
  2856. },
  2857. computed: {
  2858. // 实时风速
  2859. windSpeedRota() {
  2860. let count = this.StationinformationData?.qt?.ssfs / 25;
  2861. let result = Number((310 * count + 50).toFixed(0));
  2862. if (result) {
  2863. if (result > 310) {
  2864. return "rotateZ(310deg)";
  2865. } else {
  2866. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  2867. }
  2868. } else {
  2869. return "rotateZ(50deg)";
  2870. }
  2871. },
  2872. // 理论功率
  2873. ideaPowerRota() {
  2874. let zctj =
  2875. this.wpId.includes("FDC") || this.wpId.includes("GDC")
  2876. ? (
  2877. this.StationinformationData?.station[this.wpId]?.zjrl / 1000
  2878. ).toFixed(2)
  2879. : this.StationinformationData?.qt?.zzjrl;
  2880. let count = this.StationinformationData?.qt?.llgl / 1000 / zctj;
  2881. let result = Number((310 * count + 50).toFixed(0));
  2882. if (result) {
  2883. if (result > 310) {
  2884. return "rotateZ(310deg)";
  2885. } else {
  2886. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  2887. }
  2888. } else {
  2889. return "rotateZ(50deg)";
  2890. }
  2891. },
  2892. // 光照指数
  2893. illuminationRota() {
  2894. let count = this.StationinformationData?.qt?.gzzs / 1200;
  2895. let result = Number((310 * count + 50).toFixed(0));
  2896. if (result) {
  2897. if (result > 310) {
  2898. return "rotateZ(310deg)";
  2899. } else {
  2900. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  2901. }
  2902. } else {
  2903. return "rotateZ(50deg)";
  2904. }
  2905. },
  2906. //总保证功率
  2907. guarantee() {
  2908. let count = Number(this.StationinformationData?.qt?.fnlyl) / 100;
  2909. let result = Number((310 * count + 50).toFixed(0));
  2910. if (result) {
  2911. if (result > 310) {
  2912. return "rotateZ(310deg)";
  2913. } else {
  2914. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  2915. }
  2916. } else {
  2917. return "rotateZ(50deg)";
  2918. }
  2919. },
  2920. // 实际功率
  2921. actualPowerRota() {
  2922. let zctj =
  2923. this.wpId.includes("FDC") || this.wpId.includes("GDC")
  2924. ? (
  2925. this.StationinformationData?.station[this.wpId]?.zjrl / 1000
  2926. ).toFixed(2)
  2927. : this.StationinformationData?.qt?.zzjrl;
  2928. let count = this.StationinformationData?.qt?.sjgl / 1000 / zctj;
  2929. let result = Number((310 * count + 50).toFixed(0));
  2930. if (result) {
  2931. if (result > 310) {
  2932. return "rotateZ(310deg)";
  2933. } else {
  2934. return "rotateZ(" + Number((310 * count + 50).toFixed(0)) + "deg)";
  2935. }
  2936. } else {
  2937. return "rotateZ(50deg)";
  2938. }
  2939. },
  2940. },
  2941. };
  2942. </script>
  2943. <style lang="less" scoped>
  2944. .map {
  2945. position: relative;
  2946. .bTable {
  2947. width: 800px;
  2948. position: absolute;
  2949. bottom: 20px;
  2950. left: calc(50% - 200px);
  2951. display: flex;
  2952. justify-content: center;
  2953. align-items: center;
  2954. z-index: 50;
  2955. .table-card {
  2956. background: rgba(3, 5, 9, 0.75);
  2957. border-collapse: collapse;
  2958. outline: 1px solid @gray;
  2959. margin-right: 6px;
  2960. .curP {
  2961. cursor: pointer;
  2962. }
  2963. tr {
  2964. font-size: 14px;
  2965. td {
  2966. border: 0.093vh solid fade(@gray, 20);
  2967. line-height: 27px;
  2968. padding: 0 3px;
  2969. &.text {
  2970. color: #999;
  2971. width: 110px;
  2972. }
  2973. &.value {
  2974. text-align: right;
  2975. font-family: @font-family-num;
  2976. width: 80px;
  2977. }
  2978. &.unit {
  2979. color: #999;
  2980. width: 60px;
  2981. }
  2982. }
  2983. }
  2984. &:last-child {
  2985. margin-right: 0;
  2986. }
  2987. }
  2988. }
  2989. }
  2990. </style>
  2991. <style lang="less">
  2992. ul,
  2993. ul li,
  2994. p {
  2995. margin: 0;
  2996. padding: 0;
  2997. list-style: none;
  2998. }
  2999. .map {
  3000. padding-top: 16px;
  3001. .heeaderNav {
  3002. margin-top: 0;
  3003. }
  3004. }
  3005. .airForceStation {
  3006. position: relative;
  3007. background-color: rgba(3, 5, 9, 0.5);
  3008. padding: 20px;
  3009. // width: 320px;
  3010. margin-bottom: 15px;
  3011. span {
  3012. color: #b1b1b1;
  3013. }
  3014. .title {
  3015. font-size: 18px;
  3016. line-height: 28px;
  3017. margin: 15px 0;
  3018. display: flex;
  3019. align-items: center;
  3020. justify-content: left;
  3021. span {
  3022. color: #fff;
  3023. }
  3024. }
  3025. .collectInstall {
  3026. display: flex;
  3027. margin-bottom: 10px;
  3028. }
  3029. .listItem {
  3030. display: flex;
  3031. margin-bottom: 10px;
  3032. }
  3033. .line {
  3034. display: flex;
  3035. margin-bottom: 10px;
  3036. }
  3037. .name {
  3038. flex: 4;
  3039. }
  3040. .num {
  3041. flex: 3;
  3042. color: #fff;
  3043. font-weight: bold;
  3044. font-size: 19px;
  3045. // text-align: center;
  3046. }
  3047. .unit {
  3048. flex: 1;
  3049. font-size: 14px;
  3050. font-weight: 400;
  3051. color: #999999;
  3052. }
  3053. }
  3054. .piggy-bank {
  3055. width: 100% !important;
  3056. border: 0 !important;
  3057. }
  3058. .float-left {
  3059. float: left;
  3060. }
  3061. .float-right {
  3062. float: right;
  3063. }
  3064. .map {
  3065. position: relative;
  3066. width: 100%;
  3067. height: 100%;
  3068. .light {
  3069. position: fixed;
  3070. z-index: -1;
  3071. width: 100vw;
  3072. height: 100vh;
  3073. top: 0;
  3074. left: 0;
  3075. }
  3076. .back {
  3077. position: fixed;
  3078. z-index: -1;
  3079. width: 100vw;
  3080. height: 100vh;
  3081. top: 0;
  3082. left: 0;
  3083. background: url(../../../assets/background-home.png) no-repeat;
  3084. background-size: 100% 100%;
  3085. }
  3086. .leftBox {
  3087. margin-top: 20px;
  3088. margin-left: 30px;
  3089. .model-bg {
  3090. width: 100%;
  3091. min-height: 135px;
  3092. // background-color: rgba(3, 5, 9, 0.5);
  3093. border-radius: 6px;
  3094. display: flex;
  3095. flex-direction: column;
  3096. padding: 1% 5%;
  3097. .titles {
  3098. height: 45px;
  3099. border-bottom: 1px solid #333333;
  3100. display: flex;
  3101. flex-direction: row;
  3102. align-items: center;
  3103. justify-content: space-between;
  3104. .name {
  3105. font-size: 16px;
  3106. color: #ffffff;
  3107. }
  3108. .unit {
  3109. font-size: 12px;
  3110. color: #b1b1b1;
  3111. }
  3112. }
  3113. .save {
  3114. display: flex;
  3115. flex-direction: row;
  3116. align-items: center;
  3117. width: 100%;
  3118. margin: 17px 0;
  3119. .save-item {
  3120. width: 25%;
  3121. display: flex;
  3122. flex-direction: column;
  3123. align-items: center;
  3124. .kind {
  3125. width: 20px;
  3126. height: 22px;
  3127. .co2,
  3128. .so2 {
  3129. svg {
  3130. width: 24px;
  3131. height: 24px;
  3132. }
  3133. }
  3134. .jnjp-icon1 {
  3135. margin-left: -8px;
  3136. }
  3137. .kind-img {
  3138. width: 100%;
  3139. height: 100%;
  3140. }
  3141. }
  3142. .save-value {
  3143. font-size: 16px;
  3144. color: #ffffff;
  3145. margin: 10px 0;
  3146. }
  3147. .save-name {
  3148. font-size: 12px;
  3149. color: #b3b3b3;
  3150. }
  3151. }
  3152. }
  3153. }
  3154. .new-home {
  3155. .energy-system-box {
  3156. // position: absolute;
  3157. // left: 20px;
  3158. margin-bottom: 30px;
  3159. // margin-left: 15px;
  3160. width: 400px;
  3161. box-sizing: border-box;
  3162. background-color: rgba(3, 5, 9, 0.5);
  3163. &.box1 {
  3164. // top: 270px;
  3165. margin-top: 20px;
  3166. }
  3167. &.box2 {
  3168. // top: 450px;
  3169. }
  3170. &.box3 {
  3171. // top: 690px;
  3172. }
  3173. .energy-system-content[data-type~="greenSty"] {
  3174. .title-all-content {
  3175. color: @green;
  3176. }
  3177. .right-content,
  3178. .left-content {
  3179. .img-num {
  3180. .num {
  3181. span:nth-child(3) {
  3182. color: @green;
  3183. }
  3184. }
  3185. }
  3186. }
  3187. }
  3188. .energy-system-content[data-type~="blueSty"] {
  3189. .title-all-content {
  3190. color: @darkBlue;
  3191. }
  3192. .right-content,
  3193. .left-content {
  3194. .img-num {
  3195. .num {
  3196. span:nth-child(3) {
  3197. color: @darkBlue;
  3198. }
  3199. }
  3200. }
  3201. }
  3202. }
  3203. .energy-system-content {
  3204. padding: 5px 5px 15px 5px;
  3205. .title-all {
  3206. margin-left: 5px;
  3207. margin-bottom: 8px;
  3208. }
  3209. .title-all-content {
  3210. font-weight: bold;
  3211. font-size: 19px;
  3212. }
  3213. .title-all-title {
  3214. font-size: 13px;
  3215. }
  3216. .title-all-unit {
  3217. font-size: 12px;
  3218. color: #b1b1b1;
  3219. margin-left: 5px;
  3220. }
  3221. .title {
  3222. color: #fff;
  3223. font-size: 18px;
  3224. line-height: 28px;
  3225. margin: 10px 0.5vh;
  3226. text-align: right;
  3227. .title-name {
  3228. float: left;
  3229. }
  3230. }
  3231. .right-content,
  3232. .left-content {
  3233. width: 50%;
  3234. .img-num {
  3235. display: flex;
  3236. justify-content: left;
  3237. align-items: center;
  3238. padding-left: 10px;
  3239. .img {
  3240. margin-right: 10px;
  3241. }
  3242. .num {
  3243. span {
  3244. font-size: 14px;
  3245. font-weight: 400;
  3246. color: #999999;
  3247. }
  3248. span:nth-child(3) {
  3249. font-size: 19px;
  3250. font-weight: bold;
  3251. line-height: 27px;
  3252. }
  3253. span:nth-child(4) {
  3254. margin-left: 15px;
  3255. }
  3256. }
  3257. }
  3258. .capacity {
  3259. .item {
  3260. margin-top: 9px;
  3261. .el-row {
  3262. text-align: center;
  3263. .el-col:nth-child(1) {
  3264. font-size: 14px;
  3265. font-weight: 400;
  3266. color: #999999;
  3267. }
  3268. .el-col:nth-child(2) {
  3269. font-size: 16px;
  3270. font-weight: bold;
  3271. color: #ffffff;
  3272. }
  3273. .el-col:nth-child(3) {
  3274. font-size: 14px;
  3275. font-weight: 400;
  3276. color: #999999;
  3277. }
  3278. }
  3279. }
  3280. }
  3281. }
  3282. .left-content {
  3283. }
  3284. .right-content {
  3285. border-left: 1px dashed #4e4040;
  3286. padding-left: 10px;
  3287. }
  3288. }
  3289. }
  3290. .leftZbBox {
  3291. width: 520px;
  3292. background-color: rgba(3, 5, 9, 0.75);
  3293. box-sizing: border-box;
  3294. padding: 0 10px;
  3295. display: flex;
  3296. justify-content: flex-start;
  3297. align-items: flex-start;
  3298. flex-wrap: wrap;
  3299. position: relative;
  3300. margin-top: 30px;
  3301. z-index: 50;
  3302. .zbTitle {
  3303. display: flex;
  3304. justify-content: flex-start;
  3305. align-items: center;
  3306. width: 100%;
  3307. font-size: 18px;
  3308. padding: 10px 0;
  3309. color: #fff;
  3310. }
  3311. .fTitle {
  3312. font-size: 13px;
  3313. position: absolute;
  3314. right: 10px;
  3315. top: 12px;
  3316. display: flex;
  3317. justify-content: flex-start;
  3318. align-items: center;
  3319. .name {
  3320. }
  3321. .num {
  3322. font-size: 19px;
  3323. color: @green;
  3324. font-family: "Bicubik";
  3325. font-weight: 700;
  3326. margin: 0 5px;
  3327. }
  3328. .unit {
  3329. font-size: 12px;
  3330. color: #b1b1b1;
  3331. }
  3332. }
  3333. .tb {
  3334. border: 1px solid #606769;
  3335. width: 49%;
  3336. margin-right: 5px;
  3337. margin-bottom: 10px;
  3338. .zbDetailBox {
  3339. display: flex;
  3340. justify-content: flex-start;
  3341. align-items: center;
  3342. flex-wrap: wrap;
  3343. width: 100%;
  3344. .item {
  3345. width: 100%;
  3346. display: flex;
  3347. justify-content: flex-start;
  3348. align-items: center;
  3349. border-bottom: 1px solid #606769;
  3350. font-size: 14px;
  3351. .name {
  3352. font-size: 14px;
  3353. color: #999;
  3354. width: 110px;
  3355. border-right: 1px solid #606769;
  3356. padding: 0 2px;
  3357. }
  3358. .num {
  3359. text-align: right;
  3360. font-family: "Bicubik";
  3361. width: 100px;
  3362. color: @green;
  3363. border-right: 1px solid #606769;
  3364. padding: 0 2px;
  3365. }
  3366. .unit {
  3367. font-size: 14px;
  3368. color: #999;
  3369. width: 60px;
  3370. padding: 0 2px;
  3371. }
  3372. &:last-child {
  3373. border-bottom: 0;
  3374. }
  3375. }
  3376. }
  3377. &:last-child {
  3378. margin-right: 0;
  3379. }
  3380. }
  3381. }
  3382. .hover72Power {
  3383. width: 520px;
  3384. height: 180px;
  3385. // background-color: rgba(3, 5, 9, 0.75);
  3386. margin-top: 30px;
  3387. }
  3388. .security-day[data-type~="greenSty"] {
  3389. .lineBox {
  3390. .num {
  3391. color: @green;
  3392. }
  3393. }
  3394. .num {
  3395. color: @green;
  3396. }
  3397. .num1 {
  3398. color: @green;
  3399. }
  3400. }
  3401. .security-day[data-type~="blueSty"] {
  3402. .lineBox {
  3403. .num {
  3404. color: @darkBlue;
  3405. }
  3406. }
  3407. .num {
  3408. color: @darkBlue;
  3409. }
  3410. .num1 {
  3411. color: @darkBlue;
  3412. }
  3413. }
  3414. .security-day {
  3415. .lineBox {
  3416. display: flex;
  3417. & > div {
  3418. margin-right: 20px;
  3419. }
  3420. margin: 12px 0 15px;
  3421. .num {
  3422. font-size: 16px;
  3423. margin-bottom: 15px;
  3424. margin: 0 7px;
  3425. }
  3426. .unit {
  3427. font-size: 12px;
  3428. color: #5e6269;
  3429. }
  3430. }
  3431. .text {
  3432. font-size: 28px;
  3433. color: @write;
  3434. }
  3435. .num {
  3436. font-size: 35px;
  3437. margin-top: 12px;
  3438. .unit {
  3439. font-size: 24px;
  3440. position: relative;
  3441. margin-left: 0.556vh;
  3442. top: -0.185vh;
  3443. }
  3444. .unit-t {
  3445. font-size: 12px;
  3446. margin-left: 10px;
  3447. }
  3448. }
  3449. .text1 {
  3450. font-size: 14px;
  3451. color: @write;
  3452. }
  3453. .num1 {
  3454. font-size: 24px;
  3455. margin-bottom: 15px;
  3456. .unit {
  3457. font-size: 12px;
  3458. position: relative;
  3459. margin-left: 0.556vh;
  3460. color: #5e6269;
  3461. }
  3462. }
  3463. }
  3464. }
  3465. }
  3466. .security-day[data-type~="greenSty"] {
  3467. .num {
  3468. color: @green;
  3469. }
  3470. .num1 {
  3471. color: @green;
  3472. }
  3473. }
  3474. .security-day[data-type~="blueSty"] {
  3475. .num {
  3476. color: @darkBlue;
  3477. }
  3478. .num1 {
  3479. color: @darkBlue;
  3480. }
  3481. }
  3482. .security-day {
  3483. .text {
  3484. font-size: 24px;
  3485. color: @write;
  3486. }
  3487. .num {
  3488. font-size: 50px;
  3489. .unit {
  3490. font-size: 24px;
  3491. position: relative;
  3492. margin-left: 0.556vh;
  3493. top: -0.185vh;
  3494. }
  3495. }
  3496. .text1 {
  3497. font-size: 14px;
  3498. color: @write;
  3499. }
  3500. .num1 {
  3501. font-size: 24px;
  3502. margin-bottom: 15px;
  3503. .unit {
  3504. font-size: 12px;
  3505. position: relative;
  3506. margin-left: 0.556vh;
  3507. color: #5e6269;
  3508. }
  3509. }
  3510. }
  3511. .name-box {
  3512. margin: 1.852vh;
  3513. display: inline-block;
  3514. z-index: 2;
  3515. position: absolute;
  3516. display: flex;
  3517. flex-direction: column;
  3518. top: 200px;
  3519. left: 445px;
  3520. width: 200px;
  3521. .name-box-title {
  3522. font-size: 25px;
  3523. font-weight: 400;
  3524. color: #ffffff;
  3525. // line-height: 1;
  3526. cursor: pointer;
  3527. }
  3528. .name-box-period {
  3529. margin-top: 2.222vh;
  3530. .name-box-period-label,
  3531. .name-box-period-value {
  3532. font-size: 1.481vh;
  3533. font-weight: 400;
  3534. line-height: 1;
  3535. }
  3536. .name-box-period-label {
  3537. color: #fefefe;
  3538. }
  3539. .name-box-period-value {
  3540. color: #05bb4c;
  3541. }
  3542. }
  3543. }
  3544. .return[data-type~="greenSty"] {
  3545. color: @green;
  3546. border: 1px solid @green;
  3547. .svg-icon {
  3548. svg {
  3549. use {
  3550. fill: @green;
  3551. }
  3552. }
  3553. }
  3554. &:hover {
  3555. color: @green;
  3556. border: 1px solid @green;
  3557. .svg-icon {
  3558. svg {
  3559. use {
  3560. fill: @green;
  3561. }
  3562. }
  3563. }
  3564. }
  3565. }
  3566. .return[data-type~="blueSty"] {
  3567. color: @darkBlue;
  3568. border: 1px solid @darkBlue;
  3569. .svg-icon {
  3570. svg {
  3571. use {
  3572. fill: @darkBlue;
  3573. }
  3574. }
  3575. }
  3576. &:hover {
  3577. color: @darkBlue;
  3578. border: 1px solid @darkBlue;
  3579. .svg-icon {
  3580. svg {
  3581. use {
  3582. fill: @darkBlue;
  3583. }
  3584. }
  3585. }
  3586. }
  3587. }
  3588. .return {
  3589. position: absolute;
  3590. display: flex;
  3591. z-index: 2;
  3592. align-items: center;
  3593. top: 150px;
  3594. left: 460px;
  3595. width: 110px;
  3596. font-size: @fontsize-l;
  3597. color: fade(@white, 80);
  3598. cursor: pointer;
  3599. border: 1px solid transparent;
  3600. padding: 6px 16px;
  3601. font-size: 22px;
  3602. .svg-icon {
  3603. margin-right: 0.7407vh;
  3604. svg {
  3605. transform: rotate(90deg);
  3606. use {
  3607. transition: all 0.3s;
  3608. }
  3609. }
  3610. }
  3611. transition: all 0.3s;
  3612. }
  3613. .compass {
  3614. position: absolute;
  3615. right: 16px;
  3616. bottom: 32px;
  3617. border-radius: 50%;
  3618. &::after {
  3619. content: "";
  3620. position: absolute;
  3621. top: 4px;
  3622. left: 4px;
  3623. border-radius: 50%;
  3624. width: 36px;
  3625. height: 36px;
  3626. box-shadow: inset 0px -5px 10px 0px @green;
  3627. }
  3628. svg {
  3629. height: 45px;
  3630. width: 45px;
  3631. }
  3632. }
  3633. .map-img {
  3634. // width: calc(100% - 14.815vh);
  3635. width: 100%;
  3636. // height: calc(100% - 14.815vh);
  3637. height: 100%;
  3638. // margin: 7.407vh 0;
  3639. position: absolute;
  3640. z-index: 1;
  3641. top: 0;
  3642. left: 0;
  3643. @keyframes rotate {
  3644. from {
  3645. transform: rotateX(70deg);
  3646. }
  3647. to {
  3648. transform: rotateX(0deg);
  3649. }
  3650. }
  3651. img {
  3652. width: 100%;
  3653. animation: rotate 3s;
  3654. animation-direction: alternate;
  3655. animation-iteration-count: infinite;
  3656. }
  3657. }
  3658. }
  3659. .island {
  3660. position: absolute;
  3661. right: 20vw;
  3662. bottom: 0px;
  3663. }
  3664. .island_light {
  3665. position: absolute;
  3666. right: 21vw;
  3667. bottom: 4vh;
  3668. }
  3669. .clearfix::after {
  3670. content: "";
  3671. clear: both;
  3672. height: 0;
  3673. line-height: 0;
  3674. visibility: hidden;
  3675. display: block;
  3676. }
  3677. .clearfix {
  3678. zoom: 1;
  3679. }
  3680. </style>