DHR14D0P1z!Fb?ql6jTR^ap6WJR;^SQ4LK-^h
zqetI+M68mFXx$}S6$qWf%==6R00fSJtd2STG6S#&jmB++H);R8F15azw@K`h0*Wl0
zlbiwq6~NrL2O9)6QO^tcaL+h5o--lpd+|rlMQTh8DPF{|7i+TB;CM=aoL*E$W{`c&
z^zQ4Vq{lu!V-o^c4X>$L+rOg|Ch3hhE9g(gt{q1DT`cQY{vdp+37R}*
zw>Xv0aiMe|gQ-d<4ah^ml7Nx%c&rIQsL&)!(kqnViT&NP%2&HC3vx_D*RIe9wrdudWh3m8M3CkwzI!J~rpBPTi}c`*
zR22?|NCtpDnIp=V}7!
zZ^##1V2bB>a_S_~s8X|!E>!^JexK|EX%p}G$84rW)fspQJ
z%S%>{rA?kn3r37uiWBb+NJxJ@N=<3RM9(t;Wyk~Jb~zOqK4b)4*wH;`-0Ux%DISQL
zFJ)16_`0c+Ch9JM(6ErsJrV$6u%wdvdJLA3dlAKJm8;>V4-7u#EfDWQwZDuk?|>ps
z^aMeGKyt?T-OriFS-5$l#6BK7m>*DsRQFFCRdhOM#iXXnF`I)(pa}uD&UcJvq34hUB`#BOrs=zwt_!M^xF+sle@;O5
z)?TDNO!7O3`)USfmles@n>U7B@Ool2hmPk0RS+?Y!;ow~INlDRM@FK`$b7Nx&?pZ%
z|L~aIR=h8V1%j!1qlZ7kB!R$2cQU_`Jp7n~yVd*ldOBcV)lfMxEY?8bI~WSSML2G@
zG4xcb!=4R-W7?Q7(7=zZ&FA()4>@dA^V!obDPbiY<23>eBdfKdkwP6;)@7neOeN
zY7xlgNGe4t=+wgIxwtNDu+OQvj}4guJqcQnk4bUyynxJupZuKZ`L_A1SY|BsS$xpn
z=Xb)b?~rT6@lJxN->~1W7nzH=5I2;#YOJeMdPY65;}g*CAC7ekM#4isB!XPX%c3T-
z35J}Ty9nC)K~4)}>NVe!nxML=teIc;`FY`}0w^wu4WM(~&4UPBMLTA!#hkZ@{{L$}A5G8?V+-`)VzPJFc~twn0wyC2I0r#HC}
zUh|13x(Z|GV}Gb$bOUARkHmMIBzs-{P;X=`bx!vwwZy|j@gtnUVL)xtJQxb
zq(;Yu;otc^DRKVPgp(uUUV`L{{%A4F>yd)=a_;;x>(1gK)nH>1p>+|1*`k(Dl^-rr
z1U{z}CSXY}br)54ct8TwkUg4f*}c`bMH728fg-m&@X2ptmG4Z%D8rZwO!(O|DIc^*
zxrPlkpz$5L$&`XuJ`_um-_QSog>05cNmP+%e38Vb=FD>mvv&4u2w|~)(FNuoa(=xq
zVbK4^u@KF_|Laqv6$J%{jlwtAq>hBL4<;sf0@%8z)VY7ZJ1p&6p1D36wv85&bU9QL
z!0^bPJ*+HCQkc@pve$oC)n^nwXmA|_WW>b|eCg0grbNH%iRO^{%}8K#$SE-reSg1e
zUK{0w6V#{%6j5k2EwQ<4S{4!#n#~zD)8mhur5fF&K?$w;qgn1QRsQvKKn&NLMcD7l
zA}J|pT|W`xaC>i9cKMTHL+`_E#h7+=Rgm-=7Cwp+{1UBrnL{4@f&Y+W;A4$Dq>d+s
z$%o@lF+RcjYxjj7AnH@u0pieqGDB$|P5OR?i>Ef+`mU1t0|4g-xEu@my}f}K>QQ4Dl=WCzE`vVzi7dQ8tGdEJfsS_H?iy#&
zS~w}PRuCc3)$Ah(Svok65fsd=oR+k!NKwg+M!_$E^H|W}1Sl&K?69-*_0JK|=~jBj
zjEqdb_d@0?799>x)y+$ycYu1^)|&b`pb;EZ3sV^Y)W#N%%S7l;1oIY
zQd;G!n@n^V{U=U~xgjdozll&p*yph`?k7@zrJPt84M5MhO8LywBEn%giy6I^#)%1y
z!_-hF+Y%OK(n&j!YWhBl%F`hQ$ojI>Gi>X@q@qnnB1Lp>jtHjs>zsI7x=n(3C$ft<
z40Cmfq{}}ad3>vNmkzyXs?K?2|B_w(^mQgWWKJn}wB3hMHX%ckz^ERX&R
zR`p^^-GWk6JkjS{b~*hc>CE=yJUB)Q%$Yf}-(nFH<#So|0<
zGv3RV)(50mF(U5i@eR`0?4mfIp>F!HhTt!)dp;Gw<=glS^s~1Xji`K>YZmAkBvWH~
zuX;-s5{FG8>TADjjx5+3J*CY8nh9IW0#yK?QLKo1sUoJZr}XNKP|KRsv%2MEMs%0F
zJ!kaN4>qiKyx5e1i&{eBq!x11mQj!|5A^X$vnWxP1l)<~7ARuay%OBttb%--QQo6X
zHOO>+2}~Yq)MP!u{~aCB^mS!ge@vW9o)&r2C|`tr4=WJMD}6sde?C2-h!NNAL*NY<
z9gk(r0Yrl)*Z6EMIgd0R2U*8N$pOq@)vuvve+s<53O_m^0KsZ#
zA*=3bY`D0V_GN!x|1o{!zL1#m5GA1b)~g{(E&cshEfnSH`&ds%|7nDkwgJt;PdjIA
zpS0uDL?g(bjNJ&w0~B&^6ovk{O@6vGYt8GkZi>-Qah1j;mvIK26j(oaH))pQ*f$PT
zncQj_`cL!DU+Ui&OS>e0jy#}rQ#!oc;qM~UzCUQH>{=48X&HT*^x6hA83RRL7X6rZ
z7SyL1#fAtKGRHRYee$VRr+UBnnMPnByX6>SC2DOAKy}+k-_j--&n|*gl1D{oR;SEHxb?_Bb6eD
z|GD*0Sf^2{ZXC}a255meW|*~1nsYFr3^F#p_oDET_tfrb7N$|z
zOW}^cPo(5~v8x>9R+o?HP%&+j-vsAX0;*EBOP+X5MIi-lRT|x)<9rysOP|h_;5V_o
zreGt&fy1qB){PM(iv5&g&v&-EyN4zQVsb^)=*E_!3$@jgT1B6JhvfM_#Uv~3H$ot9
zeo=0h$YSjVI0pJ4T?!)~kQpPb%ULaxHZiM|w10CuBGGu&XJf?eA~{%ZhqCFb9c&UF
z5XN_7G&=EAvFoI#Ghk$#f(5-tISij-ojVgUbg_`Fm{{0eQ0AlS?UQKdEa;Lq5$53v
zkR9zLGwhJjViEs3Y($zo`pP2QX_zx(vwaekT&Kg*f~5=POw;1dllfcEGWX}#B$v1{
z^m}&ZCOQ|veWAM%0CSk?28R(kM8>#Lc+2_hCTlIXQ5?%4{B
zJa3H%TjUtE#=Z0AX;f4eo(2jMLamM8sHaNrPgUYYe;a^3_V0+vnx>fMKy1@DP(X$}
zZ@BM(@DE*vjRIvR+J*8fd6iHbd>a*Enl}?wbvD`Qj(p^Qko3fyRK9;l4MYaDho6Pj
zjq~$QyY(5-7XR&lpY&@-J6%ny;zM#5UURwY%%{ba7y}ohh7g#btxx#HQ6#S0Eiq_3
znGKfnMRfzS-tQnF~a0I1jnMqw$z{{mCE{@tlrD+Ux)(EqyDw#uzOMp}6b#*N{ug}gzFmCSU)8W*VkjlT
zX{jAGB1H3sn*|{t3ISHbil?ZsKUHrae;TL$bX2eN)MXpDybZ~`pCbYlh0wqde!Y;Q
z)A+e_8UI_e`6~o4G^KAG%~k73p~6P9bbEO$ojwR@xIOSuNVXVtg7$*zqQfP~emjO)
zt1WKMD!pVXS48w$N)(!k*`u>2JgdFE>%Y=o*`Ni|5O7;g
zbN-YiJ$E1<0$rB8j85Yv8)XpxY~t;J@N`4db+H0tostX&T)!x_0ZJ(+n1Qc(H$R&9
zVWO5O7^2~$2C%tcL3Oa+IwY2(jy#w#-^FIAe~o`Fw=jA|J&yebBA8>^81Aqu^2H+fAJ
zHN5sApuw;dboqX5b^P6E!+_xX$fK_*UU$3EE!?TAcDy+wBp+bC6TnuP8w}7Bi^
zw{MRZ4N8T}RWGfS-F~qE#N_~bsW_@SB3hH=*%hYBRV7xxU&p89YfH0GeUdhjOb|&`
ztgW^6KJKW3b$#;95t!wqUl0w+y9OCUZd^A>cX6R`4_a%#@2d&y%fnCWvQr(!$}WCW
zp2i8&iIx?eaet8@TVhi%|B?yN1YomFG5t}iAoT7@9`
zNN}D!rsh&X|B+d?f~?NOI`3)q7vrl?blDBkPzttG3Ppoacii)NGf6+H^?g}YHJ{dkeW
z8YQ5YAOWvR7m0?cdfyBuC%E4dHqGJ%2>c2%Sz|7Cn0bHL`EXHoxqmiY>Sc}zJ%yQE
ze6;(zK2}CHA9>v&mKkA}0IelqWX2AH_A>2UnEb3anT@f^hjodu&FH``z4;8KraHhx
zTT76RI>{S}fS|&7oR2}^I&75Dz8fK32UO|MtCW?AP?Es?s8$C0JsK3^n}vo!Po!?p
zIW@t>bWCqgJnWXt$Rw^)_L<}pV!$-#&a9xXQ@N+9DIdAXC$KyOZHR@d8u0%Xsi
zl^mzQ70OwcS3y0b@0+6-pn0kQpbIPUYrWF6$QC8hX@augJme&AyU)%m?;YW@Umc3(
z&`*#(^k_bsRf0j>D2<_*rD(q^rGvbej!PYoLwK*4OdRC3Spc|suIpNrEAVLr+=*@L^MQAuaA!!LO=ev$l6^E(~IeT;N9+AoPf7Q2(ei{b5MBqVt
z$pGZ5OxUZJvT(a#k-FSfzEpJBG#S5mIm=$&o5RMEcPOj)d90rl!EhjoHkkW+USjgb
z6B~TCn{S&;M^j~LrgnR99p-Fxyr6Zf`um13z?prOo*gZ4h~W%Xvz7DZp%*q>YeW^cQ-mu$Q`tZcWbzBKT50mhXR
zQ-#88@JwD-Mq#I)?Qa#ucrXChRu$Gm!43}mWa#Zq{&-S4vo1v`c|ivqP-T^jTNWf{
z8IGHeabR@}6n)~KVd)-qcoZb|DmJxyvxJvP1K%J9Whs%6qQMZo3kpDc)!=cx3Ml*)
z3Qo5iYdbp-wTZ3zG1ww|uPntwG5*5=Scednu$uxsOcqomO
zW2NXnV`p7kg&fRJ${ikX)NI%=Me0f(rkxo($4JKm!637^SiWX@6(%T#YbQO;A<8;X
zgOC#?(6xQW&RY7pv!r)1ClvcI9DYf_2XQqxrry6kM>i0UQB03w?WQf1p^x|;`j)Zx
z`<>bQk?S0a?aEcdHkO%Sw*z21|0I$2MEbUSyg8_96&UqU29}J@{IISMoloSLpR5|z
z0w*&az%
zFr&9ZZwdJC(iQYJfhcxxt*{|dKtV7PYVJEMwHsR^i2dQ=7@COnvVAW6#cM-A_U>oz
z3E?sO-loA~K-PW>Z32R}M?*$Gd5iU=hRGZAKy$CSRZdK@`q;>*4d|L=3kT4oT9-vPk_Ofm@s&Pydx1xw!B>SXA}mqg~Fveue*Mo_0?6KGa@1E=|SR?fS{o4vsHzz6+%qmj7R)Ab;U?kd*)(w%9|K*HaMjl--#;~
z)=#^nU0oErFc#xBU7UiZNJ?U7L6_gfS}dF=ko{oeoN5>eZCMOzZ$RX!Xf==VAzG{4
zcfLjZ`sBN-yBqkGkF`?RG;TXuLkz2#l>4y9&;B_m=`rNYCFS&c|3rkQ`M+1+XgYjE
z!a4CFc?F_E06oe;x}5aB1g#%W6eNagNlR}cSoV8GmW$0cuIJN947%?t%J~ECEUgTF
z^oshr$^^@!1U56Ttu*j@Y$lEPOC2`z#y-8n3{rhza5ex$@k7<7J>5A?{GuC@Y?<2Q
zaL@i|*SwhP9DAuX4FB6MZ~n3>_ocive9N)dch}6p!TaiU?(OsXhQ9w<7a@mo9(uk*
z)#|oe(K_74oDP5HC)h+B!zc%Dvv7y0vS#U&J2KH&W>a)jsV7%8LmTm`fCG{3^0*`Rd!pDWV&_B*m=
zXe%i)Kk~TWHxu(Z+w?<^V$<{IyRd+u?wmCU9uhQLIu#4T&
z(HDcEA#v@kC+-nX3PLDJCD&S^7@bhW@BPCbIy*UVE&2KSM71eom%97WrHh~bp5EQ`
zM<$Ve_5?zovDR}Mc)6Kejl_I|dY9~6xVg7N8m&gbgCTWi@;%i@9P|ECIfVCuMjM#z
zzL;tOZg_wBHTWhztUcdWNC#s?_GXq6oJc@|cF^r-MJR9P@s)1kb~PO`9n4Zz=JFjf
z1@~e&i|H-741F<~;I*CKiCjP=)K&YVNV$9NypazkAde-9U{Tdc6R8O*-yPC*%TxFB
z&Fu)^pG&yvmmt=sNI_sMC)0j1bp*>^b4ZYPV)D7`C9%yi)*7fMQDf^qu2=M$aoNuc
zU4`~ajBo29!duD1!(3z~%RPJwQgp`C!&ri#1f|KUul3d5|0PnJ8pjUBtAo6&%tdMl
zZG-OFB!}n1qmBpwvANLJ?O7a3afV%b458B%LRwD=*R9WM%WtrL+-2)8a@g+W&NYtM
zi+>na6NBCxeJuSK1~J(K3g)N)5<*Jrs}djS4>hVMn;9G?5LOshDu1!-qz-fuBfejB
zR877d#J!-(xnRaFU|~83{BhD==N>JovY)b%NP~9!0Jboep_ABMTkY
z5I%|G9?M?GzXnKPM5f%Qe^jJn$n=1nyf+Z5SRNXx4ciy8=pN)cXP7evDAVmysn(l#
zUMkHC;rLv}5+FfUS%?Pp6FzS_A<>n
z5)$3^zghtCUFz*hSIv*R?45pCuMZtU4keCggfm5UXHH(OmtRRuY%}8ZH-VQ=EO9=R
z__&+<<_7Im;(I^nD7?=In(}5`I)0p3_pA6wW(>G}Zdz2Mn|^uUSxDRsryrd?^!l4d
zOGVe#6>RAhoaK&md0*tv#e#GSRrvD5*fTlT??)c^?j^9&^5fV+x;At9!*08zbUT;<6jxPXNt#4k-&C+#`SCgjGeO
zY9HBva-W+iXfUdNxj{y=8}`{eTa0M#?0j9dUPND2&&@HG4(+Z+IeLJ0CVA=d&PH*J
z)I@C*cwK|R;K1Fi0qs5=A*)>KtC9aDQkfc$Y8wcJd{Z-Nipq>|2+kELVD@&yST9NB
zpce7G-Zy1_@4rnz_I&sHXS=Zbf+)#O=aQ(CK+)%+h4@CXTKND9wU^kra2hJ}+J79d
z&m0j9CPU=HJ=f{Tg=8Ft92`$pSivXGrtB^V8TYE%^?ojOT$nVJ3GCjXu~}C-J*!Fk
zL2a34itF4-KUoIsRKO~|jfqo&j|8$?C9Zn)$LCtXR%{5|lZF=N)Jzt(>4JvlD!2R=
zjblE~2<^G&Ht`fkiYB^?m7f>qwmL{}@FcG3bWQe$$a~9A>`1Sbx1=(7M{B7l`x=gR
z#=g1}HFiaEFnQf$&3U`HIBQQQmx!1@XL($!(W&Gf(=MaN^Ldj8%XwAnk)SUw=XdKK
zJy~&pnwYYa|5XsF#4Ypb&_dEwx~7PhCd*_R@G=p0sudcEb{{hCc|bRlLC&eb2X*&J
zzWzA3ur%3PH&{E(JA5ygJKUS~dhTzUs$EH8rZp|`cT>)shZ#)L3Gse}DO1(Pn24Pz
zWOE`xz#=;Ne3PC=CbcdSUE&7WrpLvP8)n{uY9US~x7M6C4{^DF3mHTU19W!gUH`N~
zX#OZ$3ic>2#$O1kHlFA-{6~XASd^pXl+8aD?M4apT5smE$36
zdMLSyRv6oo9BCh3H0IxB|6Kh?Lqt#iMYlE4gUeDK(~j*xXjYU<1#2-U;~VxBEDsvG
zydIvg2iQdm*;s%u=25?51mi}gjdSo-3D{11iBuGk*W+0b0>Qfoedv_n<+i_R$x7+-
zw)9AyhSChrro%K=IOVBb<$iR0u9*S7ZpLu=o{$k2Y@ep=u{D$4K9TPp-JnDFXN+TT
zNg|`Km&@Fg!$D0BL!hK#Om
zkLx!k=-4kT-n??yrJzU?h8c-pbNp&O>suQ|>8gJ%<%Gi8z+U&bk)nDK6~CI3zG3*z
z+v1Bm427-X9y5S-MVH1`QKxIJU)KIAw#cUI<^$)%va1}r{lZcQAKv{(mCHiokPu|U
zw+SM9Y##}Wi?#lWEsP7_-&hkJx)@&hk&M>WsRq01!JSeUJdpQ<;)t#>7!K%ECFMrW?U4=82-l`L4eKdPp7vG@cK`9L7
zSNdW^Z6wDbsS9;!P_pUxsq>B83=n|
z#pi!TGGqQ=dyeT(25B-r?i|*U=A)ThtG%mWlzgqHX
z^@vEz@h3!3FVd+yu{qLLga<*(Cr0&+s%4zNLJ7rMBNJhK<4A@
zkFljY5$Dl=A?gSL6z&VwgCsw}a>1p??e4|zXsTSZ8(O$d+rCD#LnS5iphOR+}u4eR6VRfe3Ldsa>#;2AH&
z4ZF_)a~qTM`P@K($fl5%-1xXKOyOL|M;jSDJbs7khJY!UQLP;E6HndDkx7d&n5X{$
zk_aS75!aOS$}BK_{$nW0!+|Wlr5aMTCJ@;;40cL4ndmbvN&@(kuzQ~6j90_kQ=vBz
zUD(%}U!lTk;4@FmCMfjD=I`8Xwd~qh#~Y8&$?*+63a3z!bq0oqKKsW_Z1@b<4(nG_
zAEIaU7$nY0hX}pAo7G3v!52fXi-OJy8z6gUCN95E&bXxwCtDkWUw1QXQGe>T@_KFV
z(W^tn*V;1kL=;X)b+kpq7Z7{0kx;c}qkUq$Qs94=+Ojv?&1@zWJo$;Lt+{K?!+yrz
z1SoVIOPKRMb$-=Gj5nZeoy&fb<;J$k&7<{sWO>H#5L2tWr6-dP89DM&u6dPNwrP2|NS
zCX(VEr+%%1V|_HbAgsQ{K{0&S5I}6VT$=9iEKI7*Smc#+r61VS(-ln8B{gxiw)e{j
z-MEnW&vtUB#(t?VT8@6#fuTjeI!ImUHy_X6rIHoc
zBk|w22xO7=*T&lxb7n)&WmmUpX(B;gV$Rp*U%F+(!*lGdyq`^BdNs&uT3VF9d7t{p
z0PajyvXm|M6B-b(D!H!Yr!PZkr=|mUMC3Re{zt~r^Q2xyJ+{zw&`5l(eaq3`eQ^6S
zW1<$z;4ab@w*2x-7-VBgN5G^EEID5
z%X@?B1aRqqxUuE*R$IbLInH<&qMnWaUv7{4pWNOUyT9f|T-zc+&n1X2Af*y3Ojp3%
zR|PznndX>SDC!hbBK2q15(yMJ@0N`!iQfkEH%=
z1R)~SDyU2G95FKxqI~0$1mkE%WY_MNkL00G
zjKU!RM3JCBBWLwlVObE3aHZkIGf4MlL$Fal6C_{)kNITy$GL&OcDzA+G^1;hSl7PS
zvcy1?4rqX6s?^v0jlKIqZEN4>EavChg!>c4Z7fa2sed&l2;pSpLxn99f>ym`47jdQ
zfgKS73Zjv!(J#u)=;I@?*iE_g{V8mtco~eAQr^G>eo+61dy^Zqk#tXHNqqMp_kJrZ
zL{dHbFxtOnr(aU%Wb(r;Wy*>Rp^Kzxow9mFxgz8l&>LI_d*y|OOb41T2$vZ99wag3
zm#y$$u^;U(JulFo?N@>x%x?TbCfV6S8|$t3;rmSnq}&Sm&?6E6LuhYLLO(8aA?be<
zmOlkxTZ_p{Q)#M?)>&ONP-WP#=1blXB^0~?Bqn#M*IcFw&R$$!e`0r5!^mg
fu
zwe#+Sdg?p5Hz#A{dCr9?NdKrnew5&)@UyFm>tC((wy9cf!K}XkUH&;#%{y6wvuT3b
zwlf)eEj_Y=@0v77u~B|XnONN~Is1bx(pRXC;aaT$S(2Bs%8C`3i{A@;f1W|XBtsZt
zZs+)5AKs6`;2j`JGGp%zr|yl#Hr0W?BBBOmN1&=o?TwFnX--}cWr(&afeI1D132LP
zT!rGR*Z}Y|<5Yxtr|?UhY2L+8d}3N^Q$r0I%WKr6GAfOjC=dy}!2u{!>mC6>Ogg|p
zoS^$Oy^{w}eE#XWCLRbywKC)tGTa|a0u!o1%p)A}duL!%EFu78dr%&~vXBY^SyzH!
zGjZ|pFRFH{$9eX|4k_T`_un{4P1%A{XnZoM|8i93HfyFFCOqT#s(Cdyv9Fx`z~a&YKE5{0g@&(hel0JTkTy`yZqf-fyZA->FuYMz6o+n
zstjZ~E2#f8+wtvnDK#*{#B%(p#fT!yovTRNWw7~_(X2vg`Rutp@V3m_876>G1VCe8
zrITpA-$MAkWQ0j-8*l!CZpbuSnG{<74>4$3zIFXKFdcmFoP^oF9NYMy{jgTX96q1?
z36K(WexA1&(H-fccW-yZIfD=}piJ@k^`ZwZo&rSag2e2<-hwCOagkHgCWB;0VSKNS
z$+X-C^nhMuGO$lOJ%xJ58z>Au%tLgrJwgB+L2U}MhGfFz6jyTGuZ(@~0H>)c)A(ODTpZFp|sTl6fn=BY*uKTa#QrANc
zdpM7%nFn(#6is4%dUG9HR%H9por!`Tq367T>bQ_Y8cT?PKH5xyiTtntIw1Gno8p^N
zgda&%F5QCLXRO{xO?eg8r~$o_fM|wfj};VE))Kue^5Tx)yI(L!;>T~G1$vkCB{I*e
zDg9}nc6^)c4PE7Y)gzng?Rw^pM6H+nwf;S*3_tLn{uJLOVC2oJxZm0Lrk}}v%3F$c
zav?VB0{w!ZmXKRqzwnn4jxT!v>7-dC7;54IKnEU}s(Tquf!i{&19cZlXI7j|`IZlv
z_x9(UHV>4nUhegx7uR-WmP!ftx#u{a3o369?)5!wgNW-2SlED8+})C-Pog+MSZMdf
z9G+Na%^%30epNQu!R(B=eH;cyu4)n00A4W>TTfz@q#Yh*#V^kSYmfd~gWDOtw1#U8
zO9tG2s^81u&RQqLha*IOqR^Apy{g>2jwpMl{1O}&b3anD(#j@C^eB66_N28BZ7)kj
zlkRV96cX^6xaN%<+M$oG6q>iET2AvFgBZOOV&$>2#YBy6tG@)f1O@5Sj(*4dtNm?N
z@5{yP0E3JN^6;4`jL$jV1Aq?@ZbM9L>Z%q!mY^!2x>6S1htnqr~rX;jA!x|234l~z9Fr05u%MIubr!`rN#l_U~Qpe
zXqya&y7?CgZlj@yCVIv*YChjsUNKM#O{DrFq9i2SCH9PPwH?@Q`(fP-^ygV8=*HC7
zu#L{c+Jx9V#B=t;*}Up>iQHY@%MC^WS-e1VB;Oq3%+&I!9L+vIJJTGgCVIYIo3{pJ
z&=xncQ}EgtjSJVQO$+`vG~$sTVU#>&*7{c3G_`t_h+Jg+w#NXomKC-?Z#I#YzaKSp
zmclL0*>|jTC&>2ttU5i9WvflxM${tSY*RIqVEp*7u@?SqUSYU1vpU6mK$;`7{=sFo{BePS?e;VJZ1YQBm~Lzcrcy;
zczSX;7V6|W%WlG!Fw-5(lD9PmlNuL#S751TGcumsI1#jmdNuOp5mPGQ_QN|iI=PF&
zZ1vf-Dnz_YELDI05^iH=!;mtJ9g6Rg>~-L3Kj|-(Bs%N)~vgXuK6Q)k=RR{?P|grSwu1X8vE6g5C~EZeZmAQ)F^MVCj}Wpzw#o
zM{)K$k7tAX^)jKuD4Ma^uXWsz#_0~4tdFT`$O&yfSy8QgG2OO8+L4S^B2S`V#k~C$
zPcPrfPL+KBY@)Pp7ob+5-qa@N6@=#97s{z;yqj(FQR-qU4~5V_pu{$;x7L|@Sj8leZ-H4}F?tVbRZ
z@gK!KkZKW~Y-I(Zp3-!Qn#tWM`fIa^G2{vuQM4xIapD)|UYt;aaow{_xx9JQz8MLp
zy%RPia>>!IJobqUU_#P6M2id{OFMrF>|qEgt%~mY{Ak`-ZPcbQPv_=)8A~3mY|%$e
zkxLRXb~c0V6@aNE^-SIx6y=n>)Zr2LW@<;M(7)1IfM+ay=hf-kZdFapyj+5tA4Qjp
z;ut$d;TNx?{;TUl2IM;{2&>a2l*dv>8_z0CqP}g|Dqm{LJ|w=RP)d1xGr3KCW0vyr
z!&)(iC}Me#K{*V2p5UuDzOc?e$6uBp4zh)9RP=H3K=q~mzAnXbL7R7U
z%xf-4euSeI-2UI*EgTYx1`Yt2Co4Gg#lph}J&8-(2kNk+0xu%YSj+#GQBBkVTE}h#
zQM#o`m+PYEvyHT;sRYMH#qoJba{qdS^s3rV-S4)2XkepNz=B|UBr=P{2Dp2i1qnd!
z?GzVM?J|_|`EAaz8Y8!4%IZybQ>`TcdAHL)3JYG!S^vZWkrIBePKxGjw%W;m`skLv
zOnfQ9YwGvnmGS~K>OzY_ZEFFFzyLyV?c&@_@{b}
zMX9Zn+wDkHc|5R@aZhF&(Dlbd3xB-Em!14a-1=l5dXH}&`?VS15pTBW|BB-hibf^5
zX@2NEGls*lh{-jYy#Z-+1m!mQHwk4@W?rI}4e-ccsp?jVx&@IjsczaTQ|8;-hbzV2
zND_{3P05XqGE@1TFSn3QDA^O-EaWyAM(r313`Y_+Aidjuv_vng^1*dz!Kd{l9Z3TT
zzU=&D8lQg{(c{KHOeQP>DFfPs1+yIeg#N&u7kBN9@`%G9gD};Rl(Qm8~hI&F>#Dxm6SKBf8BqZ;?FkA%6;pukT9+
z82fg{bmgJgS={i$;2*v8Am$#AnVTRU`+j4&~hUE!@aKXZ=islE73o3bg}tj+PFe=
z&|dKI-qZ_Mu-wd=(sfpKY7YVF#>|g=>
z>9)E7TWIIx^ruftJUVB*o3m0oXigt}<*OgrP%x#`u6Jfw&CI@+C?~R`(W+%$!M}2S
z)k&I%!8aR}GW|8{Wj_<`QD&B5dMN!=cd2v?mKeQNVF#jfkUW3_vE^a@#V;$ig7trX
z>xgl`=@PBL4E3yJ9!wa!ga)YicIG}BRPb=@HBljZ1&8}j1pnBCH+M3=2XvK}#(Nvp
z*kfc%i5^}==joFP>%eZi9t{_+gAX;8n-HB4%~%*R71&0&>M6sE1DW{_ubkWBMkV;e
zBW6;xWo~HrXw9*osVp`9NG_dp+J$i|i_SG}toJCOEw5Zw%6oUO$4C7bd|EbaptE<1
zb5Soc54R}oSqe7}_CV`ZQ?JVkK
zEUj7_lYHTd(6C`MbrQDh5lULuM!i!=WR@7ZEN1>+<$2t9AXVP2BeNK^H_=3oV4y_y
z*Y^+ZHYzdB!}Z1rZ|&h;(1>2YQ{duT=T}ZEE34Me5-5HHD}Wg@>m~K`ULilRD)fhA
zvX2)3t%?6!a-C+Hpff5^NuV>iSdH`!`SKM(t(gfEq&oT=+83`Z0q^l2y(v3K7n}Q=5nHviAZ)9dAi8s
zI3p;Z!$apAYEaCg!yE7O(tFF>NffF2DFNQv|vju
zU#HIMeQ=^J_QaX?tlG)_D;GOF+18X}T=3&=zGZRZ^UXUQ{W`oL9wqE;1SkPTm=gp9
z@s->hpNr@`zrUdVDlnrgY5i%a8(b|_NGFGAK>4v(OS&@t?&9yd?{V}mN|uI!-+N$n
z&U`An_Z;$+KO=^7UJ<}z<+I%C>kYO)h~5tt$I0W+t7Z+C5#llst%gf5=f%cw;4zs8}&{mpmZQioIdX#DHB9Fx8~x6
zR(`{P=$cra@0xIe0Ff$M`4M+F%pT?3aQa6)b8y8!=)$@{&N29b}*E+cCav
z_PwcQh>8RQGe>LTy(x3fOWRuAIYsgPbCKH|EGP^Apyxy*AC6jsL8T#Q>kIxN3ucP<
zmT#!;@U0Bke^3lZHGo|Her!*a{}=0~*p6tf1xhgSwNy@Yr%;Iow~Z2LDf#=zqErwK
zFF>tFIn}n%AN!ggDw4K;#hK3&Dnoob;`JF(4Zg(&Ki`GqJ^m2Vq#R3joFFX;oDEi>
zU>=N)2%xt}9h~%qcEc=0
zb*wC_nMd?pkP7v1t6)%7Gu%xy$|I87mn+@axEGXFBRc8U8mWE
zg+bmmy9WhHc3Aa%CU^FwB_pd*;ez-{CNgn9cM+G$<)p`R+!G@INn$>jTovRn|IVyc$Qh1;$e;proxwU42#?_cqge$Ja;jO-ub$^$aQlD_|_l7YBPs#=YkN9>Sw
zX0sA|X^VMi2_GQJ8EhC}zWfO#Ng(%S%j-`duPL7z)I2ALa-<2qe%m??J#joHA5tdz
hRUsA`kPx%qe(gr|R@#Xuz
z-_QK!{eF+Iz>5|*A9a9w1^!C~Qnq)L87Bys2o<{Mc8h1l%U^Q<-O61CsB=cQc^nT`
zyPe4|`Muf!Fq3ZkR{@+ZZFM4LS0){QS~~z{(rmw9J_Uf36?8DdLR-vO%#1T`k9w`r;pJC&ap3t+
z0Bn|M90J-ihWh4jA5j2UdSPN!T!{?>h?R?}%P~Y>>Aq%iqayr41~!$QA^ZrLw~iT!
zcTp9b9z-e2JI25b*>GZ_^KM%77R{Dk;-+}$=f~+r3Gi2hVViRrW@&3*R8N!O(8zl2u}kQc77x!H%;LQEr3(``0Tk-uOzW^>Wj0qPZ4
b@Cy6^Nx#`4jFLMe00000NkvXXu0mjfCM8jK
diff --git a/pages/configureDevice/configureDevice.js b/pages/configureDevice/configureDevice.js
new file mode 100644
index 0000000..205394a
--- /dev/null
+++ b/pages/configureDevice/configureDevice.js
@@ -0,0 +1,187 @@
+const ppScale = getApp().globalData.ppScale;
+import $ from "../../utils/request";
+
+Page({
+ data: {
+ progress: {
+ index: 0,
+ data: ['配置蓝牙', '初始化用户信息', '配备网络', '完成']
+ },
+
+ progressNext: false,
+ device: null
+ },
+
+ onLoad() {
+ ppScale.plugin.bus.subscribe("devicesModel", (res) => {
+ console.log("searchDevice ===》devicesModel", res);
+ ppScale.device.mac = res.deviceMac;
+
+ ppScale.plugin.bus.subscribe("deviceConnect", (res) => {
+ console.log('connectedDevice ===》deviceConnect', res);
+
+ ppScale.plugin.ScaleAction.startDataProgress(true);
+ ppScale.activeProtocol = ppScale.plugin.ScaleAction.getActiveProtocol();
+
+ ppScale.activeProtocol.codeUpdateMTU((res) => {
+ console.log("connectedDevice ===》codeUpdateMTU", res);
+
+ ppScale.activeProtocol.codeFetchBindingState((res) => {
+ console.log("connectedDevice ===》codeFetchBindingState", res);
+
+ wx.hideLoading();
+ if (res === 1) {
+ wx.showModal({
+ title: '提示',
+ content: '当前设备已被绑定,你确定要覆盖绑定吗?',
+ success: (res) => {
+ if (res.confirm) {
+ wx.showLoading({
+ title: "正在初始化设备...",
+ mask: true
+ });
+ ppScale.activeProtocol.codeClearDeviceData("00", (res) => {
+ console.log("deviceInfo === codeClearDeviceData", res);
+ wx.hideLoading();
+
+ if(res === 0) {
+ let scaleDeviceId = ppScale.device.mac.replace(/:/g, '');
+ let params = {
+ equipmentCode: scaleDeviceId,
+ };
+ $.ajax("weighingScale/del/device", params, "POST", true, "正在初始化设备...").then(res => {
+ wx.showToast({
+ icon: "none",
+ title: "设备初始化成功,请重新绑定。",
+ })
+ // device.list = [];
+ // device.mac = null;
+ let pages = getCurrentPages();
+ let prevPage = pages[pages.length - 2];
+ prevPage.setData({
+ getDeviceSetting: true
+ })
+ setTimeout(() => {
+ wx.navigateBack({
+ delta: 1
+ })
+ }, 1500);
+ });
+ } else {
+ wx.showToast({
+ icon: "none",
+ title: "设备初始化失败。",
+ })
+ }
+ })
+ } else if (res.cancel) {
+ // device.mac = null;
+ ppScale.plugin.Blue.disconnect();
+ }
+ }
+ })
+ } else {
+ ppScale.device.name = this.data.device.name;
+ ppScale.device.connection = this.data.device;
+ if(this.data.progressNext) {
+ let scaleDeviceId = ppScale.device.mac.replace(/:/g, '');
+ let params = {
+ sn: scaleDeviceId,
+ };
+ $.ajax("weighingScale/getUserInfoBySn", params, "GET", true, "正在同步用户信息...").then(res => {
+ if(res.result) {
+ wx.setStorageSync("userInfo", res.result);
+ this.setProgress();
+ } else {
+ wx.removeStorageSync("userInfo");
+ wx.showToast({
+ title: "暂无用户信息,请手动补充",
+ icon: "none"
+ })
+ setTimeout(() => {
+ this.setProgress();
+ }, 1500)
+ }
+ }).catch(() => {
+ wx.showToast({
+ title: "用户信息同步失败,请手动补充",
+ icon: "none"
+ })
+ setTimeout(() => {
+ this.setProgress();
+ }, 1500)
+ })
+ }
+ }
+ })
+ });
+ });
+ });
+ },
+
+ // 选择了某个设备
+ deviceChange(e) {
+ let status = e.detail.status;
+ if(status) {
+ wx.showLoading({
+ title: "蓝牙配对中...",
+ mask: true
+ });
+ this.setData({
+ progressNext: true
+ })
+ let device = e.detail.device;
+ this.connectedDevice_(device);
+ }
+ },
+
+ connectedDevice(e) {
+ wx.showLoading({
+ title: "正在尝试连接...",
+ mask: true
+ });
+ this.setData({
+ progressNext: false
+ })
+ let device = e.detail.device;
+ this.connectedDevice_(device);
+ },
+
+ connectedDevice_(device) {
+ if(device) {
+ this.setData({
+ device: device
+ })
+ ppScale.plugin.Blue.createBLEConnection(device);
+ }
+ },
+
+ setDeviceUserInfo(e) {
+ this.setData({
+ progressNext: true
+ })
+ let status = e.detail.status;
+ if(status) {
+ this.setProgress();
+ }
+ },
+
+ setDeviceConfig(e) {
+ let status = e.detail.status;
+ if(status) {
+ this.setProgress();
+ }
+ },
+
+ setConfigSuccessful() {
+ wx.switchTab({
+ url: "/pages/home/home"
+ })
+ },
+
+ setProgress() {
+ this.setData({
+ ["progress.index"]: this.data.progress.index + 1
+ })
+ }
+})
\ No newline at end of file
diff --git a/pages/configureDevice/configureDevice.json b/pages/configureDevice/configureDevice.json
new file mode 100644
index 0000000..f2baf7f
--- /dev/null
+++ b/pages/configureDevice/configureDevice.json
@@ -0,0 +1,10 @@
+{
+ "usingComponents": {
+ "configureDevice1": "/components/configureDevice_1/configureDevice_1",
+ "configureDevice2": "/components/configureDevice_2/configureDevice_2",
+ "configureDevice3": "/components/configureDevice_3/configureDevice_3",
+ "configureDevice4": "/components/configureDevice_4/configureDevice_4"
+ },
+ "navigationBarTitleText": "配置蓝牙",
+ "disableScroll": true
+}
\ No newline at end of file
diff --git a/pages/configureDevice/configureDevice.wxml b/pages/configureDevice/configureDevice.wxml
new file mode 100644
index 0000000..830b596
--- /dev/null
+++ b/pages/configureDevice/configureDevice.wxml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ {{progress.index >= index ? '' : index + 1}}
+
+ {{item}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/configureDevice/configureDevice.wxss b/pages/configureDevice/configureDevice.wxss
new file mode 100644
index 0000000..81c4ea6
--- /dev/null
+++ b/pages/configureDevice/configureDevice.wxss
@@ -0,0 +1,82 @@
+.configureDevice {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ padding: 0 30rpx 20rpx;
+ box-sizing: border-box;
+}
+
+.configureDevice::before {
+ content: '';
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: 550rpx;
+ background: linear-gradient(0deg, #F5F7FB 0%, #D8EAFD 100%);
+}
+
+.progress {
+ width: 100%;
+ height: 160rpx;
+ display: flex;
+ flex-wrap: nowrap;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.progressList {
+ flex: 1;
+}
+
+.progressList>view:nth-of-type(1) {
+ width: 52rpx;
+ height: 52rpx;
+ overflow: hidden;
+ border-radius: 50%;
+ display: flex;
+ position: relative;
+ align-items: center;
+ justify-content: center;
+ margin: 0 auto 20rpx;
+}
+
+.progressList>view:nth-of-type(1)::before {
+ content: "";
+}
+
+.progressList>view:nth-of-type(1)::after {
+ content: "";
+}
+
+.progressList>view:nth-of-type(1)>view {
+ color: #FFFFFF;
+ font-size: 24rpx;
+ font-weight: bold;
+ line-height: 40rpx;
+ overflow: hidden;
+ border-radius: 50%;
+ text-align: center;
+}
+
+.progressList>view:nth-of-type(2) {
+ color: #77849E;
+ height: 24rpx;
+ font-size: 24rpx;
+ line-height: 24rpx;
+ text-align: center;
+}
+
+.active {
+ color: #3194FB !important;
+ font-weight: bold !important;
+}
+
+.content {
+ width: 100%;
+ border-radius: 16rpx;
+ height: calc(100% - 160rpx);
+ background-color: #FFFFFF;
+}
\ No newline at end of file
diff --git a/pages/connectedDevice/connectedDevice.js b/pages/connectedDevice/connectedDevice.js
deleted file mode 100644
index 026549f..0000000
--- a/pages/connectedDevice/connectedDevice.js
+++ /dev/null
@@ -1,146 +0,0 @@
-const app = getApp();
-import $ from "../../utils/request";
-
-Page({
- data: {
- name: "",
- deviceSelect: null
- },
-
- onLoad(options) {
- app.globalData.ppScale.plugin.bus.subscribe("deviceConnect", (res) => {
- console.log('connectedDevice ===》deviceConnect', res);
-
- app.globalData.ppScale.plugin.ScaleAction.startDataProgress();
- app.globalData.ppScale.activeProtocol = app.globalData.ppScale.plugin.ScaleAction.getActiveProtocol();
-
- app.globalData.ppScale.activeProtocol.codeUpdateMTU((res) => {
- console.log("connectedDevice ===》codeUpdateMTU", res);
-
- app.globalData.ppScale.activeProtocol.codeFetchBindingState((res) => {
- console.log("connectedDevice ===》codeFetchBindingState", res);
-
- wx.hideLoading();
- if (res === 1) {
- wx.showModal({
- title: '提示',
- content: '当前设备已被绑定,你确定要覆盖绑定吗?',
- success: (res) => {
- if (res.confirm) {
- app.globalData.ppScale.activeProtocol.codeClearDeviceData("00", (res) => {
- console.log("deviceInfo === codeClearDeviceData", res);
-
- let scaleDeviceId = app.globalData.ppScale.device.mac.replace(/:/g, '');
- let params = {
- equipmentCode: scaleDeviceId,
- };
- $.ajax("weighingScale/del/device", params, "POST", true, "正在初始化设备...").then(res => {
- wx.showToast({
- icon: "none",
- title: res.message,
- })
- let pages = getCurrentPages();
- let prevPage = pages[pages.length - 2];
- prevPage.setData({
- getDeviceSetting: true
- })
- setTimeout(() => {
- wx.navigateBack({
- delta: 2
- })
- }, 1500);
- });
- })
- } else if (res.cancel) {
- app.globalData.ppScale.plugin.Blue.disconnect();
- }
- }
- })
- } else {
- app.globalData.ppScale.device.name = this.data.name;
- wx.redirectTo({
- url: "/pages/connectionSuccessful/connectionSuccessful"
- })
- }
- })
- });
- });
- },
-
- onShow() {
- let token = wx.getStorageSync("token") || null;
- let userInfo = wx.getStorageSync("userInfo") || null;
- let deviceSelect = app.globalData.ppScale.device.connection;
- this.setData({
- token: token,
- userInfo: userInfo,
- name: deviceSelect.name,
- deviceSelect: deviceSelect
- })
- },
-
- nameInput(e) {
- this.setData({
- name: e.detail.value
- })
- },
-
- // 配对
- openConnectionSuccessful() {
- let token = this.data.token;
- let userInfo = this.data.userInfo;
- if (token && userInfo) {
- this.starConnection();
- } else {
- wx.login({
- success: (res) => {
- if (res.code) {
- this.checkOpenIdLogin(res.code);
- } else {
- wx.showToast({
- icon: "none",
- title: "登录失败,请稍后再试!",
- })
- }
- }
- })
- }
- },
-
- starConnection() {
- let deviceSelect = this.data.deviceSelect;
- if (deviceSelect) {
- let name = this.data.name;
- if (name) {
- wx.showLoading({
- title: "蓝牙配对中...",
- mask: true
- });
- app.globalData.ppScale.device.name = name;
- app.globalData.ppScale.plugin.Blue.createBLEConnection(deviceSelect);
- } else {
- wx.showToast({
- icon: "none",
- title: "设备名称不能为空"
- })
- }
- } else {
- wx.showToast({
- icon: "none",
- title: "配对设备不能为空"
- })
- }
- },
-
- // 微信一键登录
- checkOpenIdLogin(code) {
- let params = {
- code: code
- };
- $.ajax("weighingScale/checkOpenIdLogin", params, "POST", true, "登录中...").then((res) => {
- wx.setStorageSync("userInfo", res.result.user);
- wx.setStorageSync("token", res.result.token);
- this.starConnection();
- })
- },
-})
\ No newline at end of file
diff --git a/pages/connectedDevice/connectedDevice.json b/pages/connectedDevice/connectedDevice.json
deleted file mode 100644
index 7c0a326..0000000
--- a/pages/connectedDevice/connectedDevice.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "设备命名",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/connectedDevice/connectedDevice.wxml b/pages/connectedDevice/connectedDevice.wxml
deleted file mode 100644
index caea25f..0000000
--- a/pages/connectedDevice/connectedDevice.wxml
+++ /dev/null
@@ -1,16 +0,0 @@
-型号:{{deviceSelect.name}}
-
-
-
-
-
-
-
-
- 设备名称
-
-
-
-
-
-配对
\ No newline at end of file
diff --git a/pages/connectedDevice/connectedDevice.wxss b/pages/connectedDevice/connectedDevice.wxss
deleted file mode 100644
index 5a64677..0000000
--- a/pages/connectedDevice/connectedDevice.wxss
+++ /dev/null
@@ -1,68 +0,0 @@
-page {
- padding: 50rpx 60rpx 0;
- background-color: #ffffff;
-}
-
-.equipmentModel {
- color: #252535;
- width: 100%;
- height: 48rpx;
- font-size: 48rpx;
- font-weight: bold;
- line-height: 48rpx;
- margin-bottom: 60rpx;
-}
-
-.equipmentIcon {
- width: 320rpx;
- height: 320rpx;
- margin: 0 auto 40rpx;
-}
-
-.equipmentName {
- width: 100%;
- height: 126rpx;
- display: flex;
- flex-wrap: nowrap;
- padding-right: 35rpx;
- box-sizing: border-box;
- margin-bottom: 550rpx;
- justify-content: space-between;
- border-bottom: 1rpx solid #EAECF1;
-}
-
-.equipmentName>view:first-of-type {
- color: #252535;
- height: 126rpx;
- line-height: 126rpx;
- font-size: 36rpx;
- font-weight: bold;
-}
-
-.equipmentName>view:last-of-type {
- flex: 1;
- width: 0;
- height: 126rpx;
-}
-
-.equipmentName>view:last-of-type input {
- color: #808080;
- width: 100%;
- height: 126rpx;
- text-align: right;
- font-size: 36rpx;
- line-height: 126rpx;
-}
-
-.btn {
- color: #FFFFFF;
- width: 580rpx;
- height: 88rpx;
- line-height: 88rpx;
- margin: 0 auto;
- font-size: 32rpx;
- font-weight: bold;
- border-radius: 44rpx;
- text-align: center;
- background-color: #1385FA;
-}
\ No newline at end of file
diff --git a/pages/connectionSuccessful/connectionSuccessful.js b/pages/connectionSuccessful/connectionSuccessful.js
deleted file mode 100644
index 2cb1f83..0000000
--- a/pages/connectionSuccessful/connectionSuccessful.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const app = getApp();
-
-Page({
- // 获取wifi列表
- openGetWifiList() {
- wx.redirectTo({
- url: "/pages/getWifiList/getWifiList"
- })
- }
-})
\ No newline at end of file
diff --git a/pages/connectionSuccessful/connectionSuccessful.json b/pages/connectionSuccessful/connectionSuccessful.json
deleted file mode 100644
index 84c4caf..0000000
--- a/pages/connectionSuccessful/connectionSuccessful.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "绑定成功",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/connectionSuccessful/connectionSuccessful.wxml b/pages/connectionSuccessful/connectionSuccessful.wxml
deleted file mode 100644
index b3cbcf3..0000000
--- a/pages/connectionSuccessful/connectionSuccessful.wxml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- 绑定成功
-
-
-随时随地同步测量数据
-
-配置网络
\ No newline at end of file
diff --git a/pages/deviceInfo/deviceInfo.js b/pages/deviceInfo/deviceInfo.js
index 8dab5d6..e4e191a 100644
--- a/pages/deviceInfo/deviceInfo.js
+++ b/pages/deviceInfo/deviceInfo.js
@@ -3,67 +3,13 @@ import $ from "../../utils/request";
Page({
data: {
- // deviceConnect: false,
-
deviceInfo: null,
},
onLoad(options) {
this.getDevice();
-
- // app.globalData.ppScale.plugin.bus.subscribe("deviceConnect", (res) => {
- // console.log('deviceInfo ===》deviceConnect', res);
-
- // app.globalData.ppScale.plugin.ScaleAction.startDataProgress();
- // app.globalData.ppScale.activeProtocol = app.globalData.ppScale.plugin.ScaleAction.getActiveProtocol();
-
- // app.globalData.ppScale.activeProtocol.codeUpdateMTU((res) => {
- // console.log("deviceInfo ===》codeUpdateMTU", res);
-
- // this.setData({
- // deviceConnect: true
- // })
- // });
- // });
},
- // 初始化蓝牙
- // initBluetooth() {
- // wx.openBluetoothAdapter({
- // success: () => {
- // this.getDeviceSettingList();
- // },
- // fail: (err) => {
- // if (err.errCode === 10001) {
- // wx.showModal({
- // title: "提示",
- // content: "请打开手机蓝牙",
- // });
- // }
- // },
- // });
- // },
-
- // getDeviceSettingList() {
- // let seviceList = [];
- // app.globalData.ppScale.device.setting.map(item => {
- // if(this.data.deviceInfo.type === item.deviceName) {
- // seviceList.push(item);
- // }
- // })
- // if(seviceList && seviceList.length) {
- // app.globalData.ppScale.plugin.Blue.setDeviceSetting(seviceList);
- // app.globalData.ppScale.plugin.Blue.start(seviceList[0].deviceName, false);
- // app.globalData.ppScale.plugin.bus.subscribe("devicesList", (res) => {
- // let fIndex = res.findIndex(item => item.deviceId === this.data.deviceInfo.deviceId);
- // if (fIndex > -1) {
- // app.globalData.ppScale.plugin.Blue.stopBluetoothDevicesDiscovery();
- // app.globalData.ppScale.plugin.Blue.createBLEConnection(res[fIndex]);
- // }
- // });
- // }
- // },
-
// 获取已经绑定的设备列表
getDevice() {
let params = {};
@@ -71,42 +17,24 @@ Page({
this.setData({
deviceInfo: res.result[0]
})
- // this.initBluetooth();
})
},
delDevice() {
- // if(this.data.deviceConnect) {
- // app.globalData.ppScale.activeProtocol.codeClearDeviceData("00", (res) => {
- // console.log("deviceInfo === codeClearDeviceData", res);
-
- let scaleDeviceId = this.data.deviceInfo.macAddress.replace(/:/g, '');
- let params = {
- equipmentCode: scaleDeviceId,
- };
- $.ajax("weighingScale/del/device", params, "POST", true, "正在解绑设备...").then(res_ => {
- wx.showToast({
- icon: "none",
- title: res_.message,
- })
- setTimeout(() => {
- wx.navigateBack({
- delta: 1
- })
- }, 1500);
- });
- // })
- // } else {
- // wx.showToast({
- // icon: "none",
- // title: "删除失败,请靠近设备并点亮后再试"
- // })
- // app.globalData.ppScale.plugin.Blue.stop();
- // this.getDeviceSettingList();
- // }
- },
-
- // onUnload() {
- // app.globalData.ppScale.plugin.Blue.stop();
- // }
+ let scaleDeviceId = this.data.deviceInfo.macAddress.replace(/:/g, '');
+ let params = {
+ equipmentCode: scaleDeviceId,
+ };
+ $.ajax("weighingScale/del/device", params, "POST", true, "正在解绑设备...").then(res_ => {
+ wx.showToast({
+ icon: "none",
+ title: res_.message,
+ })
+ setTimeout(() => {
+ wx.navigateBack({
+ delta: 1
+ })
+ }, 1500);
+ });
+ }
})
\ No newline at end of file
diff --git a/pages/deviceInfo/deviceInfo.wxml b/pages/deviceInfo/deviceInfo.wxml
index 0e35bb0..116e043 100644
--- a/pages/deviceInfo/deviceInfo.wxml
+++ b/pages/deviceInfo/deviceInfo.wxml
@@ -27,10 +27,6 @@
成员
{{deviceInfo.subUserNum}}人
-
- MAC地址
- {{deviceInfo.macAddress}}
-
删除设备
diff --git a/pages/familyMembers/familyMembers.js b/pages/familyMembers/familyMembers.js
deleted file mode 100644
index 8630a22..0000000
--- a/pages/familyMembers/familyMembers.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import $ from "../../utils/request";
-
-Page({
- data: {
- userInfo: null,
-
- subUserList: [],
- },
-
- onShow() {
- this.setData({
- userInfo: wx.getStorageSync("userInfo") || null
- })
- this.getSubUser();
- },
-
- // 获取家庭成员列表
- getSubUser() {
- let params = {};
- $.ajax("weighingScale/list/subUser", params, "GET", true, "正在获取...").then(res => {
- this.setData({
- subUserList: res.result
- })
- })
- },
-
- openUserInfo() {
- wx.navigateTo({
- url: "/pages/userInfo/userInfo?initBluetooth=1&customerType=0"
- })
- },
-
- editMyInfo() {
- wx.navigateTo({
- url: "/pages/userInfo/userInfo?initBluetooth=1&customerType=1"
- })
- },
-
- editUserInfo(e) {
- let id = e.currentTarget.dataset.id;
- wx.navigateTo({
- url: "/pages/userInfo/userInfo?id="+ id +"&initBluetooth=1&customerType=0"
- })
- }
-})
\ No newline at end of file
diff --git a/pages/familyMembers/familyMembers.json b/pages/familyMembers/familyMembers.json
deleted file mode 100644
index 2a8298a..0000000
--- a/pages/familyMembers/familyMembers.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "家庭成员",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/familyMembers/familyMembers.wxml b/pages/familyMembers/familyMembers.wxml
deleted file mode 100644
index afc746d..0000000
--- a/pages/familyMembers/familyMembers.wxml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- {{userInfo ? userInfo.realname : '-'}}
- 修改我的档案
-
-
-
- 家庭成员
-
-
-
-
-
-
-
- {{item.realname}}
- 修改档案
-
-
-
-
-
-
-
-
-
-
- 添加新成员
-
\ No newline at end of file
diff --git a/pages/familyMembers/familyMembers.wxss b/pages/familyMembers/familyMembers.wxss
deleted file mode 100644
index 41d2062..0000000
--- a/pages/familyMembers/familyMembers.wxss
+++ /dev/null
@@ -1,128 +0,0 @@
-page {
- padding: 30rpx 30rpx 0;
-}
-
-.myInfo {
- width: 100%;
- height: 150rpx;
- padding: 0 30rpx 0 38rpx;
- box-sizing: border-box;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- border-radius: 16rpx;
- margin-bottom: 40rpx;
- background-color: #FFFFFF;
-}
-
-.myInfo>view:nth-of-type(1) {
- width: 84rpx;
- height: 84rpx;
- border-radius: 50%;
- margin-right: 24rpx;
-}
-
-.myInfo>view:nth-of-type(2) {
- color: #252535;
- flex: 1;
- height: 32rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 32rpx;
-}
-
-.myInfo>view:nth-of-type(3) {
- color: #B6B6B6;
- height: 28rpx;
- font-size: 28rpx;
- line-height: 28rpx;
- padding-right: 30rpx;
-}
-
-.familyMembers {
- width: 100%;
- margin-bottom: 24rpx;
-}
-
-.familyMembers>view:first-of-type {
- color: #252535;
- width: 100%;
- height: 32rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 32rpx;
- margin-bottom: 30rpx;
-}
-
-.familyMembers>view:last-of-type {
- width: 100%;
- border-radius: 16rpx;
-}
-
-.familyMembers>view:last-of-type>view {
- width: 100%;
- height: 150rpx;
- padding: 0 30rpx 0 38rpx;
- box-sizing: border-box;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- background-color: #FFFFFF;
- border-bottom: 1rpx solid #EAECF1;
-}
-
-.familyMembers>view:last-of-type>view:last-of-type {
- border-bottom: 0;
-}
-
-.familyMembers>view:last-of-type>view>view:nth-of-type(1) {
- width: 84rpx;
- height: 84rpx;
- border-radius: 50%;
- margin-right: 24rpx;
-}
-
-.familyMembers>view:last-of-type>view>view:nth-of-type(2) {
- color: #252535;
- flex: 1;
- height: 32rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 32rpx;
-}
-
-.familyMembers>view:last-of-type>view>view:nth-of-type(3) {
- color: #B6B6B6;
- height: 28rpx;
- font-size: 28rpx;
- line-height: 28rpx;
- padding-right: 30rpx;
-}
-
-.btn {
- width: 100%;
- height: 150rpx;
- padding: 0 38rpx;
- box-sizing: border-box;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- border-radius: 16rpx;
- background-color: #FFFFFF;
-}
-
-.btn>view:first-of-type {
- width: 84rpx;
- height: 84rpx;
- border-radius: 50%;
- margin-right: 24rpx;
-}
-
-.btn>view:last-of-type {
- color: #252535;
- flex: 1;
- height: 32rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 32rpx;
-}
\ No newline at end of file
diff --git a/pages/getWifiList/getWifiList.js b/pages/getWifiList/getWifiList.js
deleted file mode 100644
index 9ddd513..0000000
--- a/pages/getWifiList/getWifiList.js
+++ /dev/null
@@ -1,32 +0,0 @@
-const app = getApp();
-
-Page({
- data: {
- wifiList: []
- },
-
- onLoad() {
- this.initWifi();
- },
-
- initWifi() {
- wx.showLoading({
- title: "正在获取Wi-Fi列表...",
- mask: true
- });
- app.globalData.ppScale.activeProtocol.dataFindSurroundDevice((res) => {
- wx.hideLoading();
- console.log("wifiList", res);
- this.setData({
- wifiList: res
- })
- })
- },
-
- openSetWifiPassword(e) {
- let item = JSON.stringify(e.currentTarget.dataset.item);
- wx.navigateTo({
- url: "/pages/setWifiPassword/setWifiPassword?item=" + item
- })
- }
-})
\ No newline at end of file
diff --git a/pages/getWifiList/getWifiList.json b/pages/getWifiList/getWifiList.json
deleted file mode 100644
index 47fb2f9..0000000
--- a/pages/getWifiList/getWifiList.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "usingComponents": {},
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/getWifiList/getWifiList.wxml b/pages/getWifiList/getWifiList.wxml
deleted file mode 100644
index 98814b6..0000000
--- a/pages/getWifiList/getWifiList.wxml
+++ /dev/null
@@ -1,19 +0,0 @@
-
- 可用Wi-Fi
- 网络列表(设备暂不支持5GWi-Fi网络)
-
-
-
-
-
-
-
-
-
-
- {{item.ssid}}
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/getWifiList/getWifiList.wxss b/pages/getWifiList/getWifiList.wxss
deleted file mode 100644
index 66493d5..0000000
--- a/pages/getWifiList/getWifiList.wxss
+++ /dev/null
@@ -1,64 +0,0 @@
-page {
- display: flex;
- flex-direction: column;
- background-color: #ffffff;
-}
-
-.title {
- width: 100%;
- padding: 50rpx 55rpx 24rpx;
- box-sizing: border-box;
-}
-
-.title>view:first-of-type {
- color: #252535;
- width: 100%;
- height: 48rpx;
- font-size: 48rpx;
- font-weight: bold;
- line-height: 48rpx;
- margin-bottom: 60rpx;
-}
-
-.title>view:last-of-type {
- color: #B6B6B6;
- width: 100%;
- height: 30rpx;
- font-size: 30rpx;
- line-height: 30rpx;
-}
-
-.wifi {
- flex: 1;
- overflow: hidden;
-}
-
-.content {
- width: 100%;
- padding: 0 55rpx;
- box-sizing: border-box;
-}
-
-.content>view {
- width: 100%;
- height: 80rpx;
- margin: 30rpx 0;
- display: flex;
- flex-wrap: nowrap;
-}
-
-.content>view>view:nth-of-type(1) {
- width: 80rpx;
- height: 80rpx;
- margin-right: 24rpx;
-}
-
-.content>view>view:nth-of-type(2) {
- color: #252535;
- flex: 1;
- width: 0;
- height: 80rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 80rpx;
-}
\ No newline at end of file
diff --git a/pages/home/home.js b/pages/home/home.js
index a043385..e28a4ce 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -9,23 +9,25 @@ Page({
},
onShow() {
- let token = wx.getStorageSync("token") || null;
let userInfo = wx.getStorageSync("userInfo") || null;
+ let token = wx.getStorageSync("token") || null;
this.setData({
token: token,
- userInfo: userInfo
+ userInfo: userInfo,
+ deviceList: []
})
- if(token && userInfo) {
+ if(token) {
this.getDevice();
}
},
// 点击登录或注册
- openLoginOrReg() {
+ openLoginOrReg(e) {
+ let bol = e.currentTarget.dataset.bol;
wx.login({
success: (res) => {
if (res.code) {
- this.checkOpenIdLogin(res.code);
+ this.checkOpenIdLogin(res.code, bol);
} else {
wx.showToast({
icon: "none",
@@ -37,30 +39,21 @@ Page({
},
// 微信一键登录
- checkOpenIdLogin(code) {
+ checkOpenIdLogin(code, bol) {
let params = {
code: code
};
- $.ajax("weighingScale/checkOpenIdLogin", params, "POST", true, "登录中...").then((res) => {
+ $.ajax("weighingScale/checkOpenIdLogin", params, "POST", true, "加载中...").then((res) => {
wx.setStorageSync("userInfo", res.result.user);
wx.setStorageSync("token", res.result.token);
- if(res.result.token && res.result.user) {
- this.setData({
- token: res.result.token,
- userInfo: res.result.user
- })
- this.getDevice();
- } else {
- wx.showToast({
- icon: "none",
- title: "请先补全个人信息"
- })
- setTimeout(() => {
- wx.navigateTo({
- url: "/pages/userInfo/userInfo?initBluetooth=0&customerType=1"
- })
- }, 1500)
- }
+ this.setData({
+ token: res.result.token,
+ userInfo: res.result.user
+ })
+
+ if(bol) {
+ this.openSearchDevice();
+ }
})
},
@@ -76,20 +69,12 @@ Page({
// 添加设备
openSearchDevice() {
- // let token = this.data.token;
- // let userInfo = this.data.userInfo;
- // if (token && userInfo) {
- wx.navigateTo({
- url: "/pages/searchDevice/searchDevice"
- })
- // } else {
- // wx.showToast({
- // icon: "none",
- // title: "请先登录"
- // })
- // }
+ wx.navigateTo({
+ url: "/pages/searchDevice/searchDevice"
+ })
},
+ // 打开设备详情
openDeviceInfo() {
wx.navigateTo({
url: "/pages/deviceInfo/deviceInfo"
diff --git a/pages/home/home.wxml b/pages/home/home.wxml
index 5f4c38d..ed3e3d5 100644
--- a/pages/home/home.wxml
+++ b/pages/home/home.wxml
@@ -8,14 +8,14 @@
-
- {{userInfo.realname}}
+
+ {{userInfo ? userInfo.realname : '已登录'}}
- 登录/注册
+ 登录/注册
- 智能体脂秤
+ 智能蓝牙秤
注重更好的健康生活品质
@@ -31,12 +31,12 @@
请添加设备
添加设备后,解锁更多体验
-
+
添加设备
-
+ 添加设备
+
\ No newline at end of file
diff --git a/pages/home/home.wxss b/pages/home/home.wxss
index e19e4db..14e9028 100644
--- a/pages/home/home.wxss
+++ b/pages/home/home.wxss
@@ -86,7 +86,7 @@
.device>view:nth-of-type(1) {
width: 500rpx;
height: 500rpx;
- margin: 0 auto;
+ margin: 0 auto 16rpx;
}
.device>view:nth-of-type(2) {
diff --git a/pages/index/index.js b/pages/index/index.js
deleted file mode 100644
index 2066c4f..0000000
--- a/pages/index/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// index.js
-Page({})
diff --git a/pages/index/index.json b/pages/index/index.json
deleted file mode 100644
index aa3f1b0..0000000
--- a/pages/index/index.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {
- "navigation-bar": "/components/navigation-bar/navigation-bar"
- }
-}
\ No newline at end of file
diff --git a/pages/index/index.wxml b/pages/index/index.wxml
deleted file mode 100644
index 57cc6da..0000000
--- a/pages/index/index.wxml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- Weixin
-
-
diff --git a/pages/index/index.wxss b/pages/index/index.wxss
deleted file mode 100644
index 8c2b75a..0000000
--- a/pages/index/index.wxss
+++ /dev/null
@@ -1,10 +0,0 @@
-/**index.wxss**/
-page {
- height: 100vh;
- display: flex;
- flex-direction: column;
-}
-.scrollarea {
- flex: 1;
- overflow-y: hidden;
-}
diff --git a/pages/my/my.js b/pages/my/my.js
index 4f6667e..3d44098 100644
--- a/pages/my/my.js
+++ b/pages/my/my.js
@@ -3,6 +3,7 @@ import $ from "../../utils/request";
Page({
data: {
userInfo: null,
+ token: null,
deviceInfo: null
},
@@ -11,66 +12,44 @@ Page({
let token = wx.getStorageSync("token") || null;
let userInfo = wx.getStorageSync("userInfo") || null;
this.setData({
- userInfo: userInfo
+ userInfo: userInfo,
+ token: token
})
if(token && userInfo) {
this.getDevice();
}
- },
-
- // 打开用户信息
- openUserInfo() {
- if(this.data.userInfo) {
- wx.navigateTo({
- url: "/pages/userInfo/userInfo?initBluetooth=1&customerType=1"
- })
- } else {
- wx.login({
- success: (res) => {
- if (res.code) {
- this.checkOpenIdLogin(res.code);
- } else {
- wx.showToast({
- icon: "none",
- title: "登录失败,请稍后再试!",
- })
- }
- }
- })
- }
- },
-
- // 微信一键登录
- checkOpenIdLogin(code) {
- let params = {
- code: code
- };
- $.ajax("weighingScale/checkOpenIdLogin", params, "POST", true, "登录中...").then((res) => {
- wx.setStorageSync("userInfo", res.result.user);
- wx.setStorageSync("token", res.result.token);
- if(res.result.token && res.result.user) {
- this.setData({
- token: res.result.token,
- userInfo: res.result.user
- })
- this.getDevice();
- } else {
- wx.showToast({
- icon: "none",
- title: "请先补全个人信息"
- })
- setTimeout(() => {
- wx.navigateTo({
- url: "/pages/userInfo/userInfo?initBluetooth=0&customerType=1"
- })
- }, 1500)
- }
- })
- },
+ },
+
+ openLoginOrReg() {
+ if(this.data.userInfo === null && this.data.token === null) {
+ wx.login({
+ success: (res) => {
+ if (res.code) {
+ let params = {
+ code: res.code
+ };
+ $.ajax("weighingScale/checkOpenIdLogin", params, "POST", true, "登录中...").then((res) => {
+ wx.setStorageSync("userInfo", res.result.user);
+ wx.setStorageSync("token", res.result.token);
+ this.setData({
+ token: res.result.token,
+ userInfo: res.result.user
+ })
+ })
+ } else {
+ wx.showToast({
+ icon: "none",
+ title: "登录失败,请稍后再试!",
+ })
+ }
+ }
+ })
+ }
+ },
// 打开设备详情
openDeviceInfo() {
- if(this.data.userInfo) {
+ if(this.data.userInfo && this.data.token) {
let deviceInfo = this.data.deviceInfo;
if(deviceInfo) {
wx.navigateTo({
@@ -98,20 +77,6 @@ Page({
}
},
- // 打开成员管理
- openFamilyMembers() {
- if(this.data.userInfo) {
- wx.navigateTo({
- url: "/pages/familyMembers/familyMembers"
- })
- } else {
- wx.showToast({
- icon: "none",
- title: "请先登录"
- })
- }
- },
-
// 获取已经绑定的设备列表
getDevice() {
let params = {};
diff --git a/pages/my/my.wxml b/pages/my/my.wxml
index 608e284..d721db6 100644
--- a/pages/my/my.wxml
+++ b/pages/my/my.wxml
@@ -1,9 +1,14 @@
-
+
- {{userInfo && userInfo.realname ? userInfo.realname : '未登录'}}
+
+
+ {{userInfo ? userInfo.realname : '已登录'}}
+
+ 未登录
+
@@ -33,16 +38,7 @@
设备绑定
{{deviceInfo ? '已绑定('+ deviceInfo.equipmentName +')' : '未绑定'}}
-
-
-
-
- 成员管理
-
-
-
-
-
+
diff --git a/pages/my/my.wxss b/pages/my/my.wxss
index d2133f7..ec64727 100644
--- a/pages/my/my.wxss
+++ b/pages/my/my.wxss
@@ -75,7 +75,7 @@
width: 100%;
padding: 0 30rpx;
box-sizing: border-box;
- margin-bottom: 360rpx;
+ margin-bottom: 480rpx;
}
.content .arrowAfter::after {
diff --git a/pages/searchDevice/searchDevice.js b/pages/searchDevice/searchDevice.js
index 692d665..9201489 100644
--- a/pages/searchDevice/searchDevice.js
+++ b/pages/searchDevice/searchDevice.js
@@ -10,110 +10,136 @@ Page({
},
onLoad(options) {
- this.initBluetooth();
+ this.checkBluetoothPermissionAndInit();
},
onShow() {
if (this.data.getDeviceSetting) {
this.getDeviceSettingList();
- }
+ } else {
+ this.checkBluetoothPermissionAndInit();
+ }
},
- // 初始化蓝牙
- initBluetooth() {
- this.setData({
- initText: "正在初始化蓝牙..."
- })
- wx.openBluetoothAdapter({
- success: () => {
- this.setData({
- initText: "蓝牙初始化成功"
- })
- this.getDeviceSettingList();
- },
- fail: (err) => {
- this.setData({
- initText: "蓝牙初始化失败"
- })
- if (err.errCode === 10001) {
- wx.showModal({
- title: "提示",
- content: "请打开手机蓝牙",
- });
- }
- },
- });
- },
-
- // async refreshToken(fn, flag) {
- // let bodyToken = wx.getStorageSync('bodyToken');
- // let bodyTokenTime = wx.getStorageSync('bodyTokenTime');
- // if (!bodyToken || bodyTokenTime * 1000 < +new Date() || flag) {
- // let res = await app.globalData.ppScale.plugin.refreshToken({
- // url: "https://uniquehealth.lefuenergy.com",
- // data: {
- // "appKey": app.globalData.ppScale.options.key,
- // "appSecret": app.globalData.ppScale.options.secret
- // }
- // });
- // if (res.data.code == 200) {
- // wx.setStorageSync('bodyToken', res.data.data.token);
- // wx.setStorageSync('bodyTokenTime', res.data.data.expireTime);
- // fn();
- // }
- // } else {
- // fn();
- // }
- // },
- // getDeviceSettingList() {
- // this.setData({
- // initText: "获取设备配置中..."
- // })
- // let bodyToken = wx.getStorageSync("bodyToken");
- // app.globalData.ppScale.plugin.getDeviceSettingList({
- // url: "https://uniquehealth.lefuenergy.com",
- // data: {
- // appKey: app.globalData.ppScale.options.key
- // },
- // header: {
- // "token": bodyToken,
- // "Accept-Language": wx.getStorageSync("lang") || 'zh'
- // }
- // }).then((res) => {
- // if (res.data.code == 200) {
- // this.setData({
- // initText: "设备搜索中..."
- // });
- // app.globalData.ppScale.plugin.Blue.setDeviceSetting(res.data.data);
- // app.globalData.ppScale.device.setting = res.data.data;
- // let deviceNames = res.data.data.map(item => item.deviceName);
- // app.globalData.ppScale.plugin.Blue.start(deviceNames, false);
- // app.globalData.ppScale.plugin.bus.subscribe("devicesList", (res_) => {
- // console.log("searchDevice ===> devicesList", res_);
- // this.setData({
- // getDeviceSetting: false,
- // initText: "设备搜索完成"
- // });
- // app.globalData.ppScale.plugin.Blue.stopBluetoothDevicesDiscovery();
- // app.globalData.ppScale.device.list = res_;
- // app.globalData.ppScale.device.connection = res_[0];
- // wx.navigateTo({
- // url: "/pages/connectedDevice/connectedDevice"
- // })
- // });
- // } else if (res.data.code == 401 || res.data.code == 4008) {
- // this.refreshToken(() => {
- // this.getDeviceSettingList();
- // }, true);
- // }
- // });
- // },
+ checkBluetoothPermissionAndInit() {
+ this.setData({
+ initText: "正在检查蓝牙权限..."
+ });
+ wx.getSetting({
+ success: (res) => {
+ if (res.authSetting['scope.bluetooth']) {
+ this.openBluetoothAdapter();
+ } else {
+ wx.authorize({
+ scope: 'scope.bluetooth',
+ success: () => {
+ this.openBluetoothAdapter();
+ },
+ fail: (err) => {
+ this.setData({
+ initText: "蓝牙权限被拒绝。"
+ });
+ wx.showModal({
+ title: '提示',
+ content: '您拒绝了蓝牙权限,将无法连接蓝牙秤。是否前往设置开启?',
+ confirmText: '去开启',
+ cancelText: '不开启',
+ success: (modalRes) => {
+ if (modalRes.confirm) {
+ wx.openSetting({
+ success: (settingRes) => {
+ console.log('openSetting success', settingRes);
+ },
+ fail: (settingErr) => {
+ wx.navigateBack({
+ delta: 1
+ });
+ }
+ });
+ } else {
+ wx.navigateBack({
+ delta: 1
+ });
+ }
+ }
+ });
+ }
+ });
+ }
+ },
+ fail: (err) => {
+ this.setData({
+ initText: "获取权限设置失败。"
+ });
+ wx.showToast({
+ title: '获取权限设置失败',
+ icon: 'none'
+ });
+ wx.navigateBack({
+ delta: 1
+ });
+ }
+ });
+ },
+
+ openBluetoothAdapter() {
+ this.setData({
+ initText: "正在初始化蓝牙..."
+ });
+ wx.openBluetoothAdapter({
+ success: () => {
+ this.setData({
+ initText: "蓝牙初始化成功"
+ });
+ this.getDeviceSettingList();
+ },
+ fail: (err) => {
+ this.setData({
+ initText: "蓝牙初始化失败。"
+ });
+ if (err.errCode === 10001) {
+ wx.showModal({
+ title: "提示",
+ content: "请确保手机蓝牙已开启。",
+ showCancel: false,
+ success: () => {
+ wx.navigateBack({
+ delta: 1
+ });
+ }
+ });
+ } else if (err.errMsg && err.errMsg.includes('permission denied')) {
+ wx.showModal({
+ title: '提示',
+ content: '蓝牙权限仍被拒绝,无法使用蓝牙功能。',
+ showCancel: false,
+ success: () => {
+ wx.navigateBack({
+ delta: 1
+ });
+ }
+ });
+ } else {
+ wx.showToast({
+ title: `蓝牙适配器打开失败: ${err.errMsg || err.errCode}`,
+ icon: 'none',
+ success: () => {
+ wx.navigateBack({
+ delta: 1
+ });
+ }
+ });
+ }
+ },
+ });
+ },
getDeviceSettingList() {
// app.globalData.ppScale.plugin.Blue.visibleLog(true);
this.setData({
initText: "设备搜索中..."
});
+ app.globalData.ppScale.device.list = [];
let seviceList = app.globalData.ppScale.device.setting;
app.globalData.ppScale.plugin.Blue.setDeviceSetting(seviceList);
let deviceNames = seviceList.map(item => item.deviceName);
@@ -125,12 +151,7 @@ Page({
devicesList: res
});
this.selectDevice();
- });
-
- app.globalData.ppScale.plugin.bus.subscribe("devicesModel", (res) => {
- console.log("searchDevice ===》devicesModel", res);
- app.globalData.ppScale.device.mac = res.deviceMac;
- });
+ });
},
selectDevice() {
@@ -141,30 +162,10 @@ Page({
setTimeout(() => {
app.globalData.ppScale.plugin.Blue.stopBluetoothDevicesDiscovery();
app.globalData.ppScale.device.list = this.data.devicesList;
- if(this.data.devicesList.length === 1) {
- app.globalData.ppScale.device.connection = this.data.devicesList[0];
- wx.redirectTo({
- url: "/pages/connectedDevice/connectedDevice"
- })
- } else {
- let itemLists = this.data.devicesList.map(item => item.name);
- wx.showActionSheet({
- itemList: itemLists,
- alertText: "请选择你要使用的设备",
- success: (res) => {
- app.globalData.ppScale.device.connection = this.data.devicesList[res.tapIndex];
- wx.redirectTo({
- url: "/pages/connectedDevice/connectedDevice"
- })
- },
- fail: () => {
- wx.navigateBack({
- delta: 1
- })
- }
- })
- }
- }, 3000);
+ wx.redirectTo({
+ url: "/pages/configureDevice/configureDevice"
+ })
+ }, 1000);
}
}
})
\ No newline at end of file
diff --git a/pages/setNetwork/setNetwork.js b/pages/setNetwork/setNetwork.js
deleted file mode 100644
index d1c071d..0000000
--- a/pages/setNetwork/setNetwork.js
+++ /dev/null
@@ -1,83 +0,0 @@
-const app = getApp();
-import $ from "../../utils/request";
-
-Page({
- onLoad(options) {
- let ssid = options.ssid;
- let password = options.password;
- app.globalData.ppScale.activeProtocol.dataConfigNetWork({
- domain: app.globalData.ppScale.domain,
- ssid: options.ssid,
- password: options.password
- }, (res) => {
- console.log("setNetwork.js dataConfigNetWork", res);
-
- if(res === 23) {
- app.globalData.ppScale.wifi.ssid = ssid;
- app.globalData.ppScale.wifi.password = password;
-
- let mac = app.globalData.ppScale.device.mac;
- let deviceId = app.globalData.ppScale.device.connection.deviceId;
- if(mac && deviceId) {
- let scaleDeviceId = mac.replace(/:/g, '');
- let params = {
- equipmentName: app.globalData.ppScale.device.name,
- scaleDeviceId: scaleDeviceId,
- deviceId: deviceId
- };
- $.ajax("weighingScale/binding/device", params, "POST").then(res => {
- if (res.success) {
- app.globalData.ppScale.activeProtocol.codeSetBindingState((res) => {
- console.log("setNetwork.js codeSetBindingState", res);
-
- wx.navigateTo({
- url: "/pages/setNetworkSuccessful/setNetworkSuccessful"
- })
- })
- } else {
- wx.showToast({
- icon: "none",
- title: res.message
- })
- setTimeout(() => {
- wx.switchTab({
- url: "/pages/home/home"
- })
- }, 1500)
- }
- }).catch(err => {
- wx.showToast({
- icon: "none",
- title: err.message
- })
- setTimeout(() => {
- wx.switchTab({
- url: "/pages/home/home"
- })
- }, 1500)
- })
- } else {
- wx.showToast({
- icon: "none",
- title: "Mac 地址与 deviceId 获取失败,请重新绑定"
- })
- setTimeout(() => {
- wx.switchTab({
- url: "/pages/home/home"
- })
- }, 1500)
- }
- } else {
- wx.showToast({
- icon: "none",
- title: "配网失败,错误码:" + res
- })
- setTimeout(() => {
- wx.switchTab({
- url: "/pages/home/home"
- })
- }, 1500)
- }
- })
- }
-})
\ No newline at end of file
diff --git a/pages/setNetwork/setNetwork.json b/pages/setNetwork/setNetwork.json
deleted file mode 100644
index 754b6a9..0000000
--- a/pages/setNetwork/setNetwork.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "正在配网",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/setNetwork/setNetwork.wxml b/pages/setNetwork/setNetwork.wxml
deleted file mode 100644
index d5908ce..0000000
--- a/pages/setNetwork/setNetwork.wxml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- 已链接,配网中...
- 请持续站在秤上,耐心等待
-
-
-
- 手机尽量靠近设备(2米以内)
- Wi-Fi指示灯闪烁,处于配网状态
- Wi-Fi指示灯长亮为已连接状态
-
\ No newline at end of file
diff --git a/pages/setNetwork/setNetwork.wxss b/pages/setNetwork/setNetwork.wxss
deleted file mode 100644
index d15b18d..0000000
--- a/pages/setNetwork/setNetwork.wxss
+++ /dev/null
@@ -1,54 +0,0 @@
-page {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- padding: 90rpx 60rpx 120rpx;
- background-color: #ffffff;
-}
-
-.icon {
- width: 100%;
-}
-
-.icon>view:nth-of-type(1) {
- width: 565rpx;
- height: 500rpx;
- margin: 0 auto;
-}
-
-.icon>view:nth-of-type(2) {
- color: #1385FA;
- width: 100%;
- height: 36rpx;
- font-size: 36rpx;
- font-weight: bold;
- line-height: 36rpx;
- text-align: center;
- margin-bottom: 28rpx;
-}
-
-.icon>view:nth-of-type(3) {
- color: #808080;
- width: 100%;
- height: 30rpx;
- font-size: 30rpx;
- text-align: center;
- line-height: 30rpx;
-}
-
-.describe {
- width: 100%;
-}
-
-.describe>view {
- color: #808080;
- width: 100%;
- font-size: 26rpx;
- font-weight: bold;
- line-height: 26rpx;
- margin-bottom: 26rpx;
-}
-
-.describe>view:last-of-type {
- margin-bottom: 0;
-}
\ No newline at end of file
diff --git a/pages/setNetworkSuccessful/setNetworkSuccessful.js b/pages/setNetworkSuccessful/setNetworkSuccessful.js
deleted file mode 100644
index 789f741..0000000
--- a/pages/setNetworkSuccessful/setNetworkSuccessful.js
+++ /dev/null
@@ -1,128 +0,0 @@
-const app = getApp();
-import $ from "../../utils/request";
-
-Page({
- data: {
- userInfo: null,
- subUser: {
- i: 0,
- data: []
- },
-
- ssid: ""
- },
-
- onLoad(options) {
- this.setData({
- userInfo: wx.getStorageSync("userInfo"),
- ssid: app.globalData.ppScale.wifi.ssid
- });
- this.getSubUser();
- },
-
- completeClick() {
- let userInfo = this.data.userInfo;
- // 设置主用户时userID为小程序的用户ID,memberID为空
- app.globalData.ppScale.activeProtocol.dataSyncUserInfo({
- userID: userInfo.id,
- userName: userInfo.realname,
- memberID: "",
- age: this.getAge(userInfo.birthday), //
- gender: userInfo.sex, //
- height: userInfo.height, //
- isAthleteMode: 0,
- currentWeight: userInfo.weight, //
- deviceHeaderIndex: 0,
- targetWeight: "",
- idealWeight: "",
- recentData: [],
- }, (res) => {
- console.log("dataSyncUserInfo", res);
-
- if(this.data.subUser.data && this.data.subUser.data.length) {
- wx.showLoading({
- title: "正在同步用户信息,请稍等...",
- mask: true
- });
- this.setSubUser();
- } else {
- this.resetDevice();
- app.globalData.ppScale.plugin.Blue.stop();
- wx.switchTab({
- url: "/pages/home/home"
- })
- }
- })
- },
-
- setSubUser() {
- let userInfo = this.data.userInfo;
- let i = this.data.subUser.i;
- let subUser = this.data.subUser.data;
- if(i < subUser.length) {
- app.globalData.ppScale.activeProtocol.dataSyncUserInfo({
- userID: userInfo.id,
- userName: subUser[i].realname,
- memberID: subUser[i].id,
- age: this.getAge(subUser[i].birthday), //
- gender: subUser[i].sex, //
- height: subUser[i].height, //
- isAthleteMode: 0,
- currentWeight: subUser[i].weight, //
- deviceHeaderIndex: 0,
- targetWeight: "",
- idealWeight: "",
- recentData: [],
- }, (res) => {
- console.log("dataSyncSubUserInfo", res);
- this.setData({
- ['subUser.i']: i + 1
- })
- this.setSubUser();
- })
- } else {
- this.resetDevice();
- app.globalData.ppScale.plugin.Blue.stop();
- wx.hideLoading();
- wx.switchTab({
- url: "/pages/home/home"
- })
- }
- },
-
- resetDevice() {
- app.globalData.ppScale.device = {
- list: [],
- mac: null,
- name: "",
- connection: null
- }
- },
-
- // 获取家庭成员列表
- getSubUser() {
- let params = {};
- $.ajax("weighingScale/list/subUser", params, "GET", true, "正在获取成员列表...").then(res => {
- this.setData({
- ['subUser.data']: res.result
- })
- })
- },
-
- // 根据生日获取年龄
- getAge(birthDateString) {
- const birthDate = new Date(birthDateString);
- const today = new Date();
-
- let age = today.getFullYear() - birthDate.getFullYear();
- const monthDiff = today.getMonth() - birthDate.getMonth();
- const dayDiff = today.getDate() - birthDate.getDate();
-
- // 如果当前月份小于出生月份,或者同月但当前日期小于出生日期,年龄需要减 1
- if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
- age--;
- }
-
- return age;
- }
-})
\ No newline at end of file
diff --git a/pages/setNetworkSuccessful/setNetworkSuccessful.json b/pages/setNetworkSuccessful/setNetworkSuccessful.json
deleted file mode 100644
index 84c4caf..0000000
--- a/pages/setNetworkSuccessful/setNetworkSuccessful.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "绑定成功",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/setNetworkSuccessful/setNetworkSuccessful.wxml b/pages/setNetworkSuccessful/setNetworkSuccessful.wxml
deleted file mode 100644
index 25db03c..0000000
--- a/pages/setNetworkSuccessful/setNetworkSuccessful.wxml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- 配网成功
-
-
-
- 当前设备配置Wi-Fi
-
-
-
-
- {{ssid}}
-
-
-
-
-
-
-完成
\ No newline at end of file
diff --git a/pages/setNetworkSuccessful/setNetworkSuccessful.wxss b/pages/setNetworkSuccessful/setNetworkSuccessful.wxss
deleted file mode 100644
index ec46075..0000000
--- a/pages/setNetworkSuccessful/setNetworkSuccessful.wxss
+++ /dev/null
@@ -1,93 +0,0 @@
-page {
- width: 100%;
- padding: 200rpx 85rpx 0;
- box-sizing: border-box;
- background-color: #ffffff;
-}
-
-.icon {
- width: 100%;
- margin-bottom: 120rpx;
-}
-
-.icon>view:first-of-type {
- width: 360rpx;
- height: 295rpx;
- margin: 0 auto 50rpx;
-}
-
-.icon>view:last-of-type {
- color: #252535;
- width: 100%;
- height: 40rpx;
- font-size: 40rpx;
- font-weight: bold;
- line-height: 40rpx;
- text-align: center;
-}
-
-.info {
- width: 100%;
- margin-bottom: 380rpx;
-}
-
-.info>view:first-of-type {
- color: #B6B6B6;
- width: 100%;
- height: 30rpx;
- font-size: 30rpx;
- line-height: 30rpx;
- margin-bottom: 40rpx;
-}
-
-.info>view:last-of-type {
- width: 100%;
- height: 80rpx;
- margin: 30rpx 0;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
-}
-
-.info>view:last-of-type>view:nth-of-type(1) {
- width: 80rpx;
- height: 80rpx;
- margin-right: 24rpx;
-}
-
-.info>view:last-of-type>view:nth-of-type(2) {
- color: #252535;
- flex: 1;
- width: 0;
- height: 80rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 80rpx;
-}
-
-.info>view:last-of-type>view:nth-of-type(3) {
- width: 32rpx;
- height: 32rpx;
-}
-
-.describe {
- color: #B6B6B6;
- width: 100%;
- height: 26rpx;
- font-size: 28rpx;
- line-height: 28rpx;
- text-align: center;
- margin-bottom: 46rpx;
-}
-
-.btn {
- color: #FFFFFF;
- width: 100%;
- height: 88rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 88rpx;
- text-align: center;
- border-radius: 44rpx;
- background-color: #1385FA;
-}
\ No newline at end of file
diff --git a/pages/setWifiPassword/setWifiPassword.js b/pages/setWifiPassword/setWifiPassword.js
deleted file mode 100644
index ce940f2..0000000
--- a/pages/setWifiPassword/setWifiPassword.js
+++ /dev/null
@@ -1,35 +0,0 @@
-const app = getApp();
-
-Page({
- data: {
- type: true,
-
- wifiInfo: null,
- password: ""
- },
-
- onLoad(options) {
- this.setData({
- wifiInfo: JSON.parse(options.item)
- })
- },
-
- passwordInput(e) {
- this.setData({
- password: e.detail.value
- })
- },
-
- inputTypeChange() {
- this.setData({
- type: !this.data.type
- })
- },
-
- // 打开配网
- openSetNetwork() {
- wx.navigateTo({
- url: "/pages/setNetwork/setNetwork?ssid=" + this.data.wifiInfo.ssid + "&password=" + this.data.password
- })
- }
-})
\ No newline at end of file
diff --git a/pages/setWifiPassword/setWifiPassword.json b/pages/setWifiPassword/setWifiPassword.json
deleted file mode 100644
index 4200326..0000000
--- a/pages/setWifiPassword/setWifiPassword.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "输入Wi-Fi密码",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/setWifiPassword/setWifiPassword.wxml b/pages/setWifiPassword/setWifiPassword.wxml
deleted file mode 100644
index 536fe6d..0000000
--- a/pages/setWifiPassword/setWifiPassword.wxml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- {{wifiInfo.ssid}}
-
-
- 密码
-
-
-
-
-
-
-
-
-
-连接
\ No newline at end of file
diff --git a/pages/setWifiPassword/setWifiPassword.wxss b/pages/setWifiPassword/setWifiPassword.wxss
deleted file mode 100644
index ebd4598..0000000
--- a/pages/setWifiPassword/setWifiPassword.wxss
+++ /dev/null
@@ -1,81 +0,0 @@
-page {
- padding: 55rpx 55rpx 0;
- background-color: #ffffff;
-}
-
-.form {
- width: 100%;
- margin-bottom: 64rpx;
-}
-
-.form>view {
- width: 100%;
- height: 96rpx;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- padding: 0 24rpx;
- box-sizing: border-box;
- border-radius: 16rpx;
- background-color: #F6F6F6;
-}
-
-.form>view:first-of-type {
- margin-bottom: 32rpx;
-}
-
-.form>view>view:nth-of-type(1) {
- color: #252535;
- width: 100rpx;
- height: 96rpx;
- line-height: 96rpx;
- font-size: 32rpx;
- font-weight: bold;
-}
-
-.form>view:first-of-type>view:nth-of-type(1) {
- padding: 24rpx 45rpx 24rpx 7rpx;
- box-sizing: border-box;
- display: flex;
- align-items: center;
-}
-
-.form>view>view:nth-of-type(2) {
- color: #252535;
- flex: 1;
- width: 0;
- height: 96rpx;
- font-size: 32rpx;
- line-height: 96rpx;
-}
-
-.form>view>view:nth-of-type(2) input {
- color: #252535;
- width: 100%;
- height: 96rpx;
- font-size: 32rpx;
- line-height: 96rpx;
-}
-
-.placeholderClass {
- color: #B6B6B6;
- font-size: 32rpx;
-}
-
-.form>view>view:nth-of-type(3) {
- width: 56rpx;
- height: 56rpx;
-}
-
-.btn {
- color: #FFFFFF;
- width: 580rpx;
- height: 88rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 88rpx;
- margin: 0 auto;
- text-align: center;
- border-radius: 44rpx;
- background-color: #1385FA;
-}
\ No newline at end of file
diff --git a/pages/userInfo/userInfo.js b/pages/userInfo/userInfo.js
deleted file mode 100644
index d752193..0000000
--- a/pages/userInfo/userInfo.js
+++ /dev/null
@@ -1,553 +0,0 @@
-const app = getApp();
-import $ from "../../utils/request";
-
-Page({
- data: {
- deviceConnect: false,
-
- initBluetooth: "0",
- customerType: "1",
- deviceInfo: null,
- seviceList: [],
- userInfo: null,
-
- id: "",
- realname: "",
- sex: {
- index: null,
- data: [{
- id: 1,
- name: '男'
- }, {
- id: 2,
- name: '女'
- }]
- },
- birthday: {
- label: "1980年01月01日",
- value: "1980-01-01"
- },
- phone: "",
- height: {
- index: 50,
- data: Array.from({ length: 200 - 120 + 1 }, (_, i) => i + 120)
- },
- weight: {
- index: 20,
- data: Array.from({ length: 100 - 50 + 1 }, (_, i) => i + 50)
- },
-
- connectedDevice: {
- code: "",
- color: "",
- message: ""
- }
- },
-
- onLoad(options) {
- // initBluetooth 是否初始化蓝牙和设备 1 是 / 0 否
- // customerType 用户类型 1 自己 / 0 他人
- // id 用户ID 当customerType为0时,家庭成员的用户ID / 为1时始终为空字符串
- this.setData({
- id: options.id ? options.id : null,
- initBluetooth: options.initBluetooth,
- customerType: options.customerType,
- })
- if(options.customerType === "0") {
- wx.setNavigationBarTitle({
- title: options.id ? '编辑成员档案' : '新增成员档案'
- })
- if(options.id) {
- this.subUserInfo()
- }
- } else {
- let userInfo = wx.getStorageSync("userInfo") || null;
- if (userInfo && options.initBluetooth === "1") {
- let [year, month, day] = userInfo.birthday.split("-");
- this.setData({
- userInfo: userInfo,
- realname: userInfo.realname,
- ["sex.index"]: this.data.sex.data.findIndex(item => {return item.id === userInfo.sex}),
- birthday: {
- label: year + "年" + month + "月" + day + "日",
- value: userInfo.birthday
- },
- phone: userInfo.phone,
- ["height.index"]: this.data.height.data.findIndex(item => {return item === userInfo.height}),
- ["weight.index"]: this.data.weight.data.findIndex(item => {return item === userInfo.weight}),
- })
- }
- }
- if(options.initBluetooth === "1") {
- this.initBluetooth();
-
- app.globalData.ppScale.plugin.bus.subscribe("deviceConnect", (res) => {
- console.log('userInfo ===》deviceConnect', res);
- this.setData({
- connectedDevice: {
- code: "",
- color: "#2AC79F",
- message: "等待设备回应"
- }
- })
-
- app.globalData.ppScale.plugin.ScaleAction.startDataProgress();
- app.globalData.ppScale.activeProtocol = app.globalData.ppScale.plugin.ScaleAction.getActiveProtocol();
-
- app.globalData.ppScale.activeProtocol.codeUpdateMTU((res) => {
- console.log("userInfo ===》codeUpdateMTU", res);
-
- this.setData({
- deviceConnect: true,
- connectedDevice: {
- code: "",
- color: "#2AC79F",
- message: "已连接"
- }
- })
- });
- });
- }
- },
-
- // 获取已经绑定的设备列表
- getDevice() {
- this.setData({
- connectedDevice: {
- code: "",
- color: "#808080",
- message: "获取设备列表"
- }
- })
- let params = {};
- $.ajax("weighingScale/list/device", params, "GET", false).then((res) => {
- if(res.result && res.result.length) {
- this.setData({
- deviceInfo: res.result[0]
- })
- this.getDeviceSettingList();
- } else {
- this.setData({
- connectedDevice: {
- code: "",
- color: "#808080",
- message: "未绑定设备"
- }
- })
- wx.showModal({
- title: "提示",
- content: "当前暂未绑定设备,需要绑定吗?",
- confirmText: "去绑定",
- success: (res) => {
- if (res.confirm) {
- wx.navigateTo({
- url: "/pages/searchDevice/searchDevice"
- })
- } else if (res.cancel) {
- wx.navigateBack({
- delta: 1
- })
- }
- }
- })
- }
- })
- },
-
- // 初始化蓝牙
- initBluetooth() {
- this.setData({
- connectedDevice: {
- code: "",
- color: "#808080",
- message: "初始化蓝牙"
- }
- })
- wx.openBluetoothAdapter({
- success: () => {
- this.getDevice();
- },
- fail: (err) => {
- if (err.errCode === 10001) {
- this.setData({
- connectedDevice: {
- code: "",
- color: "#F24439",
- message: "初始化蓝牙失败"
- }
- })
- wx.showModal({
- title: "提示",
- content: "请打开手机蓝牙",
- });
- }
- },
- });
- },
-
- getDeviceSettingList() {
- this.setData({
- connectedDevice: {
- code: "",
- color: "#808080",
- message: "获取配置信息"
- }
- })
- let seviceList = [];
- app.globalData.ppScale.device.setting.map(item => {
- if(this.data.deviceInfo && this.data.deviceInfo.type === item.deviceName) {
- seviceList.push(item);
- }
- })
- this.setData({
- seviceList: seviceList,
- connectedDevice: {
- code: "",
- color: "#2AC79F",
- message: "配置获取成功"
- }
- })
- if(seviceList && seviceList.length) {
- app.globalData.ppScale.plugin.Blue.setDeviceSetting(seviceList);
- this.setData({
- connectedDevice: {
- code: "",
- color: "#808080",
- message: "开始搜索设备"
- }
- })
- app.globalData.ppScale.plugin.Blue.start(seviceList[0].deviceName, false);
- app.globalData.ppScale.plugin.bus.subscribe("devicesList", (res) => {
- console.log("deviceInfo ===> devicesList", res);
-
- let fIndex = res.findIndex(item => item.deviceId === this.data.deviceInfo.deviceId);
- this.setData({
- connectedDevice: {
- code: "",
- color: "#808080",
- message: "设备搜索中"
- }
- })
- if (fIndex >= 0) {
- app.globalData.ppScale.plugin.Blue.stopBluetoothDevicesDiscovery();
- this.setData({
- connectedDevice: {
- code: "",
- color: "#2AC79F",
- message: "连接中"
- }
- })
- app.globalData.ppScale.plugin.Blue.createBLEConnection(res[fIndex]);
- return;
- }
- });
- }
- },
-
- // 姓名输入
- realnameInput(e) {
- let realname = e.detail.value.replace(/\s+/g, '');
- this.setData({
- realname: realname
- })
- },
-
- // 性别选择
- sexChange(e) {
- let sex = e.detail.value;
- console.log(sex);
- this.setData({
- ['sex.index']: e.detail.value
- })
- if(this.data.height.index === null) {
- this.setData({
- ['height.index']: sex == 0 ? 50 : 40
- })
- }
- if(this.data.weight.index === null) {
- this.setData({
- ['weight.index']: sex == 0 ? 20 : 10
- })
- }
- },
-
- // 生日选择
- birthdayChange(e) {
- let v = e.detail.value;
- let [year, month, day] = v.split("-");
- this.setData({
- birthday: {
- label: year + "年" + month + "月" + day + "日",
- value: v
- }
- })
- },
-
- // 获取手机号
- getPhoneNumber(e) {
- let params = {
- code: e.detail.code,
- thirdId: wx.getStorageSync("userInfo").thirdId
- };
- $.ajax("weighingScale/getPhone", params, "POST").then(res => {
- wx.setStorageSync("userInfo", res.result.user);
- wx.setStorageSync("token", res.result.token);
- this.setData({
- phone: res.result.user.phone
- })
- })
- },
-
- // 身高选择
- heightChange(e) {
- this.setData({
- ['height.index']: e.detail.value
- })
- },
-
- // 体重选择
- weightChange(e) {
- this.setData({
- ['weight.index']: e.detail.value
- })
- },
-
- // 提交判断
- submit() {
- let realname = this.data.realname;
- let sex = this.data.sex;
- let birthday = this.data.birthday;
- let phone = this.data.phone;
- let height = this.data.height;
- let weight = this.data.weight;
- if(this.data.initBluetooth === "1" && !this.data.deviceConnect) {
- wx.showToast({
- icon: "none",
- title: "请靠近设备并点亮后再试"
- })
- app.globalData.ppScale.plugin.Blue.start(this.data.seviceList[0].deviceName, false);
- return false;
- }
- if(!realname) {
- wx.showToast({
- icon: "none",
- title: "姓名不能为空"
- })
- return false;
- }
- if(sex.index === null) {
- wx.showToast({
- icon: "none",
- title: "性别不能为空"
- })
- return false;
- }
- if(!birthday.value) {
- wx.showToast({
- icon: "none",
- title: "生日不能为空"
- })
- return false;
- }
- if(this.data.customerType === "1" && !phone) {
- wx.showToast({
- icon: "none",
- title: "手机号不能为空"
- })
- return false;
- }
- if(height.index === null) {
- wx.showToast({
- icon: "none",
- title: "身高不能为空"
- })
- return false;
- }
- if(weight.index === null) {
- wx.showToast({
- icon: "none",
- title: "体重不能为空"
- })
- return false;
- }
- if(this.data.customerType === "1") {
- this.submitMe({
- realname: realname,
- sex: sex.data[sex.index].id,
- birthday: birthday.value,
- phone: phone,
- height: height.data[height.index],
- weight: weight.data[weight.index]
- });
- } else {
- this.submitUser({
- id: this.data.id,
- realname: realname,
- sex: sex.data[sex.index].id,
- birthday: birthday.value,
- height: height.data[height.index],
- weight: weight.data[weight.index]
- });
- }
- },
-
- // 提交自己的信息
- submitMe(params) {
- $.ajax("weighingScale/edit/user", params, "POST", true, "保存中...").then(res => {
- $.ajax("weighingScale/select/user", {}, "GET", true, "更新用户信息中...").then(res_ => {
- wx.setStorageSync("userInfo", res_.result);
- wx.showToast({
- icon: "none",
- title: res.message
- })
- if(this.data.initBluetooth === "1") {
- app.globalData.ppScale.activeProtocol.dataSyncUserInfo({
- userID: res_.result.id,
- userName: res_.result.realname,
- memberID: "",
- age: this.getAge(res_.result.birthday), //
- gender: res_.result.sex, //
- height: res_.result.height, //
- isAthleteMode: 0,
- currentWeight: res_.result.weight, //
- deviceHeaderIndex: 0,
- targetWeight: "",
- idealWeight: "",
- recentData: [],
- }, (res) => {
- console.log("dataSyncUserInfo", res)
- app.globalData.ppScale.plugin.Blue.stop();
- setTimeout(() => {
- wx.navigateBack({
- delta: 1
- })
- }, 1500)
- })
- } else {
- setTimeout(() => {
- wx.navigateBack({
- delta: 1
- })
- }, 1500)
- }
- })
- })
- },
-
- // 提交家庭成员的信息
- submitUser(params) {
- $.ajax("weighingScale/edit/subUser", params, "POST", true, "保存中...").then(res => {
- wx.showToast({
- icon: "none",
- title: res.message
- })
- app.globalData.ppScale.activeProtocol.dataSyncUserInfo({
- userID: wx.getStorageSync("userInfo").id,
- userName: params.realname,
- memberID: res.result,
- age: this.getAge(params.birthday), //
- gender: params.sex, //
- height: params.height, //
- isAthleteMode: 0,
- currentWeight: params.weight, //
- deviceHeaderIndex: 0,
- targetWeight: "",
- idealWeight: "",
- recentData: [],
- }, (res) => {
- console.log("dataSyncUserInfo", res)
- app.globalData.ppScale.plugin.Blue.stop();
- setTimeout(() => {
- wx.navigateBack({
- delta: 1
- })
- }, 1500)
- })
- })
- },
-
- // 删除家庭成员
- delUser() {
- if(this.data.deviceConnect) {
- wx.showModal({
- title: "提示",
- content: "你要定要删除此成员吗?",
- success: (res) => {
- if (res.confirm) {
- let params = {
- id: this.data.id
- };
- console.log(params);
- $.ajax("weighingScale/del/subUser", params, "POST", true, "删除中...").then(res => {
- wx.showToast({
- icon: "none",
- title: res.message
- })
- app.globalData.ppScale.activeProtocol.dataDeleteUser({
- userID: wx.getStorageSync("userInfo").id,
- memberID: this.data.id,
- }, (res) => {
- console.log("dataDeleteUser", res);
- app.globalData.ppScale.plugin.Blue.stop();
- setTimeout(() => {
- wx.navigateBack({
- delta: 1
- })
- }, 1500);
- })
- })
- }
- }
- })
- } else {
- wx.showToast({
- icon: "none",
- title: "删除失败,请靠近设备并点亮后再试"
- })
- app.globalData.ppScale.plugin.Blue.start(this.data.seviceList[0].deviceName, false);
- }
- },
-
- // 获取家庭成员信息详情
- subUserInfo() {
- let params = {
- userId: this.data.id
- };
- $.ajax("weighingScale/select/subUser", params, "GET", false).then(res => {
- let [year, month, day] = res.result.birthday.split("-");
- this.setData({
- realname: res.result.realname,
- ["sex.index"]: this.data.sex.data.findIndex(item => {return item.id === res.result.sex}),
- birthday: {
- label: year + "年" + month + "月" + day + "日",
- value: res.result.birthday
- },
- ["height.index"]: this.data.height.data.findIndex(item => {return item === res.result.height}),
- ["weight.index"]: this.data.weight.data.findIndex(item => {return item === res.result.weight}),
- })
- })
- },
-
- // 根据生日获取年龄
- getAge(birthDateString) {
- const birthDate = new Date(birthDateString);
- const today = new Date();
-
- let age = today.getFullYear() - birthDate.getFullYear();
- const monthDiff = today.getMonth() - birthDate.getMonth();
- const dayDiff = today.getDate() - birthDate.getDate();
-
- // 如果当前月份小于出生月份,或者同月但当前日期小于出生日期,年龄需要减 1
- if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
- age--;
- }
-
- return age;
- },
-
- onUnload() {
- if(this.data.initBluetooth === "1") {
- app.globalData.ppScale.plugin.Blue.stop();
- }
- }
-})
\ No newline at end of file
diff --git a/pages/userInfo/userInfo.json b/pages/userInfo/userInfo.json
deleted file mode 100644
index 6becaf9..0000000
--- a/pages/userInfo/userInfo.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "usingComponents": {},
- "navigationBarTitleText": "用户档案",
- "navigationBarBackgroundColor": "#F5F7FB",
- "disableScroll": true
-}
\ No newline at end of file
diff --git a/pages/userInfo/userInfo.wxml b/pages/userInfo/userInfo.wxml
deleted file mode 100644
index 9f311b6..0000000
--- a/pages/userInfo/userInfo.wxml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- {{deviceInfo && deviceInfo.equipmentName ? deviceInfo.equipmentName : '获取中...'}}
- 型号:{{deviceInfo && deviceInfo.type ? deviceInfo.type : '获取中...'}}
-
-
-
- {{connectedDevice.message}}
-
-
-
-
-
-
- 姓名
-
-
-
-
-
- 性别
-
-
- {{sex.index === null ? '请选择性别' : sex.data[sex.index].name}}
-
-
-
-
- 生日
-
-
- {{birthday.value ? birthday.label : '请选择生日'}}
-
-
-
-
-
- 手机号
-
-
- {{phone}}
-
-
-
-
-
-
-
-
- 身高
-
-
- {{height.index === null ? '请选择身高' : height.data[height.index] + ' cm'}}
-
-
-
-
- 体重
-
-
- {{weight.index === null ? '请选择体重' : weight.data[weight.index] + ' kg'}}
-
-
-
-
-
-确定
-
-
- 请填写和完善您家人的健康信息,将用于计算身体数据及运动卡路里消耗等,以便准确的分析数据。我们会严格保护您的家庭信息安全。
-
-
-
- 删除该档案
-
diff --git a/pages/userInfo/userInfo.wxss b/pages/userInfo/userInfo.wxss
deleted file mode 100644
index 2d80170..0000000
--- a/pages/userInfo/userInfo.wxss
+++ /dev/null
@@ -1,145 +0,0 @@
-page {
- padding: 30rpx 30rpx 0;
-}
-
-.device {
- width: 100%;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
- padding: 35rpx 40rpx;
- border-radius: 24rpx;
- box-sizing: border-box;
- margin-bottom: 24rpx;
- background-color: #FFFFFF;
- justify-content: space-between;
-}
-
-.device>view:nth-of-type(1)>view:nth-of-type(1) {
- color: #252535;
- height: 32rpx;
- font-weight: bold;
- font-size: 32rpx;
- line-height: 32rpx;
- margin-bottom: 22rpx;
-}
-
-.device>view:nth-of-type(1)>view:nth-of-type(2) {
- color: #808080;
- height: 26rpx;
- font-size: 26rpx;
- line-height: 26rpx;
-}
-
-.device>view:nth-of-type(2) {
- height: 28rpx;
- display: flex;
- flex-wrap: nowrap;
- align-items: center;
-}
-
-.device>view:nth-of-type(2)>view:nth-of-type(1) {
- width: 14rpx;
- height: 14rpx;
- border-radius: 50%;
-}
-
-.device>view:nth-of-type(2)>view:nth-of-type(2) {
- height: 28rpx;
- font-weight: bold;
- font-size: 28rpx;
- line-height: 28rpx;
- padding-left: 8rpx;
-}
-
-.form {
- width: 100%;
- padding: 0 30rpx;
- border-radius: 16rpx;
- box-sizing: border-box;
- background-color: #FFFFFF;
- margin-bottom: 80rpx;
-}
-
-.form>view {
- width: 100%;
- height: 120rpx;
- padding: 0 10rpx;
- display: flex;
- flex-wrap: nowrap;
- box-sizing: border-box;
- border-bottom: 1rpx solid #EAECF1;
-}
-
-.form>view>view:first-of-type {
- color: #252535;
- height: 120rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 120rpx;
-}
-
-.form>view>view:last-of-type {
- flex: 1;
- width: 0;
- color: #B6B6B6;
- font-size: 28rpx;
- height: 120rpx;
- line-height: 120rpx;
- text-align: right;
-}
-
-.form>view>view:last-of-type.arrowAfter {
- padding-right: 30rpx;
-}
-
-.form>view>view:last-of-type input {
- color: #252535;
- width: 100%;
- height: 120rpx;
- line-height: 120rpx;
- text-align: right;
-}
-
-.placeholderClass {
- color: #B6B6B6;
- font-size: 28rpx;
-}
-
-.form>view {
- border-bottom: 0;
-}
-
-.btn {
- color: #FFFFFF;
- width: 580rpx;
- height: 88rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 88rpx;
- text-align: center;
- border-radius: 44rpx;
- margin: 0 auto 50rpx;
- background-color: #1385FA;
-}
-
-.tips {
- color: #77849E;
- width: 100%;
- font-size: 26rpx;
- line-height: 40rpx;
- padding: 0 30rpx;
- box-sizing: border-box;
-}
-
-.delBtn {
- color: #1385FA;
- width: 580rpx;
- height: 88rpx;
- font-size: 32rpx;
- font-weight: bold;
- line-height: 88rpx;
- text-align: center;
- border-radius: 44rpx;
- margin: 0 auto;
-}
\ No newline at end of file
diff --git a/project.config.json b/project.config.json
index 0868a6f..5dd5a18 100644
--- a/project.config.json
+++ b/project.config.json
@@ -1,29 +1,41 @@
{
- "appid": "wx6c71f3ebcdcddffd",
- "compileType": "miniprogram",
- "libVersion": "3.7.11",
- "packOptions": {
- "ignore": [],
- "include": []
- },
- "setting": {
- "coverView": true,
- "es6": true,
- "postcss": true,
- "minified": true,
- "enhance": true,
- "showShadowRootInWxmlPanel": true,
- "packNpmRelationList": [],
- "babelSetting": {
- "ignore": [],
- "disablePlugins": [],
- "outputPath": ""
- }
- },
- "condition": {},
- "editorSetting": {
- "tabIndent": "tab",
- "tabSize": 4
- },
- "simulatorPluginLibVersion": {}
+ "appid": "wx6c71f3ebcdcddffd",
+ "compileType": "miniprogram",
+ "libVersion": "3.8.5",
+ "packOptions": {
+ "ignore": [],
+ "include": []
+ },
+ "setting": {
+ "coverView": true,
+ "es6": true,
+ "postcss": true,
+ "minified": true,
+ "enhance": true,
+ "showShadowRootInWxmlPanel": true,
+ "packNpmRelationList": [],
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "compileWorklet": false,
+ "uglifyFileName": false,
+ "uploadWithSourceMap": true,
+ "packNpmManually": false,
+ "minifyWXSS": true,
+ "minifyWXML": true,
+ "localPlugins": false,
+ "disableUseStrict": false,
+ "useCompilerPlugins": false,
+ "condition": false,
+ "swc": false,
+ "disableSWC": true
+ },
+ "condition": {},
+ "editorSetting": {
+ "tabIndent": "tab",
+ "tabSize": 4
+ },
+ "simulatorPluginLibVersion": {}
}
\ No newline at end of file
diff --git a/project.private.config.json b/project.private.config.json
index 673eb24..cdd4818 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -1,10 +1,24 @@
{
- "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
- "projectname": "bodyWeight",
- "setting": {
- "compileHotReLoad": true,
- "urlCheck": false,
- "bigPackageSizeSupport": true
- },
- "libVersion": "3.7.11"
+ "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+ "projectname": "bodyWeight",
+ "setting": {
+ "compileHotReLoad": true,
+ "urlCheck": false,
+ "bigPackageSizeSupport": true,
+ "coverView": true,
+ "lazyloadPlaceholderEnable": false,
+ "skylineRenderEnable": false,
+ "preloadBackgroundData": false,
+ "autoAudits": false,
+ "useApiHook": true,
+ "useApiHostProcess": true,
+ "showShadowRootInWxmlPanel": true,
+ "useStaticServer": false,
+ "useLanDebug": false,
+ "showES6CompileOption": false,
+ "checkInvalidKey": true,
+ "ignoreDevUnusedFiles": true
+ },
+ "libVersion": "3.8.5",
+ "condition": {}
}
\ No newline at end of file