index.vue 86 KB

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