From 21a3348e0eb5ccf12af5bd83ed7d5aded6617ebd Mon Sep 17 00:00:00 2001 From: hxt Date: Sun, 25 May 2025 19:38:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(character):=20=E6=9B=B4=E6=96=B0=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E9=85=8D=E8=A3=85?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加平均属性和主流套装占比展示 -优化面板属性展示,增加最近更新时间 - 调整套装组合和神器数据展示方式 - 优化数据处理逻辑,提高页面加载速度 --- public/pic/eqset/setcounter.png | Bin 0 -> 5808 bytes public/pic/eqset/setcritical.png | Bin 0 -> 5808 bytes public/pic/eqset/setdefense.png | Bin 0 -> 5808 bytes public/pic/eqset/setdestruction.png | Bin 0 -> 5808 bytes public/pic/eqset/sethealth.png | Bin 0 -> 5808 bytes public/pic/eqset/sethit.png | Bin 0 -> 5808 bytes public/pic/eqset/setimmunity.png | Bin 0 -> 5808 bytes public/pic/eqset/setinjury.png | Bin 0 -> 5808 bytes public/pic/eqset/setlifesteal.png | Bin 0 -> 5808 bytes public/pic/eqset/setpenetration.png | Bin 0 -> 5808 bytes public/pic/eqset/setresist.png | Bin 0 -> 5808 bytes public/pic/eqset/setspeed.png | Bin 0 -> 5808 bytes public/pic/eqset/settorrent.png | Bin 0 -> 2375 bytes src/api/index.ts | 33 ++++- src/pages/CharacterDetail.tsx | 182 +++++++++++++++------------- 15 files changed, 132 insertions(+), 83 deletions(-) create mode 100644 public/pic/eqset/setcounter.png create mode 100644 public/pic/eqset/setcritical.png create mode 100644 public/pic/eqset/setdefense.png create mode 100644 public/pic/eqset/setdestruction.png create mode 100644 public/pic/eqset/sethealth.png create mode 100644 public/pic/eqset/sethit.png create mode 100644 public/pic/eqset/setimmunity.png create mode 100644 public/pic/eqset/setinjury.png create mode 100644 public/pic/eqset/setlifesteal.png create mode 100644 public/pic/eqset/setpenetration.png create mode 100644 public/pic/eqset/setresist.png create mode 100644 public/pic/eqset/setspeed.png create mode 100644 public/pic/eqset/settorrent.png diff --git a/public/pic/eqset/setcounter.png b/public/pic/eqset/setcounter.png new file mode 100644 index 0000000000000000000000000000000000000000..82ef9e63e179d3df8c84d685bf2b60f5dd070127 GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setdefense.png b/public/pic/eqset/setdefense.png new file mode 100644 index 0000000000000000000000000000000000000000..fa78edcbe0ac9fd908c55d2fcfd27bd1bebde03c GIT binary patch literal 5808 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 H6)XP(-Ve}M literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setdestruction.png b/public/pic/eqset/setdestruction.png new file mode 100644 index 0000000000000000000000000000000000000000..1379867bbd5258187d41e29d2442eec45670de25 GIT binary patch literal 5808 zcma*rWmHt%!ocy75(9-{XlCecX&5A=C5G;j5|Hk0kycO%0ck->KzRrO2?6PlkT8fD z8fg%4?ndtO-21Neez=ge8~VSe+EMQJDzU8TMXfk229&rQILG6{*p-}^5%7?G3f!(dVL^bz#* zk#uwfc(_`mr1vN&z^cEBfEF`c8cK4p)BHBOIvte~1xx`-qDb=ZNw73p;P5HkJlIgy zT1MawHS8`8ITr(r03Uax*sU(!%s`YS#Z%W?QNUS>^DYyO2^YOSJDnB-wT?8aqAB6v<&yH*c7bkww$f8_9F%%CKojGOHum6olz6{dw*O8vIiw&hDsN zqcuSR=JGLiw}Z{Z<7|{3yJ{y`$R!vfLo|e5gcwBVNSKRrdm0Ft39uT%V8&!*-bSLH zW-`hm3=-TlhKhWmTr>(I3|!1qqMX!1>{M`aB0>T@LIPY|oJ%-3=Wn$+no^hN-%;pS z8f*5gE8fpQq&~*rQ=vyox?@Xyt{>FR1!EB4XK-HK2 zDv|e)*riw4nY8719_U)vuVoL$@~rwZ&5AwH$~y)bni zv!xE>`S()YJYc5QfU)|_ncHcqc98g)9A{i{EI zt26GX=h0Gq(3fJn$s(Jf9E&s`b?nyLgUM&x{V88NQ+^G_Ew;t(eT-@^3aC$au1vP+ z=VCDdf5b*FZ4Dg={`%^bWump48<^#lmF@L4CbBII)z4id_s+&LJ9K+ZMw|h$xrs)j zUA8u8j`sJIgirQ&cXl**>3{z|JUrMd^Zk8#a&&lbu)n`I+1Hw;@cZ}gv(wYllV87n z9fNUnba=S8w~3w_9{%{j%;5JKSUfoa)8`9^`}XiU_-D{s-;2p4=yi7dA*cK8gwSUj zfEszcg^aUfj0LsE5oF|xbG_n&^tycR}z zQ^6mP>Z{e+Xf%^DU<*3M6UMIRD%OF-4eA1buM}W3) z5@=M>H#Eo!o0;}pt3KXyO&8dmNF9K%j};&Z+1|Amc20DNl#88-bj%9nM9cblzY>0z zMd4Zet=urX(-!#%@@ab}<{d&wows=OUBVuWH#+YrG;prudzh=(+sOgNPu#Q-GNq^& zx<#xMTGh%Gh4&N#czEK&Y^ud8B^YlOU#4S!PkJd5uSA8G)SQJp-2HloiuHH`jdMCg zxkn<+?f~}8KBz-h>MERs|2obOr}mi`CW}`%;bt9z{pyY!!t^kEu1YxNV%z#AMK%dH znFFmcODR)YW}NveO!#Q#cE zL5WZg9@6-}BK{eQf*vZ_tJ8}Z*A040s}c>02q>p5i)UkzKT+|OHPe*2v6#p}TgjA5 z1NDhS`aZ-Th+mHtQ1(=KcVv+jXF=vs<+b%mJv2;S0maRvGD&H=NGa1?M!%8-NRw)2 z`j9>`4!tmjGSJTT9fhY|qnQZ=`pDJGSq}+W!0Q=hH%T8GGO(^8gngW5t=B2&4MfxO z&lsD2>C~oDvPYJ`eu}fGVb`1XfkNW0tPx?Hl613$=DHayvrT_ivyZVzu5Ul#2Zx;1 zfC#4Fo(H4((4C_kcZYX+bTKcdnFJO3pxyS$b^gDKUJQuV{Q7q5#aJ!7$(z_Ka_?Q- zeO)xyxei^l6jAWWW_`lprMe&7J0ni+RupPj2+`>i$ul&US^PY3h%EAnohPP_ zG>RqaN;DI%G57PUOwlRSOi-8Z68bkgsoi%+d-1iNv_|VcdL_1A=QAFyCf{4`zGEYs z0J&7CsPfL3pZ09Itx5NZucVGREbGH3{g?_kPMM)h&{zaN>y>#iLMHy@z9 zs+KWz%r4X6v)LhMd>OIw(uu6nb_T@F2>ONGD*X-d*&P2U0;SC%@8`M`+VL@j5V?mB za|50p&;J+~73_W8w=ESbB~c%A7MYek7~+l>MM|73(KPoaT{2mduabfzznm>f^D;hS z&{Lw)3&-yk)w{b*Dlhc-Tj_+^P|OD=q0qV`zq@5~(_-Y4YjWSy`=T)}8miZH`^3Fo z?mOK!LArWWo>cNkL{qi&dsqMb`nH8p*hKb_skPX1YQ2Z)&U!}1L{^hRnrR?fJ}$rI z^eoiKOTph?{LWlk(tLi@Nt5=;qtEjwY)~kP0xt!XcA(FenQKTcd)&Zw@HAfmd&JUw z$**gxW#d{NEq`rnz3`0q;!$llh~^5?InwbZi0RPcNA6W+ajO2d4kqZjoBypZXVmQc zBV9#7L%veZG9nw$N#hD|6B#Qw{uvHlw$6MG)~+rVp0-{VHnw)WZZ7t*{{y|w{zI>u z(5S^9`r?MymcqzsW2l&Cm{llKc z;@+2zO--pi?~@zKV_Gs@O5+^D91Q`q98kCNb0RVyxn+jhr1+RWu+Wzj5Q=oQ$_X>| z@^K6HbZ|5=5W6MC%p^)p%_k_J0=RWfI9YZXemExsIX^Qw8yqUmOUFS61>6G9zt*2z zn->&jedot~>FiL(bZfk~rD~w%9d|>i-u{<;txvk&M78C3loZES7DtyPyL&iU<;FNE zD<~VPDLzgOOZ2lkCOM7y@wtWuc^4OjHB`u{c-}7sLW^!n|__ ztg8H@sk%5_>{coEYbKx+AXbK#A{N_#ol0G6^Z~5Gp1#Fm^7gwTFm*nk^Y3AgYOn`Y z*u9E#Yb|7BzdXl&eta?%cRU!o(;f=Y1-O+TsG8-goZ>2v-FSsvEd=xe=$ftc_+I5U z``Tfu$hQB5`KJuCE}*y+Bj7IVY}(1t6YTio)6t}#U9qFNR-MmG+ER@Zon-gXMZcB{ zvEMUy2Ob~wCtuL3y~uy0*rhGQw&98SyJXX6KAPEnD#yR-v1jjq#11#hj;C^g#0HAp zMhcy3A8_=QQ}*AG^y9nuvI3CsxYaO#WnpsQoB@Bp!f5NT>OZ9ePgWdG)9Nx-2AD@ zdQt3-sFKd_G66U2GWH4OwT=~AXk#7)-?)k&wb3DF_Z;S`vi*HSw$tH_#2-XU3bji)GjGZj zCpeSjEWD|2?8U`xv37pOg%MSV(^U*_L}sY*THLY;SN+V`*lFHnNnit_08K z(yu!e(>AwC$A7;_XSJp&D|qpkBn-dLr%MXoQP#hv%~E%M+plPZzJ1{sCsK95hB4o* zFDLrC#0{ryq<6_{q)x^CnL5GyUR4%0FvF9dcG)Gy8!($FRTrxUnhvX{ma`G|lg3Xn z@a_=V??erS#^Q|=kT-@oj?l98lh8TXupXlg?L=FgT(xgGTk6t5vT*Vk&` zwf!kF($BqG_ui9+f500&gy;pbB~aE|-MftcA(FNG5(B07BFxu%_f#xQRB+Aq(ao36 zcpp|p5ks-em{0XbUGVJzt^Uzv3ySg7?d1@)tc<0rvZwV)-3$JK635(eV{FF)X)jIu zWE4ByqWkKI@vI^O55s>8HPWaIdU6<4*}v@wEt8$cAj(j&${lVk!clR=^0-5nhWR)+ zzWCoDYO&fPgqA_@Sht&{=L231+i*gqZWS?wB#!wXnD$0~etTUK(p|P&%CGV=xZIor zy)TAdje1kk<>M~=Q&=MhnE_1;keX|`VR7Qe!*Pv~;{m>us^r}Oa&a%hc!fuC7I>@3 zNAXS6FQ2<;mLyhXmRPn^Ck|>0#V1-R^7UmO;E}88C8@1JSi8C{TAx^HQYIv;$(zWS z-uK9}O`@8?e88WGc;5e=->{{- z1X=~%Q=+(Uq!<`#{b40kCOWY)%yAB%mS!pQ3K!=HVSn-VFT_MUv=g2(WGq0Yq#U7; zclTbzrSr$ikF?h7`sNV_Dy($6d`uD{#B;C=zyC8@3j!DVOZst*km=QT#`7QJo-Iu^ zlb}d9hxD#!zIgZ8YOGp)qCCzzFI28c%=D~$t}o`%+XFcikJt%Ug)5YC_xgb z2t%P5rp*-R-8xzJlH!ztaBZ1rEiN3gA59PI5 z0=$+MexQ7aFFPfysK)G+*Zl~1gy-Hs&6_5FWvtmR>)>t6lzlZcowYY9YR1&}6)`)r zmnR2IwrnWl%0gft|4HhNRjJw4HzH$~3t%Hlwk+nE2qx=-V6Br{bWij&uX+4OxR%nF z5WVfCay~Menvqu|sEJq7VX{x-lk0qDTbu`~XC=H}xws0<^cS2#3WXO84lLQu%lkbx`& z!qo+-z@GiZT+pj}GVR(Po4RSz^6R1=FhzST09}j2uXT?8V>c@EI zQd`ugrnrIn$bnKHQ#m0`ZbX{X-KTbniKbEs#*!dMNm7$)v(l(AA%Kj0j6{5CX)i*Q zyD`#Kk<;J~yN{KEf)M>bIqIT30UUwm1km)eEf|>SYnjtUhypSKAqsn3gWW4XmkuTm z5N7XV_;Q^mkQ4}109NOKS}DLTFN?ISu+8=%bpmZ`6f7BPh-yMl*3<8A=*y?+Q^GK01 zC{mzTfl`$pco!rw5WTSI66{(b7M+Wo%siaUzMc^Yh9LNd!1$P994+lryDM} zPfzzYH>v=ufPW4SHYSJD%rD?{e7wK6y|FwoHu$N#`F(MmpSP32e>v%*Wo@nWbhb7Z r0ZN6~|2txxp8ooix{i(jq1IN=UuUMjObvp97x#~(hYcadYfLE5c``G3g+b&ojYov|HGZbin3?9`RjHMTgbGQj%_gCT z@`&^j*|pk|wN|A(Dz8KerPBO=GuYkAXxqI$uJgP1e9!mXbI(2ZN+i2E$}WH{kdTm& zby`iLK!1&dzcP|gufM(!DG{G1fzRaY<729&k@RCPB` zj;Jl?!1P#|x0CSU)oFli?Mj5_AVX1{8%wAF5!^>tlG#g8`0LkWL8@%yyBwX8E zPtVrPLdP1V;a~FQ1@5-+&`A>jKCWgXKgQXKzPq7yadyT5!TjyfaMG zW~rJ5H(-^I0}^S7us74TKx$%Ez?P}WK~Boc&XbXr9Oy0Vxqs|gQ&!1|ZCxe&mLhgR zVnAa>0zb%ki;v}vYZ+B1w_iF)uh<{rx0>MVKqx9mEIYHO^5l-96b5HA5FcXYNWkPD z-gYQ8`tXjBJv1u^3ri9K7Z(?ix}9NfZ66&9m>61{o0Gq%T1EvBLn%0a2Lp`WQoNy> zISOHBp!V`+j6hH^P!&-W>n;#f2`0)W?j^sej~}gz9lRD@mEtWJJ1=;4{Laz9iwTr$ zzN28MK+t;dQDNw2|GIWZd6H*d zj7#oT=c5s;1#d43UY`*>Jtb(*7Cg=tJj{I45I=Y|s=t!oah~0p2i`uiq5g2d*|@bS z3|m3_iT-=X1RdFemi_PV?tj~`r|k^;US3$!4?tyFz#*=~0TxN{u2k@@L@-u7HhgaE zY3_&Cqa(Ku4Av!e--v%!vF&DFRO|W3+j(1xQ-iLht;+~^7YvmOdI|>b9U1>4{c-Jq zm$iv+8WM)D#nc?87Vq&YN%YtaTJ}BnNrbjPk4JIykdU0)_q<28r(0&A7ty1(V4%Oh zZ@AZ7U;g!wv6iBl%J7T9=Z@C>{kpGShP`?*@@nW0+m93P$HzvS?o?ktmwzbI$9>Jm z598x+-@X|gdG)HVrLq1e?xsLU=l%P4qBcJMM%c!nHaar$;OB~pQ-}8_C&hf6Y!ed` zA4ClT2-`Gh{O#E2P~YPR^_Ay-JlEW|T|#0m-ic)6NodGx2H7wh73q$f^T{LMMab%q zvM*OnwXFvmSItqBk)xm7f4R1QaM0v8`-g4@*6(C*x7{cix?&XJ*N?Y*=~{4o@rl}b zq?^aJ<@1L7`TZ)7wXaYgy~8B#>>busmaF#LaQ#l)g{lbUc3w~S)9yzP8l&Au6E$#) zUg|!hxk-3qx7^;_bGNA}XM8-N+TU8L4s0+C45w^QzoGLnr=hjIqjUI4kCx?*;X>~2 zJS8=6f69rqTaI<+8CpIfU(-9jMdK?vdDIlsWN%ZvFu|Tr)*Sv`S$mh8m6AaQDt@a(GF{tPde_1-x1wDaieGit z@t>{GZp^KQa>Yo!>88PM@@cthRK*@S1J8=ghIm9(*4})~Ns^YH+vV`e2%SYX71zcu z(%&dABJWZBRoN=~3g@II&7;z%eNjYMc1~AKZ(Nakc5(B1m-c}T+ZYVShwfs2%fUkw zSM;t?!l8w-^|)q5Y?hUg){emkFPjLbLYb9Iw!ZABZha^je=27+CObtZMbXBe`7CDu zhLP@{*skdCo_pM|Ce-Ibo5Iko;fURm$mro*RI;l^#`}vJ?y(A2e3~9dQE{#Mo!cA2 zw8~vlHj5?EIkhem#d)nBJ)WDJ9xm%QCagf5kv(l9S7ln{ro^ zuNH^O81HOYxi^=so|4sBtbTQg){f?`3hMmnM8c%-GP~}3p0p3KsS2XiMXsxpQ|YoT zR336WRuS3twBV%C6URovxg?p~rh*!*|L;+ni{cTML2j%$cAh5Zw4(L(_4_E9Xr-rm zb+X+Z{!*Q0`nW&RoybGhKa=uR7MNXFC9T%Yz{2(w6s&X6e3&X((x)R;m=);hX9T=M zq1!f)ZRW0(Us;9APv|Sv*Y1?*ZS<&)?bT86y?>v6zJ^A=l6A8gXK+QSE@YX`%G$0o z)(T4`H{K2RAjOUb$N6{HRkrZQIRfLPrU!Ynb+MJ63bwn`b7B%{U0rv^Mtl`ii_*gR z$CHsSfjLPn7mhq~)n2KwDeckof%~O{>bk{0NR=H(_4t=2x{G=Z?P2UmD8Ltpl!nO;;KE%D3sLnrv zply2aw6!fG2%}-s+fhm7_U$}i|Jp?BI_li9WaOyydq1pBcIaSkjwwPRcIQ%`t_wNq z3VPa8i{?3_=35^PTy^N-RxGw;i>g6lN?Ltz(0wmv*2QBjEshHh^tRoZ2s z6DL(sc(=@b{w}?Q^x_Q~2FIFO)53b2oEM(H{L9%QdQV;R{LbM#oA-9uXD2?Sgtdi~ zT-~_v&e(XL8_i+gWeeZa>9%iwy>~ag$=0+C23GmU`@bHo={vi8b7aQ|5|}VwkrtO! zv-wQ9l0Wixn^)12(+#T;^Tm>Wf2{b@wjR*>=svLrXDjShafD zhty7r(~3Z&?%!1AoVs+gowy{!Id4vSSH55*Xy=FPDu5< zM}{%r;UI@gXE7}iXcH6y4l=2%U^j0p&9E7=7W+9Y>7PhYY_Odt&WJ4Q6Y<#C{uTSWj|QJ?}hS|F!}CJq0I4yJQ~ zjZpmlMk<;M0T^5mj-2x2Pj!Gvn?aca0t_o6$^t18K4TC;ya5g!U{b&25g|-xMsDPD zn9wRbqu5{KpdkP^D^u9iYJB8Tw$%C0K6}gOGGU6SR{OwS0QvJox917#b9x4 z80<~J7f};|pvZp(Y|G$_Vg5R?BL@V(+%6H}*TEDpcxIo!4xK*6vn>3d8~HB*n0Dkp z1!CIBw+4hN+_(6*VKYIm!e@Bx3Mb zGqe#Jn!pi-Izov^Kw*g(j7TD2u%=i@)fA7$VF+fEn$RrT6c5dtnwk;JFe0-A92Skm zLz+Z_DGraBvfuTmF!2*_mv;wrU?m>vBb{uLiguruE^9BAPH!-h%)8M9l! z;D}$f0M2$tW5nf)=!}76kmCVTSL8+pL>DcI1QA3KL>Iy< z5oMIodzpLi=3V#0{c!hU&)NHVW*=tFTIaX^v6|`%#5Z9#@$m47l@#T)fmhD+U!tqP z%w}A69}f@zR8v(K2`nW^Nr74FVg@dN;RuDwlas4ZP&iOiU+&0|o%aC4_F~5b0&ddwVWg3Vg2hQml*q}Qp->MRnjknloSq)&`Sm@`P2*naBlT1p z89zN?Yd$75IJKJiT|$DZzz@){^QYj)n}E5=7ys1zn@g}XC79_7Fh%MK2dMLFaKVub zP!CyNl{-*lPJ|4I+=7ZqNAj+k7$X8oD#AqvA-@HjFx!>5^eG(E9Nbazs42^(>8WL; zt@K!L`iJ62Es3TzPqYg?6$8xVj6~Vuj74)pOwfVGw!-YvFiLX)He)c@kCxVlmez}g z#@AR_K@g!U#UjQCdvPW_>#+Wol=tkR1_?e1XO0m@^+s38O)#J(pWP^eukNkVfG4K zy@l?bnf95^a+b2}A&xpCcOWJ*{I*CwYbj0+5NVdD20xfgmyJHu=7FD)pp!Pgp)8w; z(tVCQV0}3bqyW7zH$%3sLT$8mWrXH@ty_PtMQ6Inha~-qaELzBp{N|8f&*snL6(-s|@pui{|U!pF+FC`H_HJ#M!e zH&=q2NZ;#;-0BF~XbYOI^6W46cpIym>LHipB8|ho#w`}({wX;9@qBgg`F?lIPG{Ks z`@n@p)KsPSuS)0oIK8q^b=*JMyFasbzNM^p#Eli%G$fmTd}@SSug47Mgvo!X-zqhS2-a!7m0jjX$$&zoxA1jQ$OVA)1zr z7OhS;W(y0OhD#*4uuW0xYw1&@b~i{(%1}cS7QA)}$Rkfj8aDnl`RSR+-Q#0CynM(l zK3KZL!dH+XD*kimKF*T!Qi^PKssgagDcgovKRrD*erc7^;=^fjNfM`bq?4=;-!Erl}*L(J<7 z#~Y41?(-Zhv;<&?$84jlVv15VfX-oanY1xkUPKT25m75GtN98!ZWp+zlbFC;W z6#4L#s zp&5<0CpRl%td-%Ed$uU>p?t}8JT+A(wNIU*guNw!V}5{*qi;9KB~345w991enN3_|$27@=sKm%q&zad+1K5@ z*<)TwNG5GUnxLT;kS1er`&|f1BkiiHZezN=Xu^HnWevf^?U?*%JBP=dBx@^9e7i+& zy@L2_Hshy;S>k9P{n;(4@$a{(AUvJ9>m-S|>s~9&EK%%b$yD;`k6NZgYp_FDKi%Cb z254UqL1OoPCip0Wa8mr~l8-36C4w(vMl!eNgZ0;5*C|q%tPuAgdff2-&^^oWZ}gj) z1PMc;-46CYmp{5vX?-3;kK7hs(oP?xzC*8NQtmq>Dl%HNHc{I(jhYr+HYHNYI4H}V z+UJLr<;;aP+<;Pl75Sy*=l-2(k)G?vH9vIyn6cyZx)3`r?{~>scJ2>>HfeQ=osEpE z1KHO(roS*5a~?%GeG?N$uwgedx(lh%rc=q2NyP2aYnl4lePbu%Y~44CSP0&~yN_<| zNRf;#@bbv1>6p!a?nFD?k{bUtRQ@!VIlf%CaA|K%&4No&*`(*RyqTw*tzmJ+PJ$}c-#3{So!#Hd$>8o{y+3}^sl}m85n?rLf~*< zzI4t*DAW}O1D1f40^#sbdV2p0G67BlbOG!;UsNw8W=~D+dqEChUxAz)m@fwaHf3`1 zOI-ck!;=StR4FL*C@IY$5EC%i>B3j)6cj*1xQ)2E1S^sbqQgv!BqP%XfiyuNODZbs z3+AcPLzQ6=2@p9TJ^jDf`=`dI9c>R_L6Z}%!2o?gN-7H?_dLgske)P)x;T@f5aRj; z%r5_c-}QdOFP(?0{O#pATN904H11hRvm1!seHCPoU?JnL$m<})qRd2N%84*ygG+-c z3}sp61sF6X*@Soy?2J$*8Zu!HS^!Z1X|DYJmoP)wORZsj#a`pDoTl4iew4a4p*G=9_tC#hH6&@YXO=HG7~BG(=e6bm0^bFd1<8C%IV){gQDQ$@XpLJh#jTa#mI?q_o!hA^V!PwX;#9UEe=7 z`KFG{~|6gcbXzY?&7t%TeR0eeK?(X(~`wDog z5}lFo(Dt(V41@sZ)~s){UhMzuzD4qz_Qf6XXhk1^N2cpvp>yujcewmb+X&H&7g9UpOS*#Q7q4X6?6E7A|)h+sJ zo*#Pbt^WA<(MP;$b*Ls=<+lJg0C?Q!bO&B_ZWt!buu`0)Mjdt+C6(}Ar&gfhm)TF#7%}!LvFY#F^)=ARq(P)_!L0v%U#FJKJ=ZE$} z5hCK3+K4a~GDRDP?$3=TM<((%_xkuO_B2z1s15zNP<0u|g5TfViH(1KYwH?Tx7Ce} ztu$SdVAm&aMo+Kpq;}I@h1F2Xf%FC)KYOOKlKlK)Z^5Z~RO6%->FjDLagdu>HTKoB zXNPr7&Y8G8z}j;xETD~vhXm`>Y<(^MN^so~I^s$uZU4=#VVLslGQV$Z1LJUX?5>zu z>mYp7iv8;_4db!tyAhOjB!}a05izB%*>YKD@iA{u)jX2ovs5VqJnc%fi-qr*Oi@Q% z$=p?D-bi_H_O|D@J!?-j6)g(wT=}BeU+suGgBKroiKdo5{>)ddzk)mUeo_p|?bmt#zJF|3jmtCsH>4|J<9=iD z){z_!q3yy+NjITHVJbiGFUKd9^jwip^IPPU=MKCZaGCHE894udIUY}FhCXr`1d(h0Q_bbGJ zNt@KWnoMA*TA@B!rS#=B*+;?%)P#@ZqVHnUZpQ&= zCz-pNa*eC;ea^t3haph~d81SD>7!#R5*4$O{Eq`i4Z>%ZM$al81#T*CUn4*$e@={M$%B*oSG<*zijE_R{!wco z|A{Q7kO4d-;CyhfHG(xg@w!6uJq)Y1X0-RkNkZ<4pZjwN&UkcbGg!GX z`7BsiL|7L=^|iC-(}bj&L#m!FU$+Xb{{h>6^&x(kUxv=2aFg@-6Z(I<$@|<*P=){7 zO*ZbnZa#Ki|6e=(O|Jeb01w9O4Cf31mb9!sv}}GLT5SluDIL52Wdk`>k($vS%JdM< z5eV#%LS+7X_fH zcw>T-l(B-Kwv3RXf*uo-7@S^MOh_3F6{Cb9$zdu0pH#(|rTOR}6t@U3!m-O+19N-! z!|G)Fp4R~=Q^|)~BCX}&=m2x1F#ij5aJYwM-V;;bhnAvzLOiV8C_gtd4NV=K>>WawA0c;`P^jw#&qsN-_xnKiMlcqO#^$Q$tc+aad)l_p3@3aKN-Dtn)v^A1>9lo?s1N5Z!FuYN!+HFz!5xsMjw0AvEF?taT93VL@I7P1rXQqz%#&XM}2Yg z?}GtT)x~I^M^z^cxPv#ih1aL!sXHSn>x0jL%xeBq^v0LS&&B@fei}e*1yE}5+cWI9 zXH(UF@6fJ5a+PUo#|L~NDlhnSmGH*O;%y9O1G|JE*;-v$V%!#^A?Kpp!m?9uuP!g_ zY%DJ*z}MFnC3jZOumEy)MqG}!HwRj3P%^@Rp7zees;x~-M@y!MhKeA|WfpajG67N6 z0T4q?j`f$snOx}Uub|FTsB<-)moMZr{q1Y%OCYCmu+%&60S-Bjy8t|0G_6nceC>Q+ Zn(+lMbOun9>ZO{BN9_zjp0w9J{s)SZnV0|o literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setimmunity.png b/public/pic/eqset/setimmunity.png new file mode 100644 index 0000000000000000000000000000000000000000..d9758326fe7e7866ba5f5bd835589ecff7479993 GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setinjury.png b/public/pic/eqset/setinjury.png new file mode 100644 index 0000000000000000000000000000000000000000..ef11b6b55a995a5dbe51e12a5fcbaba7188aa85e GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setlifesteal.png b/public/pic/eqset/setlifesteal.png new file mode 100644 index 0000000000000000000000000000000000000000..151a44f66107cd3f4bd1372a8c2670f494f792ff GIT binary patch literal 5808 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 GS^Xb^TnaM) literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setpenetration.png b/public/pic/eqset/setpenetration.png new file mode 100644 index 0000000000000000000000000000000000000000..a602ed1636b33d3d29f5968db0bc464b2d762c7e GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setresist.png b/public/pic/eqset/setresist.png new file mode 100644 index 0000000000000000000000000000000000000000..3324ca81498989e76f0d20c7dea7b167e9f73dec GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/public/pic/eqset/setspeed.png b/public/pic/eqset/setspeed.png new file mode 100644 index 0000000000000000000000000000000000000000..cb0535c45d59e407d818018698dde047f0ef69bd GIT binary patch literal 5808 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 H_lxyku3_GC literal 0 HcmV?d00001 diff --git a/public/pic/eqset/settorrent.png b/public/pic/eqset/settorrent.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab9c711101188d34e474d1d8738300c5487c9ae GIT binary patch literal 2375 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 a$JZ-RBAY!r(cGM;pSZC;POm}7CFy@2S6He5 literal 0 HcmV?d00001 diff --git a/src/api/index.ts b/src/api/index.ts index fb86665..db175f0 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -77,11 +77,40 @@ export interface HeroDetailResp { eff: number; efr: number; }; + heroSetAvgVO: { + atk: number; + hp: number; + spd: number; + def: number; + chc: number; + chd: number; + dac: number; + eff: number; + efr: number; + }; + heroSetPercentVOS: { + setName: string; + percent: number; + }[]; + heroSetShows: { + cp: number; + atk: number; + hp: number; + spd: number; + def: number; + chc: number; + chd: number; + dac: number; + eff: number; + efr: number; + hds: string; + ctr: string; + }[]; } // 查询角色详情 -export const getHeroDetail = async (heroCode: string): Promise> => { - return await Api.get>(`/epic/hero/hero-detail?heroCode=${heroCode}`) +export const getHeroDetail = async (heroCode: string): Promise => { + return await Api.get(`/epic/hero/hero-detail?heroCode=${heroCode}`) }; // 查询 GVG 阵容列表 diff --git a/src/pages/CharacterDetail.tsx b/src/pages/CharacterDetail.tsx index 71c002e..20bb07e 100644 --- a/src/pages/CharacterDetail.tsx +++ b/src/pages/CharacterDetail.tsx @@ -136,10 +136,19 @@ const mockBuilds: BuildInfo[] = [ // 套装图标映射 const setIconMap: Record = { - 'Health': '/pic/item/set/Health.png', - 'Immunity': '/pic/item/set/Immunity.png', - '生命': '/pic/item/set/Health.png', - '免疫': '/pic/item/set/Immunity.png', + '生命': '/pic/eqset/sethealth.png', + '免疫': '/pic/eqset/setimmunity.png', + '速度': '/pic/eqset/setspeed.png', + '穿透': '/pic/eqset/setpenetration.png', + '反击': '/pic/eqset/setcounter.png', + '命中': '/pic/eqset/sethit.png', + '激流': '/pic/eqset/settorrent.png', + '吸血': '/pic/eqset/setlifesteal.png', + '抵抗': '/pic/eqset/setresist.png', + '防御': '/pic/eqset/setdefense.png', + '破灭': '/pic/eqset/setdestruction.png', + '暴击': '/pic/eqset/setcritical.png', + '伤口': '/pic/eqset/setinjury.png', }; // 神器图片映射 @@ -183,22 +192,34 @@ const ATTR_LABEL_MAP: Record = { effectResistance: '效果抗性', }; +// 属性映射(API字段到显示字段的映射) +const ATTR_KEY_MAP: Record = { + atk: 'attack', + def: 'defense', + hp: 'health', + spd: 'speed', + chc: 'critChance', + chd: 'critDamage', + eff: 'effectiveness', + efr: 'effectResistance', +}; + const CharacterDetail: React.FC = () => { const {heroCode} = useParams(); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); - const [heroDetail, setHeroDetail] = useState(null); + const [heroDetail, setHeroDetail] = useState(null); useEffect(() => { if (!heroCode) return; setLoading(true); EpicApi.getHeroDetail(heroCode) - .then(res => { - setHeroDetail(res); + .then(data => { + setHeroDetail(data); setError(null); }) - .catch(() => setError('获取角色详情失败')) + .catch(err => setError(err.message || '获取角色详情失败')) .finally(() => setLoading(false)); }, [heroCode]); @@ -222,7 +243,19 @@ const CharacterDetail: React.FC = () => { if (loading) return
加载中...
; if (error || !heroDetail) return
{error || '无数据'}
; - const {heroRespSimpleVO, hero60AttributeVO} = heroDetail; + const {heroRespSimpleVO, hero60AttributeVO, heroSetAvgVO, heroSetPercentVOS, heroSetShows} = heroDetail; + + // 格式化数字,保留一位小数,如果是整数则只显示整数 + const formatNumber = (num: number | string) => { + const numValue = typeof num === 'string' ? parseFloat(num) : num; + if (Number.isInteger(numValue)) return numValue.toString(); + return numValue.toFixed(1).replace(/\.0$/, ''); + }; + + // 格式化百分比,保留一位小数 + const formatPercent = (num: number) => { + return (num * 100).toFixed(1); + }; const renderSkillType = (type: string) => { switch (type) { @@ -255,7 +288,8 @@ const CharacterDetail: React.FC = () => {
- {heroRespSimpleVO.heroName} + {heroRespSimpleVO.heroName} {/* 属性图标 */} {heroRespSimpleVO.attribute && ( {
{heroRespSimpleVO.role && ( <> - - {heroRespSimpleVO.role} + + {heroRespSimpleVO.role} - {ROLE_LABELS[heroRespSimpleVO.role] || heroRespSimpleVO.role} + {ROLE_LABELS[heroRespSimpleVO.role] || heroRespSimpleVO.role} )}
@@ -311,35 +348,35 @@ const CharacterDetail: React.FC = () => { {hero60AttributeVO ? (
- 攻击 + 攻击 攻击: {hero60AttributeVO.atk}
- 生命 + 生命 生命: {hero60AttributeVO.hp}
- 防御 + 防御 防御: {hero60AttributeVO.def}
- 速度 + 速度 速度: {hero60AttributeVO.spd}
- 暴击率 + 暴击率 暴击率: {Math.round(hero60AttributeVO.chc * 100)}%
- 暴击伤害 + 暴击伤害 暴击伤害: {Math.round(hero60AttributeVO.chd * 100)}%
- 效果命中 + 效果命中 效果命中: {Math.round(hero60AttributeVO.eff * 100)}%
- 效果抗性 + 效果抗性 效果抗性: {Math.round(hero60AttributeVO.efr * 100)}%
@@ -353,37 +390,38 @@ const CharacterDetail: React.FC = () => {

角色配装推荐

{/* 平均属性 */} -
+

平均属性

- {Object.entries(mockAverageStats).map(([key, value]) => ( -
-
- {key} - {ATTR_LABEL_MAP[key] || key} + {Object.entries(heroSetAvgVO).map(([key, value]) => { + const displayKey = ATTR_KEY_MAP[key]; + if (!displayKey) return null; + return ( +
+
+ {displayKey} + {ATTR_LABEL_MAP[displayKey]} +
+ + {formatNumber(value)}{['critChance', 'critDamage', 'effectiveness', 'effectResistance'].includes(displayKey) ? '%' : ''} +
- - {value}{['critChance', 'critDamage', 'effectiveness', 'effectResistance'].includes(key) ? '%' : ''} - -
- ))} + ); + })}
{/* 主流套装占比 */} -
+

主流套装占比

- {mockGearSetRates.slice(0, 3).map((set, idx) => ( + {heroSetPercentVOS.map((set, idx) => (
-
- Set {idx + 1} ({set.percent}% Use Rate) + 套装 {idx + 1} ({formatPercent(set.percent)}% 使用比例)
- {set.setNames.map((name, i) => ( + {set.setName.split(',').map((name, i) => ( { {name} ) : ( - ? + ? )} {name} @@ -410,38 +447,32 @@ const CharacterDetail: React.FC = () => {
{/* 下方builds,两列布局 */}
- {mockBuilds.concat({ - stats: { - attack: 1800, - defense: 2100, - health: 18500, - critChance: 101, - critDamage: 270, - effectiveness: 5, - effectResistance: 1, - speed: 175, - }, - gearSets: ['速度', '命中'], - artifact: {name: 'Elbris Ritual Sword', img: ''}, - }).map((build, idx) => ( + {heroSetShows.map((build, idx) => (
-

Build {idx + 1}

+
+

面板 {idx + 1}

+ 最近更新:{build.ctr} +
{/* 左侧:属性 */}

属性

- {Object.entries(build.stats).map(([key, value]) => ( -
-
- {key} - {ATTR_LABEL_MAP[key] || key} + {Object.entries(build).map(([key, value]) => { + const displayKey = ATTR_KEY_MAP[key]; + if (!displayKey || key === 'cp') return null; + return ( +
+
+ {displayKey} + {ATTR_LABEL_MAP[displayKey]} +
+ + {formatNumber(value)}{['critChance', 'critDamage', 'effectiveness', 'effectResistance'].includes(displayKey) ? '%' : ''} +
- - {value}{['critChance', 'critDamage', 'effectiveness', 'effectResistance'].includes(key) ? '%' : ''} - -
- ))} + ); + })}
{/* 右侧:套装图标+神器图片+神器名 */}
@@ -449,7 +480,7 @@ const CharacterDetail: React.FC = () => {

套装组合

{/* 套装组合图标 */}
- {build.gearSets.map((set, i) => ( + {build.hds?.split(',').map((set: string, i: number) => ( setIconMap[set] ? ( {set} @@ -461,21 +492,10 @@ const CharacterDetail: React.FC = () => {
{/* 神器图片 */}
- {artifactImgMap[build.artifact.name] ? ( - {build.artifact.name} - ) : build.artifact.img ? ( - {build.artifact.name} - ) : ( -
?
- )} +
?
{/* 神器名称 */} - {build.artifact.name} + 暂无神器数据