map.vue 89 KB

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