From 5f19682bab4797b570446df0340f2366fe2ecee9 Mon Sep 17 00:00:00 2001 From: Aifeilong <2993607249@qq.com> Date: Fri, 20 Oct 2023 19:19:42 +0800 Subject: [PATCH] fix --- src/assets/Heatflux.png | Bin 0 -> 1436 bytes src/assets/High.png | Bin 7112 -> 5052 bytes src/assets/Low.png | Bin 11837 -> 4312 bytes src/assets/Rain.png | Bin 0 -> 1341 bytes src/assets/heatflux.png | Bin 1045 -> 0 bytes src/assets/rain.png | Bin 696 -> 0 bytes src/components/common/ChartPanel/index.jsx | 18 ++ .../common/ChartPanel/index.module.less | 11 + .../{ChartPanel.jsx => CustomChartPanel.jsx} | 21 +- src/components/domain/Four/index.jsx | 4 +- .../{ChartPanel.jsx => CustomChartPanel.jsx} | 22 +- src/components/domain/One/Cyclone.jsx | 256 ++++++------------ src/components/domain/One/JJAImageLayer.jsx | 2 +- src/components/domain/One/Labels.jsx | 2 +- src/components/domain/One/index.jsx | 4 +- .../{ChartPanel.jsx => CustomChartPanel.jsx} | 21 +- src/components/domain/Six/SceneOne/index.jsx | 4 +- .../domain/Six/SceneOne/index.module.less | 12 - .../CustomChartPanel.jsx} | 21 +- .../domain/Three/SceneOne/index.jsx | 4 +- .../domain/Three/SceneOne/index.module.less | 12 - .../domain/Three/SceneTwo/SceneChartPanel.jsx | 17 +- src/components/domain/Three/index.module.less | 12 - src/components/domain/Two/CustomFlyTo.jsx | 21 +- src/components/domain/Two/IndiaOceanSST.jsx | 2 +- src/components/domain/Two/Labels.jsx | 7 +- src/components/domain/Two/Point.jsx | 2 +- .../domain/Two/Site/HeatFlux copy.jsx | 99 ------- src/components/domain/Two/Site/Rain copy.jsx | 97 ------- src/components/domain/Two/Site/Rain.jsx | 2 +- src/components/domain/Two/SiteLegend.jsx | 32 +-- src/components/domain/Two/index.module.less | 2 +- src/components/home/Layout/NavBar.jsx | 173 ++++++++---- src/components/home/Layout/index.module.less | 127 ++------- src/components/map/Layout/index.module.less | 12 - 35 files changed, 316 insertions(+), 703 deletions(-) create mode 100644 src/assets/Heatflux.png create mode 100644 src/assets/Rain.png delete mode 100644 src/assets/heatflux.png delete mode 100644 src/assets/rain.png create mode 100644 src/components/common/ChartPanel/index.jsx create mode 100644 src/components/common/ChartPanel/index.module.less rename src/components/domain/Four/{ChartPanel.jsx => CustomChartPanel.jsx} (84%) rename src/components/domain/One/{ChartPanel.jsx => CustomChartPanel.jsx} (88%) rename src/components/domain/Six/SceneOne/{ChartPanel.jsx => CustomChartPanel.jsx} (85%) rename src/components/domain/Three/{ChartPanel.jsx => SceneOne/CustomChartPanel.jsx} (94%) delete mode 100644 src/components/domain/Two/Site/HeatFlux copy.jsx delete mode 100644 src/components/domain/Two/Site/Rain copy.jsx diff --git a/src/assets/Heatflux.png b/src/assets/Heatflux.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3c3c90b34258bd085632074eda2d8d16c7e1b2 GIT binary patch literal 1436 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 SvURlp0000 z{gS_+e?uSg*0(sWWm$9(1V-DmMbS$Tz)6D^E!<0*)P@-9M^E{SdOAtj%r!5 zWQn3gk+2xYd!_O9XXJ^iw-{*XPzjK*0`-Tty)>9@chmEI7)pISw z-|}Zgn(6%F=lnQowdHmbzwfry(q&MV*>*3U*HoQfSwEJt!l>WbXZunx2q)s7<#G1Y zU;ffQZmG%;3e^UOR9F=}c`LIVk^XW-1{5}EumSoz7bln;A>F&q*~a_M1Fcv#U3rAh zT7c*ZZED5x-y#qu!*5idsVX;fMI{bBP>x7Ru+gE2L=T(IcQ==o?rbhCt->BHEv+f+ zf%rF$zfZ`ea@d$IM`VPZ??4M4gOhoylvO#GlU4q51(f|Q`(AbIKKzF|i2vV#=DZy2<1m~z+(rU`K@ z&QE>OXne|{SR*8caX3Uk*1HVIx&#O}UPhGpZlm#QsGS&wtPROG5jWItmax`J7Au(Rj2Vi>-4AqakWF%19dd=PwRI3mA|e{ZtHRx;Z2VY$X*7eIJfR|Uhp+-@}1sj7sH zDfEbP!=X_eZ}3DwxI?+Ay1hOMB6nZCbCZY+426vuD8}dY`sVGVBB_ahtQr7e&f7p9 zz&c!*1` zVN(y&jj`mjR1WG3pVjM^uh;9FpVjNJ4iFgm+!=LBbx!q{|EExkKecf<;S=Y)8fG8`P9!L5B z^hy~13A-1ydI*Mk0VvlN7tuW)S6wGH0G1`ZSbmcRL~^F96TDh0WHYEQa5%W>AVC60 z!AKHKFSY0<9A%SJ#N&fH@|Fq`T!6wGfeH?>ekdfU1BWtM0Wp{yj%X-R&D^>;-bZQJ z@e>~}F8<%u#l`rO#l>_5NRS|5yHT&dPY0HS%zoPd3Du#+=nz9VqJKxE1W<6Va^n!| z1$BiwL!&~t%AI(70F#LXehBcsGES4Tw}M- zZxc{PZq(~P`SjemHI;gBKu~X2&Ys=4a`x;ml7=H(zY~o>284g%vKGX-;*x*Q0ghjt zJxgy=2MH>O_DCW!;^N>U0Z}?URA0-c8ZKeD4XB6=A}>QI(ZRtD^~fL@?+PHg)nvH= ziAX;@!!u_-`QXeM+(4{? zgvHaVY{F{5*U3dfB7@-)u1ej=eIhdY@#5keEbmakK@AO&4gY5X(g=u83v&Ua9Fc=R zKYe-~aBx#WLg5G-6TX$2HNVK4LzD|rq_*!&j>33RGB0!xAy^3qGa7DWND2c)BdIQc zNKTu2XJO&Sd#6vwFdZa`a*%@^X?328p&Dq?s!Pp2P-X?tXP_#rCKZGn6&$elQQuIK zh#c|)(F%yPBrPi-kVC-n?!p3v!vM);8IGa=F@*w~BaHW1vpd=8I)W+h-3C(BoJ9Sp z;1KHkN|A|cYyQOr5N$<7WB_oyv#=1uG>|;TS_`(QIDg!BXpycCu;vrB9Do>rG?q2o=*< z_{+N1RRN~gKp87Y-|Ht&Ui#6=lkw{(PtuEvpd@f~RymY_XjDLZoBT67yR_vi4zZ%BdrGCZ#@U2IY<>+UORCjRzZTosh&Ueb++xf z9Btm!;cWqsL$4k`9{=0%r|U z1|%{lP!_hxMeAVSUWboUoUUQ$!e((mNq4>MBcsJyLhTIrBtQb=>d|pPGCDRBL`A?@>j6O8 zt@;mhb89Iun8CkvEvu$cY5@UxpzH6B9*tqI$R`zM2s;Ld$=QaA&g@uCB3gDhzPAA( zeNYh*3~uo4-yS{spL8*osu!bs1_prq&5@1cj4r#l&n*3uNfN+yQ`4yk^$qI<_b43?adyJ-sk+}jb zP?lXC+pB;~FQdV~EBcZ9_OFi|Nk&&)0AX+p;$+`DawO&^!jkNz)n1uJ0a8c;nZcpj z>()FU8|XzqsERZvzjx%w1MWxBzc0_uzTX-+69LhvN9E<&+4b+v&ZbVn?18wcec^y) zn4-6-k+ITjk068=cy<&Zq+f3Ml3$1HfJCGpG`&1K8;izakylFlwD!FDim9TrC`hIx zG~B^}B-fq-4Dcm<`d#MV@666_(p6^;fE<8&e0ydlhKZ2iB%mylLp#yi$q1@kmaaQ2 z+(tkmGKi#9764`lGyOI|O5dKD+2nu-w#l;H19_afryLXZfGLLGd4y2;m_A5v0p!rP zW@aA!<;+aXt@Y!ezL2-oZ#Nu!4$PWz`2CHE{^=~y=Q!;i$lv7V85%^boLKpI9s@bUuq zRrd8aYqig?FkKBuMEd`DdOC*5KNKIl*)@Rd1*_?n0W>FNAH(l|RIA;iyFRfg4Ov0P zI3TjggJXFBDKt^_0c0;iRBNvvI+qoZ5@1mI`VVWhw-HSeK=@kHhz#P3Z`NwDXe~gp zzNSI}NXIKd{%*US6!s1vt*00wGJtTx{rm@lB`T7PhwN+Z+8dF3fA>ZJ#yAA+Fr_e)b#>n%W9Ct`rSG&O|-Qa_-HOF@8ir7|>t zv;kVQ!)lIzbQ2;CAPFSRNx;B;F4#IBFl)``azMTz9h|7g*6eLhn<~7RLeCxqq?}4r z$-p+`)i^qz{06J&Iz<5VF)PVi)niczY~YrCoYEJT@WPNN*J#9G$5Kv^u3~#* zfIL&J#-np>r|C1JX4(qx@MGKw7^`0QpL_8Y}DpjuQb{ z)5W5l2#5$oTaShv+q2;&bbup|g7^SJD>A6>f3{lvpa?*e(%4N{G=QkU@Bw64^IpG> zTYfYUirzHYB5NKFrj_Gto>3Tb|aB-E}TTgwdxp9_K;Spo4` zHEzlaywt`Kjv{QhmjN-TjoHj0rq#`5fDD`uf@^#%M6lJa4z+gzkOBc3?p6+BaJma1 zZjF%ieWhAmRRQu$wfc5zB$b*55T+ol*IQ+MV5(;=2PEYVt3^?OXn~7JzY37AR;$Ub zL#fF+y@CLeH~G@UCx9$#0VymDIe=};Kb*#VA~K*+kcWJcx+@@Se97SxK$d#~5S79> z&ZL;WO=s$azGPaV5>?%kca{X4u)uW zmQ%H>@^0&)>|{X7KKCAxk^zt(V+Q~wAjmh`;7FFBVdLDvCx9&H0>lOh{k|KGBO(Ow~uA>`4#pmKKLv4WIX)A;o84$KM z_0X;ZL^xLEz+uPGP}GR37a&skjh~4&y}TcTVe%p&K7uOlQ`WvuYD5NK2!cB*6_N9h z-J~F1ExhKYD6ZF&fA2JjnFo-F45?O;!4P^Z8|l)0z28xWnIO0$Z(_F_08zrB`TcMK zfY?HhZMmd%gw*t1MEaktRzFg~L5J8`a;gP{uMNR!c7=j$>Rth|QvvY}4Z|G(#N=S* zF}8cO0HRxm>I?{y6eOjJM<9@kya$!pEr95puKR9S14v%gNS#Y6zY!9DKq^>}tO4Yj z8z4!Td5=RO8XHv|+f9JjoLcSxAjace%5VB!3l8bS($cRcFtn?Olz(Uep5uUVD zL4v37pfWuRMgf56oH?8$#28gW1&HcC^4wQM2B97t5YgE9#{p+RuoMwbd20ZjA3w01qc#Xd6#7~Ak}kE>B0^oe9V5KWipYRUMex-BN*K15rR``y9APQBJPN5fr`P>=0+5Id zVuVx$hb}pFRS?(|R}pz@2y8ebZco*7fMh*K7PYCRkI8)hc@;$oNOKYoV`~6u>)QGO z5|Mt4tSa^mp~i>bcRV0jA*m&wi#bcK`?g%)J1k8v~eriub2A{EpA9~i2z4dA5!dHTy=+6U7>f`PO98WlmJGrm&+ z$$Q;l;oZYd<#Ysu`$IOTFvJp5B^(JL=(+S8hyTS@?QMln_h_^#g5C1u1w}go5L*}t z9eN?UH)r~k(*lJHBq=9{jR}lz{GI|1)^izh8UCjrC<~yv!KgWj9*qW&))0IVPWJ{a zt9m%(8YP3%y`Ye;k*a3_5ID;hk~AD-3@ZZx2e&r$m|ouR60*DiVY$fbG8lrbqg$NE z`6`pk=Bh}#yF6^NLe^ec@ER>996|72QjKgL=GZ^XyCwv+_;N!WCtX%i5J80 z7b-xQT}DBQ07O+b(K)KJx&YGVEL#`~E#UZkuSiC9e(*|E!$uWPAL!JBh8FgsAQh1L zbC9%6W42cZ$%|3+zHX2Aq5%=h>rwuEfYj8^SHfoqFFsHh;fTm6_IJ_2K_6Se)QANL zB_OJT+A0?L2p}-12<$3<5n>iVWFWEvV!R(0Ktg+OM;Z1U0MRu96C7aZr4HDY3kzPjRn}ZYyh_;1005U8%Mg}4aASRVGDMvczXih>MR2vWq zxyPHTwH{u8$dEWobVLp!=P*FBA-*v)4^dnY{4QHU z+MLvEIM^~a5m)h9QQt8@s6}L`E!1#0gm=%-$0j^?O>_Z7&PkjhQ8-!zVA%91q^WW( zzsb{Eu_*__4i76jIJyr=0!gI>i3ErAlA`Oj_u%;e;?oN-s)@px!&w2*m~TR=80WCT zaZNSPvaKOT0m)Sz90DYlO)KNO1&C2iYHn&!6ck!8wz{&mg!BPl0MxU9PzOe26p-lP zkd)*=uL0tmtk=2#29^Uxqyp!&4FzpUX=?$HuXPO&1_@T7T{Z!NmnPD=o3K&!87nCY z3=stJ|KjH*hnd=3*ET^Gk#QuWid`q$l!GOuBU$0-Iv@fhE=q#r^&L@7x(SF0oDv(S zC=^H+d1s@es%=Tnx91#(Fc6jpj%@*iK{A5TRvRP?lzTjRbqz6{hUDoYfs-m<>6|2_ z97MjMgF^rWv$LhVU~DTO)RM7}s-v1bV!6pd)h+@%6_Bz44mK(Z^_;>UEG94ngK~@( z1&0on?f|l-CUjWdQBBs_jBtg&vSg zQq-_`D&!<ZEC~x=0_o-EZf$!McH*)10HZ@ZM zQZxwW{DJmZrd`#JBYwusMK*GX_vX`QBbRH;Fw(Woj zYBJ7dgf~0@NvjGr*rU%0lRl_Rk&Z7}CIf{oDy}~UaM>dwZD3dd34%@5OHoeM?@d4w zNbnH&6lQ!q;7Eaju@pFm^?*|Qmxw(d7o{l+bz>?wRl#I78>{{A>UKl0LBe3dhQ$?I zBDyyL;bpIc_KvW?}v`1|5(g>6Pev1t-8>HhDSf&t>3QsT{9PSFpI-9(7 z9@p5@fV9d(L1|9n;c(LmdRG&ivd;2?`wT!A+hC^LBbYf=!lN;Mt%d+QZR=5t{>joc;t5 zy{Zhb?&W2kD+tMHHvxIfUV4CpwqLdXm#Z4MI6X^P+7k-m0u2La6c2AZUT2{R z;}o|%dPy5lDQ+xe++<-xxrJn2^9e1TveabVZURIJOEPo1Wl4yl`3!UVJ<%>EJskk? zR`M`<`uFslh8+TZTfWP&PXH+pj24inXz@GI0lK$E+Rk4qMiqSE;Kzxhx1CT8@%p<` yK~mRYH`)e(0Di<@W>9YWs-<`U0000`|n;iN{xMQY|RYW(u`dpOU6uNX~r_#QZZSxWKt91S|-sj3tZX_wCyU zK)5)eMJxN?aX?%&KgHIT?As?(ig2>`Bou#{*oz%=QD&_L>p#Q1aoB&)fKZmwt!U`^ zjFCc=Offj%DRbU_R`RHiOl!)0gU>sIm*l2ZQlTe6i;07`Ol@_OLjKq+FO|{7JM{0> zufFhW1*YV9V@r)opr`* z!3T;APa1BQl+~01s0|KiHyDvCG>@9PduzA>vS`e^&)4V)XOfgKEPH9~Ee@r-hIlDhQw?ReBq97~G6ASEL2`nVl`W6T?W( z+bs@wI6T?8{I`}#9}%Ay6zY+h)?fb$%A)zf(vN{%dy9E`s^LS_!e7@^%#P-FwOvFo zXYa`AtA^LG0CGZ=J&J5ASg?hJL7F3S)y(gjIfF5da%kx#*%3 z-q|2Ud5wcVP}?DoLAs8}LGt}67h+mF3(M?daQ?z0N-5a*k)zM13b}#x}Q|0|yZ$H1eBnBde7r(P%eH=c>fO4+EV`zG$ z+J6wlp1nW)+G{TicZA09W@3$0-3O^AzKMZc?O41!?CJ5d0;B^$t*mBPdS(Z)q%+_A zD&SPBiJ8lnulRA={$9etLl7fi`9|;Qjj%k`x*ZQ)0XxI!k>Rek*XHT%zYPhal3wVL zyjn&*!_H-xLomK$tqpgpQX2B+^pf)RF;COpK1=rQu=c&;I9Wt@>!QjZjC$>ZK0{8k zA+p+>h+#&{UgCZ>5;yH1SM~hLUHk)RmAqP>1j=V1ZwI1$u0aA*(`rZ+kIqx{^$_Gu z!{Af;aJPpvpC^&*f_#Q&1<_fxCT>25UR4}~1V0}1s?%OsM8T)o)HL_vs973gQ0mbn1D$>WvbZ)W zAgu`4RL|+QndHMCmQjLzQ}uatUdL3yca4kCS4ANBGvL{u`Hbbf!yjhR0`<;G9CBAj zuV~euyy2GJhS~D`;fyxNVS-`sCSd)R6MAGOVQ5`SWZ|WIlNtR%0+_ChEl_z@npW<> zQ(Q^vB~WgfyNHaNj3FH*n683UE37i!A66#LvZjC}kUt*}7n44;(YVFuLuhnfdoYiw zB&q(IDrVHtu%K^)HxJj6e-pzrb)Pf|D}N+r8S_{4_XPt4r`T1E?UcKGd6P0$u$Tq3 zdj0L>y*wT)7%vVx=n~_OUieG?27K~ZulrrAA{YhXLUV2=c>QKrB8?@@sF(zVPdZ{*$=bJ6M7tG6Y5!k9CROp0m zD8_;){LC()jm4j$NWC*wb^Yd$qkx<*%EX5SKeVxINS}?A^oMQ~b3L62hTZQy^vC!f zW$M6DM|3=yjEe6I(bugu=5wkml5a%g(x1g|yKSp{G{Sr}DeUt*j@>?kUQLeESA9PA z$X*;-@gGf>biI5Mv!PQW(rs6(-nHscz5f(js(0LM1v-IZiqmd+RzGBp#SuYuSfTH2 z?fQum!?G3CS-3>n4VMT`lL&X2Cafi2F9_=m2?Nm`jRc=-RW8o5m8N)KZ_0f%dw2ds z;TS^TQRAAW7?%wC6MQXnGfz*b>Kb8W(!J-N6j{|MI}_y}PFXSZ%dFuj9HOh8opz~Y z4BDR9Wl@#E*WTj?*TrD~O4q?(W*dKB+9raG@7hkmd6(meD6uqop~JP(;X+K5n9U6P zP`ReRYrzy=xXUzJF9|3i;3%>qobRvSE}=j7Cy7~Ko^)n2Q*A&sbshit+nER}$_3zA}0^M^RO9^nB8~foUPVIZ#Abld~hqmx?9^Ozv2_>L)C;jWo75UPy3{Jbty;Y2* z*BxQh5Z;&QqHuxzurzo{g}~=iIi6p#dsrAsI8#}#uR@o#--xw*q3p^pq(ZgX-Rcy}SR|F@3#|#7U@aTC zJwP+Ac@I4HeGdJViFu?DTCCU@HWD%LYMQTiMlHDeNnz}f#=8H4-hJrFGr#7BG6LrUeNzh<-6sLjPuglMbx%h>`BZRWdR**{ z*?zS~`{kgrQOJ^U+h&N2v0u7WC`ELszQCQ#+KZSxq5};u4Z0UH&)yoa*!=#R}+YLZ zcm4*o8l{?bOKziWD=%)@WS6G}QsV0329W%>HDvxw?pnV1;OlIiK-&We3u9HOAO|sfzQV*$8X{s`GXsA zD7~D}XH}cCZDjuETxc}TaXqlZ3Zuq0#quju>RbUzqNFo9w~|hXV0y7lJ=UccB*N+{ z0okYIzrcYb0#vxxyVK`1jn*Qo+GS^?Met5c-TR<0A}Tel=fNv^I~K3vD=Z>t|7W%m;`-k= zIi|`a=8b?|#*pzCA6uqu`7Lwdrdhi~jpI`qm+x!|-E;QK{7>H4lF2JJ)d&1;$^sSJ zB_h|K_j%3XVc~DK%GCkWkZTQJ+h1rik>z%j7U5~v=5I}T=--$ zW?Gib8hb;v0XHkJ#i2wf1za-tVLe$*U-jbLzlG`E7T{&TPa_JhgcJLmEv~5$gVMxt7;z@w;0~_9*NZ9_hO?yvwx$t zzI+wR5*)rFM;R}98~@POFAfBkq6}30KE(OJC__0R%+udjn8VtsAc;(2QqLDyVB;N_ zEchevCf~_NB6{}p)UTsftyr&tI8$Ba9Y|Y+zSr*;H^s zRkL@iWUPn>>|zDQV_cDfP&F;`?N*3b~Ief1uP>^fq2-nqKQvrJm{$uqn$9 z=X4x#{}fGX#kUM}@?0umDzitVL?QIh;bS5ldb?oftoY+vjTH=2K6*AyKbH53ld|R9 z>uE40wj2fXXa?Mh3bK}kyFHP!klj2N61x@K-|t;T>ztg9f>HSBjfqu%l8U=XrB{vL ze|jMXhJh49OuP47_Vi+*^UazIT|lcGr2ptx`lnivuC`jqO`Ch6{X$Z=t{FcRo{;w? zW){`yMMG^|rMc3*U2_m|pCQ7eQV#-_-@!~=Uwk|nBGr*q%U89Gan1^*&Bvfa%;FLa z500zfGjdqFNNKM1e&M(H*mrOYSON+j`Je+`!3zbeM@{bry9P{xk$3`Ct*cQ78lN!& z^zRa1dx99K`RY;%Gg7UH2LIOl(mh}@%I%hv0v(j$BCv}!U7PSI1hE$6!er`{h9c>k zs^~luNT;avNncQ!O(_r%zzIkg#zF3?jPWVECaoknOwuO9-AW0GDhD(K>8=1yJUT3a z%mrl}nulOw>`@7)XtEGXOsD=oS|#c+!vi*pm_(wS4^`Z^hLc}cc-3Jv%S$%f6GiBZ z)%jTDne{3B@UhnOis(1uzK7y-WLvd#E|77^>MSpN#Yh?B;-Z13pU7&&kh-eJe>*_6 z0~X4`$Q3)Kh{qDJ@-`*XeSu3>+Fp5_;mPI9ZcVo=y_)K<@*u!85xxL-uXnbR{-pBG zYuctTQPS)x#VkD6q$(ot$#9GP$dhw!4~1FvBY%l5&f@6?j`nVsX|S=pl>c?L;*xuM z1E+ZxyOwX94a)6z0KEH0ba3;WxL>zWzavh|gy^|x%Zj%ONLfA5f4b)FGp2dJm@h@O zlG=|=ZF_Q#^X;?}&e>`f)*a!}fT=MxUW2VSQ2_dLjIQdpVlJ&6t(mT|u(N^J^Afa`S3_4hHzXE=^*fBFS% nn4mTn=XUigw4emwUFq{-37>W*e_t2h|p{uH~ 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 diff --git a/src/assets/Rain.png b/src/assets/Rain.png new file mode 100644 index 0000000000000000000000000000000000000000..416f47f1fec21567c208a0590f96cdf94d9bf5f0 GIT binary patch literal 1341 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST~P>ftAJ6#WAE}&f6>86Ysi7xIDbg z;iM|SqsjBgfJ4REV5&mFukEpV`@?qE#$Q@-KK!aO!(!uI3>AWn4ALAdHyjiWurV>3 z32g+C{r>i?P73wEeiT^7sqE-|Jj2~hUY~uNgF>^1Us|Wd zF{MTxCCkp#M-tquMja`I-bW3^xKjj9E}GVztRrzkVbW0@$>R|w6C72#Bh30X767&J z<-N2x_6VeH#nZKs7T2j?jD6;5(sn<#T6^O1x)7f|S&pXhOmNTBkvqFolpIGH6~ zKBX-0NuC2T%D?EA#j#G1P{Q)QINs~$@{1v;qGu~w$p!A^P7e1YTPET4EM z*0{>tSDYY!#obB9UU5SF6*niD{f-LzL&Z4@_cS=fg$Q#N<|s_?UEbef5$C9|-YQq+ z$VWDoPio7%TP*H%INW<;Tjufgg?Yw0)QQ$Z) z#}l=7paFR<3g*^1KnZr1BJp;h0q~l4`_cO~bZi6+G<&^UiB?@I&36xRr;_DB8ziZ%ghPa7>z+#cX)78&qol`;+ E0Ol>*H~;_u literal 0 HcmV?d00001 diff --git a/src/assets/heatflux.png b/src/assets/heatflux.png deleted file mode 100644 index ab27cfbb887ed1a2ebd86bdd1e72a936a2039630..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1045 zcmV+w1nT>VP)WfYieag4?Xl?6iQ)Niili<5up+h zW)XoeL9e|D5fLFlL_|b{L==${p_mkNI@7#mb}_XyZ#i|Fy1ARP^NsVLZc+5ue&X-p z3xhqJ@BefDXXpIS{=#%IPjHT)EH^de)CH&`s0&a>P#2(% zh~~in#QYvs00<3Q10WtiqWYO5z{U?vP3Z3E0D$bJFbhO90fNC`t)-*{mJ1g!9}N1~ z03dYs^<9mPuw`Vxwr(A|tX3?A%Rod6U~X=1XZ`u}fDkebXU@Ry_wQi?@V=oz8DG0L z4B$vjMcd1l3iT`yQ91j8KuZ0&bK$`+rm3I+vu<||RIED--2;GNn0b22^sp8!6i5!Ui@ELQ-H z_4Mg~4t_D6`}UFD5=E3Af3*M%=F(CqF)^Xr;MubX`2Dd9-;=EkM6?d14$yr0as;5b zSbYv4UlfU`0$jNg2CxtzOT?HYb+G!mfkY+016A?nVn??ps%}e1M^yKXdRHBudV}_0o=S9253Hh z9B!9O%L>49>lT7KT?pXVF}T^LDP|V{x_0k|ZFDq_7r?V;aL30> zfDgNNVQge1ffYb=Wu>D29i{?&+_3{chKG|m0chSnf3CO^6D7c>oE(e}4W+RHXnFBM znMq2L0H3#S$H?Gd1}}iBDrGu3IRvn68-@o4Hn0L{t*%z4Qc@&9cXl?0`ujJr0%)tL zQJkw*Nq{d|Ss48GEr%0;w!OAiai*q9fS#>e@x8CFfYTo%`u10^6h~T`1nAwe1p~dk zmpB0!I$pn4>{HvSq(Z%oG7o_W~FJqytzF zAW2;zvY7!U?z_cJOEiMI0Cfa)0qO|q0@M-I1*jva3s6T;7od)yEu%%{P`ro<9C*+~sCk0Op(23aR@hxQAs7ZghvOVGJnKX~0t z-N>+*KiTZCe@%hN0YQ$fzn^6s+WwlklHvW=clB2op6&L&x3VgLW!Cqm)i2-q7oV0r z$!H-tKW+E?)5X%?n>|k4ov&)K_a}q;V`H%7y>WR#pw5NK zG6%LP3nZ+3voybc`kzfrvb};y7nd71aOQilM4V&Xvw@Xq&68(L($gFouF4$P<@lzEJQ;z3+LJAUJ^p{PuUh->MrFkS!v diff --git a/src/components/common/ChartPanel/index.jsx b/src/components/common/ChartPanel/index.jsx new file mode 100644 index 0000000..1f3ff7c --- /dev/null +++ b/src/components/common/ChartPanel/index.jsx @@ -0,0 +1,18 @@ +import ReactECharts from "echarts-for-react"; +import classNames from "classnames"; +import styles from "./index.module.less"; + +export default function ChartPanel({ option, className }) { + return ( +

+ +
+ ); +} diff --git a/src/components/common/ChartPanel/index.module.less b/src/components/common/ChartPanel/index.module.less new file mode 100644 index 0000000..0ac6095 --- /dev/null +++ b/src/components/common/ChartPanel/index.module.less @@ -0,0 +1,11 @@ +.chartPanel :global { + width: 100%; + height: 100%; + pointer-events: auto; + padding: 12px; + border: 1px solid #04fbfd; + color: #02f9ff !important; + background-color: #000000e7; + transition: all 0.3s ease-in-out; + border-radius: 8px; +} diff --git a/src/components/domain/Four/ChartPanel.jsx b/src/components/domain/Four/CustomChartPanel.jsx similarity index 84% rename from src/components/domain/Four/ChartPanel.jsx rename to src/components/domain/Four/CustomChartPanel.jsx index 62d97a8..83eda2b 100644 --- a/src/components/domain/Four/ChartPanel.jsx +++ b/src/components/domain/Four/CustomChartPanel.jsx @@ -1,4 +1,4 @@ -import ReactECharts from "echarts-for-react"; +import ChartPanel from "@/components/common/ChartPanel"; const years = []; @@ -16,7 +16,7 @@ const predictedData = [ -0.34866039, 0.93110625, 0.19143088, 0.5760311, ]; -function ChartPanel() { +function CustomChartPanel() { const option = { title: { // text: "Stacked Line", @@ -26,7 +26,7 @@ function ChartPanel() { }, legend: { data: ["观测结果", "预测结果"], - textStyle: { color: "#04fbfd", cursor: "point" }, + textStyle: { color: "#04fbfd", cursor: "point", fontSize: 20 }, }, animationDuration: years.length * 1000, animationEasing: "cubicInOut", @@ -102,18 +102,7 @@ function ChartPanel() { ], }; - return ( -
- -
- ); + return ; } -export default ChartPanel; +export default CustomChartPanel; diff --git a/src/components/domain/Four/index.jsx b/src/components/domain/Four/index.jsx index 8c4b6e7..faf64ee 100644 --- a/src/components/domain/Four/index.jsx +++ b/src/components/domain/Four/index.jsx @@ -4,7 +4,7 @@ import CustomClock from "@/components/common/CustomClock"; import TextInfoPanel from "@/components/common/TextInfoPanel"; import CustomFlyTo from "./CustomFlyTo"; import FormPanel from "./FormPanel"; -import ChartPanel from "./ChartPanel"; +import CustomChartPanel from "./CustomChartPanel"; import RectangleLayer from "./RectangleLayer"; import { useState } from "react"; import Labels from "./Labels"; @@ -28,7 +28,7 @@ XGBoos是基于梯度提升决策树方法的分类和回归模型。 LightGBM
-
{show && }
+
{show && }
diff --git a/src/components/domain/One/ChartPanel.jsx b/src/components/domain/One/CustomChartPanel.jsx similarity index 88% rename from src/components/domain/One/ChartPanel.jsx rename to src/components/domain/One/CustomChartPanel.jsx index da1ee2e..54478ec 100644 --- a/src/components/domain/One/ChartPanel.jsx +++ b/src/components/domain/One/CustomChartPanel.jsx @@ -1,7 +1,6 @@ -import ReactECharts from "echarts-for-react"; -import cls from "classnames"; import { useEffect, useState } from "react"; import { useCesium } from "resium"; +import ChartPanel from "@/components/common/ChartPanel"; const years = []; @@ -29,7 +28,7 @@ const laBrudata = [ 0.9844907, 0.9088836, 0.7977505, 0.7049671, 0.644415, 0.6330437, ]; -function ChartPanel() { +function CustomChartPanel() { const { viewer } = useCesium(); const [isHighlight, setIsHighlight] = useState(false); @@ -53,7 +52,7 @@ function ChartPanel() { }, legend: { data: ["拉布拉多海夏季海温(异常值)", "高原夏季气温(异常值)"], - textStyle: { color: "#04fbfd", cursor: "point" }, + textStyle: { color: "#04fbfd", cursor: "point", fontSize: 20 }, }, animationDuration: years.length * 1000, animationEasing: "cubicInOut", @@ -136,18 +135,7 @@ function ChartPanel() { ], }; - return ( -
- -
- ); + return ; } -export default ChartPanel; +export default CustomChartPanel; diff --git a/src/components/domain/One/Cyclone.jsx b/src/components/domain/One/Cyclone.jsx index 63a687c..5b373c2 100644 --- a/src/components/domain/One/Cyclone.jsx +++ b/src/components/domain/One/Cyclone.jsx @@ -1,14 +1,7 @@ -import { Fragment, useCallback } from "react"; -import { Entity, LabelGraphics, ModelGraphics, useCesium } from "resium"; +import { useCallback } from "react"; +import { Entity, ModelGraphics, useCesium } from "resium"; import arrowRound from "@/assets/arrow_round.glb"; -import { - CallbackProperty, - Cartesian2, - Cartesian3, - Color, - ColorBlendMode, - LabelStyle, -} from "cesium"; +import { CallbackProperty, Cartesian3, Color, ColorBlendMode } from "cesium"; let totalSeconds = 60; let numberOfSamples = 120; @@ -59,186 +52,95 @@ function Cyclone() { const anticycloneColor = Color.fromCssColorString("#f70000"); const cycloneColor = Color.fromCssColorString("#00AC4D"); - return ( - + const cycloneList = [ + { + type: "anticyclone", + showTime: 5, + position: Cartesian3.fromDegrees(-62, 69, height), + }, + { + type: "cyclone", + showTime: 7.5, + position: Cartesian3.fromDegrees(-45, 59, height), + }, + { + type: "anticyclone", + showTime: 10, + position: Cartesian3.fromDegrees(-20, 55, height), + }, + { + type: "cyclone", + showTime: 12.5, + position: Cartesian3.fromDegrees(5, 53, height), + }, + { + type: "anticyclone", + showTime: 15, + position: Cartesian3.fromDegrees(29, 49, height), + }, + { + type: "cyclone", + showTime: 17.5, + position: Cartesian3.fromDegrees(46, 46, height), + }, + { + type: "anticyclone", + showTime: 20, + position: Cartesian3.fromDegrees(62, 45, height), + }, + { + type: "cyclone", + showTime: 22.5, + position: Cartesian3.fromDegrees(81, 46.5, height), + }, + { + type: "anticyclone", + showTime: 25, + position: Cartesian3.fromDegrees(98, 48, height), + }, + { + type: "anticyclone", + showTime: 25, + position: Cartesian3.fromDegrees(98, 48, 0), + }, + ]; + + return cycloneList.map((cyclone, index) => { + const { type, showTime, position } = cyclone; + return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); + ); + }); + + // } export default Cyclone; diff --git a/src/components/domain/One/JJAImageLayer.jsx b/src/components/domain/One/JJAImageLayer.jsx index 0ea73e3..452d3ac 100644 --- a/src/components/domain/One/JJAImageLayer.jsx +++ b/src/components/domain/One/JJAImageLayer.jsx @@ -5,7 +5,7 @@ import { WebMapServiceImageryProvider } from "cesium"; const url = "http://analysis.tpdc.ac.cn/gs/geoserver/phitrellis/wms"; const name1 = "phitrellis:4_1_sst_JJA_G_dif"; -const name2 = "phitrellis:4_1_t2m_JJA_TP_dif "; +const name2 = "phitrellis:4_1_ts_tp_dif_mask"; function JJAImageLayer() { const tempProvider1 = useMemo( diff --git a/src/components/domain/One/Labels.jsx b/src/components/domain/One/Labels.jsx index 5f2b539..6401346 100644 --- a/src/components/domain/One/Labels.jsx +++ b/src/components/domain/One/Labels.jsx @@ -35,7 +35,7 @@ function Labels() {
- +
diff --git a/src/components/domain/Six/SceneOne/ChartPanel.jsx b/src/components/domain/Six/SceneOne/CustomChartPanel.jsx similarity index 85% rename from src/components/domain/Six/SceneOne/ChartPanel.jsx rename to src/components/domain/Six/SceneOne/CustomChartPanel.jsx index 0136df8..227d240 100644 --- a/src/components/domain/Six/SceneOne/ChartPanel.jsx +++ b/src/components/domain/Six/SceneOne/CustomChartPanel.jsx @@ -1,4 +1,4 @@ -import ReactECharts from "echarts-for-react"; +import ChartPanel from "@/components/common/ChartPanel"; const years = []; @@ -15,7 +15,7 @@ const ArcticData = []; // 青藏高原 const TibetanData = []; -function ChartPanel() { +function CustomChartPanel() { const option = { title: { // text: "Stacked Line", @@ -25,7 +25,7 @@ function ChartPanel() { }, legend: { data: ["南极", "北极", "青藏高原"], - textStyle: { color: "#04fbfd", cursor: "point" }, + textStyle: { color: "#04fbfd", cursor: "point", fontSize: 20 }, }, animationDuration: 10 * 1000, animationEasing: "cubicInOut", @@ -121,18 +121,7 @@ function ChartPanel() { ], }; - return ( -
- -
- ); + return ; } -export default ChartPanel; +export default CustomChartPanel; diff --git a/src/components/domain/Six/SceneOne/index.jsx b/src/components/domain/Six/SceneOne/index.jsx index 34d0afb..70c54c6 100644 --- a/src/components/domain/Six/SceneOne/index.jsx +++ b/src/components/domain/Six/SceneOne/index.jsx @@ -2,7 +2,7 @@ import TextInfoPanel from "@/components/common/TextInfoPanel"; import ViewerOne from "./ViewerOne"; import ViewerThree from "./ViewerThree"; import ViewerTwo from "./ViewerTwo"; -import ChartPanel from "./ChartPanel"; +import CustomChartPanel from "./CustomChartPanel"; import styles from "./index.module.less"; import Legend from "./Legend"; @@ -23,7 +23,7 @@ function SceneOne() { />
- +
diff --git a/src/components/domain/Six/SceneOne/index.module.less b/src/components/domain/Six/SceneOne/index.module.less index 6ed947c..dcede25 100644 --- a/src/components/domain/Six/SceneOne/index.module.less +++ b/src/components/domain/Six/SceneOne/index.module.less @@ -104,18 +104,6 @@ } } } - - .chart-info-panel { - width: 100%; - height: 100%; - pointer-events: auto; - padding: 12px; - border: 1px solid #04fbfd; - color: #02f9ff !important; - background-color: #000000e7; - transition: all 0.3s ease-in-out; - border-radius: 8px; - } } } } diff --git a/src/components/domain/Three/ChartPanel.jsx b/src/components/domain/Three/SceneOne/CustomChartPanel.jsx similarity index 94% rename from src/components/domain/Three/ChartPanel.jsx rename to src/components/domain/Three/SceneOne/CustomChartPanel.jsx index 47f723e..5d68f36 100644 --- a/src/components/domain/Three/ChartPanel.jsx +++ b/src/components/domain/Three/SceneOne/CustomChartPanel.jsx @@ -1,4 +1,4 @@ -import ReactECharts from "echarts-for-react"; +import ChartPanel from "@/components/common/ChartPanel"; const years = []; @@ -76,7 +76,7 @@ const TibetanData = [ 0.010750252, 0.048064799, ]; -function ChartPanel() { +function CustomChartPanel() { const option = { title: { // text: "Stacked Line", @@ -86,7 +86,7 @@ function ChartPanel() { }, legend: { data: ["南极", "北极", "青藏高原"], - textStyle: { color: "#04fbfd", cursor: "point" }, + textStyle: { color: "#04fbfd", cursor: "point", fontSize: 20 }, }, animationDuration: 10 * 1000, animationEasing: "cubicInOut", @@ -181,18 +181,7 @@ function ChartPanel() { ], }; - return ( -
- -
- ); + return ; } -export default ChartPanel; +export default CustomChartPanel; diff --git a/src/components/domain/Three/SceneOne/index.jsx b/src/components/domain/Three/SceneOne/index.jsx index cb8500e..4422b25 100644 --- a/src/components/domain/Three/SceneOne/index.jsx +++ b/src/components/domain/Three/SceneOne/index.jsx @@ -1,5 +1,5 @@ import TextInfoPanel from "@/components/common/TextInfoPanel"; -import ChartPanel from "../ChartPanel"; +import CustomChartPanel from "./CustomChartPanel"; import Legend from "./Legend"; import ViewerOne from "./ViewerOne"; import ViewerTwo from "./ViewerTwo"; @@ -19,7 +19,7 @@ function SceneOne() {
- +
diff --git a/src/components/domain/Three/SceneOne/index.module.less b/src/components/domain/Three/SceneOne/index.module.less index 6b9b3f3..c6c6a53 100644 --- a/src/components/domain/Three/SceneOne/index.module.less +++ b/src/components/domain/Three/SceneOne/index.module.less @@ -85,18 +85,6 @@ } } } - - .chart-info-panel { - width: 100%; - height: 100%; - pointer-events: auto; - padding: 12px; - border: 1px solid #04fbfd; - color: #02f9ff !important; - background-color: #000000e7; - transition: all 0.3s ease-in-out; - border-radius: 8px; - } } } } diff --git a/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx b/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx index 6839cb2..cf8dbbd 100644 --- a/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx +++ b/src/components/domain/Three/SceneTwo/SceneChartPanel.jsx @@ -1,4 +1,4 @@ -import ReactECharts from "echarts-for-react"; +import ChartPanel from "@/components/common/ChartPanel"; const years = []; @@ -48,7 +48,7 @@ function SceneChartPanel() { }, legend: { data: ["南极半岛", "热带大西洋"], - textStyle: { color: "#04fbfd", cursor: "point" }, + textStyle: { color: "#04fbfd", cursor: "point", fontSize: 20 }, }, animationDuration: 10 * 1000, animationEasing: "cubicInOut", @@ -122,18 +122,7 @@ function SceneChartPanel() { ], }; - return ( -
- -
- ); + return ; } export default SceneChartPanel; diff --git a/src/components/domain/Three/index.module.less b/src/components/domain/Three/index.module.less index 97622bf..7114ef4 100644 --- a/src/components/domain/Three/index.module.less +++ b/src/components/domain/Three/index.module.less @@ -12,18 +12,6 @@ .title { pointer-events: none; } - - .chart-info-panel { - width: 100%; - height: 100%; - pointer-events: auto; - padding: 12px; - border: 1px solid #04fbfd; - color: #02f9ff !important; - background-color: #000000e7; - transition: all 0.3s ease-in-out; - border-radius: 8px; - } } } diff --git a/src/components/domain/Two/CustomFlyTo.jsx b/src/components/domain/Two/CustomFlyTo.jsx index 13a3852..e91c26a 100644 --- a/src/components/domain/Two/CustomFlyTo.jsx +++ b/src/components/domain/Two/CustomFlyTo.jsx @@ -66,15 +66,12 @@ function CustomFlyTo() { }; const area5Options = { - destination: Cartesian3.fromDegrees(90, -60, 10000000), + destination: Cartesian3.fromDegrees(95, -35, 10000000), duration: 4, - orientation: { - heading: 6, - pitch: -1.3, - roll: -6, - }, complete: function () { - camera.flyTo(IndiaOceanOptions); + setTimeout(() => { + camera.flyTo(IndiaOceanOptions); + }, 2000); }, easingFunction: EasingFunction.LINEAR_NONE, }; @@ -102,13 +99,9 @@ function CustomFlyTo() { }; const xx = { - destination: Cartesian3.fromDegrees(80, 0, 14000000), - duration: 5, - // orientation: { - // heading: 6, - // pitch: -1.3, - // roll: -6, - // }, + destination: Cartesian3.fromDegrees(95, -35, 10000000), + duration: 4, + easingFunction: EasingFunction.LINEAR_NONE, }; diff --git a/src/components/domain/Two/IndiaOceanSST.jsx b/src/components/domain/Two/IndiaOceanSST.jsx index d171a4f..cfb7cb1 100644 --- a/src/components/domain/Two/IndiaOceanSST.jsx +++ b/src/components/domain/Two/IndiaOceanSST.jsx @@ -15,7 +15,7 @@ function IndianOceanSST() { stopTime.secondsOfDay - currentTime.secondsOfDay ); - if (leftTime <= 10) { + if (leftTime <= 8) { setShow(true); } else if (show) setShow(false); }, [show]); diff --git a/src/components/domain/Two/Labels.jsx b/src/components/domain/Two/Labels.jsx index 64b2659..b5efa66 100644 --- a/src/components/domain/Two/Labels.jsx +++ b/src/components/domain/Two/Labels.jsx @@ -16,9 +16,12 @@ function Labels() { if (leftTime < 5) { setShowIO(true); - setShowTB(true); } else if (showIO) { setShowIO(false); + } + if (leftTime < 4) { + setShowTB(true); + } else if (showIO) { setShowTB(false); } }, [showIO]); @@ -51,7 +54,7 @@ function Labels() {
= start && fluxData[index] <= end) { - dataIndex = i; - break; - } - } - - return ( - - - - - 感热通量数据 - - - ${fluxData[index]} - - - - - 站点坐标 - - ${lon},${lat} - - - - `} - > - - - ); -} - -export default HeatFlux; diff --git a/src/components/domain/Two/Site/Rain copy.jsx b/src/components/domain/Two/Site/Rain copy.jsx deleted file mode 100644 index 1aa350a..0000000 --- a/src/components/domain/Two/Site/Rain copy.jsx +++ /dev/null @@ -1,97 +0,0 @@ -import { Entity, EllipseGraphics } from "resium"; -import { Cartesian3, Color } from "cesium"; - -const rainData = [ - 0.25309432, 0.296679, 0.39937696, -0.15093477, 0.17799897, 0.1186297, - 0.07794944, 0.086336374, -0.016019614, -0.10862, 0.026069753, -0.005777068, - -0.04960121, -0.13736366, 0.268846, 0.32549506, 0.16180113, 0.34738356, - 0.21825098, 0.56309533, 0.15624292, 0.1915884, -0.08074772, -0.021623861, - -0.03270335, 0.011358996, -0.09346678, -0.07257225, 0.19685836, -0.004689489, - 0.018297506, 0.089315325, 0.07057168, 0.13153072, 0.036938984, -0.17923261, - 0.3985438, 0.171897, -0.113426015, 0.4553916, 0.1476996, 0.158635, - -0.041355144, 0.14970288, 0.19565174, 0.213287, 0.0603011, 0.35724494, - -0.13986075, 0.16652703, -0.016419323, -0.09197042, -0.04890049, 0.22730026, - 0.4451923, 0.102407545, 0.28357506, 0.259764, 0.2361199, 0.32204336, - 0.39939404, 0.4786999, 0.12142443, -0.1493137, 0.3154582, 0.39657483, - -0.08021964, 0.20489447, 0.26629895, -0.34400544, 0.29385626, 0.15458098, - 0.016143948, 0.04906382, -0.043581244, 0.1752981, -0.18351379, 0.071934514, - 0.10854135, -0.10280543, -]; - -const colorBar = [ - "#ffc53d", - "#ffd666", - "#ffe58f", - "#fff1b8", - "#fffbe6", - "#e6f7ff", - "#bae7ff", - "#91d5ff", - "#69c0ff", - "#40a9ff", -]; - -const ranges = [ - [-999, -0.4], - [-0.4, -0.3], - [-0.3, -0.2], - [-0.2, -0.1], - [-0.1, 0], - [0, 0.1], - [0.1, 0.2], - [0.2, 0.3], - [0.3, 0.4], - [0.4, 999], -]; - -let dataIndex = 0; - -// 降水异常 -function Rain({ position, index }) { - const [lon, lat] = position; - - for (let i = 0; i < ranges.length; i++) { - const start = ranges[i][0]; - const end = ranges[i][1]; - if (rainData[index] >= start && rainData[index] <= end) { - dataIndex = i; - break; - } - } - - return ( - - - - - 青藏高原降水 - - - ${rainData[index]} - - - - - 站点坐标 - - ${lon},${lat} - - - - `} - > - - - ); -} - -export default Rain; diff --git a/src/components/domain/Two/Site/Rain.jsx b/src/components/domain/Two/Site/Rain.jsx index eec9460..68eeefd 100644 --- a/src/components/domain/Two/Site/Rain.jsx +++ b/src/components/domain/Two/Site/Rain.jsx @@ -65,7 +65,7 @@ function Rain({ position, index }) { lat, length, ])} - material={new PolylineArrowMaterialProperty(Color.SKYBLUE)} + material={new PolylineArrowMaterialProperty(Color.BLUE)} arcType={"NONE"} width={10} /> diff --git a/src/components/domain/Two/SiteLegend.jsx b/src/components/domain/Two/SiteLegend.jsx index e0548ba..dce5fb2 100644 --- a/src/components/domain/Two/SiteLegend.jsx +++ b/src/components/domain/Two/SiteLegend.jsx @@ -1,5 +1,5 @@ -import rain from "@/assets/rain.png"; -import heatflux from "@/assets/heatflux.png"; +import rain from "@/assets/Rain.png"; +import heatflux from "@/assets/Heatflux.png"; import styles from "./index.module.less"; function SiteLegend() { @@ -7,35 +7,35 @@ function SiteLegend() {
- rain-increase + rain-increase
降水异常增加
- rain-decrease + rain-decrease
降水异常降低
- heatflux-increase + heatflux-increase
感热通量异常增加
- heatflux-decrease + heatflux-decrease
感热通量异常降低
diff --git a/src/components/domain/Two/index.module.less b/src/components/domain/Two/index.module.less index 402c8c9..6b77dd2 100644 --- a/src/components/domain/Two/index.module.less +++ b/src/components/domain/Two/index.module.less @@ -35,7 +35,7 @@ .timeline-panel-item { color: white; padding: 4px 8px; - font-size: 18px; + font-size: 20px; span { padding: 4px; diff --git a/src/components/home/Layout/NavBar.jsx b/src/components/home/Layout/NavBar.jsx index e472b2c..b570b9e 100644 --- a/src/components/home/Layout/NavBar.jsx +++ b/src/components/home/Layout/NavBar.jsx @@ -1,69 +1,130 @@ -import { Fragment, useCallback } from "react"; -import { useNavigate } from "react-router-dom"; +import { Fragment } from "react"; +import { Dropdown } from "antd"; import NavBarButton from "./NavBarButton"; +import styles from "./index.module.less"; + +const itemsTwo = [ + { + key: "1", + label: ( + + 随机森林方法在线计算案例 + + ), + }, + { + key: "2", + label: ( + + 过去千年气候重建数据同化 + + ), + }, +]; +const itemsThree = [ + { + key: "1", + label: ( + + 北极海冰预报 + + ), + }, + { + key: "2", + label: ( + + 北极航线智能规划 + + ), + }, +]; +const itemsFour = [ + { + key: "1", + label: ( + + 两极协同—拉布拉多海海温偏暖控制夏季高原年代际增温 + + ), + }, + { + key: "2", + label: ( + + 两极协同—南极涛动有效调节青藏高原降水和加热 + + ), + }, + { + key: "3", + label: ( + + 两极协同—连接南极和北极的热带大西洋经向模的媒介作用 + + ), + }, + { + key: "4", + label: ( + + 三极联动影响青藏高原上层温度 + + ), + }, + { + key: "5", + label: ( + + 三极联动影响东亚夏季风 + + ), + }, + { + key: "6", + label: ( + + 三极冰盖/冰川表面冰雪冻融对比关联与科学认知 + + ), + }, +]; function NavBar() { - const navigate = useNavigate(); - - const navigateHandler = useCallback( - (type) => { - navigate(`/map/${type}`, { replace: true }); - }, - [navigate] - ); + const navigateHandler = (type) => window.open(`/map/${type}`, "_blank"); return (
navigateHandler(1)} + onClick={() => navigateHandler("")} /> - navigateHandler(1)} - /> - navigateHandler("climateReconDataAssim")} - /> - navigateHandler(1)} - /> - navigateHandler(1)} - /> -
-
-
三极联动
-
- navigateHandler(1)} - /> - navigateHandler(2)} - /> - navigateHandler(3)} - /> - navigateHandler(4)} - /> - navigateHandler(5)} - /> - navigateHandler(6)} - /> -
+ + + + + + + + +
); diff --git a/src/components/home/Layout/index.module.less b/src/components/home/Layout/index.module.less index 9a7e5b2..6a3207c 100644 --- a/src/components/home/Layout/index.module.less +++ b/src/components/home/Layout/index.module.less @@ -20,7 +20,7 @@ .nav-bar-first { width: 100%; max-width: 1200px; - margin: 100px auto 0; + margin: 250px auto 0; color: #fff; display: flex; justify-content: space-between; @@ -30,10 +30,7 @@ cursor: pointer; @btn-table-color: #04fbfd; transition: all 0.3s ease; - flex: 1; text-align: center; - max-width: 200px; - height: 200px; .btn-table { width: 20px; @@ -68,8 +65,9 @@ } .nav-bar-content { - padding: 20px; - font-size: 20px; + padding: 32px 20px; + font-size: 32px; + font-weight: 600; color: @btn-table-color; background-color: #081633; height: 100%; @@ -91,101 +89,7 @@ } &:hover { - transform: translate(0, -4px); - - .nav-bar-content { - background-color: #112f6a; - } - } - } - } - - .nav-bar-second { - width: 100%; - max-width: 1200px; - margin: 0px auto; - color: #fff; - - .nav-bar-title { - font-size: 30px; - font-weight: 600; - color: #00b2b2; - padding: 30px 0; - margin-left: -60px; - } - - .nav-bar-container { - display: grid; - grid-template-columns: 350px auto 350px; - justify-content: space-between; - gap: 32px 0; - } - - .nav-bar-button { - position: relative; - cursor: pointer; - @btn-table-color: #04fbfd; - transition: all 0.3s ease; - text-align: center; - max-width: 350px; - - .btn-table { - width: 20px; - height: 10px; - position: absolute; - background-color: transparent; - - &.left-top { - left: 0; - top: 0; - border-left: 1px solid @btn-table-color; - border-top: 1px solid @btn-table-color; - } - &.left-bottom { - left: 0; - bottom: 0; - border-left: 1px solid @btn-table-color; - border-bottom: 1px solid @btn-table-color; - } - &.right-top { - right: 0; - top: 0; - border-right: 1px solid @btn-table-color; - border-top: 1px solid @btn-table-color; - } - &.right-bottom { - right: 0; - bottom: 0; - border-right: 1px solid @btn-table-color; - border-bottom: 1px solid @btn-table-color; - } - } - - .nav-bar-content { - padding: 20px; - font-size: 20px; - color: @btn-table-color; - background-color: #081633; - height: 100%; - display: flex; - justify-content: space-evenly; - align-items: center; - gap: 8px; - - .anticon { - font-size: 40px; - } - - .nav-bar-content-text { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - } - } - - &:hover { - transform: translate(0, -4px); + // transform: translate(0, -4px); .nav-bar-content { background-color: #112f6a; @@ -194,3 +98,24 @@ } } } + +.navDropdown :global { + .ant-dropdown-menu-root { + background-color: #081633; + + .ant-dropdown-menu-item { + padding: 18px; + + &:hover { + color: #04fbfd; + background-color: #105185; + } + } + } + + .ant-dropdown-menu-item { + color: #00b2b2; + font-size: 24px; + font-weight: 600; + } +} diff --git a/src/components/map/Layout/index.module.less b/src/components/map/Layout/index.module.less index 7ffddc8..84a3508 100644 --- a/src/components/map/Layout/index.module.less +++ b/src/components/map/Layout/index.module.less @@ -101,18 +101,6 @@ } } - .chart-info-panel { - width: 100%; - height: 100%; - pointer-events: auto; - padding: 12px; - border: 1px solid #04fbfd; - color: #02f9ff !important; - background-color: #000000e7; - transition: all 0.3s ease-in-out; - border-radius: 8px; - } - .highlight { outline: 4px solid #04fbfd; box-shadow: 0 0 30px #04e0fd;