From 26b24711c5a1f8550ddcf07613dfe4de6ae7f219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C002001lixiaobang=E2=80=9D?= <2547956374@qq.com> Date: Mon, 18 Dec 2023 17:21:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + .../carbonEmission StatisticsReport.png | Bin 0 -> 3867 bytes .../carbonEmissionReduction.png | Bin 0 -> 21991 bytes .../carbonEmission/carbonNeutralityBg.png | Bin 0 -> 9122 bytes .../carbonEmission/carbonOffsettingAmount.png | Bin 0 -> 21972 bytes .../images/carbonEmission/totalEmissions.png | Bin 0 -> 21835 bytes src/utils/carbonNeutrality.js | 285 ++++++ src/views/carbonEmission/index.vue | 873 +++++++++++++++++- 8 files changed, 1150 insertions(+), 9 deletions(-) create mode 100644 src/assets/images/carbonEmission/carbonEmission StatisticsReport.png create mode 100644 src/assets/images/carbonEmission/carbonEmissionReduction.png create mode 100644 src/assets/images/carbonEmission/carbonNeutralityBg.png create mode 100644 src/assets/images/carbonEmission/carbonOffsettingAmount.png create mode 100644 src/assets/images/carbonEmission/totalEmissions.png create mode 100644 src/utils/carbonNeutrality.js diff --git a/package.json b/package.json index af0ff12..c028022 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "echarts": "^5.4.3", + "echarts-gl": "^2.0.9", "element-plus": "^2.4.3", "moment": "^2.29.4", "sass": "^1.69.5", diff --git a/src/assets/images/carbonEmission/carbonEmission StatisticsReport.png b/src/assets/images/carbonEmission/carbonEmission StatisticsReport.png new file mode 100644 index 0000000000000000000000000000000000000000..e25cca3fea1764093aa27c2f767223db89a47fbd GIT binary patch literal 3867 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/carbonEmission/carbonEmissionReduction.png b/src/assets/images/carbonEmission/carbonEmissionReduction.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a29eab6f12d459995be2ed67f331338ec5ccdc GIT binary patch literal 21991 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 Hu0mjftG&1F literal 0 HcmV?d00001 diff --git a/src/assets/images/carbonEmission/carbonNeutralityBg.png b/src/assets/images/carbonEmission/carbonNeutralityBg.png new file mode 100644 index 0000000000000000000000000000000000000000..0d45c50e5a4bc74304a2ca53c4c28364599001c7 GIT binary patch literal 9122 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 >K(vi^(LPQ=qxS5LRutYq_zE1%9k(;n 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/carbonEmission/totalEmissions.png b/src/assets/images/carbonEmission/totalEmissions.png new file mode 100644 index 0000000000000000000000000000000000000000..f9efa346c4a3d993ae21bea00e0aef29a294b7fb GIT binary patch literal 21835 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

!O^vXQ4{dI<;Ak*If+}PAUZ$q~!Twm5i?Zk393V zGB=88kq-BD$}xwmv(qT7u4rOZB78K-Awz=)2DjiVEDHGdX_+4Vexnr!=s*@cT%Wi_ zi@Pm zXea8pXzBCtuCTX5`HXwE>duDM)nfd;f1h9blPXf~W4&ckVDrs_$;x304d}uD0(VP4 z+=BzzKv~)AIRU!YLu_(uSRIH)S@!RT9HPmZEpblE@xm*#>oVcxX~y)K!|#h8>9E(@ z+rs9XfpY((`Y?{I7+ z9{tg?=@F&cYg!YcC-cIg9ZVjy+tR!%I6PLMzy_}Rb~U zdSEbPQ3EBjY3P}zsoo+W>Su5tCk>70bxgx?H(Lds?6vPQARp#yT)AB{C&vX5xBz() z>E?J3`At-Sj`$McDVg$<(^02f$%3`qBmXV{5T6a(6Y^*@+or_A;`LqQ$GnrTrv^%n z;c;vA2Q5jcI+lUurVp8_&QGh=4{^)WA_{mI zLwuc7p$liocW$M`BrQH3S5b4%vqT)RY|9>VXTN@VZ_|I|7xvwEQ&oMCG4Wp?xV7`(=D0@I<_^S!+k+2}ydgB3dH+=a-D0W`@DKyQbXx(f+jG z8{2!DDWdg`aQ(GA^_oBKXGTn*Po*7C#eSX=LC#!SoqyNv98>fWnS%1BL=jKbkDiJs z%VQBI?3<{`<4Id(b7jeco4ceDyh21V$;Vi2_GUw+W8kx~mz{F*pU}}|Gk+mm(qSoG zIeH>Cs2Nwq=~1#YGrge^e_@ElI`TST#R8;4L4}ITFlu~AI>+smT)fn^I`oZOXf;a? zjtFpSzaea-$HkO5CI}8r4%~9p2urC)&>(Kt#eHwSjfJRjXKqStxna7F&!U*;;E_!{ z&O(=m2>)@VIuZsufS=~$&v1XX6#t|8r;2uo@Pdcf?XN&R9bWv&UhW?t4%zxbqW3rY z%b$xi=_qk?-Sit0O$p*B=Mb1{Q9_WePlaS?fPzV(U{W(h znXs4u3>lX8JVwtKV1f&@!bAB@A^#K!l%S6+ZGFM*xT;GL^ZPSoh4F9_kM#3YxQ)y2 z-hR>G^=Zxj-~J(H!l#?m;g+tv)}ykjb2*p$^)=Sg>?zUiGs?EzSLk|YocBtKjiMs$ zWDpZ*(ATlcT z>FP-RuweYKFXZ(@Vx7=;n#Ql>D=&|St@1HC4~pK)qM1-mt@WP1;#OaJeYg!Yd{|w5xD9BZW{!E$&_)Z_<_P`CU%`-; zS5}_#c5l_!J!)c;>xVhQlKj8b&lC7YW$EF`eXy3S&|ISSz8{JXBoQcRRb;V$y{i6a<#b;;Q>Sy*o}xl`|KlV>07Q|N5hM+H&krnRQNnT~pgSKG4&K_$ZCPUR&@ zy&<{S9Rg)0F$2YdSMa%nW_b}cn{^9HLQP>f1Rwasb93l{Rk8^MT7bYh^AVrJFEq}o zQSRhZ%ctxt)!1KleV#6x4gXBPcHI`;8sTKc4t zQL@EyQ^4Q6g}KV*(PJ9u`??fQDv%NhM&#=W3v6_IPwP zF5NV3yiVVu7Hew{T}~mx4i1th;UcM(4Qka0#%ar4Z0}A$DbEI8jc^4Ts^0V&8fi<68Fgzo+B`|2%P9{BihNPBLWFelWVxS*Rg!B4GQ0Xea-R56Zz4HkJhjC5pRyx)!6%@P&GO6j8w^aWP3SF9_zg z3o+Z2AV~k$@OaYfVc6bW&uh@}{$}y`ta~KTWo(={fWP@xX!RIX0!;a}8TT?WUj^(X z^de_^nOUJKc)?KjxXSa3{`Dxqne1ufdugMn_v6i#ShlMLAhgDNlG)U^d#GyU^)04w zE3(^t68G!V&S9(O3t?tL-tNk^cdl{sdAyJ&f6Ny-wW5%6g>`CiGWfcfn1gOxu_ljk zLfiV)+X3?8vni(uqXiPtau*nTJ&#o(jamx6g=D5b(4tW0k8>qfKFYEAd%1JrG{=9u zXco%W)-EloVH9SkgGEtRSrkDnL)F~DY#^=tjBfih>r*0cvfyRj?Po|w2%N_vbcTnc zUgkoCeYc{as+J8pe>&~9Xz@XGgceWgJ*?W!B2i}7uFMWvMTy=LsiN`o=pTup!8g8d z{=lSgsvz@)Q5|XGj6!A8U|y>inG7}%a{<-;6fV`pCx^j0LI@Zg^wy%&U!s3yvz;O{ z4#^seXDxMH^C7|A`}Vc2l9rNZ05xT2W-uBYJ1c?W^l!-02)DejtxJyL8-7{mHoJ{k zFm(rqC?NRr6d9&uqw!tkDi-cu55Y0D_#+xFyLp}gS=u%=_?^uT*7i)wF6*1K-mT}i zUxKuxevN~*=Y@>eT=u^@+Lzhar)hu(o(DO+J4mgdHLfgQSpe= z#qaaxiSd1g90}p;62|~N2=}@F-EA@E_(U50cqQh9kh|j3ier1L=bzE=Gu`n39ow5X z=MVbpGu!RyDxc|KXdO#cxp1K{fIs?++D*w^d%(j0rf{PF{z3IkbO_Qy z%ruHfer0?#tsMb^xpt;0+VHw!a!Q!H1qL}f2YnA|?4TRlnU+@Pi4744pSiC9x1cRB zE{@`iTZ5ZslPbO(6;Lm;gH)PY<}Ce*EZ8d4-ITCshc6#yLmoVDrVjo`Cu>eEg=;vm z9g6Sa@TCo3qK7iKU4ukTF@ecZg1=vm!UA$*WV&+&Yi zbK2jg%#1KH$YX&a&wuZ8kp6&KKrN4!^-H~^9~ty>`Kbh@#jJ6<-a5Zc?pucx86X+z zF-%)CY19Q0BDAIRlnj<-bd8_ve|N?=WwxXo(g{<3S8p1BWDlMS@KD7RPKIk9d zvq|8@N=68#s4LMpeLP>KVu_7S_p9gjFI&;a{#CzNAf|$1r!bC;mIhUj4@kdnx$$)| zt^IQ!>ckx(=OxK-X&T1J?Q72}d1xU)%eyV&4-witqd~y(fCIaffwws=FUy!uda3C(3{*kkl~@h$f&Xwirx*itZ%Q;P*hC}| zD2R4>ZER0)_<6>^*Uonb~(xeM?7_19UQlD=;hfOQrU@9}XZx-5cX19OBnOMd+s;e;d!5kc6i zxTXoK4uI>%gE5uxxD2E_fmp*q>~=-Ve@3|0G5->lY;DVak6>5u#IdSJXEhnmj{+%a zZ0u0tV`4Wf3<^uP!?v^akMIJ9iHHA41%>g@UX!`H6CA1L0hGb-=@Y~i8LNfaFrehK z8XVO!f$2xf0gpeyVPr1Cl?YCEb+;WZ&rM>_|H9->e$%Iv1)+@f`Nrj|jC5>`{#?Y* zxrx0=MUMzurg7`@9-5jU6INSl_prVB7x*meGH029J1Q`$pqMO$$E&c5m51Y{uU$$K zD0vaC``h86LAT8-)gAOnOt4d-Qh0sd<@FCL+wxW1DWl9Tf67o)vDg!e0lj5?BY3SY z5wDkpaYGU~U4V@nnMzPCdHT`Dj@pt#pHc>Vei(mHh=%JL_rr~AhCaFPy=)nnT~g#& zt#3P9Zq50Z4nL84aMxBJI|vtOhIJBbzWJrvj8GI%+d&QX@{?UpPf{fJSPVI~;oZxP6Bq@$!EJ7vE6(z9Zh%A=*&K}Ah zZLxTp*J~gyJ_ixQp!`_BI!f>_?kqxHYc1&(Ac3q;aDJ&uMCh@P%P5EN=3*IftGrCO z>#h-mi>8W`p8KK@|3*c`Bb(0ON#xz5q^?t|5p70Fz0_5fQ8sW*?nQE7tx`4=Ei^sf z*zPDQI(BlDyjBl6I0#0&Y z+`bzf;NGwJ>rWpa3GL|HuHIB?Hj$R3_y>-Uw`OoH{h`m)%pWBP`EH>`g-1x(*ixmA{+P&h#|Oib}wOs zlOKaz9Zue8S`q8Tq)|*~iZD!8O!^&HLP3%KCcO|8UcOmay0gca@mAuQAQHwQ%e7vk zKI|K6#7*?q5uKyIY%6JPS!c<6IRK}Rx>`}I22DChSK?0Fs+&{WvTIhMnnH`645Bs{ zi~`OtVyYx?>a-8qm`8L#I;{dgMIYU?|uldDiS8ZwsH?A|MYQWT7*6 zsLWv4R26O?tq}I2rHdxpd*q5PK>5_y8rc8BI>Iz_H~yJCIGt?NdJXApwD#vF=JTk< z{J1_7lckl!OyJd259Z0|JuAWVotg}t|aY>e;gw%|kz6&j>PH+8jC>VKjhB$7R$5*h1g01$kZM(WQo6L^T$ zOzK!>0cQI%>0!WjoC_3f$dtdgod~TWMb2sEcnmQXJfU?l0Wt8XN;GbM4exXr7@WwKptLrx5a=U8Ab z*UN!*OUKR~mWl6otW)O=810}-Me21|BfFgiOqT^!1>0Pfu;}CBHX|gGB$;Z{D8(fj zq{zohA{a0U25N&^r!G*Oj42iWMk527g0MUWlq|lezsTSmC2!vT!Fi!b>o#jjs3V|) zmF+(ZU~EzCdD}(8i9~NK2!9%kgj*5_-5FPh2fRiLC)}*~F8;GljVWY${)jKy;kVIZ z>-}=#Pi`froz(c|m&HVpP12A2I+XqzL@pgdyk7bBa0H`Ft_VH`&b*tVr(@86aX)MxwdA{-v0)JB~MUgj>6 z-;J)HQxSYIwzVJ?px5U+q_7UNh2fP2!EQ(w(%)>o!h8k+rj81>`iF;tB4jhw$&WwA zXJ{ao9G8#sW)-L~5o0O`B`8ZtDW^xZ0>Q8=1^(<;EJ2)%tlkJQmpf3eHh0Vs|gsO)rZb ztp2Z#rl((`C&J+Ig3NHn>H4RV%j81Ul-;33`h`cmzFIREU;}xiIgc{TI7t$#iTE-r z$u(LwsQK-mU1R?1;ijh*7W+d_C2IpO%thA;!rff4jsV}*%TvD9JG*=i172qV-}j)c zqV-Ac^<*!7`^c&2bXV``#0S7=@Z<)rO1Fc8+c7^i0gdn44J2}eBA$SxaXpl?E+wSJ zK%4mR=DP~yHTtH2!6J4NQWd!(&M;StI&uk#Y=XxX_k@^_*p>Reuxd@NQH%S{JK15% zCosXx>G(ul+I0og;RTuxQ*`emuv-{}8&F);a=^3BlzHJibZ$xvsLJdGydT8^it}NR zNVs)GbFj}BRp<;n8o|5ju#W!h`633fU{UZ4!diFuATCI%85co|OxGN0`2?lxu4(kt zWGLSH0`0(+vEPPIk4?qPIHxQ(GeT&`8!PsV7-e%;#tC@&{dkQBiMyj?A*J4;~*dwExhA}>Y-yvxLpwh_hC^g&(t#qf6V)MswV@-4f>$Bc2}_H-hI|AaJPIEv5cX$cjh<3x^6tkq@pg&WB- zxyW7#2Oo%6$aCkejE#G=!^2bqhIf>&#E>OJn%o02sm&?_iyYbkX;>*m_tvn)4?7#fJSh|B z7gE;(|L2oXHpP*lu(O7zQF@MpT31PPT&^SY+5t602np8QQX z@&v!mtn_=EWnruD#y>(8#j41ahE%ZJ+k~k8h1O7NnLWTQclQ&}Z+|xbiYk3pFcNtB zwTDVB_UrIs`bhzYSc$ldD29A+^aK$8lR@Cb(L)##89y%K+2@{z-WbW(y|1eBCJ#a` zdY41D?cUCxZVM64ajAGN>V96L0Gur8(B@sEu%dX>@@QMtv`vEN71FJzsKE@6nKFjS z#op5;W9tL2YvmctVmAYqO-nv<2it^_vYIrJmHZcjh7*FfOO<~e!o-@78wC)vv@cO} zwIUM4oiyg(()_7*g!5%OhA)!G20(8Bufl)<7r=`!yIrk`+~*~2b`JitCrS2T_XwgX zw3kL`ND!}QRS#zBMw5hHbgFe-_yY@`@lZpofX>n~oAmr~#nqj`pk4;~zf6iw;*tnI zNLe`>StaJ*^p<#wIT+D^A;rXJvwnMh1fBsmbMk!S+i7i7h(JUVTo{|&c&Qo=juty2 zBu^xiPtI!hlLsd|I|zU5{qY6lY*)Sz*Q=hi63Co_YgSLk#J*B(C+rq$C!U(|@xlc< z5i@ENyW@&OOB-bvoe;%g>h&}@!mb`XB1dsc3DXwmOI@>uR#kR$jx-~W@Qg9hF$;`M z6Sgg|Y`B@t1&5&+0TRdXR>&uoyj8IU>#H_Z>MMSj)^9i2QaO z*4cL5KUF9Lb*pA)yDIavQrrKA<9WHMNc!hfoGq|5H6Kqn0k*w;mbo66J zG*(=Hn@88FWz{*GQ{>(%RLiI(F!IO#@B&bqO1xv5R4LdL2}Z{3>{Q#@0#XP&4=x)1 zNDvoh8I`(P&d^u)?a^wm=8+b0W59l37hnSJyAH!!+YOJug+*aOD0@s0>G+GenoQ;a zj@GS2BeNa9Am!;e&{>T%f+ZBVA;ZJu>iRvYpoE`kZBC8?;E4lhz?+`iUxgX-$TLBCkNWAl8+x#AmQy zcp=(=SDehx?9x1dR2Ce9OOGRe`x469JDN2C|_F7p5k!tvstQ z2f7$0k8Gy<99)pK`6@dwZz|--F8?olYFU76asU&?+gh~-(2~9=(8s<%P32p00 zG(AKraX;A90gAEm71)YucY`*E z-_$~lh(aq4s1uKar+D>i(@jI(jICghIG?Lpotk(^&qcKzC-r3vC5Su6P>6C!cTLbZ zqCxdlY?SlNWjm}94*ZC$+{Yo4&JTg-aJHzA=2|rpJr;&_Dgu}1QKdwrN85>f=pezF zEN%SqYbTy*IpX}EGPqjZL|iBU3v+tdI_wiG%}ZI|3jq;9>UGUiTD>E+2U)drqn>5R z9oCcpVPygEHwrkVkr5RAzzb_?Fg#uHjKZXGMnQbWFjB}(yU?kxO@=jT2ZDKxAk3iU zlMNm8_zkxfO$GG=UcSCMn&1A&7WfClVOI?RjFI&JqVf&>U|xrGzcM=}C+!k2=Au+> z(!$xiAw@oayLZGgz00&Jq$)`f+5K{`nee#oW1IcEjv?k^N9c6El*^Y_Asi(Zx1_q! z1NCcaBDS_EMv5dsp;s1PIe@g5{@sM544U8^_t*;a9h?K*7wQEI*RpuhWC5cYxbRsUzQ}^4EWma@yfFfY*#4l#pN7j<^ ztF3ca&*?YGZ@x#zjTHwvkbgIbCd8L+x4)sgz@7KWsYDLjJEMnU;^Z)?$~QLg+UG5O zEcj9PWN3AvM(}y9;Y$OZQCmMGS$b1O8?OMZhd?^$akH#1;XymTrWc_vP^PTYBGx%L zvEJfh(EVECUYE1eLA-mq4?N?mVYH4cC3f)zsq@r3y*Ay|d`^xM&>HVg+Aq!bAUNj( zM8oBmtl=RK)(h=)Y}kN{*{kR8y2{9)>$xcKD7?_^o0L?6kd&2@Q!Ku+JHQ1lVD>&50f z6{92CW+~@8)&aHNKlyc{gm49( zjeX`K?@vav>b^Hp6IEclBW0Hn_U_HT4;+Ice5#jy#;T=+p$tjXI#9W#M>=Vly_tOT z5}%Rz%rl5h+d6^}*98e<`TisuBs6Z)AP3!X=X^htrNGeK)Zwcxj+SnwLfxkaqm&w4O`m=Ai$Y(~ zwBVY^{k^C|92nHP-XQohDlo8s(?GzdAzZOr72^JlpQ|z*WEq)4B>ltxtIgREuT`fI zhO&cPmAEXXK8GHyu7keT90R$8GT+CJWKp`*rw{M8kgX?AIGLBU6NogBX`JK41Gdz) z{1M*6ml@I|rcrhqXL2V0T~`BjSW^SOkw<}WP$VU&kt_Ns0Mi{VeJGx(8$*|M64k$7 zSNv4Q{6bRrX?ToUm{4?7!qn~!-8P<|P}wpBce8B0bgPUAojQ&iyOzCIGESE6)p+^% zbXneCf2gb6`}EwyTZ!33=B5Q*h@z*p&GvP8TWFavpwr{kCGh=L(keSZSl9mC%nPd#;lyXq zMVA5XWMLuf*JH*6Q3Zcr!i?`z3x1e7yvb`OP1>=FxXyI!!Gj&9%SJd{@-nTRj**si zTKC{CJ9PmWVrmK5cB3$Hw*Q(XnX5LlHJM%F>KFD4|Iv*?k$n^XFLj<-oKOHqgm(5Q(a2uUyqZuqht~Pa*!%WAiNKcUHwC4 zsjfL94xEfB{-;7cvOos>Y5eV*x?TTW3aNNmCk^TLr*u!GZboL_l4jGJ7Mt`lkwp2? zdCRMmL#1wVehdhhE0&5ae^PZ*D&ql-5iP>M-)_eIn2-AQe12NpfFzFq#jbW@La_SA_Go*NA_q z$n!pP(kHAX&jC`8$=L#stip^%X{OoGcpUZnhB(JZ5b#UGMySd;&T7NJd}Rs~6G0g0 z%n8;Df#A_gGTyh=ddYGRsa-xBfKyW=1Sp5H-qAJ&v%zTEz>{|%V z$=M}(B{3xGJHCHXi~d3YFiMQkQVT4uyy_^FY4eQ8pdD-msh`7pbQn=6{r8})lJJ@z zxMUCdqA_fhC0{ZiZ|suYAQ;g1X3c35M}|NVIO{b`KVU;Z^lWOuPJehI+ERA)Zw~DK z?U>z+GcF9pokP}s9^i%bpVl4KEa59t{jNTKH*G;{BLq@%6fLtqRhy$0lU9ZgC|Xe( z-n858FgH;EZveZqm-2j>^blSpZcud?3W+FSDx_$6)*`io|* zFiJQIP8aOs5AIR*u1#qmBK-&$f>|bp2Vr-EFR)S8Q(%8?y_-L|M)DScDrHz3FCbQ> zk}G)?=KU>+HnK@(>6>SaH7w?2iV@mNyASSb+kl7j|c> z1e`uU%E;S_+ir=LWfq;V`AwODJmOm^8vjEvGU9bKl{v(`9R@UT>A3^3@p!z%UMR{& zXf|45%k#ktMOURbT2)BPT;m@>qT;VK@T8Fa`O-UNaU-uR-g^*@I=#BMb#6m~!#nY3 zv1OW))kQRd!KEF+n*`=OGpJPku`5x9C?F*&jEYj_6qt!YL$t#<^Yml4G)K=ddWak` zE_IP{zerl-n1HU!T(Cx0PCM4h6vl+SF1T6OX*HhJf;I%tP$p|{a1M#2>tQ%cGV?Tn z??$_R=QlcJero1KcV-YpgsmD@TaO;!_(w~oeGC9^fACQn9Q8Ae)Dtamo??@7-eHa; z5-#ndRwr?amA+1hc}eeUD}nPf6-~On?FWK}@Nj?o0CUV%D6maFIV#B2+;lmpRu-Y~ zEli^Asgak-3fEt1aY7u zY8@$r*urSc4IPctE~}}v=8Ind+69G6*(r8SSDv{`Kz=6hMw%*>^C?j#vS>0cwEoih{vW za{(d)sDNY#I@Unv2v6}iNS#Dw{yyI@Ig(fD9njNMJ+HSXJR#^7>4jM=yw|~<7an)Z z-rTyASQL0{9LG=q}1x&lRW$=GIk0Du36G>)( z@WT4U-Y6xBpPj0tSlSu2)}%+eKk1X46hb2yOvAl*dyNuKt=!0t{`*>)1*)}F=9#P( zoUv@rpjLpvINkdRZCCj#h4_WC3HoX8H=WtT`Ne7w39?hKv-g^)z~v(ly`bn1=24S@nCAPzXb|CR_FQgbX8O=12Jm#QWNCnmROhV$3k@kcQZV3P!jPe7}O}1=3$Jd1~weISc)PL*o`u z#uywzNk?V|d!9E)hfHeG1lF@{$xVK}MJ6nUECuar&-=c+kNo-i4Gg(4R3J=F2AANr zgW)jc$X~gxMh!_)E>X7&Cah52Npqqb5%UyvdYj6U>jD9&paVwBKTt;WVmFAwLi9^R zsSTY{ne_mSwyK@^rdfo{C5jo8@poMSsldIR#Ih!V(=ZOY84fvPJaP(9|51Tin8cg-3ePfbDGVv3@J!P*qj+O!kmi~j@wGy?eUjp!?d6S zk1R&v9=LzfTYmRb%+{$hITp=K8fYz9n9soS5r}tDI=Rf0)n7<8iG06GLDWiUZIupM z>Ehz5?BKz*LwMdB4D0u4~0t_-4R7)0?PY9~was_FUm^ooTQ)6>Pe>FH$E ziWSLXua`ai=$`&!f2meQ2;VFVZ%$V<0eG?TlAOfQCFh)3XZ7y-lw}lEEK7yL> zP)N7pzp@)l^SprgYx0??`vYq%>4wZX`kq4T0KU?!ItCHo{tiPKjlmnR{|!yyr$rCy zL4)lUPKI$Dpu~rcH6HZ)ie}R&`4}~xA_W0scJg-4^vVCHh6Oet0&0wGc7Wp*SrQrf zF((}=8sj=*X)-Jb|G->GG~weJN)x7tQQ`b(w^{*`GvLj~hUq5lXhpY8#n=~?7Sp-; zeZ!@tzI%n~ExIOw8~|Bs-<4C2kgjaNC!*O$AcTQL1-d+;0v2M75T?RcAb+&hg3?pAg@@aI&$Qnx7 zFijavT6Cx*0$j)RbrNn8GtMIrU8+%m(V!v_*qOzQAGBH>gbX{%fw1S{GfoizB0eJ! z0dDESB*s$PWmKMUG2&mi6`{quowD^xi~ix9ltk7v3Y5Ga-UOinL=cVk5eTpb2XE}C zX{659a5zK}B8BYiFml0nfC^fjwjum#62YEG2g6cF1tWX}r(OQ0mz06`0?D$KC=y=i zr*;62K?EQgluf0LXV^e^X?yNO<*0zq0$dAFIjH176a;Y)`3d6x0%Rz7ev%}9Rh0N2 zL9(S`zsPwF9-s>rtYX-u9f*MT7NmU`qrkY#dr%1mD-NeDD*-*iMM$N>F){LPN)qmmgKf`b@1IXxNUf*@$t8~7D& zH%45&F<@pI;_pa7)C%Jo=OYllC^+g6@gta?L=;NjVS0icUI?HjL_j>5X=7w6(M(Rt zS;=5JIO6(hkXKsW61+83lMJ`xoy0})8%$Frg= zdIW{#h<&Nc-#Gb?GOwg0^YSO={^EP0>IqaZ&PPyHRdD7Nm;d6>D=%gnyCw)`qV!-Y zsTu7EM1aYMIVXt_O~XGLLuPGjsK6yrl|6_*+t857DeGWUs8C&%Rhs4{u&`wSaMTiq z6Ool6FkU3O3>)PTTBlxXs7XsljD2XHSD?mfd!^SKz{KXxBdB}9Q9&3w@(PrliL;{9 zlq93IjT~ndGlv?8T0II)eKMeI+noGC`lQ$jBjapcn8c)0lCjvp3lY%E*4XJQ7>@|> z`cAve)<@8z;WU5~eyI8i8hiv|gb*xN4gkN1upz87t+yt)49mK~`KXWXDrM9%V(hgD zBK~|mpL(sKHcsqw#jx}BKtxhs?PG(FK#UocXhpF%i^^f=C;!L*{&M58jRJPcO zq*3Fk1p+J(a9io7p;{q=<|NybFLfUfgQwa!w|!)#Q_q7hqeca8AAxw46BS6o$(|jW zsGvb0&}O^6s*+#5;_?>{%kpBg&Nr*-18FMr3L1R`0)E5JP02?Z5!A{PWz=PGw(udT z5>@AH^bJv(dhLGO(VJ$F&k8DNKm^oYK#3y_HbvHfG)qfpiZxLwe_GOph){1&69lZR z0il9M0#ro3?^W>t zOseC8Koh#2hxXtAW5}a%;Iac^t|cmO1igKi`hl&cuAp(q| z+wQ;`qnTgWbV9wxAx|X>$yH3aS}%<+opy%`!0-i=m|83oLj~MyHwF=4+?w!nOgw(- z4+hL^H^N6C=pS@bhq3EhSDc&DOZx>owp9PPd}w46BUDiDDX}zyPYyB>j#~=|wPm$P z7=`0@kf*?_#X7i4RTO1igUHS!Fniub#HB0jn)4qd=@BXzhX`JtExhM%qgC&{_Q3~} zw|wF+FB=w_h73fJ`iwk)xy&!))Z>VpsHm*8h6>njWu(DJk{85i8Dn$_0x_Go9{Lp` zlJufb`jp_b3@ciN-e^P{@OGDn3cwiEjwnlP2m?4!iP4IWAqcP#y>uwN&<=2;G+236 z7=?a2N?au>rIw|l0#_b^N|0bQ5LR})QGHjQX9dD%m1VNIq7>eN*X7VznAYGNQUwi4 zE&!?3jVuol5EJWkEheTCvp@yJBaEalYnSs-QdhK-pi7wBR8-&=2>P$xHs!zwK4is& zz_+G5WmUFrFKwpsIlW|&D;RZIOI>%<5jffzptYv*|dHG}E(d)z;w)45CjLHL1r zYx7G4RsRGOR7VhL7Ee0vPMZOV3Jl1n5THZ_%RmHZrQ22=<#j_q1n2;4=45_p&`YEu z%&&uSM;^{fc7ICvZ=_S!DGZeTRFZWglxt$!?9sxo-{&T=W*>p*4d?~Ve5-d#*gqjP ziXa-{BX~u+0GG`lTovv4(5?p~|1F>R_+`VQyjX0yil@&Kqosta=BOco2+%1+=V+43 z5CkYPM(N+91c6vAoIn)?K1&d4X3U6wktK#lAOf_2_$Ji2Y2x#kv@|P_ENkgD^o$`0 z&`_eH0@bF;`%Jz9Zi}|bN=F2^P7z65qm!v{%6rkbfwc4Tmo%JEMvmA-F}YYBU~1RW zz=%IKCrH^qC~jAWK0VSZT-A|U?= zp$t=^)Jhq~n-LAM_BHv=H002M3)5ilB$16D29;LL)j3Px+thfNOb z0YoIl$QLr2Q{6eefeRJz@f*(}vbWuus`DNk8UjNFoNnx4Xfr`3u}+7tF`srr4x$V> zJH^bMM_{f~x6?trM_oWG^CeM%Tb9wUJ_G?{jNW^%idKC9f4}q{S6tQ;$Uu`UX@RqX zWk<--sIWwu1U7D*Le@^=kVSt49wetpjycRPh>4f%*deBw%18Hflf>cltDj-XH%g=d zb*I_k+eV}T&uP|-?YyJVUk3v>1tBRp-ouYV!mL#xFG>>LlP>{_2R zwtPf@CcD@$0GJK=a7CW6Fvu}J0zt5C#9oUiLzTIUwJJ+bB;pADMAtjaLHbp<-Kv9< z)OqFY>!@HfBEa71blT+4pvT2ZDV=~Rix}+~AA#r!0tISRAl|R+iPH0WLlqSm0>KzE zV&XfZ0HGEhE8bXn!*p1qf(9Q!E$aerN|?kHQKT*pOk(v(cnZBb$c~``_-`0Y5$nj# zxMB%9gbMnqQ`TBI&63jTuAl>{7##{zXDwbWRG`n9LQ{3_DMuZb=FPlBT}*zAK|u@5kRSdB+u(4YTZGVVlEmIKT|` zZq&`uBnYTILIr{`+S(%7rLiDmd<2ZCBGDrvRKRS`YBWYIVg>``yQ@x7w`mCS3Z|S` zA!Zrgho`saHs_K!W-2AvTdN3Myopd%}@MxfdL-7%aH$&S-bdKGZngDu( zA?oMpc`&XA%974$NLqDfFm5wFSqR}nhPk$G3WL&{22w>)UB%xdXRdByFdXK&m2GV! z0 zX^J#p&(j2on%pCN1cD^Vrby8*hKkR}mLtxbP=V1u3lXp%K!6m|WjIcyQ<0)Sde-p= z+WQqtJ3|FVO1|=LY>gCIgo3EY2!hBDeJZ`+{P1X!Y*1>D7UhuBP(6Jv_YYgxsV@2`YC5qege4yTmId+(`V<+VD~N9S4Q)|J zmbJFXGYhKPS1?Y#R2Ay`$Wj}|z7Qwx^}r{Pn5pPDrjI~83i9r>+L0@eL1^H^VO}s) zFd7lC=(WJ>blV}TizQ4}^|=5bepGgKp#sxKz<5_!!NkUn1XVvZ!b3t>f6!CRCGtLr z2vi$A)`TjZ8VtLpo6=ia>KQTdcGRD^A8Vrd3QSWP9PglOGt8cMQxgREEvhOn3VcHt zGU7R_@4t{|OL zx(%HN!;+pIw;ErKsT80~V1bd<8;4$$#NY^*zV< z-H3qpAOZ#8h$qfjwSeU6!hj~14Tj(pwFjt_myv$Ms?TdTm zoa+0Dgq4VXQRZE2JDfud;aB&H{&FG$TyQg5#k5*f<&t2uPLq^Aegv1WHQ}%1B1z09 zQWKYYFu#cBIR9`ib66qANlnaT0)w4bAdnP%R){>)MTOxl;q61Io$9tDRj%oXtn?6| zgWLzfF;%|h>gE)LAFT;ZkRpIs3pgIL2^Cm^0G$aS3_S1suikTz%tXKY7k_qHKhH0s zIDM9UM5tgKBEYj@82A)HWJS@`1e_vTg<|5}8jV_Kgc8Eymg2@Yp20D7MNvp!!3ZCL zSR!($iTbB%a~#FMu3@19C);5^0=3`}a18}1?SgsrolaTZM<8a1@)XqL63xw7d0wwS zV4B#sJ^qjp*28Y<8f6m}is?hS{9wlS6G>)x~ZqCR%v&v0eRvb(bs z=9hue!)8Q)`-#!YvJUlL5q}~428>Z?;F^|Ya3aQNk$hxSI<2RKGT|92;0)1zCI5v9 zT=G2tom=~$Ucg?jpPL7&TTXL+JBraU$F@QMdfUWzLzbp5e!bJ_1gJi*r8=sjv#QFaC5|$b zg?B73<2!L2)Mq90+77~o&L3Lp4G?W$ZNUEvOudt(5#ojk00000NkvXXu0mjfvQr=} literal 0 HcmV?d00001 diff --git a/src/utils/carbonNeutrality.js b/src/utils/carbonNeutrality.js new file mode 100644 index 0000000..d982589 --- /dev/null +++ b/src/utils/carbonNeutrality.js @@ -0,0 +1,285 @@ +/** + * 绘制3d图 + * @param pieData 总数据 + * @param internalDiameterRatio:透明的空心占比 + * @param distance 视角到主体的距离 + * @param alpha 旋转角度 + * @param pieHeight 立体的高度 + * @param opacity 饼或者环的透明度 + */ +const getPie3D = ( + pieData, + internalDiameterRatio, + distance, + alpha, + pieHeight, + opacity = 1 +) => { + const series = []; + let sumValue = 0; + let startValue = 0; + let endValue = 0; + let legendData = []; + let legendBfb = []; + const k = 1 - internalDiameterRatio; + pieData.sort((a, b) => { + return b.value - a.value; + }); + // 为每一个饼图数据,生成一个 series-surface 配置 + for (let i = 0; i < pieData.length; i++) { + sumValue += pieData[i].value; + const seriesItem = { + name: + typeof pieData[i].name === "undefined" ? `series${i}` : pieData[i].name, + type: "surface", + parametric: true, + wireframe: { + show: false, + }, + pieData: pieData[i], + pieStatus: { + selected: false, + hovered: false, + k: k, + }, + center: ["10%", "50%"], + }; + if (typeof pieData[i].itemStyle !== "undefined") { + const itemStyle = {}; + itemStyle.color = + typeof pieData[i].itemStyle.color !== "undefined" + ? pieData[i].itemStyle.color + : opacity; + itemStyle.opacity = + typeof pieData[i].itemStyle.opacity !== "undefined" + ? pieData[i].itemStyle.opacity + : opacity; + seriesItem.itemStyle = itemStyle; + } + series.push(seriesItem); + } + + // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数, + // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。 + legendData = []; + legendBfb = []; + for (let i = 0; i < series.length; i++) { + endValue = startValue + series[i].pieData.value; + series[i].pieData.startRatio = startValue / sumValue; + series[i].pieData.endRatio = endValue / sumValue; + series[i].parametricEquation = getParametricEquation( + series[i].pieData.startRatio, + series[i].pieData.endRatio, + false, + false, + k, + series[i].pieData.value + ); + startValue = endValue; + const bfb = fomatFloat(series[i].pieData.value / sumValue, 4); + legendData.push({ + name: series[i].name, + value: bfb, + }); + legendBfb.push({ + name: series[i].name, + value: bfb, + }); + } + const boxHeight = getHeight3D(series, pieHeight); // 通过pieHeight设定3d饼/环的高度,单位是px + // 准备待返回的配置项,把准备好的 legendData、series 传入。 + const option = { + legend: { + show: false, + data: legendData, + orient: "vertical", + left: 10, + top: 10, + itemGap: 10, + textStyle: { + color: "#A1E2FF", + }, + icon: "circle", + formatter: function (param) { + const item = legendBfb.filter((item) => item.name === param)[0]; + const bfs = fomatFloat(item.value * 100, 2) + "%"; + return `${item.name} ${bfs}`; + }, + }, + labelLine: { + show: true, + lineStyle: { + color: "#fff", + }, + }, + label: { + show: true, + position: "outside", + formatter: "{b} \n{c} {d}%", + }, + tooltip: { + backgroundColor: "#033b77", + borderColor: "#21f2c4", + textStyle: { + color: "#fff", + fontSize: 13, + }, + formatter: (params) => { + if ( + params.seriesName !== "mouseoutSeries" && + params.seriesName !== "信用评价" + ) { + // console.log(option.series,params.seriesName,'option.series[params.seriesIndex].pieData'); + const bfb = ( + (option.series[params.seriesIndex].pieData.endRatio - + option.series[params.seriesIndex].pieData.startRatio) * + 100 + ).toFixed(2); + return ( + `${params.seriesName}
` + + `` + + `${bfb}%` + ); + } + }, + }, + xAxis3D: { + min: -1, + max: 1, + }, + yAxis3D: { + min: -1, + max: 1, + }, + zAxis3D: { + min: -1, + max: 1, + }, + grid3D: { + show: false, + boxHeight: boxHeight, // 圆环的高度 + viewControl: { + // 3d效果可以放大、旋转等,请自己去查看官方配置 + alpha, // 角度 + distance, // 调整视角到主体的距离,类似调整zoom + rotateSensitivity: 0, // 设置为0无法旋转 + zoomSensitivity: 0, // 设置为0无法缩放 + panSensitivity: 0, // 设置为0无法平移 + autoRotate: false, // 自动旋转 + }, + }, + series: series, + }; + return option; +}; + +/** + * 生成扇形的曲面参数方程,用于 series-surface.parametricEquation + */ +const getParametricEquation = ( + startRatio, + endRatio, + isSelected, + isHovered, + k, + h +) => { + // 计算 + const midRatio = (startRatio + endRatio) / 2; + const startRadian = startRatio * Math.PI * 2; + const endRadian = endRatio * Math.PI * 2; + const midRadian = midRatio * Math.PI * 2; + // 如果只有一个扇形,则不实现选中效果。 + if (startRatio === 0 && endRatio === 1) { + isSelected = false; + } + // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3) + k = typeof k !== "undefined" ? k : 1 / 3; + // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0) + const offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0; + const offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0; + // 计算高亮效果的放大比例(未高亮,则比例为 1) + const hoverRate = isHovered ? 1.05 : 1; + // 返回曲面参数方程 + return { + u: { + min: -Math.PI, + max: Math.PI * 3, + step: Math.PI / 32, + }, + v: { + min: 0, + max: Math.PI * 2, + step: Math.PI / 20, + }, + x: function (u, v) { + if (u < startRadian) { + return ( + offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate + ); + } + if (u > endRadian) { + return ( + offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate + ); + } + return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate; + }, + y: function (u, v) { + if (u < startRadian) { + return ( + offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate + ); + } + if (u > endRadian) { + return ( + offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate + ); + } + return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate; + }, + z: function (u, v) { + if (u < -Math.PI * 0.5) { + return Math.sin(u); + } + if (u > Math.PI * 2.5) { + return Math.sin(u) * h * 0.1; + } + return Math.sin(v) > 0 ? 1 * h * 0.1 : -1; + }, + }; +}; + +/** + * 获取3d丙图的最高扇区的高度 + */ +const getHeight3D = (series, height) => { + series.sort((a, b) => { + return b.pieData.value - a.pieData.value; + }); + return (height * 25) / series[0].pieData.value; +}; + +/** + * 格式化浮点数 + */ +const fomatFloat = (num, n) => { + let f = parseFloat(num); + if (isNaN(f)) { + return false; + } + f = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); // n 幂 + let s = f.toString(); + let rs = s.indexOf("."); + // 判定如果是整数,增加小数点再补0 + if (rs < 0) { + rs = s.length; + s += "."; + } + while (s.length <= rs + n) { + s += "0"; + } + return s; +}; + +export { getPie3D, getParametricEquation }; diff --git a/src/views/carbonEmission/index.vue b/src/views/carbonEmission/index.vue index 035d108..bed825a 100644 --- a/src/views/carbonEmission/index.vue +++ b/src/views/carbonEmission/index.vue @@ -1,13 +1,868 @@ - - - \ No newline at end of file +const getImageUrl = (name) => { + return new URL(name, import.meta.url).href; +}; +const overviewDate = ref([ + { + name: "年", + }, + { + name: "月", + }, +]); +//总览 +const activeDate = ref(0); +const overviewList = ref([ + { + name: "总排放量", + num: 83, + unit: "万tCO2", + }, + { + name: "碳抵消量", + num: 83, + unit: "万tCO2", + }, + { + name: "碳减排量", + num: 83, + unit: "万tCO2", + }, +]); +//总览切换时间 +function switchDate(index) { + activeDate.value = index; +} +//碳趋势切换时间 +function trandSwitchDate(index) { + trendActiveDate.value = index; +} +//碳趋势 +const trendActiveDate = ref(0); +const trendDate = ref([ + { + name: "月", + }, + { + name: "日", + }, +]); +//碳趋势图表 +function getCarbonTrends() { + let myChart = echarts.init(document.getElementById("carbonTrends")); + const option = { + // backgroundColor: "#05224d", + tooltip: {}, + grid: { + top: "18%", + left: "4%", + right: "4%", + bottom: "4%", + containLabel: true, + }, + xAxis: [ + { + type: "category", + axisLine: { + //坐标轴轴线相关设置。数学上的x轴 + show: true, + lineStyle: { + // type:'dashed', + color: "#557775", + // color: "#233e64", + }, + }, + axisLabel: { + //坐标轴刻度标签的相关设置 + textStyle: { + color: "#DDFFFD", + margin: 40, + }, + }, + + axisTick: { show: false }, + boundaryGap: true, + data: ["1月", "2月", "3月", "4月", "5月", "6月", "7月"], + }, + ], + yAxis: [ + { + type: "value", + name: "单位:万tCO2", + nameTextStyle: { + color: "#DDFFFD", + // align: "right", + padding: [0, 10, 0, 0], + }, + min: 0, + max: 2000, + splitNumber: 5, + splitLine: { + show: true, + lineStyle: { + type: "dashed", + color: "rgba(1, 39, 37, 0.30)", + }, + }, + axisLine: { show: false }, + axisLabel: { + textStyle: { + color: "#DDFFFD", + }, + }, + axisTick: { show: false }, + }, + ], + series: [ + { + name: "异常流量", + type: "line", + smooth: true, //是否平滑曲线显示 + // symbol:'circle', // 默认是空心圆(中间是白色的),改成实心圆 + symbolSize: 0, + + lineStyle: { + color: "#5BFAF1", // 线条颜色 + }, + areaStyle: { + //区域填充样式 + //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。 + color: new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { offset: 0, color: "rgba(91, 250, 241, 0.40)" }, + { offset: 1, color: "rgba(91, 250, 241, 0)" }, + ], + false + ), + + shadowColor: "rgba(53,142,215, 0.9)", //阴影颜色 + shadowBlur: 20, //shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。 + }, + data: [200, 300, 400, 500, 600, 700, 800], + }, + ], + }; + myChart.setOption(option); +} +//碳排放强度 +function getCarbonIntensity() { + const offsetX = 10; //bar宽 + const offsetY = 5; //倾斜角度 + // 绘制左侧面 + const CubeLeft = echarts.graphic.extendShape({ + shape: { + x: 0, + y: 0, + }, + buildPath: function (ctx, shape) { + const xAxisPoint = shape.xAxisPoint; + const c0 = [shape.x - 7, shape.y]; + const c1 = [shape.x + 7, shape.y]; + const c2 = [xAxisPoint[0] + 7, xAxisPoint[1]]; + const c3 = [xAxisPoint[0] - 7, xAxisPoint[1]]; + ctx + .moveTo(c0[0], c0[1]) + .lineTo(c1[0], c1[1]) + .lineTo(c2[0], c2[1]) + .lineTo(c3[0], c3[1]) + .closePath(); + ctx.stroke(); + }, + }); + // 绘制右侧面 + const CubeRight = echarts.graphic.extendShape({ + shape: { + x: 0, + y: 0, + }, + buildPath: function (ctx, shape) { + const xAxisPoint = shape.xAxisPoint; + const c1 = [shape.x + 7, shape.y]; + const c2 = [xAxisPoint[0] + 7, xAxisPoint[1]]; + const c3 = [xAxisPoint[0] + 7 + 7, xAxisPoint[1] - 10]; + const c4 = [shape.x + 7 + 7, shape.y - 5]; + ctx + .moveTo(c1[0], c1[1]) + .lineTo(c2[0], c2[1]) + .lineTo(c3[0], c3[1]) + .lineTo(c4[0], c4[1]) + .closePath(); + ctx.stroke(); + }, + }); + // 绘制顶面 + const CubeTop = echarts.graphic.extendShape({ + shape: { + x: 0, + y: 0, + }, + buildPath: function (ctx, shape) { + const c1 = [shape.x - 7, shape.y]; + const c2 = [shape.x + 8, shape.y]; + const c3 = [shape.x + 15, shape.y - 5]; + const c4 = [shape.x - 2, shape.y - 5]; + ctx + .moveTo(c1[0], c1[1]) + .lineTo(c2[0], c2[1]) + .lineTo(c3[0], c3[1]) + .lineTo(c4[0], c4[1]) + .closePath(); + ctx.stroke(); + }, + }); + // 注册三个面图形 + echarts.graphic.registerShape("CubeLeft", CubeLeft); + echarts.graphic.registerShape("CubeRight", CubeRight); + echarts.graphic.registerShape("CubeTop", CubeTop); + let xAxisData = ["1月", "2月", "3月", "4月", "5月", "6月", "7月"]; + let seriesData = [100, 200, 400, 250, 360, 250, 340]; + // 绿色渐变 + // let colorArr = [["#12D5AF"], ["#0BC19D", "rgba(13,8,16,0)"], ["#68EFD4", "rgba(14,185,151,0)"]] + // 蓝色渐变 + let colorArr = [ + ["rgba(0, 170, 193, 1)"], + ["rgba(0, 224, 255, 1)", "rgba(0, 224, 255,0)"], + ["rgba(0, 224, 255, 1)", "rgba(0, 224, 255,0)"], + ]; + let myChart = echarts.init(document.getElementById("carbonIntensity")); + const option = { + tooltip: { + trigger: "axis", + axisPointer: { + type: "shadow", + }, + formatter: function (params, ticket, callback) { + const item = params[1]; + return item.name + " : " + item.value; + }, + }, + color: "#01DDF9", + legend: { + icon: "rect", + right: "4%", + top: "3%", + itemWidth: 20, // 标签宽度为20px + itemHeight: 10, // 标签高度为10px + textStyle: { + color: "rgba(221, 255, 253, 1)", + }, + data: ["单位面积碳排放强度限值"], + }, + grid: { + left: "4%", + right: "5%", + top: "18%", + bottom: "5%", + containLabel: true, + }, + xAxis: { + type: "category", + data: xAxisData, + axisLine: { + show: true, + lineStyle: { + width: 1, + type: "solid", + color: "rgba(255, 255, 255, 0.20)", + }, + }, + axisTick: { + show: false, + }, + axisLabel: { + color: "rgba(221, 255, 253, 1)", + fontSize: 14, + interval: 0, + // 使用函数模板,函数参数分别为刻度数值(类目),刻度的索引 + // formatter: function (value) { + // const length = value.length; + // if (length > 3) { + // const start = Math.floor(length / 2); + // const str = + // value.slice(0, start) + "\n" + value.slice(start, length); + // return str; + // } + // return value; + // }, + }, + }, + yAxis: { + type: "value", + name: "单位:万tCO2/人·年", + nameTextStyle: { + color: "#DDFFFD", + padding: [0, 0, 0, 35], + }, + max:500, + min:0, + // minInterval: 1, + // y轴(竖直线) + axisLine: { + show: false, + }, + // y轴横向 标线 + splitLine: { + show: true, + lineStyle: { + type: "dashed", + color: "rgba(1, 39, 37, 0.30)", + }, + }, + // y轴刻度线 + axisTick: { + show: false, + }, + // y轴文字 + axisLabel: { + fontSize: 14, + color: "#DDFFFD", + }, + }, + series: [ + { + type: "custom", + name: "单位面积碳排放强度限值", + renderItem: (params, api) => { + const location = api.coord([api.value(0), api.value(1)]); + return { + type: "group", + children: [ + // 左侧面 + { + type: "CubeLeft", + shape: { + api, + xValue: api.value(0), + yValue: api.value(1), + x: location[0], + y: location[1], + xAxisPoint: api.coord([api.value(0), 0]), + }, + style: { + fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: colorArr[1][0], + }, + { + offset: 1, + color: colorArr[1][1], + }, + ]), + }, + }, + // 右侧面 + { + type: "CubeRight", + shape: { + api, + xValue: api.value(0), + yValue: api.value(1), + x: location[0], + y: location[1], + xAxisPoint: api.coord([api.value(0), 0]), + }, + style: { + fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: colorArr[2][0], + }, + { + offset: 1, + color: colorArr[2][1], + }, + ]), + }, + }, + // 顶部 + { + type: "CubeTop", + shape: { + api, + xValue: api.value(0), + yValue: api.value(1), + x: location[0], + y: location[1], + xAxisPoint: api.coord([api.value(0), 0]), + }, + style: { + fill: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: colorArr[0][0], + }, + { + offset: 1, + color: colorArr[0][0], + }, + ]), + }, + }, + ], + }; + }, + data: seriesData, + }, + { + type: "bar", + label: { + normal: { + show: false, + position: "top", + formatter: (e) => { + return e.value; + }, + fontSize: 16, + color: "#43C4F1", + offset: [0, -5], + }, + }, + itemStyle: { + color: "transparent", + }, + tooltip: {}, + data: seriesData, + markLine: { + symbol: "none", + data: [ + { + yAxis: 400, + lineStyle: { + color: "rgba(255, 221, 0, 1)", + type: "dashed", + width: 1, + }, + label: { + show: false, + position: "end", + }, + }, + ], + }, + }, + ], + }; + myChart.setOption(option); +} +//各系统碳排放量统计 +function getCarbonEmissionStatistics() { + let myChart = echarts.init( + document.getElementById("carbonEmissionStatistics") + ); + let option = { + grid: { + left: "5%", + right: "5%", + bottom: "-10%", + top: "8%", + containLabel: true, + }, + tooltip: { + trigger: "axis", + axisPointer: { + type: "none", + }, + formatter: function (params) { + return ( + params[0].name + + "
" + + "" + + params[0].seriesName + + "" + + Number( + (params[0].value.toFixed(4) / 10000).toFixed(2) + ).toLocaleString() + + " kWh
" + ); + }, + }, + xAxis: { + show: false, + type: "value", + }, + yAxis: [ + { + type: "category", + inverse: true, + axisLabel: { + padding: [0, 0, 10, -10], + verticalAlign: "bottom", + inside: true, + show: true, + textStyle: { + color: "#fff", + fontSize: "14", + }, + }, + splitLine: { + show: false, + }, + axisTick: { + show: false, + }, + axisLine: { + show: false, + }, + data: ["空调系统", "照明系统", "消防系统", "电梯系统", "展陈系统"], + }, + { + type: "category", + inverse: true, + axisTick: "none", + axisLine: "none", + show: true, + axisLabel: { + padding: [0, 0, 10, -10], + verticalAlign: "bottom", + inside: true, + textStyle: {}, + formatter: function (value) { + return ( + "{a|" + (value / 10000).toLocaleString() + "}" + "{b|万tCO2}" + ); + }, + rich: { + a: { + fontSize: "16", + color: "rgba(0, 255, 240, 1)", + padding: [0, 6, 0, 0], + }, + b: { + color: "#fff", + fontSize: "12", + }, + }, + }, + data: [50000000, 22000000, 10000000, 5000000, 1], + }, + ], + series: [ + { + name: "", + type: "bar", + zlevel: 1, + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [ + { + offset: 0, + color: "rgba(29, 169, 153, 1)", + }, + { + offset: 1, + color: "rgba(223, 243, 240, 1)", + }, + ]), + }, + barWidth: 8, + data: [50000000, 22000000, 10000000, 5000000, 200], + }, + { + name: "背景", + type: "bar", + barWidth: 10, + barGap: "-115%", + data: [50000000, 50000000, 50000000, 50000000, 50000000], + itemStyle: { + color: "rgba(5, 33, 31, 0.32)", + }, + }, + ], + }; + myChart.setOption(option); +} +const optionData = ref([ + { + name: "CCER", + value: 176, + }, + { + name: "绿电", + value: 288, + }, + { + name: "绿证", + value: 88, + }, +]); +const color = [ + "rgba(0, 140, 255, 1)", + "rgba(1, 225, 242, 1)", + "rgba(27, 255, 118, 1)", +]; +function setLabel() { + optionData.value.forEach((item, index) => { + item.itemStyle = { + color: color[index], + }; + item.label = { + normal: { + show: true, + color: color[index], + // position: "right", + padding: [0, -50], + // distance:-10, + offset: [0, 3], + formatter: [ + "{d|{d}%}", + // '{c|{c}}{b|台}', + "{b|{b}}", + ].join("\n"), // 用\n来换行 + rich: { + b: { + lineHeight: 30, + align: "left", + fontSize: 12, + color: "#fff", + }, + c: { + fontSize: 15, + // color: '#fff', + textShadowColor: "#1c90a6", + textShadowOffsetX: 0, + textShadowOffsetY: 2, + textShadowBlur: 5, + color: color[index], + }, + d: { + color: color[index], + fontSize: 18, + fontWeight: 600, + align: "left", + }, + }, + }, + }; + item.labelLine = { + normal: { + length2: 100, + lineStyle: { + width: 1, + color: color[index], + }, + }, + }; + }); +} +//碳中和 +function getCarbonNeutrality() { + setLabel(); + let myChart = echarts.init(document.getElementById("carbonNeutrality")); + let option = getPie3D(optionData.value, 0, 270, 26, 40, 1); + + // myChart.setOption(option); + // 是否需要label指引线,如果要就添加一个透明的2d饼状图并调整角度使得labelLine和3d的饼状图对齐,并再次setOption + option.series.push({ + name: "", //自己根据场景修改 + backgroundColor: "transparent", + type: "pie", + label: { + opacity: 1, + fontSize: 13, + lineHeight: 20, + }, + startAngle: -40, // 起始角度,支持范围[0, 360]。 + clockwise: false, // 饼图的扇区是否是顺时针排布。上述这两项配置主要是为了对齐3d的样式 + radius: ["20%", "60%"], + center: ["50%", "50%"], + data: optionData.value, + itemStyle: { + opacity: 0, //这里必须是0,不然2d的图会覆盖在表面 + }, + }); + myChart.setOption(option); + // bindListen(myChart); +} +//加载完dom执行 +onMounted(() => { + //碳趋势图表 + getCarbonTrends(); + //碳排放强度 + getCarbonIntensity(); + //各系统碳排放量统计 + getCarbonEmissionStatistics(); + //碳中和 + getCarbonNeutrality(); +}); + + +