From 7d667253a760783137136a07e4200df6967d3429 Mon Sep 17 00:00:00 2001
From: ZhaoYang <565837861@qq.com>
Date: Tue, 10 Feb 2026 17:20:59 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E5=90=8D=E8=AE=A4=E8=AF=81=EF=BC=8C?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8A=E4=BC=A0=E5=A4=B4=E5=83=8F=E5=90=8D?=
=?UTF-8?q?=E7=A7=B0=EF=BC=8C=E5=8F=8D=E9=A6=88=E5=BB=BA=E8=AE=AE=EF=BC=8C?=
=?UTF-8?q?=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app.json | 7 -
pages/home/home.js | 1 +
pages/home/home.wxml | 30 +-
pages/images/gywm.png | Bin 3906 -> 0 bytes
pages/images/logout.png | Bin 0 -> 4543 bytes
pages/images/sz.png | Bin 6638 -> 0 bytes
pages/images/xx.png | Bin 5286 -> 0 bytes
pages/images/xx1.png | Bin 5499 -> 0 bytes
pages/market/market.wxml | 7 +-
pages/market/market.wxss | 9 -
pages/news/news.js | 66 ----
pages/news/news.json | 4 -
pages/news/news.wxml | 2 -
pages/news/news.wxss | 1 -
pages/personal/personal.js | 357 ++++++++++++++--------
pages/personal/personal.wxml | 47 +--
pages/personal/personal.wxss | 214 ++++++++++---
pagesA/pages/attestation/attestation.js | 143 +++++++--
pagesA/pages/attestation/attestation.wxml | 24 ++
pagesA/pages/attestation/attestation.wxss | 111 ++++++-
utils/api.js | 18 +-
utils/baseUrl.js | 4 +-
22 files changed, 699 insertions(+), 346 deletions(-)
delete mode 100644 pages/images/gywm.png
create mode 100644 pages/images/logout.png
delete mode 100644 pages/images/sz.png
delete mode 100644 pages/images/xx.png
delete mode 100644 pages/images/xx1.png
delete mode 100644 pages/news/news.js
delete mode 100644 pages/news/news.json
delete mode 100644 pages/news/news.wxml
delete mode 100644 pages/news/news.wxss
diff --git a/app.json b/app.json
index 38723fa..b5de33e 100644
--- a/app.json
+++ b/app.json
@@ -2,7 +2,6 @@
"pages": [
"pages/home/home",
"pages/login/login",
- "pages/news/news",
"pages/map/map",
"pages/personal/personal",
"pages/market/market"
@@ -55,12 +54,6 @@
"iconPath": "pages/images/home.png",
"selectedIconPath": "pages/images/home1.png"
},
- {
- "pagePath": "pages/news/news",
- "text": "消息",
- "iconPath": "pages/images/xx.png",
- "selectedIconPath": "pages/images/xx1.png"
- },
{
"pagePath": "pages/market/market",
"text": "市场",
diff --git a/pages/home/home.js b/pages/home/home.js
index 0cb937e..86fd314 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -21,6 +21,7 @@ Page({
http.UserInfo({
data: {},
success: res => {
+ console.log(11111,res);
this.setData({
user: res.data.area
})
diff --git a/pages/home/home.wxml b/pages/home/home.wxml
index 96d85d5..794242c 100644
--- a/pages/home/home.wxml
+++ b/pages/home/home.wxml
@@ -24,17 +24,7 @@
-
+
@@ -107,14 +97,7 @@
-
+
@@ -221,6 +204,15 @@
{{item.publishTime}}
+
+
diff --git a/pages/images/gywm.png b/pages/images/gywm.png
deleted file mode 100644
index 7a2cbfd104d02b5ba3ee3120b2df85357555e899..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3906
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
JRoc#!{{aqED3<^L
literal 0
HcmV?d00001
diff --git a/pages/images/sz.png b/pages/images/sz.png
deleted file mode 100644
index 3e72d5d5f2e7117f531f024610c5c8312c486879..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 6638
zcmXY0cRU-;`%hxT3~E;pd!;pM#3-?9l%j~esZDAWwL+^#ji}PlqQ=JxYPCj@KC)zbphjzNC_0NfP@I+_;Yj^upbI*$Ha%;NbNFg{+qxRzPR7*wfSu~1Xp
z8ji0{23w?>0i{XyL)!x#X9na#3-bA_(|e8mg42fLSM-&}9$9JkSWI=gb%=EaFyYKn
zluTZhTv9cRGww#mmz#@Gi&1|@N9KZm6cpqhG>T_$|JaT=i9YW5Ys5rxoJpw<%Dmz%
z%<~Lj0J8;A(s+XnV7D%5CD;H15a5N;mSzELupvPucppI^s8p2IxH_Mpl|wp{{$*JJ;IlgcA(qC%ras8SSig-&^y{4&Skfc`ud{UkH!tGhjKb#$P<_08;EoVWIe9}9_w8uwMb)L^cnePgQ{
zfE|juu-CF@!Om%2ZW;bxEl~xAR5bh!?|~1$Y5)@Pb282;Qe~oeIp=6+vQ$rZyx|Lw
z>-{(4A7;br`$0UOxDg(R%=uOHxm9)SR!#%J?ItYhPn!b3?*`iQPKBwPRcL(4T+&sH
z_K3l&d$Kkpd3#La?5}Bm#a`EIu&55p6C_0H>!Z>!q^lD7(7Ref5S1aDF(omKEW>q}=X=tPnlFbRC
zS^TENpZ+P59%;>(ZNzGme$^&j#vzQjaHFgDJm^5y0jBfT7s{;Od5$L>E|Y~f*SFx8tO?{w;?mI9*v4-EgS^Lmm&-1Zv;mVJ=L~|_1zbbra#*3O
zm|h+cw=S2nIgY&eKCXWob0Zvq8lXNbK6*8q;1vO_WQW5$4RPc@Mo3pmX7&1WHoyV-
zu^V2!AG(*WEOW-Z`V-1Ct8S+x{0%68SSn+VT&v6_)RDec!CztuXkSU--4TJT*KX%>_;XlR1#{
z7PWs69(WoE866(L?W@*%+`RZgNw}3_DFEac(|$Ia6z~5ZZ%~+{gk84$%hfp}7HPlH
z)+c+h>&+2b&op3*)?q;CH-Vi3VY)%qkCX};nz?d`jA}D(*I>I}CC4<1*UaxqzPQ`U
z{fx`(mkeU$xbVWu5xa6vbH%*1gVPCyh&R{H(e7IPwMXD091VQ+mDCn!Ik~HWyHZE&D3-))5VG^Ho|4RnF@Sh^@tOaR%(#xSG-j2nG(efh_0r&Iou$
z&JzC=8qphw()Wl>tAqqtK94vk=X)8tQEA_`CaCgqx@I>_V65Ej6=P|$U?nh9j4$Xs
zR=(`-ookP@Bsb@g!Uik*XG)1{OMcKB<
z+1Zgxb(H$SV}6IHrdfR0Aqa+`fou`I
zARC~r#OV8;OXjPSz=ntgHgt@CBAf;i--|-@wQ#BSP(PT*$wLglgMDq@fbV0{tWe6t
zQFIFi;peQkwB9&zIjQD^S0LADFfY@TCd4@EEA1#qBDJx)5JqDj;Ad+oXJB1Md(8w_
zqXqMLq{_M#xkSI>`RRJWoFV$~-lOl73}(iuGSzBMh!udR(PB5>T=qsVdI*?neQ*WP
zl@Hf57o$lJB9PL9RC(sVz7U2O00+OB6V4I||J8q@+oo%^^zSa-cGC1*ed2TV9(P?3
zV@@xRnCF|uBF@?w`oY6*V}K64k`aJXuY6D@LOe=la#(v|0{-eM37r_6!?@k9BMoC^
zdP@-!FJwD?cc<|>2c=#jX8bX;VDK1J@vl~~5h{q&_p~U<=2I1e^(_Y9!cN**V|>*}
zodUbBm~U&3>oayp#8c=j@o931x|zqA!!v
z3XG?{v?dSyk}Hpn#_p36Wj1Y&$3)mimj6z10c_67?L{e^410E1u3yd=qm}
zg6w{->KoCGW@FN4BwE)&oekD{k5l@6Ha##-J9oHDtpE^O8nEKuyTv2^#lzd``nac-
z6o|+D)@_~Et7G^Bh<<~l#)A&3oD$kZqd$4zQfl-_8w0USW9;@#ve!Cs2Jrnt!yS&>
zbz7xFJMVlRWN|%ncBxMqTe!zSahC$ocM3m!&J$+wL+Pz*-NL7Sqv=#?@b1?yp00c6Ou2>Ue)eSH17fGfF2(_%(jLdH{j*ucQUb~9M-LD_$h3hAinD5%{qeBauwXzk9vw=gPV%=?!_{viuk5`-4H41T
zl4OyRfW#k!(`ONY;5U@GXd4w>jmRs+sr#54l48$Gw~DtUx$C;77OZJWGBo;BL>X=z
zz08_4Xd^#2W7<)T3GGTpl;0orQ(uTgP-`VfAi(bZd-ek?(CF`H$
zfFU#SILgxh=eiKCtg4*hlufMl%RUyL&lBWe+0Ln5jEnWR%?#>x;lRpu3-Hyv@OChs
zUY_^}tTp_5k+z4Ddwm_%rWCV;^9ormP-%
zm$Ai~g`@8lB7}NPYgadbuFCaIn=x3o2b%(|ha<+ZZ!
zkspBHW3&So!RN~7`7D0T*LoW*?*k)djbApy6ng}Og_a--;cdJCu1N|->w`bS
zVDEYaR$i;_V;cehaGOelxuAf3D=-i`y3@jc^ya~>kA?^%kn0U-8Q=$*>hSd{H$0fcHlC!eYk2u?WY_7da`#<@EnFz5s`MqDuuN(#C#7(r<9=f0Y&i69o
z*hGawo-#)B2ZL0v>s#2|Vsg{u{HTTKL+VypHM19`X<6k$PR;8RKMrX+*XF8P^kS^(
z5}T>v?UswGuwtf%Q+*4t)Rdd>1}HgA%Z;Ni2%)BrI<4%qe$0mosnMJLq=G0tlkw0r
z1SMjV=jGcK%qv(T@8|P}Wi;@idR!Q=3WFyw<5-zm)Uy})#Z9aW)qXJ^`Z_jJou!{r
zruGsfepf`|_UbqwZkQz4O|27SKhW?=pOeqe+41~HUP6Q3o=v7oXVA%J)N<*>xS@aILpSR`?A7txJX)+1O!4PRw}1%>8Y7Z9CRR01rJqauwN%EQ
zvDGLTig-B1k9)xY`Qgq@QJRV#Y})aEIN7Niz_%H5VXt;)Dc|+37GeY_*r4CWZ)1{G
zL$_GJd2W}FDy`ssuz)_CY!gZ7Wq>UUj!Jd*T+LEY==j8<{5(l>c)f{la@{BSH!h?(
zq+nxvXgczHRUaA$bT{&28~E&^3a!C7G~z{$S;RU&IaTbK`X14~bJ|iJTFA=g#Jzx~
zF99zdme$>+{7jF$nxt~)CG?gQ$68p-8$_5D#%0O3xxm*Fh)AKjbT#4B=uDv0QrN}t
zA-C6&B$=MhM8G-YrQ52UUS1796|X$DpYDD=8}*a#Q4=5ZEGTxJJBZNgDcpWqUO>I)
zZd@y%aUC%7iZ}XQ4q|fi)CSYI1AL|W-(oghx|MYX|Am|4f7w=^7N^rR4e$5;!cB^6
z(sZ&{YpC6@a+mQ%zdba(w}Z~`b!!UZRz*4KfnfT^c(hT*F!}U!YvGe!s6*oA+o*s7
zDXB7Rj~N9O%gOldi4O-IirMxFzHlfnmfNcoQV)aylFwX*GqPVM^rmSV*};m2b`bqiO-rfxL8pP%
zPeRwtY+h@J7U%I
z&)HQb+HkIJt4T}Elon8Ezb#g>hh)6Tcwi|_o+H`*)A$RD^d&&09JHn>F!rr|O-Jlx
zAHR7_b-Nn6g(uSq8OwS9F}?|9~ZN5}I5i<#GUwe0`0w$^_T4Un6lME++|
zR-lo#_V(B9qLA1Vv;7(NQc5|Hu=ETkwppxlAyFB*Nu8*aDd^R;51CnzWEBUcG{;Uw
zC2*MgRoiRU%VOv-y|1V$rJynI1&GYpaE<@m?k_Pg6+bVI9ua`>JUT!*Z;_EkNA|eL&LZ~#Mvb5`>dzZ-z^hNbxEfwAgKahfm*`4$4-~D~x#B4_`)@MpUJ0t~%D;uWE{$lHh{e;Bc3x
zW)6{K7u77H>m~_ZdFv>dQX}{`H5861u}0FQV|csSQs%25aYgs9iJD|55Ulf*WUS*K
z5tD*$T&suHT8+h}8M#)b-w9wZo=TUD`WXO51cqs$nV}+a6bOoUW*4_e@_?{UgTe@!
z^ajE>w49bch#FC7jHXne_>(EICN8*!eYknX_3~ct$-}I0>rknT-V$BkpmLA;5=AF|3c*LKICwZgHV%H{43D
zGfp#6tt5a~7M?5nxi^R+t$NZO%n8uF9j;1O
zh|iY#8`ow*=kJV%{$t&qug^TI>`AuZRG`=k10H&0Vk$PSm09F|WM_Lxq{;2U4K+p<
z3Y|J~wSRbW@X6Tc=G_mlyJW?hV~~tG$2W=YaSnQ$bggTNKVNm9`GsGErGb`gGu6wb
zSZ`e-&z+~EqB3;d<3=mCcO6BOSCUE})CPhpHbQQUA1kJ=%>Qtm
zk7?1R`+w6Byt!|a(xPGw7u1Og!QfKvIt>cK4*4hFrL%fPgdqe&bWTH=PD~W#kC`Y%UP6|&YDFh{Cs1JAs!U*zPvg7Z^t#L;o~+7FTYrB{3wC}F
z0_YNq5w}UmO2n`O`%1GTirEK>nusv6ex^{6QV1&G9)e4?`-#{(zA|#xcJ{egplr*4
z-|xi0Dy&w7_R-~k0zxJ`N#O
zq$9MVu8EpiOBlD@U<;n*4)%J0KUMN)V6NOXSqP=UHA3x_OfPUm8WxukA3Kreltv-H
zk^+pHk#rhJP=LE*%bOTwEKixVrHh{8gbZ|!J`v;Z07Y8#uqE!N@iqx(eLtYHJVffCoh4^1t)JgOyO}y$d@+=xZoY30U_5pOh795mSFpNv
zIrJsZr0wM^5hP{>Zt7EOdpT64P#B`5d>aE8vUxpa|5g}@vG7&@5fGGfS+;0IR<`Px}U`a$lRCr$PT?=yCx(>BQ-bZ`)5l_>V^kyY(R`Sx7JZJ2E)ZIrjx`l@H(6%H3
zAi$4=%)IHl2}Oa2IK+n_)$Q!Z5HJL05$FsXL%fj>qGDJAn~c7jp<0L6ExPNiYnVsi#@aH
zzi)~lE430_1qSN^g!yUl%RGduCx{EKzqvSKE0%&o8X(K7S(aPqR!b0PEj%$e3bWN`
z!1ems_x;ggmfdc31bKRT`o6KaLX*gEec!)snJB9uNZ>|6z->SB2#oI67GssB3F3(H
zy`g;ydDYF^xbkx`AiuKRtj*He{w^q4frNrjD%6%-*bGsc
zBFOXe^XHF`53m@eU8y&x)MJg5c0dc`{`2S0XCO~d>f#Ahl03)0?_bs&qclU1!{PA1
zLd3X|L7NC1ZzhaD+(!aj4f~O{yYD
zhV0ZPNinDW88%g$&vsQq5M`^e+8|P5>DRU@EnAZ+2y!?a{;v>gj5S4Tj4LEaG1Z51
zaNlHXQj{QW<$^$5GBw$}S=S-}rC%lY3l49+v=sLhBZwmhSPrQlBZd@`K|gN)N%WK@
zxLoJ+`Bgz&@h*!HMA)S=Vu-87V}}YvX(BGnN)YM2jbRwRwq&j|=&|Z66iR)nk4v%<
z#DV)uXa?U-r_+m2U)Bu~0pZy3()az>TI;#85JZq1%>{Wx-D|43q}$c^{XaF5M4cc~
z!FWr7T~k_~D6FJ4sgWeA1Q8;KS&c*`&hfZZTDZ2jQjH)&{9C*xr$jfS@&b
zsbzy#g&-2-FqbM_VN3Mj;!W7!O5Oaef+XSu5eUf5r7EG>!tazg;8sISB1#Yea+pgc
ztf(csbBEpFh&0=plqQKNK@xY!jT|MlS?S#ZaY@mA5;1}pIg~VP1>Fk7CB=5!MF^7U
zZ`!W-3P=zeLMlm0C2f)kl5)_g)SzRNX@A#2phc1-5hO94TSXdAM-{BsB?JzK1JvZP
z0{7e-iEM(TWUS0`7=aQGY53hanImkW%EBV-t}~5T?Rrg3p1mO-Ocjm!#u{{J5bW8OD
z2sA;su2s%}sy($Zi9-aqnJrCM3r!Fv!_`fosn~iD;0EoQi!h2HOzUBB$9i-(+enxT
zF?_^GYgB!4MICsn`8Fv9Z>{`g|)2EprdB6Z2u!VZ`L3a0>sdO6{vUaWAAV<9`nOu
zA*N%gHbD5}@pzHyPqUvEWUX07qVDntLfn;$kTOVMrjzWf+FzZnt|s
zpU?1b(I1%1VHiGjT?aBkyys;dWdm9F`~A<7Bv-!DR@GKY~S~>2!KaC1=X>6oPQ{7YNc!ikD$hAF$7L>pXEqp41WT
ziUn$dW=cqo(xnjM{#jzGm+S#GMGztwbMqi_+r`o(ODLX;OH@BEMp+z}#;Z-_rFRo`
zLYE+={9_l8QOaQ!7b)#kPfGDLNg`q4O1Oj*76k19aZVS41^E?ZRAP!%WRp@1koc9cMMc_|C)$!*mI4$k~^rj+O8v
zD<5|75f=-cWcr)fAlO<}AG4Cc4gdEE?QEEa-MPop9ZA6tWAc+Q<$rBqP2xU=3Ln^)CU|vkr4Kj`-
zf@q~iV?Yoy6|wI8-^u$LEU0i;e4qVlP%x-k%(;z|0=YO5XdLoZ7Zklg|#o|Fx?SeI&eF1?tV
zaNv-*nG=PQiYJ}Dx}QWr7e-C-TEcUVBn(SPPBMXu_1twG1Z}7v>CH9NOI;%g#pA3Z
z6d8kHJvk6=gviCb3aUPE@FWwY#AZ;ape|q!kF28gHy1fTpoD`+emvyW4h=-m&?(u!
z*n-u&cN8NB$U!9tC(Guq{h|2xDn2n~a-G!!AKIVmjy(?N(_c!QO?NRKoPfm2n(Z{9
z2aV%yaaQBlBvJoP+yh~`tK^I0I0awSfn(bT)&w4zQb4#60f2eI_Nmb>uqGhm98uut
z>U+r}td7jzoQ$(_HhLbNwXplkt4W8EIHpQN@xngAs=#d=UDy5Y`~H~o>^XI8Eyx<&
z7&8v9HcWG5uwdMFyE|38t$h^;P~#7-OBjAYhf*SuC4j7ACQOJb5g^7N?7BPd7p7SL
zT$MAFaU%4gisMnP4ZEAK+*klAK1&Z*pSk~1M?)OxR{Ynt%h+3*`ZdUSKTL(l0
zq~njEzsahA8-nCCT|`{0xgjtjKs_52D=!MOVN(nKJweRPGDWNw0fzNhJWDfS5FWC#
zHv};^t6JSK!5GDfOX=OYOxV2@c_4_nS*DA%B0vq!=iI9$OLYIt13}D+)T$oamW#S@
z16p%Qq{uG(O|U*k5Ynb$ED+lE)Y|AJ5TIsQ=iDpICSypfIf76(4aF}OkO0;CSO)?a
zrJfk+!$vkC$iF^2Nf3^km9m|`j%l<}XdxhFJqQJkS2t^xAd)_x7I4<@`Vrvh;griy
z?Z>-WvjkyUk)mgm*RL+y8X>_Yx&daYw1jxQ74$c{S&IarvTiAJu&t@J(Mlk|(Z9Kb
z5hIQnHw_mF!n7jlAIX#e-}z)#mt|kNs0rgev*meW8
zjtgA1C_$K3MEv74HBFw$qKg1$Q3i=(W$n~B1gsH?AWVVH)za0YRrbzxtzy;#z+%K9
z@fgI<0?~gPAHxW}%2~ESu@T_t8Rg75v40Xl$h+%C61JXf@UWd6P98MF{qgT0T`5Y`VH!a=ceuJySUf^jne9A~Kn`*;h-jr~1aW~5>6+4D
znzLWZyd4#5cck2)oa??5335bbvF_n#X0^tkeZSxTtoh#Dc2%uC$rC>jL2|7;Iz-*&
z5d>aF40f)wM+vCfn{tzwf&eidxapdEqYiN|}PSR@@OnoSh&EsozoV6mz*T
z-D-ZgiR2)sbf*9#5`>=Sop~uc9`Pix>{j#ozc_#z$l;Pp=nF|;@n#39@B;(zs|pf1#h`jMYRKK)ReAeWH+~
z4#b+5Ig(gu3J3f`&j`6xAiX#_7~ah&gNg<5^OLwo;=8#F!|-xGpO1y+-Cm18K**(1
zBL{R$3DAA)qe>7b)UUrU`;5SNv56HrrXr~Kyo9&lq*JjR!Gewc)VbfEQzwWciG)uI
zU0Ie(PtVCcJFCH}$D4SWXh447KPNy3uO$mX82+DG6SBJIdq6PO@ItGSgQI``hLmgs
z34~19OboT)I1Iz9#U}ZP;k*IX-2@9#s*{6iJ;EeGR)Q#y1iG{x_zWCzW#Zo@;z=)V
zt~xwo{nbrj&YM2P|JOU|@C!@aus(rqz<1SEk;0KZn`hkF!L74
z`zfGW5C7Q%-%nA3cp)VHTeBiOmP*b+E!Lf3Js$R9svwB4%awhV;;Cf$r<@xF@r9TL
zpBPnEmnwWe)p|@VuGJ9456op8l2XC3TfWPyW?2cetwk`p8-G6Ms5zxCQ|@_n1d+&c
z89{DU(GlW{3%HZZeh`XY%xVN~JE_EJ&NZ)+Ai*G6B`QXcu`my;a86Q;(^f+aNZt1U
zx#yBQRTBgR=M=(85X6BzuC~K4Tz0$N`+mQ_)OahTb0UxdXp)@;MbT8-i?EvQBiH)EWY
zXJWEFX}|{u#TkFPuKOMSH&`P7w?BXWj8>}ax@&AO48y13ckp}vKTZAO^j%f;0yS%e
zaS4qe^n)}UMOxJ}HN+YBfO6sv%*n+~6GX^rtV;PKgDIA_U6PA<-|n?5Og-3U3BobQ
zTVg^u)|yXqCM
zAc*kUX_S^V)~I@G5#pIhjvwdq`4u}qt0#zAjagL~NzwQHvBu5MIjOk;x$6(@T3u80
zSSFQf$K6Rct1&raO<4+|RIcxaOpb9cs+8hm-^(EgTo0sh5)LbJP3_)bgAz6>YYw(C
zfF*hY?BdC_5(Ij#N_B-ZeFoGax0{Z}v1S)5b#DCg(F#>4kb`=vfIJ~#?#Xli
z-`AQfP(a-Nn|B}fUYaSwLJ8x3zVJ8l!wUnDW!!r~jmDtW>3LEDdykNewHmRv#f
zLPRBq#O5Djk-0Y6f(1cO76mwNTjy%|&kE!&Q&|!_+|?J63v*PLK#)t{_g`a#=FZC|
z)4VlUjXB^myIsa^>WOJ*+!L?vPIN!vp%4$S{R2ZM=r_CtZo2%`dH8FxD
z&H!~Isb;GYAqw0>j7jk(B3ktE2Ww&k5txs|;effRyBVv2uqfi+1QeJCu`WVuVgwO@
zHTFHjR;|VoG{MJh)@oHoYx42&0gE5z$6}BeO0Fy+R2TsHHFstsCa3h@3#EsphmqQ!
z5hNACwLiZBtFknOMv%2Dxa9bNEYM%qbv|AZ*}IUGQMfN7h%lg=>&}tpOK@g>O{6h`
zY)+$<2kcAcC%!iVZ%(;%!hbC19Xf(D^YHJ-$A?c(2xkK9
znKlp*uqH;3Hm2I74*Y|^G6z_2DpkQBh}*)|ctT9Z;0
z+tr^aY;)R8Y6=1vYhnbUAZl$_iNJz2VSPSL0wl8_5-3_9VhFhJt$cF@m(VYe<3;QR
s#Ey(0M8K^1wh%CaY-_%4v_u5{11A3HgE^qTg#Z8m07*qoM6N<$f(nVTI{*Lx
diff --git a/pages/images/xx1.png b/pages/images/xx1.png
deleted file mode 100644
index 23322fe0ed06bc6b4db2b32e90f4d55018166e8d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 5499
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
x>gHDL1H_7yAVk2l__`2Kf~;%2wYNkB{tpyD
- {{salesStatus === 'active' ? '更新中' : '已更新'}}
+ 已更新
@@ -152,7 +152,7 @@
- {{feedStatus === 'active' ? '更新中' : '已更新'}}
+ 已更新
@@ -205,9 +205,6 @@
市场趋势
通知公告与行业分析
-
- {{unreadCount}}条未读
-
-pages/news/news.wxml
\ No newline at end of file
diff --git a/pages/news/news.wxss b/pages/news/news.wxss
deleted file mode 100644
index c142781..0000000
--- a/pages/news/news.wxss
+++ /dev/null
@@ -1 +0,0 @@
-/* pages/news/news.wxss */
\ No newline at end of file
diff --git a/pages/personal/personal.js b/pages/personal/personal.js
index bd3d95e..daf0cd5 100644
--- a/pages/personal/personal.js
+++ b/pages/personal/personal.js
@@ -1,16 +1,19 @@
+import http from '../../utils/api'
+const baseUrl = require('../../utils/baseUrl')
+
Page({
data: {
// 用户信息
avatarUrl: '',
userInfo: {
- nickName: '',
- userId: '',
- isVerified: false
- },
+ user: {}
+ },
+ baseUrl: baseUrl,
// 弹窗状态
showFeedbackModal: false,
showNicknameModal: false,
+ showLogoutModal: false,
showToast: false,
// 反馈相关
@@ -20,143 +23,226 @@ Page({
// 编辑相关
newNickname: '',
+
// 提示信息
- toastText: ''
+ toastText: '',
+
+ // 表单数据
+ formData: {
+ avatar: null,
+ nickName: null
+ },
+
+ // 上传状态
+ isUploadingAvatar: false,
+ isUpdatingNickname: false
},
onLoad() {
- this.loadUserInfo();
+ this.getUserInfo()
},
- // 跳转实名认证
- bindrz(){
- wx.navigateTo({
- url: '/pagesA/pages/attestation/attestation',
- })
+ onShow() {
+ this.getUserInfo()
},
- onShow() {
-
+ // 获取用户信息
+ getUserInfo() {
+ http.UserInfo({
+ data: {},
+ success: (res) => {
+ if (res.data && res.data.user) {
+ wx.setStorageSync('userInfo', res.data)
+ this.setData({
+ userInfo: res.data,
+ avatarUrl: res.data.user?.avatar ? baseUrl + res.data.user.avatar : ''
+ })
+ }
+ },
+ fail: (err) => {
+ console.error('获取用户信息失败:', err)
+ // 使用缓存的用户信息
+ const cachedUserInfo = wx.getStorageSync('userInfo')
+ if (cachedUserInfo) {
+ this.setData({
+ userInfo: cachedUserInfo,
+ avatarUrl: cachedUserInfo.user?.avatar ? baseUrl + cachedUserInfo.user.avatar : ''
+ })
+ }
+ }
+ })
},
- // 加载用户信息
- loadUserInfo() {
- // 从缓存获取用户信息
- const userInfo = wx.getStorageSync('userInfo');
- const avatarUrl = wx.getStorageSync('avatarUrl');
+ // 更新用户信息到服务器
+ updateUserInfo() {
+ const formData = this.data.formData
+ // 过滤掉空值
+ const dataToUpdate = {}
+ if (formData.avatar) dataToUpdate.avatar = formData.avatar
+ if (formData.nickName) dataToUpdate.nickName = formData.nickName
- if (userInfo) {
- this.setData({
- userInfo,
- avatarUrl
- });
- } else {
- // 首次使用,生成默认用户信息
- const defaultUserInfo = {
- nickName: '微信用户',
- isVerified: false
- };
-
- wx.setStorageSync('userInfo', defaultUserInfo);
- this.setData({ userInfo: defaultUserInfo });
- }
+ if (Object.keys(dataToUpdate).length === 0) return
+
+ http.revise({
+ data: dataToUpdate,
+ success: (res) => {
+ console.log('更新成功:', res)
+ // 清空表单数据
+ this.setData({
+ 'formData.avatar': null,
+ 'formData.nickName': null
+ })
+ // 立即刷新用户信息
+ this.getUserInfo()
+ },
+ fail: (err) => {
+ console.error('更新失败:', err)
+ this.showToast('更新失败,请重试')
+ }
+ })
},
-
// 选择头像
onChooseAvatar(e) {
- const { avatarUrl } = e.detail;
+ if (this.data.isUploadingAvatar) {
+ this.showToast('正在上传中...')
+ return
+ }
+
+ const { avatarUrl } = e.detail
+ if (!avatarUrl) {
+ this.showToast('选择头像失败')
+ return
+ }
+
+ this.setData({ isUploadingAvatar: true })
- // 显示加载
wx.showLoading({
- title: '更新中...',
+ title: '上传中...',
mask: true
- });
+ })
- // 模拟上传过程
- setTimeout(() => {
- this.setData({ avatarUrl });
-
- // 保存到缓存
- wx.setStorageSync('avatarUrl', avatarUrl);
-
- wx.hideLoading();
- this.showToast('头像更新成功');
- }, 800);
+ // 上传头像到服务器
+ wx.uploadFile({
+ url: baseUrl + '/common/upload',
+ header: {
+ 'Authorization': 'Bearer ' + wx.getStorageSync('token')
+ },
+ filePath: avatarUrl,
+ name: 'file',
+ success: (uploadRes) => {
+ wx.hideLoading()
+
+ try {
+ const result = JSON.parse(uploadRes.data)
+ if (result && result.fileName) {
+ // 立即更新本地显示
+ this.setData({
+ avatarUrl: avatarUrl,
+ 'formData.avatar': result.fileName,
+ 'userInfo.user.avatar': result.fileName
+ })
+
+ // 更新到服务器
+ this.updateUserInfo()
+
+ this.showToast('头像更新成功')
+ } else {
+ throw new Error('上传失败')
+ }
+ } catch (error) {
+ console.error('解析上传结果失败:', error)
+ this.showToast('上传失败,请重试')
+ }
+ },
+ fail: (err) => {
+ wx.hideLoading()
+ console.error('上传失败:', err)
+ this.showToast('上传失败,请检查网络')
+ },
+ complete: () => {
+ this.setData({ isUploadingAvatar: false })
+ }
+ })
},
-
-
// 编辑昵称
editNickname() {
this.setData({
showNicknameModal: true,
- newNickname: this.data.userInfo.nickName
- });
+ newNickname: this.data.userInfo.user?.nickName || ''
+ })
},
hideNicknameModal() {
- this.setData({ showNicknameModal: false });
+ this.setData({ showNicknameModal: false })
},
onNicknameInput(e) {
- this.setData({ newNickname: e.detail.value });
+ this.setData({ newNickname: e.detail.value })
},
saveNickname() {
- const newNickname = this.data.newNickname.trim();
+ const newNickname = this.data.newNickname.trim()
if (!newNickname) {
- this.showToast('昵称不能为空');
- return;
+ this.showToast('昵称不能为空')
+ return
}
- if (newNickname.length > 20) {
- this.showToast('昵称不能超过20个字符');
- return;
+ if (newNickname.length > 10) {
+ this.showToast('昵称不能超过10个字符')
+ return
}
- // 更新用户信息
- const updatedUserInfo = {
- ...this.data.userInfo,
- nickName: newNickname
- };
+ // 如果昵称没有变化,直接关闭弹窗
+ if (newNickname === this.data.userInfo.user?.nickName) {
+ this.hideNicknameModal()
+ return
+ }
+ this.setData({ isUpdatingNickname: true })
+
+ // 立即更新本地显示
this.setData({
- userInfo: updatedUserInfo,
- showNicknameModal: false
- });
+ 'userInfo.user.nickName': newNickname,
+ 'formData.nickName': newNickname
+ })
- // 保存到缓存
- wx.setStorageSync('userInfo', updatedUserInfo);
+ // 更新到服务器
+ this.updateUserInfo()
- this.showToast('昵称修改成功');
+ this.setData({
+ showNicknameModal: false,
+ isUpdatingNickname: false
+ })
+
+ this.showToast('昵称修改成功')
},
// 查看问诊消息
goToConsultation() {
wx.navigateTo({
url: ''
- });
+ })
},
// 查看问答消息
goToQA() {
wx.navigateTo({
url: ''
- });
+ })
},
// 实名认证
goToAuth() {
- if (this.data.userInfo.isVerified) {
- this.showToast('您已完成实名认证');
- return;
+ if (this.data.userInfo.authStatus) {
+ this.showToast('您已完成实名认证')
+ } else {
+ wx.navigateTo({
+ url: '/pagesA/pages/attestation/attestation'
+ })
}
-
- wx.navigateTo({
- url: '/pages/auth/realname'
- });
},
// 显示反馈弹窗
@@ -166,77 +252,79 @@ Page({
feedbackContent: '',
canSubmit: false,
isSubmitting: false
- });
+ })
},
hideFeedback() {
- this.setData({ showFeedbackModal: false });
+ this.setData({ showFeedbackModal: false })
},
// 反馈内容输入
onFeedbackInput(e) {
- const content = e.detail.value;
- const canSubmit = content.trim().length > 0;
+ const content = e.detail.value
+ const canSubmit = content.trim().length > 0
this.setData({
feedbackContent: content,
canSubmit
- });
+ })
},
// 提交反馈
submitFeedback() {
- if (!this.data.canSubmit || this.data.isSubmitting) return;
+ if (!this.data.canSubmit || this.data.isSubmitting) return
- const content = this.data.feedbackContent.trim();
+ const content = this.data.feedbackContent.trim()
if (content.length < 5) {
- this.showToast('请填写详细的反馈内容');
- return;
+ this.showToast('请填写详细的反馈内容')
+ return
}
- this.setData({ isSubmitting: true });
+ this.setData({ isSubmitting: true })
- // 模拟提交到服务器
+ // 提交
setTimeout(() => {
- console.log('提交反馈:', content);
+ console.log('提交反馈:', content)
+ http.feedback({
+ data:{
+ content:content
+ },
+ success:res=>{
+ console.log(111111,res);
+ if(res.code==200){
+ this.showToast('感谢您的反馈!')
+ }else{
+ this.showToast('反馈失败!')
+ }
+ this.setData({
+ isSubmitting: false,
+ showFeedbackModal: false
+ })
+ }
+ })
- this.setData({
- isSubmitting: false,
- showFeedbackModal: false
- });
-
- this.showToast('感谢您的反馈!');
-
- // 这里应该是实际的API调用
- // wx.request({
- // url: 'https://your-api.com/feedback',
- // method: 'POST',
- // data: { content },
- // success: (res) => {
- // this.showToast('提交成功');
- // },
- // complete: () => {
- // this.setData({
- // isSubmitting: false,
- // showFeedbackModal: false
- // });
- // }
- // });
- }, 1500);
+
+ }, 1500)
},
- // 关于我们
- goToAbout() {
- wx.navigateTo({
- url: '/pages/about/index'
- });
+ // 退出登录相关
+ showLogoutConfirm() {
+ this.setData({ showLogoutModal: true })
},
- // 设置
- goToSettings() {
- wx.navigateTo({
- url: '/pages/settings/index'
- });
+ hideLogoutModal() {
+ this.setData({ showLogoutModal: false })
+ },
+
+ doLogout() {
+ // 清除本地存储
+ wx.clearStorageSync()
+
+ // 跳转到登录页
+ wx.reLaunch({
+ url: '/pages/login/login'
+ })
+ this.showToast('已退出登录')
},
// 显示提示
@@ -244,22 +332,21 @@ Page({
this.setData({
toastText: text,
showToast: true
- });
+ })
setTimeout(() => {
- this.setData({ showToast: false });
- }, 2000);
+ this.setData({ showToast: false })
+ }, 2000)
},
// 下拉刷新
onPullDownRefresh() {
- this.loadUserInfo();
- this.checkUnreadMessages();
+ this.getUserInfo()
setTimeout(() => {
- wx.stopPullDownRefresh();
- this.showToast('刷新成功');
- }, 1000);
+ wx.stopPullDownRefresh()
+ this.showToast('刷新成功')
+ }, 1000)
},
// 分享
@@ -267,6 +354,6 @@ Page({
return {
title: '健康守护 - 您的个人健康中心',
path: '/pages/personal-center/index'
- };
+ }
}
-});
\ No newline at end of file
+})
\ No newline at end of file
diff --git a/pages/personal/personal.wxml b/pages/personal/personal.wxml
index 3c7a4d1..a72916b 100644
--- a/pages/personal/personal.wxml
+++ b/pages/personal/personal.wxml
@@ -4,19 +4,20 @@
- {{userInfo.nickName || '微信用户'}}
+ {{userInfo.user.nickName || '微信用户'}}
- {{userInfo.isVerified ? '已认证' : '未认证'}}
+ {{userInfo.authStatus ? '已认证' : '未认证'}}
@@ -57,8 +58,8 @@
实名认证
-
- {{userInfo.isVerified ? '已认证' : '去认证'}}
+
+ {{userInfo.authStatus ? '已认证' : '去认证'}}
@@ -69,27 +70,18 @@
反馈建议
-
-
-
+
+
+
-
- 关于我们
+
+ 退出登录
-
-
-
-
- 设置
-
-
-
-
@@ -97,7 +89,7 @@
@@ -135,6 +127,21 @@
+
+
+
+
+
+ 确认退出登录?
+ 退出后需要重新登录才能使用完整功能
+
+
+
+
+
{{toastText}}
diff --git a/pages/personal/personal.wxss b/pages/personal/personal.wxss
index c8f84b1..45087a5 100644
--- a/pages/personal/personal.wxss
+++ b/pages/personal/personal.wxss
@@ -1,9 +1,9 @@
-.personal-center{
+.personal-center {
min-height: 100vh;
background: linear-gradient(180deg, #86D8D0 0%, #a9dfda 30%, #cfe9e7 60%, #ECF8F7 90%);
+ padding-bottom: 40rpx;
}
-
/* 淡入动画 */
.fade-in {
animation: fadeIn 0.6s ease forwards;
@@ -23,12 +23,6 @@
transform: translateY(20rpx);
}
-.fade-in-delay-3 {
- animation: fadeIn 0.6s 0.6s ease forwards;
- opacity: 0;
- transform: translateY(20rpx);
-}
-
@keyframes fadeIn {
to {
opacity: 1;
@@ -58,14 +52,15 @@
.avatar-btn {
position: relative;
- width: 120rpx;
- height: 120rpx;
+ width: 140rpx;
+ height: 140rpx;
margin-right: 30rpx;
flex-shrink: 0;
padding: 0;
background: transparent;
border: none;
border-radius: 50%;
+ overflow: visible;
}
.avatar-btn::after {
@@ -78,8 +73,32 @@
border-radius: 50%;
border: 4rpx solid white;
box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.1);
+ transition: all 0.3s ease;
+}
+
+.avatar-btn:active .avatar {
+ transform: scale(0.95);
+}
+
+.avatar-edit-tip {
+ position: absolute;
+ bottom: -10rpx;
+ left: 50%;
+ transform: translateX(-50%);
+ background: rgba(0, 0, 0, 0.7);
+ color: white;
+ font-size: 20rpx;
+ padding: 4rpx 12rpx;
+ border-radius: 20rpx;
+ white-space: nowrap;
+ opacity: 0;
+ transition: all 0.3s ease;
}
+.avatar-btn:hover .avatar-edit-tip {
+ opacity: 1;
+ bottom: -20rpx;
+}
.user-info {
flex: 1;
@@ -89,6 +108,13 @@
display: flex;
align-items: center;
margin-bottom: 16rpx;
+ padding: 8rpx 0;
+ border-radius: 8rpx;
+ transition: all 0.3s ease;
+}
+
+.nickname-section:active {
+ background: rgba(0, 0, 0, 0.05);
}
.nickname {
@@ -102,12 +128,16 @@
white-space: nowrap;
}
-
-
.nickname-section image {
width: 26rpx;
height: 26rpx;
opacity: 0.6;
+ transition: all 0.3s ease;
+}
+
+.nickname-section:active image {
+ opacity: 0.8;
+ transform: scale(1.1);
}
.user-meta {
@@ -117,14 +147,12 @@
gap: 16rpx;
}
-
-
.auth-tag {
display: flex;
align-items: center;
- padding: 6rpx 12rpx;
+ padding: 6rpx 16rpx;
background: #fef3c7;
- border-radius: 16rpx;
+ border-radius: 20rpx;
transition: all 0.3s ease;
}
@@ -134,23 +162,21 @@
.auth-tag:active {
transform: scale(0.95);
-}
-
-.auth-tag image {
- width: 20rpx;
- height: 20rpx;
- margin-right: 6rpx;
+ opacity: 0.8;
}
.auth-tag text {
- font-size: 22rpx;
+ font-size: 24rpx;
color: #92400e;
+ font-weight: 500;
}
.auth-tag.verified text {
color: #065f46;
}
+
+
/* 卡片样式 */
.section-card {
background: white;
@@ -188,8 +214,6 @@
border-radius: 3rpx;
}
-
-
/* 消息行 */
.message-row {
display: flex;
@@ -207,6 +231,7 @@
.message-item:active {
transform: scale(0.95);
+ opacity: 0.8;
}
.message-icon-wrapper {
@@ -220,6 +245,11 @@
background: #f8fafc;
border-radius: 50%;
border: 1rpx solid #e2e8f0;
+ transition: all 0.3s ease;
+}
+
+.message-item:active .message-icon-wrapper {
+ background: #e2e8f0;
}
.message-icon {
@@ -227,7 +257,6 @@
height: 60rpx;
}
-
.message-label {
font-size: 26rpx;
color: #475569;
@@ -270,10 +299,9 @@
}
.item-icon {
- width: 32rpx;
- height: 32rpx;
+ width: 40rpx;
+ height: 40rpx;
margin-right: 20rpx;
- opacity: 0.8;
}
.item-title {
@@ -282,6 +310,9 @@
font-weight: 500;
}
+.logout-title {
+ color: #ef4444;
+}
.item-status {
font-size: 26rpx;
@@ -293,14 +324,6 @@
color: #10b981;
}
-
-.function-item:active .arrow {
- opacity: 0.8;
- transform: translateX(4rpx);
-}
-
-
-
/* 反馈弹窗 */
.feedback-modal {
position: fixed;
@@ -363,9 +386,12 @@
}
.modal-close {
+ width: 40rpx;
+ height: 40rpx;
display: flex;
align-items: center;
justify-content: center;
+ border-radius: 50%;
transition: all 0.3s ease;
}
@@ -377,7 +403,7 @@
.modal-close image {
width: 36rpx;
height: 36rpx;
- opacity: 0.5;
+ filter: brightness(0%);
}
/* 反馈输入框 */
@@ -434,7 +460,7 @@
.submit-btn {
width: 100%;
- height: 88rpx;
+ padding: 5rpx 0;
background: #e2e8f0;
border-radius: 44rpx;
font-size: 32rpx;
@@ -538,7 +564,7 @@
.cancel-btn,
.confirm-btn {
flex: 1;
- height: 80rpx;
+ padding: 5rpx 0;
border-radius: 40rpx;
font-size: 28rpx;
font-weight: 500;
@@ -551,6 +577,10 @@
color: #64748b;
}
+.cancel-btn::after{
+ border: none;
+}
+
.cancel-btn:active {
background: #e2e8f0;
}
@@ -566,23 +596,121 @@
opacity: 0.9;
}
+/* 退出登录确认弹窗 */
+.logout-modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1000;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ opacity: 0;
+ visibility: hidden;
+ transition: all 0.3s ease;
+}
+
+.logout-modal.show {
+ opacity: 1;
+ visibility: visible;
+}
+
+.logout-modal .modal-content {
+ width: 600rpx;
+ background: white;
+ border-radius: 24rpx;
+ overflow: hidden;
+ box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.2);
+ transform: scale(0.8);
+ transition: all 0.3s ease;
+}
+
+.logout-modal.show .modal-content {
+ transform: scale(1);
+}
+
+.logout-modal-body {
+ padding: 60rpx 40rpx 40rpx;
+ text-align: center;
+}
+
+
+.logout-title {
+ font-weight: 700;
+ color: #1e293b;
+ display: block;
+}
+
+.logout-desc {
+ font-size: 28rpx;
+ color: #64748b;
+ line-height: 1.5;
+}
+
+.logout-modal-footer {
+ padding: 0 40rpx 40rpx;
+ display: flex;
+ gap: 20rpx;
+}
+
+.logout-cancel-btn,
+.logout-confirm-btn {
+ flex: 1;
+ border-radius: 44rpx;
+ font-size: 30rpx;
+ font-weight: 600;
+ transition: all 0.3s ease;
+ border: none;
+}
+
+.logout-cancel-btn::after{
+ border: none;
+}
+
+.logout-cancel-btn {
+ background: #f1f5f9;
+ color: #64748b;
+}
+
+.logout-cancel-btn:active {
+ background: #e2e8f0;
+ transform: scale(0.98);
+}
+
+.logout-confirm-btn {
+ background: linear-gradient(135deg, #ef4444, #dc2626);
+ color: white;
+ box-shadow: 0 8rpx 24rpx rgba(239, 68, 68, 0.3);
+}
+
+.logout-confirm-btn:active {
+ transform: scale(0.98);
+ opacity: 0.9;
+}
+
/* 提示信息 */
.toast {
position: fixed;
top: 150rpx;
left: 50%;
transform: translateX(-50%) translateY(-100rpx);
- background: rgba(30, 41, 59, 0.9);
+ background: rgba(30, 41, 59, 0.95);
backdrop-filter: blur(20rpx);
color: white;
- padding: 20rpx 40rpx;
- border-radius: 12rpx;
+ padding: 24rpx 48rpx;
+ border-radius: 16rpx;
font-size: 28rpx;
+ font-weight: 500;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
z-index: 1001;
box-shadow: 0 10rpx 40rpx rgba(0, 0, 0, 0.2);
+ max-width: 80%;
+ text-align: center;
+ white-space: nowrap;
}
.toast.show {
diff --git a/pagesA/pages/attestation/attestation.js b/pagesA/pages/attestation/attestation.js
index 9730423..8610fcb 100644
--- a/pagesA/pages/attestation/attestation.js
+++ b/pagesA/pages/attestation/attestation.js
@@ -1,5 +1,6 @@
+// pages/auth/real-name-auth.js
import http from '../../../utils/api'
-const baseUrl = require('../../../utils/baseUrl')
+
Page({
data: {
// 表单数据
@@ -14,7 +15,7 @@ Page({
nameError: '',
idNumberError: '',
- // 提示显示控制 - 修复:初始为false
+ // 提示显示控制
showNameHint: false,
showIdNumberHint: false,
@@ -41,7 +42,12 @@ Page({
// 成功弹窗数据
showSuccessModal: false,
- maskedIdNumber: ''
+ maskedIdNumber: '',
+
+ // 错误弹窗数据
+ showErrorModal: false,
+ errorTitle: '',
+ errorMessage: ''
},
onLoad() {
@@ -51,7 +57,7 @@ Page({
}, 600);
},
- // 姓名输入处理 - 修复:简化逻辑
+ // 姓名输入处理
onNameInput(e) {
const value = e.detail.value.trim();
let error = '';
@@ -109,7 +115,7 @@ Page({
});
},
- // 身份证号输入处理 - 修复:简化逻辑
+ // 身份证号输入处理
onIdNumberInput(e) {
const value = e.detail.value.trim().toUpperCase();
let error = '';
@@ -270,6 +276,23 @@ Page({
this.setData({ showModal: false });
},
+ // 显示错误弹窗
+ showErrorModal(title, message) {
+ this.setData({
+ errorTitle: title || '认证失败',
+ errorMessage: message || '请检查信息后重试',
+ showErrorModal: true
+ });
+ },
+
+ // 关闭错误弹窗
+ closeErrorModal() {
+ this.setData({
+ showErrorModal: false,
+ isSubmitting: false // 关闭错误弹窗时重置提交状态
+ });
+ },
+
// 阻止事件冒泡
stopPropagation(e) {
// 阻止冒泡
@@ -331,41 +354,99 @@ Page({
});
try {
- // 模拟API请求
- await new Promise(resolve => setTimeout(resolve, 1500));
+ // 调用实名认证接口
+ const result = await this.callRealNameApi(name, idNumber);
wx.hideLoading();
- // 处理身份证号脱敏显示
- const maskedId = idNumber.substring(0, 4) + '**********' + idNumber.substring(14);
-
- // 显示成功弹窗
- this.showSuccessModal(maskedId);
-
- // 保存认证信息
- wx.setStorageSync('realNameAuth', {
- name: name,
- idNumber: idNumber,
- certified: true,
- certifiedTime: new Date().getTime()
- });
+ if (result.success) {
+ // 处理身份证号脱敏显示
+ const maskedId = idNumber.substring(0, 4) + '**********' + idNumber.substring(14);
+
+ // 显示成功弹窗
+ this.showSuccessModal(maskedId);
+
+ this.setData({
+ isSubmitting: false,
+ currentStep: 3,
+ lineProgress2: 100
+ });
+ } else {
+ // 接口返回失败
+ this.handleApiError(result);
+ }
+ } catch (error) {
+ wx.hideLoading();
this.setData({
isSubmitting: false,
- currentStep: 3,
- lineProgress2: 100
+ currentStep: 1,
+ lineProgress2: 0
});
- } catch (error) {
- wx.hideLoading();
- this.setData({ isSubmitting: false });
-
- wx.showToast({
- title: '认证失败,请重试',
- icon: 'error',
- duration: 2000
+ this.showErrorModal('网络错误', '认证请求失败,请检查网络连接后重试');
+ console.error('实名认证错误:', error);
+ }
+ },
+
+ // 调用实名认证API
+ async callRealNameApi(realName, idCard) {
+ return new Promise((resolve, reject) => {
+ http.realName({
+ data: {
+ realName: realName, // 姓名字段
+ idCard: idCard // 身份证号字段
+ },
+ success: (res) => {
+ console.log('API响应:', res);
+
+ // 根据实际API响应结构调整
+ if (res.code === 200 || res.code === 0) {
+ resolve({
+ success: true,
+ data: res.data || {}
+ });
+ } else {
+ resolve({
+ success: false,
+ code: res.code,
+ message: res.msg || '认证失败'
+ });
+ }
+ },
+ fail: (err) => {
+ reject(err);
+ }
});
+ });
+ },
+
+ // 处理API错误
+ handleApiError(result) {
+ console.log('API错误:', result);
+
+ this.setData({
+ isSubmitting: false,
+ currentStep: 1,
+ lineProgress2: 0
+ });
+
+ // 根据错误码显示不同提示
+ let title = '认证失败';
+ let message = result.message || '请检查信息后重试';
+
+ // 根据不同的错误码定制提示信息
+ if (result.code === 500) {
+ message = result.message || '服务器内部错误,请稍后重试';
+ } else if (result.code === 400) {
+ message = result.message || '请求参数错误,请检查填写的信息';
+ } else if (result.code === 401) {
+ message = result.message || '身份验证失败,请重新登录';
+ } else if (result.code === 403) {
+ message = result.message || '认证信息不正确,请核对姓名和身份证号';
}
+
+ this.showErrorModal(title, message);
},
// 显示成功弹窗
@@ -381,7 +462,7 @@ Page({
this.setData({ showSuccessModal: false });
},
- // 前往首页
+ // 返回
goToHome() {
this.closeSuccessModal();
wx.switchTab({
diff --git a/pagesA/pages/attestation/attestation.wxml b/pagesA/pages/attestation/attestation.wxml
index 574a145..a69aba6 100644
--- a/pagesA/pages/attestation/attestation.wxml
+++ b/pagesA/pages/attestation/attestation.wxml
@@ -258,4 +258,28 @@
+
+
+
+
+
+
+
+
+ {{errorMessage}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pagesA/pages/attestation/attestation.wxss b/pagesA/pages/attestation/attestation.wxss
index e6c7a46..b8a23e7 100644
--- a/pagesA/pages/attestation/attestation.wxss
+++ b/pagesA/pages/attestation/attestation.wxss
@@ -826,7 +826,7 @@ page {
.close-icon {
width: 26rpx;
height: 26rpx;
- opacity: 0.6;
+ filter: brightness(0);
}
.modal-content {
@@ -1282,4 +1282,113 @@ page {
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
+}
+
+
+/* 错误弹窗样式 */
+.error-modal .modal-container {
+ background: #fff;
+ border-radius: 20rpx;
+ overflow: hidden;
+ animation: modalSlideUp 0.3s ease;
+}
+
+.error-modal .modal-header {
+ padding: 40rpx 40rpx 20rpx;
+ text-align: center;
+ border-bottom: 2rpx solid #f0f0f0;
+}
+
+.error-modal .error-title {
+ color: #ff4444;
+ font-size: 36rpx;
+ font-weight: 600;
+ text-align: center;
+ width: 100%;
+}
+
+.error-modal .modal-content {
+ padding: 40rpx;
+ text-align: center;
+}
+
+
+
+.error-modal .error-message {
+ color: #666;
+ font-size: 28rpx;
+ line-height: 1.6;
+ text-align: center;
+ padding: 0 20rpx;
+}
+
+.error-modal .modal-footer {
+ padding: 30rpx 40rpx 40rpx;
+}
+
+.error-modal .error-confirm {
+ background: linear-gradient(135deg, #ff4444, #ff6666);
+ color: white;
+ border: none;
+ border-radius: 50rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 30rpx;
+ font-weight: 500;
+ width: 100%;
+ transition: all 0.3s ease;
+}
+
+.error-modal .error-confirm:active {
+ opacity: 0.9;
+ transform: scale(0.98);
+}
+
+/* 弹窗动画 */
+@keyframes modalSlideUp {
+ from {
+ opacity: 0;
+ transform: translateY(100rpx);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+/* 修复原有的模态框样式 */
+.modal-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.5);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ opacity: 0;
+ visibility: hidden;
+ transition: all 0.3s ease;
+ z-index: 9999;
+ padding: 40rpx;
+}
+
+.modal-overlay.show {
+ opacity: 1;
+ visibility: visible;
+}
+
+.modal-container {
+ width: 600rpx;
+ max-width: 90vw;
+ background: #fff;
+ border-radius: 20rpx;
+ overflow: hidden;
+ transform: translateY(20rpx);
+ transition: transform 0.3s ease;
+}
+
+.modal-overlay.show .modal-container {
+ transform: translateY(0);
}
\ No newline at end of file
diff --git a/utils/api.js b/utils/api.js
index 77cb2e5..7a36637 100644
--- a/utils/api.js
+++ b/utils/api.js
@@ -197,6 +197,22 @@ function experiencezd(params) {
http('/vet/article/options', 'get', params)
}
+// 实名认证
+function realName(params) {
+ http('/muhu/user/auth/submit', 'post', params)
+}
+
+// 上传修改头像
+function revise(params) {
+ http('/muhu/user', 'put', params)
+}
+
+// 个人中心反馈建议
+function feedback(params) {
+ http('/muhu/feedback', 'post', params)
+}
+
+
@@ -205,5 +221,5 @@ export default { // 暴露接口
search,trend,feed,sales,wzd,wzdxq,wzdAdd,expertsList,recommendationList,policyeZd,
recommendationXq,queryList,tipList,article,articleDetails,articleZd,policyelucidation,
areaChildren,userCode,UserInfo,videoList,videoZd,videoDetails,forumList,forumAdd,forumDetails,
- forumReply,commentReply,experience,experiencezd,experienceDetails
+ forumReply,commentReply,experience,experiencezd,experienceDetails,realName,revise,feedback
}
diff --git a/utils/baseUrl.js b/utils/baseUrl.js
index 79483b5..3de0bb9 100644
--- a/utils/baseUrl.js
+++ b/utils/baseUrl.js
@@ -1,5 +1,5 @@
-var baseUrl = 'https://wx.chenhaitech.com/ymtx-prod-api'
-// var baseUrl = 'http://192.168.101.109:8080'
+// var baseUrl = 'https://wx.chenhaitech.com/ymtx-prod-api'
+var baseUrl = 'http://192.168.101.109:8080'
// var baseUrl = 'http://192.168.101.105:8082'
// var baseUrl = 'http://192.168.101.111:8081'
module.exports = baseUrl