From d6e3b3146d018235b769483e50160df6cdb9be98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?= <188633308@qq.com> Date: Fri, 18 Jun 2021 17:44:07 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AE=8C=E6=88=90=E6=88=BF=E5=B1=8B?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web-react/public/index.html | 1 + .../src/assets/image/adorn/house-top-01.png | Bin 0 -> 39518 bytes web-react/src/assets/style/lib/input.less | 6 - web-react/src/assets/style/public.less | 11 +- .../components/component-dynamic/index.jsx | 8 - .../pages/business/house/code/form/index.jsx | 65 ++- .../pages/business/house/code/form/part.jsx | 526 ++++++++++++++++-- 7 files changed, 563 insertions(+), 54 deletions(-) create mode 100644 web-react/src/assets/image/adorn/house-top-01.png diff --git a/web-react/public/index.html b/web-react/public/index.html index aa069f2..b92c542 100644 --- a/web-react/public/index.html +++ b/web-react/public/index.html @@ -25,6 +25,7 @@ Learn how to configure a non-root public URL by running `npm run build`. -->
>3+~QlRMVQd{Hxq~zwdW8H|U0Xf3}uMi{sQSAjIc*J#wM#W9^i| zj`W2-`M2o-tiJbYrKOu&OpezR-RRX1L7Z4M0|T_q9b(}-lPKvuQlHJ<4F+rmaM==< z92M5w#=>irzSh^ry8G_;*N{oyy;*R@;=I8$mrYecMSs-pS-0_i^7|)0c4gtGgFOqh zv-jlhb#)8-h>{OUW40?zu2;9st9MAc&GuDqY>`xIAX2Dh+(c!xm~be6BJ#UWR ApQg^%+7n5i z7yXNSw=j&NnK!y_A1s8Qm)ak^e_{sIJ3(+*c%_?9RPAmXYptTIIFg?c@EEU^bvFX+ zB1Ipk_3c}CQ;xK{y*3aEp1AcnR!ejIbRL)PyC+}&h;MXdzQ5#0!l&Js)~COFoE%JN zmXwqV(9l>|>VTkN=#%Bt%hhS)qtukO;Iat>#g}|?_V(G;6&Ga8YHQt2mzO4e_P}RC zKHH0*meq)9yQ!0!W1^Ki*wU49_fFq$3u6Ue3=l&S_<+FRh*H eubX0bUnU(#Hv` z*siym!~BK&+Z$DHT{x1@z-I&Ase1eIp6;b4yA|P=32A>D*G8S=r7l+nt0>z&c7jo+ zzwf6bJF)M{#_bbRBee4bEde+XQ+K1^?UF?k*(U=KA(s@~0?C5S90thDzQrOOfBJ^# zI9yi_%s#8uJU*wxUIzO<9iG1~ ;y^3)1r{%P&mnROgEs&A7*dSI(e6WZ%VF(FSh3MD1vnl07xD(IT?=$ylfeyE z`3y5~IM tK6+;4r045# zD~A}z$n7G|TWjcayP>RIrtnN31 bk2wJY3Rs>8D(& zO6#*bFB&pWPH{2wlH zR$2%|#fmMLy9m%7SpWli$nyQc`-4Hl7oMJc5GxE2ZyCkl0+84!3@i00+LmBr3aRD~ zyJ8Q&+THcZ*KxD={Vx9}T}~7Qs+GCGKn<7caUKSP$B!esw8(uicn53S)M2Jr =#^Wc>zFBJN 9Q~OCljq zETJNq5Gtg?Bi6Elc`{sqT71y>JLs?lp09WGAjpIBr=3; yR%_&pZO2(C?l&eq=H%jKcq_V998V!`DVdvIgGaN7Yc`Y|K}j1P`+~svN-JC2 zpu1D=Kx*oek*M^7YzXZ@ZWwC&!zRi`4(-FUqmr|n95|5OB}=ug`y=>6`!Gd~k=K zwc8#R)a&cbOBWO*cK2OR@C>@++A z1+ND%dw_YlNb_a z&{MT71@82&>DzW JiybSdt%ee4OhM|%M&Hkt*L;q30 zQ5%$7a#%-?%&rdmd3#aEeSl1H;n7#$Ol2!P4kwoZ8wpaVNGobjF+%~C@`de9FFOL6 z6NHS5{FNq`MU07jMZFG9tN5f3@=OmF{gj=#e~y5%RefT=T)q6Fjf;I8|BAn(3bOP5 zBcisupBcs(gF=P9PYxWXE%fS4;0CuH`CYFlfxmk@<0jcytqM7VsX1|?Xz*KDr;bhz z3~T3MS01FX%KsXC1pDI=Im3|;J@4%mhM~S4HdW~!MjE`3ckaeC&jR0f(Flr?2f9nz zD}&cxP0n9 #ZL_%-w)NGc z^J``qjLOGd1_Vjl{kqcay0FmwSY;4sHDUwqQ1v}k &KT<6RcTiM|%83<8sP*=6U+yL?_k7poR4dLa()Ba6U(= z(v&k%UbFqWjDXu|(SGiV^oI8foso(m)_Jj^0>94#EnNnE6x>AHU=LuE5;row{0k(u zVR-1~$TQ9ORC#x^K>+ePo?)StU=Aab>Gj-nia9!ZsWnPo-)He=84aS0>|7JFLY1iZ z&=oZo767nAZEgBH1m5{ A}N~xaPPNp-HOVBjamW5#hQi3HSK#W z!nft!FO@iH_Uak6^hQRetRhk{W~B(9cBUSGt7XC*(r#6ILkt&i8kzTmQeGP0#Ji!e z(uUe5)*$&)RpOB5U97PHLi7?D7r4~VA2loKUK)3k0j7JtJx*ON3*C2(&MX(5tST*W z#}fO7I qQM?vs^Yi=$#< zW^KS-)5IhMp69d5LSNoLGP$Qif%A^~hZ?R>u wC?h)u}v_uH#;c8E`) z(-I@jDAgz;FCC~#a}QiB57f`T*%5YwJ6)~|&e>?r?YcnAE&a#|(K=77+^2S8g=PJ( zhW(`??86&@Ioa1l7nRBEw>4jxY!Sq=d;Oh>i|mOG9mPw;m?s~5{ABp0<_WSyrbYpw zxr4?G%3r^*)R5;^srPIS$joEDsB@1rFp`*zL(xCPF*ppl*EO1 ?goqO|rDJR0U z28+p+HOq=%pMEBns~anRrw4eb4!R(C-fS5TvU*yfZjr;KrD$YLKfj$P4R@jUF)aU$ z_2jodC5i$xe%kkI`QnrI_#`CHdUe{I&u#5=iN8SP$pynC{$e1j`3iBU%IC0;N|2Ut zJ!Yc{9{%PkKo_0L$3<)fG|6Uz`V(RwQH3zO%J+MQk+fYQ2DHZeJfPZ8i67sSQZLU3 zEnCJRbQo>NJNtZ^+fTP)l^xdoyAfudF@46DD(m^(!<=P#Q;^@3$Z6<=Mg3_jUM(>d z Rpaw{ zse9LT_R#{#1AiCl @&VYlBt&Sq|_uF Q3^NrFNVzC+&ANXf(< z_j0Q<&F$^o3~%i5&9B6{>9s+V4aR7g*j!#k8s!|!+Ej(@dPnxhhs*OO^#reH@6(*> zoCLMzclFpqWxEx(`H}8Fz-I79VkZ0b(j=*X-)fuvB+1jh|C>eI&Yi$P|NEqL@ee`^ zHj?JibMO0h|2^TCry2v~9Kq2@WJ* q_%Y@)cdPN*fIYlUJvE zq3%&3^9N}t<5fsHWwJW|6S0|n1A=xJgdXHc*Pi>{n$d3V%h%R`qX&ycSMuE#*EhS* zXKH63H^}4~zf%b4g~#kvgSU3l2X|s+`q4;bgdV%wo d!D~ 68;wI3Z#l3R%Ikuv(}Q<*PqO67}F64Nn)Q<}KXT0~%*o2W(39>Ei-p5cXtl zDLv`_qx3I0+NlzC@}OIJrg{zX3D5clLe&N#TI8k-yXJHVU3G$|)*j1;dR398Vje4q zBvRsltHbV>Ie#Iilf_T_=KFJE`FT!7g>tPwUXI{|%Y5FD3{=*y)y_-8x}VF~hd8cJ zSDJ{9kI&zZ{#0d>dafO>3pz1B5o?IGuCAWR4R#fSm^;mlK6kqs8)rBz!IV3t?~)nN zViyO&0?m8U4oXCi|Da68{AMow-DFoNL9g_jD=bo~l%2 mq@5z0(WLe<7%EUUKK2{>+XtzbtN%_tn29BQ+1zW8Iw%)zib00m_u5f_mf z#-?ZW(Su`SE>QO<53m!lmTsfG_IGx6<`m#SV}fgJE-jB4&1w_ZT*YKn8`+iUhumTW zaqvUY>hJ7#ZwDsD#~VSImSse+iO{72QIJyTbKz=fW&KDuAx_4RG+rB=hnc4{v-q5K zD#Cl-06zwH5HPNdh1b^fu_M3yL@V;;t|rc7VD466yu2qBq{NYIukMI|P>cwbmO6a6 zOoU7^?qI6rGPE;B5CWgl9hq(>D^SN4Ezb;NeSb*hv0HxYL(8z|^LYqaYYk~NASEX0 zZ0lRtck1eTciHfD`CZjKz2Sd} !sS+`K7e?3t8{#0}RHUBWXOr(r6 zJzZM$7L^Ha9z>QsBU3X+4yl2U9`gH3GPQ^dS_k2C^Q-UN>wP0YAgG(>(|Kk|`liK? z`G=0PHk}KPHI-T|NJ6BQc0W<-!7Ur>-^$7zL3571aCE9V*`%Cn&ddy+RNI0eEL;VI zs{PRF&yspbyF? !UN;Zsv#i(}YV#TD z$}S9pVycg=xxTqqjsBhi_T8_Fql*vFz?YHxveNc2FYk60L~q0Ko@LLRL(=n;lOHRM zh!whXUTgZfzjv{G)Oi?9udQ=L;a_CY<7|=%apYh|cM(aPjTg#**+m~AWX82-y?@gb z2=`9F@Aj7#ZpU#tNY8U#3H6PcnBOH$2?Z4+V?VzS_K*x#D2WbtAPHp?%B)YuKdpp{ ztZ?FaU|~s25;=DtR7Wml<5Q+ykpwhp?9#ye+bfiJ1WT@6%SBOG*r#B-_EU03LZ-G~ z0c9mn_jGCszE=R&Dr3lXfEU8p++tXA4$;9#$5Hmz@%9@cyX4knPCh$SJOnHW`hnPU z(2QXMY#3KYRt|Q)rF5J4-S?x<>I8#W2uCL}*G+0ZsCWkhC (97qx729r9snC{B`w7^OT zO>vZ0WVkb0QFCCeFAad7FpzBvDo(1c7(#{c5NFoF;Ql?@nz*0qGN-(qgw_gx&4u5x zwyO|V$w*p?BsKW;Y3+-#nl(=2s52ZUbum6b$;~j!1%gp^t`Q{O^Lb3u(xpj-XN0vC zLM1OJtPv4vf|a2- MM3`llLnz&Ok6G~L|JKXROAbEdFl-sBf(rGqg^4+bxmv^uOgG>2?31m(31~j9_ zWP*O`N|U*LLvf(AQ^ndyXj7jxEXm2!()Z=E>po#eEpQ|xCMXaej+q`9psYGNEYR1| zR|ID3yWBh=c Z%A03lLk>%nsPFR() zi~-O9hz}=+@Qd-U2azmlXlLJM-VBTvO8=atpI;6&btz@?PjkcUqAvi<+Po*~)Jenu z2&e>wp9^zQ(e%eXm*?2*SAb+*>dr?qSbT(uLS-8UuB8$hsjUhMC za@VkOaM1No4T==@9gE&W+W2M1qP;Ql=Bd+n!N&{@4_n##fIzy28jP@bGP;eI`$mLe zI{@u|$LfvRm?l eG?Ju>V#Kf?Hq~uMo5DU@Nawnrd;a>&6ZHn 1OJ9g^S_t(`e?d_0 3qoY(8oIR;#J zEi9g|o@80_qyMP;+BycIwE&%Es1T!n&kxOE8AMTOachv;gB)*H$caBJ`u7k703iy( z0;q~oJ1U4HZ7tRHq)+xgf72JJ%^21}_x4(w@wu#$ v$%{jisW_7hK zPnKJ$Vf)jB8*H$9dISldH%UilmXVQ@VlrwjD2xk;x;^F@c?b)goO&4GC6!LW#ob08 z*eeefB@Cd{PQLtQMfiyrZ*6QyG4r4#)84pNz2KFFD2}aWr8a)uabK6ptnt0)Gohew zD7A$-B@+)82fnSg>7^riago(B{~G&(RfQu?KytNbK>LXSLs4{f%Qhmc57JG@q<`So z_cmQCbGOj92Q2>~z%3y}`iB)$!}cX)i1RZiTNkdiyS=_5dTmP7k*Owi5bBg-5GBK- zW0@)uX8)w?Ay={7TZ1>&IoOb}h&22}n4rC5L~y-?VfqHp$H$p_nOuQr3hAc94jca7 zo;38uO|MN^=Q+ZTD(#P>csI+N?;|w(L*!n;OBH>d%sm9wv=c`8C%IVkY=cxxQz^oj zCVMj15^e}Q>=qJKuJd9nS8!RrO#w`GFd?LZjzrs#XMA2!`n#Nsr&%glT(vjf6mIZU zLMocirmw%x)6J%hTDe;>sGNbqq!7`3LhxEcv*t+c=VR8-{R#%Yv^5bl!HWP^IG!~h ztdE9u(ax~4{Ds)26cyqOgACgbVtn)=GYw^)@v+I7ORV9;i{4jtI<4}`=Gf}h*32gG z2BHz%$CyHt#o4f>7dM6IM)jXEb^0fBTV%|Widr@qILowon#6<|kqp>9%aTI~s4fEN zq@H+JTid8!`Jg{l1n6w#pYQH67AH(}(X-uLnvmMbo-i2B>exHRF)P0Fj<~rtMgs8Q zM*?yqBIR=U$0x=?IiiRl5g<^XTqPtNmyWS0x?(r$W|huqbD`>6kt;UdX4Qn~TAmmk zjUs~9{r&GpY5t1KEGU^@dw8adnv6=9+G2~i0QTYBY7#y-y@}b|npPzdk>pr}L*m&v zE5loQ2;(JNsTY->K6Va%%Vd7L*PjhT3{DRlS|<9`hPLa1HI_QeILz?aAyKbiTIX#R z @E6VA8hy-d{P9BtBZ ~n>u<`Re&?DLE7X#G@I^UdLd%i@G z4&k0t$-6f&POJiM##jlf2g}^LAS>Y0SONwlnIpe$=3h?Pg+&NWh8Ft=Uu!4SzI$1l zFS3`NFe+c4u9hbKnx5mON#6QSY)f7rz9-7H>S?IV8{@YnC{QN*!P1o&ea~K0etQsj zsI;4%-WmRA0IHzDExpY{UA?l7x3FSPWhp2`O+PG#b6y@F927C|8lG-0HQ*@AAzV!N zOCRFHm65|)uoB+3$zKR#loWxs^K?tS8Y#)Op+U3iRHqO #@q;~`W z&xb6*NP_fqzKP%S0QeiAFWOCN3spQJ-cR#u^Rjq(8Go@zf}`+>gwaD{e0(x|OOHJn z6O09I7r+jqg9Xc-qiZiaLt48w%!CRH3xEmIvy}PhGPBwCXBw&|Ak#u1Yot%KZIee{ zZoOq>q?f36ku(zGM{qV$%_934U!_k}b6fA+#}xz<=<{b6{cf@^hJZ~o%zyAhcVB7x zCJF4UEGw wF1rpY zO(US?5S0A-Wrcysa?#4|swUUIl30Gp)4e m_X^k`#XX>Cd}4z?QQjw;|1)^*6mok9qQ>(x;`5WN~gwok9eJZE61}tG2NLFgl2) zQtR`Vg0$=O(}u^v{q OrxDp3(1az%U2BG+&rV!;<^F=*9} z;fr8Q+1ZcM$Z|9`AO{cjTVaNUVvVOKj4a!C9AGf~%|b7vBO@n)3}4;}egGA2^S5lk zRA3xV8|sH!;?hN41%TqVAsOOjsCe^e%JrD8?(`uDr`q$LXthR=f+4pmbnj<|N^;P_ z3ATPYCpzgAk_r`eMDNpuBM%+)WUP2)0Cv7I6Q4!yy;8Q{#sON`)bIg}Lo1cbO%Dy5 znsBqMY Tm%bPoqf2k@{Wf&`oASy2Ve0(l z?VQvgzt!v>a#loC>Kl1LB<=%2^+Y&5ovWBttb;%4JX&0|dNjS}bxNtPgT5Nt3HXac z@X!FmtNz!$BOB!#Rw!&^ @1_gq@|zaNGeP3fFJv${z!#&pKP=WJL6GZtN;GBd z`6_ahjONkL$Z~PzGp}}>0deBfyIuANUeE-Uc{Q@)K19&p+x*`?3+yb#@pO}o8PJ=y zr$~n;gn^O(+6a-U$Dhe?=BfDTC0&>^Uy<~Kf{yU&B|L|r)smGG&&R2dDn2?SyK*^~ z!TToN&+%x$$GLTPXI9m#K|-iVjF8?SW9<^-a96J&&D&d517(^?pX&k>kwKV&j8j1* zJQj=)%Ej2v;SptAG|`u}%oR=*$!)c0@O`^Z8WM?yoN-SOzXL(~VBOG#LoF>BZ9o|r zj!Hs9ECoNx!?!$a{1XJ^8RT`pEGU=c=8#fA4^mU~eO)%aNL00q*T5A}B<>8tCiom_ zku+(ufE +F$Dr8?rN*}zb3sfMFFVVU8!kdZf^FYjGhaZsOIz@yt6qiQj2#^; zsiP3JbU?nP-?l7-B~V}AX&nXD9YAiFHu@NpHY)nV`(}U+g95zVkv_aAB`#jb$;&Cj z2g_Z5eeE-5w%p-ZSX8Z)OOPM^Q5srz+llVJi;wlSwG0VLG(V9|lFh_~4;5XQaj=#y zJV1 lXMReWotw?v<^VOB^sMbp#5_XjECy85JVXz-+?Nj z&J$II-2D6Fr;&HLt>8d`Ix$Qv1k2zofX>a55#`d7Z~NiXW^tYUG922}1|#Iy)fKj~ zc&!dvv1);je9&Rz&_?m{FN+_zOP{iwmk>!l PY0CF(i?~PMwR$*6 $^X6T6WH z4`bly=$Kd2a*$fr{Q;I->s|nks`>stw)$?K7) )>kJSYNn=r2U-I|oC*IlOAgrrgP3pj2iSR%k@kytXdN z`MEqootCnq@T?G7iJbOVT=`Prw+%%BBxF&N%#bFjVAdLwD OpC=%uW?-dHjy0f=I!t<`q$f#DVBjvaCaKYyD9uOL6WTw$R} zfxf6P)kCw3o7+^5O$|nEOHcRYrOi&LtHJwUn)d~8&0LM81bXaDQdwY6xmtq=ciNsR zR5@8h-uW6lH Z7;GUv~{UmpwYJZtdJuH=?QNo%@J} zsl|GV(4T0iAr-&%tuyu}Y3*!8vxTXB8Bc+=41eCNR(-R}-MLOdn;~4t$Cgut;nH-Y z)h~yu)}3?z@dd3CSL9I@ns(#;t@DyX+MF~kBTWVwC7Sl5*j=*O1rp`E@OMT1fv)mL z;yoWUcEyQG%V!6zG@L7t{}Zm4bhlY%hs eu&rhd_c zRuDsR-^;>cQi;tjAPUD$RpFnyE5O>zSS8EDK#=0oxNu|~0pF2<)cUa)FTHsI#c97i zwv7Y_F9=v=cCBSW>VtZ!C$Fm2(bsTIP%B}u`w >X2Gl@RLkUOSO-NU9s5h70CUsA?vY7?YHt9Ohfcq zKnbKT|LN6C+pUTm74I=xP&Sz*QrE?leA zr^ncw;_H1?I^N#KpFGv{Obeyoo_SjHv5kOnPV{gAQjd_@i6rm!(K}$vKw3aTQja!3 z0rYmc0JYP@_v=Br@WG@^0)SnN0FQtad5q`m15PIBR*)~oR2HhgU;1?pe48r~t0uD| z^m*rB7JwE{7fk%xXx<3Te4rA61G{idFfBr6Sr{bU#niNup7LG%$MIu93(1A0jl61x z#oh%b1lCqE$_jgBs2ApPC_5YzygJ4=Dv#7iW8YY8bQk(VQ;;?m0PzJSXiLT8vaxxLju0|iCsmjHvs5~CjpM2GdbrZ}wBOb2-wx0CurWbsm0p1Bi!%ZtmR!vq; zM>>i aSbZBZh XK4ROBb05jBh>oH1zSc z&QWOh@W^XDKSVn8DhhgcAfbvniX4_fbZt)+*$olR0s@KgN5lu3hAv?h)T oDZxJo~Mrx~Ze<;!>;7j0=rn-YSVHx4c<$%zTeRns6+4_W)1AWE4xa;UW z7-oZAKOjrCmXBd)c%s=Jrsw8Udt{R~es4D=hu?^ibz;r`P`-6z+EMS^4>NioUzR+D zTO?cf@yA4C+8+Dml!odh(>$y@rqd;g8Y-+pg_U_y?MHE))h?B{FYsa(Q9oB|ifQ@^ zI|YJNyp{rjb-!LMR4V7&YPZzTwh==_>yNP5_CdF!@i0f{UG z9u4&sY~IDsoyL|Vi`6UDG+#r?wfSZBLl0Yvomhjyako{*Y7@(O?N)1Zyu7>yh;cdm zip)@n`Q#eCG;9yzm+=WnFndcam3T)g{DwaDV)T;sAP{0r(oSH+Gl{_V$n;z3stR5* zrV-SBmWlL;3YWXB7+%GHbCy)?2n~>Fg~uCv7O{p_U;;?Cf|AK<4%Y`Xc5x&Zwro^u zCqY8uJBf+Nf1Umw!KO>;K@XPsi2=g?6b Qo^u1{mTD!vg|LdbG)iB!#n`%9#r^ z7EhrZ!jrpgyf<{DguKY988O6w*x`^~584oShF(qfYy7! t+D0o?pqlTW;+GLvT&>sFxb@7) z>%o3c48=WdmvOv}4T6Rtl2sLx8MF VGwPT8GHB=< zgExGEk#cxb7gH8a4O6Y#b%ZfC^Km4HwdhNoGnR G1 z7Lb$;;)TNi=2sjO_KvVFp@;%`X@k_j_-z~3f#!j~0TTwF;LUeG^{+r&&lsZj7>kGp z2iQKB*s zS+hiYf&wCOC=dB`{C6%%dtO&lY{E!VB$k{JW9ZaX=a1>e1#B;`wG4;o4tcWROS?V> zH~gdpoxD`{XIOzUSV;IDtxv`a66|z_P*!|o&_zu>O2qs=+Fs`!M@MT;zHw4wx0pTn z19dr}rSuD!<)86a2Yn%`+)0S}HpD=eZoOZZkhOct03ExyS4ra*1hi%$Mn8N0T |Eu={XUf>0_JbSwpy$NXZ|zg0RSNi$xtje3~?V-saZr zl=w!Ak+t#m_#nu0GEo^g|NguCA#(I$D*Q^?|4O*Wl$OM*JR!!EISqaV0|k;31O9Ew zRA!2tMH`|;#s-L50bd57m9YrFB!qh>*0N1Z_>)ni=6D=qDc)g6`&A_jBHaujGcXUa z@ cM~2I{+>(ug{K@z!-;!d!l=3Z;yRt_(#U1Q~re=X~U6_&$#&k)67@ad_{~ zw(xL&TJV2*2I< %g!Z04cKz|GCCNuMS)GQY0W#rX-|Mq!I0oF33~^$05i? zD_ +oHy-+?KPcRJoF=?4`=OUnZ`5;J)@yl~^7s+Xr zSEvCh;Bk3K@wn)xg`1lcbPYP<3RhU{uPeFi)3#cj2Rdqd56H_j2${{!pd1mI^4`7o zxkDqmz^)xdF#pp(^^rj}jzr=1{in>gyQkxt$!e8o*?NNP83}((+ 3V>N(q#PY325 zX&*t^x`WB&QQSdx<)_|0X3iHLe#(Uxkx8D6@(_U3j>ji2!sH3Jb1LP1$Z(J= =ae)zOU zRlTmq dAd2Xm4hbU?dLk3k`gAYruF~A$8ju16vzR9z4H&bJrHMBFi ze?=q#l=rhVMD{UYq$|Ks HPt|dz#2^icO zuz-Y59KZ<32|9lzpN^e8)H7F7xaz6x=|LgHQhx@t =VPE1R9CXi#;O_hHkDz5aXlaBhpchj9UTqqkr9lE(jLqw6Mr<7K2&bD5~%OKs7C z(vT>>P*&R%c~8VDG*vEStYlhGKH?x8ixMNHf=0(AzhgI{>7^QIkA5KOcsy{^@EjH> zn5B}ZRtOnwAXk6Fn^Z6QYw0PAO0B6Ds+t;EN~P==3UR@v8h2N5yN*$wT*sfd{_+J3 zV7PSseh_pTivJ^Y9hO?TNnV5Q%A{qR8Rrc?{6|<2H9o^U+pEn9vp^FpnRUwgwc}R} z0UITq+t~bkxT`a$0M+aXw?rx(`}A`uRy>p;a#?u|E~C?UrSY}6em}w9i24gIjm+8z zRgqGNEX=@TjFWhEYseF39o&MC4n=6O&3MM)cj@le&R00pjjWx#2 gb 1$atN`3QWjvA;PxT_d|LD8LCCxE&Q7(_(qfE)BQCKd zFvGc4SV0YDVU=$4^mi;8OE+c;4bHC_ve(*3QZQ3Db3WW~z-S`J-}529vZc#rg0%Y+ zhNK;+as&Bi{mu)Q3{`)szEI?TA|$al9i@^?QDP@EcF m*UVk)P?Agnn$FZO=FeE&ZHXh4_0#>d9S z;-GFAXtwosccoSca}rg88 b@4mi3hgR z04F7%1&B33lH~^&zcK_yVS%7ik4hs&lpimFs74WS^tn<)fjB6BUDo{0_O&Rq1X7lp z#05ZB5D57tB#TuYfw3-QMjDJdfJy)?Xd(7U39`q~wJ4x^J){u4R(gO*(PCa1cSC@y z_*iXm42}IY7^^^4QaB}}_`t-iE>96P&Q)-~4PX#tJc7n^st<9@5Riz6v>#Dc{o!kE z1kRV~Z?_cCvNX~(!E}=r(3;dEzAI7vj2ht22po64$@k-;PLZ?#%FD3q*|Vqina_OY zqZ1QTf59``orZ2I2$XOu#kWj^mmHK(HVR>*A&iE1FF`|sKqYA%=u^m*hJ$k%MJWA3 zE-z+d00s!+rlCoyMpFzgD8r&2YzSDCviCGa8mJ_V2>ogtbn@k|hV<#N;jjw35)Vum zMuHMNBS+wtCWrN`mu`va0*a94Fmz7~2KEA45HK&$u%HqrnXo*sk*X~fNYbIXtxb&1 zz_1jhOt~?)@k*x~CCgw|49lRI*?Flr$`z~B)!t5q=86S=lE+o!&t!57qP@YkF@78$ ziH=8?a&72fpz}Z_kTg5wW0}h_pkZ(_J~b^*7Mx3+j{`zkd4i$h2&K|~gGVWK*1ZyI zINxeDol3$g#pLs;nAe#Fzz))qb{^jxk9%lj*z44cv>gKz^imQK$Ur1%dCV1 J8kF#RZXnP!>)*4CQZFs#` F0DKDiX7OPYmrgY>LE-rJg z4OBrj1F`;kCfdA9rnMFgXd6MkAu_G{KZ~JMOT%Wr(FMBEcZdQ^U4vzb(~{t|(Uj4S z04E7r?omRav}6>E81(dM0FPP(xTg>pjYR-vH893Y!d+Hb!Q)csBI}RviI4x`ZQp(D ziT|F>W|f6(PC>l1OiMwKReX{Yvvth;J0wlurC-oA5LyQ~rGj1Q?rM`%1kwnecvKa~ zR)B(J0{$R5VG)r2K|q9m2FiK?P+$ND00728%56CayLDRvqx9OTcmYlqKvLoDsJ^fi z&aiRu@(`z3%UslvU|n6-iAjnADG{VmP^E(Jgy+=iiqA=bk3-TWczEi%G%ak*%v8;@ zqDN^m015s+H8myUiHWmnOhlx;U1{-0DVC} Yq$#4i0SG}Ua1MGM z)mtBF9z0W#&BA+l)LOg_&iBmRjHkij>x5L0;unkJI;X`CrcS-Rz0!aY&cP7gg1rHV zJay`fq=a63{dKhS%H8zL-n~5bf^0|9dFVG}SYG=AP4|IfO>FLAQU~qQt*?9ipZ>`w zKJnQV@C;Ed@Hyi~1jsO(5S;C*AxeBPpYO9D%UFk)A0T{#F)A$=2?m9m;oLrE`KG(X zpil@vAQ?x2ik`*y{c_o5Opor5(I($THd-UH1Z0*o2Ft*hU%?ah?NI&g2GdiEHu-_x zJwaVVy-7Mk4W+Dt=?Mz#ORX(=t}Gh0`Ih??A0)|_5jvB~l4+WP(qazt9#dn&pv|yC z>`a46Q3LEr*gcnjuelt;0Z_Eiu{j|CX48_NNG$*q!falnF`^og@@bsYATViEDFsah zbz0tBG3aU=*0MCtb0q*wl)&~YA 7D$98V22trN2mS1NSG&DQt*Sk>PzhHnV)5Tc6Mme&QSLH{1O zr=qtH9AlBTQdF;8xxFpLfjI6t-a4K}4O$spGyJr 7mHjt5>YIClUi02VRb5|*ls&k=;QsN|_T-h@p&Q2?eC zR~R7(mBBIr003B3#0bwTl?Lm9^9H7-E?zGrAO!jyWcmTtupY#)=nn)otE;PnKjWpn zuureDse@*wXQ-#ASH_;1Ul2f9ESBXQAZ3GIOkiEc$H(Zvp+ht|H7kt(C#Pm;hVK__ z2SQ(@>@ddR(GdYvSMA>Y$zQ(v?$7`EpZ|G%1pt(D=}z1W+*a7_GpfR2QABBn08%{g zoKTieb%RU_QFIxwh+4q{L~zUgGfFHp!n5B<-wns}Mpi^xCN|A}7RIZ^Ukb_|d!RbY zt?ZW_b7MQf_Zon~4LuVZrOLcd*Z*9&tTkLI5){G)_rG|q0LnD~cXaP^mYKqNRXx7j z;?ntm{u^e=G9BQ*@*KcLMp^?4rD+jt*y3@B7S{8J1|U&AX^AJn0j*j)TU;HU*e*7I z46!C!01yPrh+~0&H_Y0ifEoqBiRpjNqUG%uf`V8ruq~aU4GF{MYDz!{qeY}Y)g}y6 z%x7^d|MOM4h%0zrDF!7 97;Q-*&_obLP?DeuK)}Iz^QMi$Xp|Tz%+KY8 zJ&;bpj!oU&-Qwbk=OEH6UU_X@bPo-aHLxcTrXpq3&cS=ts(uC*rie9>U>chk7cB)! zo%?ylk3fr4T7>q4gD=L7nZKBhaR9FH`|x2wDguBio6XVO{Hy?{L^4IQGc&ZnfjB0D zQWAZKBRzn;K0shiV1M7xv3Sk$Jf~WK2UB_w@l#LQ0MMeDnU@;VD3wUb__DdYRM2SB zLE4bN>55lv1O{Vte4KI&J^ C+#`qt?c z`V3KC#OKc?m?c{7=MkI%o5A(t%PVCT8}5~sHw|p~pQr(L1*wT;RYBA+`7Jl9dZgr- z0+lU621TXjj<`yrCyy_N@EDdQci2TdWG_9>)QEuV26FRor`6qvl#(2CNWW3@8XMXn z21RZ1ytD%W9plv8pf8Na&Mfx032YZYMe(a?z>+NX0rFj6UB7ieLtdZ+s-86O@3nyc zOdw@bTZ#p>v(tXzsvjo+3^ZCUiVdCvBk;Zv00qG^;d+263R>d30YKw~_8E>};cnXw zE$ PM^ zJjYa|DRhSl*{u80SfnGa>tdyz( zG{}kMfIl)aDuP-blduHilT(WZYGS$QH^M{O#}L02jh@^0g0M4~xyP-97|3B806{Q> z1Iq)mH%#^n-RlMn765EXM^`8M_lb82Dq@O-q6G4RRRc7?upqs4kcx@LdPO&~uu$Ni zo<%>dT+A{^H#JEM6*=hRVpaft7)&8;g7F|lqUs*#g6^fnf!gNB6H1@~U?3_+ss{`R z*o+*H0YI?5y-ffZKv0#}0rLcqBVCk>C8?OwQOTrwOiqG<&O88$3#9=}?f4wmigGh_ zcA0X{28V_`!7B7VD7-Ee1?;U`yH2_wLo)(KEEe-MD15ROV4jC699|c?oUt=!1mGa$ zhJ7p2H>p7FsdnmsRXzi}fxbQ(9U3OJ!XSp9-Cb+bv}Vm}0gC{BxE2}S7XZ-c=m^c^ z^Ox~3UrB)CUH}le5C$cz%ZReKcS196HN=3_OUv0=SucL}cU$&RitY}({5gbfx>jR< zmfB>z)Z`hm2rL?)#153I`g#*3Bxs20EPPgaEU0S<%5THoDh>81;MEdt%1FV6h7@6B z=AN5r4?JU0%_Hu!3jEz@$>mk?U0*3s*4*$lA>RSl@t6|>AVu*-G>Q^%7Oq8KrzoHs z1U(dDF7yDiVKxDkQJySeP#kQ5;861(Q%Z#9#|^|Rjm{Q@I}zuX0@{`+@oTVS^|I1; zI=eCAMYHHX1VD1G3q}z%DaMraZvp_0LV&7jAXFy;wVGih+27yqu3fv Zp{u}@4*OZN$H}1ZC`}SR ry;v z2up%lIviV(Ca7jJRGgdjs(JXa)z+Snz=N4T(kJbDN^~YDajldlMSu$3f;6#1ikH{v zZ11LYyhCXIEYIo(23AWY5Wolk08%gMcue*U0V-zkU?1$dDpf#$HRzgKuX*Ldx~WQ% z`{>DI)Rsz%AsB4%kv;(n12Ji-UJ;oa48jmB&0L 0LJFT$&>OosT@Lyv#v^N zBoRY8CLvC)sKP<|1e3S1u?d MkrD x9Y!Nmyyu*LJ~Ke!!b zNgTVlZF{+X!)>DfS=^s}Hv6zR9^andZD?FPk?Yd-eXR(2;G}V$(Mw1A=D40)tjC7< zjsF(Gq`!{lgA@a)oW=8OQ)9o2;$OqdtvKg6ca8XAgi=@zEf=pkAyzJ|H*rHuhfB+S zQNqr#Y7; l=Fa-@E1i3 zT>QBIG6NSP?hAnIkk}~Ltf~^o+Zi0x)p$Iva?n>YnT(RnW{q4fXC6LWN%0IjW*G5= zMsBKN+bO>DQyhHoO4jPN6hC5;@nj;#pNaE(76%C(K*iJztyU{@jMTJW*t9|G?Cw(6 zt>17h$J{;ppMPGdRm#_vD)zCy{%y8p#^$TlQkUz*`3d53Fw8L+Fsa6~-i5h&uM4nm z>Q%_)
wUe7Mllh@whQ9|05r(~ zzq_xOsvM}}N|L&|y97jlIRT@S vjsC<0kH5Q9z|Qp4H1)6Qql!|J6cs9fpjCli4Gh_i96myuHf_DAVFoT1M2d8(B$o;+d8SetwX@qfy2l7?^T**5UWYe1K&H@EKLp%)2dAy zr2M)DJraZ85k4*`PpL#=kCJ*I}jVja{)o0*lrZF0`(ACb`vR zqGiQi1SP?NyS1}RqJxHOP6(ic+Y)GWc7Ga`&Rxn&6fMxckg|EV3Gh^!=w+x0Q&Xem zBH4OGOm#!|Uo$}NG`apOI^CncOkkuLV?yVkL4zkU7I?)&x#n6R&qtx3K`Y@#9uc|^ zj%k{TstpDy8qbnV4sJ0=RpW+c#p9-ta#fDBHNB1FLc6N!Z2&497*mXDVyk-lt$M9y zTKu2O&jCf%9F6Bub;ppdq T3N$6CUab_%QWl)c<;8X#rMw7EGnot}Ifx=CV^)t!4ft-%&CSZcaSW(Z z0h2N@S@pUH*O3k>Qk4M!G%Ps|Xr2*VMYJXW2Vh4Q=I2QTAgFpelr#shfpkhlt^gM` z-nLSAC3wayQ-VI24Vf~MXOWNbYT^r$pswDH;&*}zvzmiEfD!t{Amsq7+<}1sVJQ+Z z&kSwD`VBNXI!g0=Ebu$&>+SSS<2<1+It3#YGci6!)8pe50}xodMi>GJgi)P@enT)w zJ9YXL6*3F7rf(H>_x8xG0sDEdIalu7MZ-g9Xp#X}lDE5c!#cjR4G{qs%4O>9>zDlv zo;*d4T@gQ+p1w{}d7YS<6g^FqLDWon67xCP-}<%d$zrh7+1@67e8w51p^2Y?G~7a# zs(h{ZU<81e4AM>yo)Hmpj@N-J9ZHZ @4WzT;R& zf$5*2I&QV@z&6OKIjU>(H6I=x)=(`qFwj@W`gP59T(mf-!9 c2I!{zO&(0QP< zrRY8C*sbV3a4iGn!(hJ}mAtO!^}*LVSTbuP7rMOjtrDR}X;cKcfiB0?gso8{f?xPq zEFjSLKMD5LQGJji>)FczP|#Cku}s+Sm*Xz#PCQkyBkV}k>ozQ(t@zJ>v;(SD&kFKN zz{4d3O3l#mX|%lgUKGexn&=v-3DcxDW1J%Nj^~<`M|IJ@5Fj5kcC%=?hAL=gsD;i= zV?8SX-ojcJx>(p0{Uw4E 1CpOR3XDnO{QQZ dwk1-c|A1EI%$XtD%rj^N z<7(ZON{&em>X?lK*v!q$iH-u|*aCXipv*W|V1P0!>_Z`6kiZv@+Z@PB9BXO m NY)mu2Kxi)UIm9tl%QXqU6O$9v)4z(r*MjI_5b(i< z!RQW;@ac(3N~Dt xdE9_QRVg9|Gm;4U|xl?tWq-ahZ#@jglneqh#@&lM@f z=b 9JLt7H-$eVKf1b)EFg- fW>#Ra% H1rI3^42?e&v$L9`@ zjmUO*({<^hU6-B?{02U0+YGW?O*0sy)g85g*LWR(HHT40oj+SDmg}*&WmoKyxRml_ zhll6dhH5bMv7mP60ijnUqeY9)E5_w04(hl7p!kM&P1&fzSWS0)5=+X86@U@Tax`0! zY86I6b=_--Q5RLK2Uh9 *W;sUScOyi}h3nhH+gr>HnhYs;#>dZDl%>>74s_6##CffRWf^gP z03{f)#BHb6#euzx!A1&9Fh2_|eqb9sdoy)||I>9mPYf$=X?D%#$yD7SFHedYp?byk zt?E19`Qr)$24&OcEp+JcA*C&mV0>cDe)+zC`trk%Jo?;Q?zrROpM3jU?BUacH<>V4 zBh2)8kaf@2-sYfznL2zdU}!coJ4f>j2C|vFSJC1)0urF{fQ9<}d`2`J2 7VsTtf)@$VGRD6wxCy)7^}7~_Bk1spyD=h?Po zN(8%Qzt_$b2U#!zU{DGiT$8DkOoPhUpWlRUk^?oOSG8h`1_Z`ys4ha_Lp4ffE+f5g z5M|JNrmLe Glp8D}zrFE{`)% zM2ta73Z`!m0!x`R2V=y=;gMkhP)Ik;flc9al};q32@fi-jvhJcAGaed2g=p5-w!Au zK eZmF`(;9C8R0|Vqz=ZMmOF1 zdiuaG{JhxifA6u!sIPaGq|cst_E|c4{50?9C~e(-IX(L5qn-hvrpn6@lR(eh4)=;D z)a3~*?i)jwG@_&vwtFhsUXVW!0#}@|0PM|MGM|XgLtG3?*j8q~8ocrN(mt@y{^~ znUW(~Ye4$|G7Mq(JETadHg0GRX}E8AUn*Ei{`&E$ Lf9fD@coX;v8~g`GBCe`2SmD#B$^^*q(i1oYT^<&uq2j5*8$kRu z$yH4ZN#}PFlX+BFPxls6!vlif)8bZ4GvoZyO%;zE$U@?A%iv?=Loqeo;*arPF(!@2 z06jaO8~^zvN2)=6p^9T8zPGL>6=)pbF{c8P!Rtxzz&f7Ova+oDMv$8KBBy!9W0*M! z7Z6-X5LRgUKEj`C1W+DhEu6L@>3m$57o>2WAl`d$qbH9Mnw*M|*jXx%4wl=hO;Qu# z<7w7>?|f{>`LY60+o$ueBkno&8$QoYNJmK#>B3roT+l*nixCk1) Lt)PsXCqA5z-E&ahwpk3s?JSuD57B zIa8q(;Q(q_x*p?SEdGM?Q%p @w9nQ&K`<(mUt;_qW zO19x{+NB!adv`qd>~;2Ddo3n?Lf8wPH)!KU5M<>9_OPM #Sl0yHlP6nS z?Cz@q5NNHj;D;aG7Hex~xt;Ys01kc5cN!rhnjk;9`>D8i@q+NeDuays5AN~m9BsEl z0vosQ+!4=Rxgr)97noqXP5S`Z7d#EztquiXLXk`$#jJ`l6Ur_C8puFkm40~t9t*I6 z;EMC_c01zZJD>2iK^t~MHkf~L_WXG)Tv;}L *BuD|UAu@v-{c3LFtAibbEnN+QmzuJE-7j|CtR>bD5? zD3jg3eTOwou&xCtWUxnoAa!~&_}tdc9tUb y)wfAX&o<=J5-M5k1}N`UTwoun^4^Q?IMgH5^z zZ6+QMBWF}1B##%29RMUn`>@Fd#o07Fjx;|>_#FY!n!DHxvZT*uvtfb+LjcUKj86-A zR_BG-Ic=2%JMamR$`ft7G|(EFaCuT8BS8-+YB-X{5HLS&j6Q`F1ihWWhJ@LqNfLUH z18jrNqoU$btl3mYqx_^H8fNDi&f=h;0x4f ziKi7;%@p2ASyz`n0bu;H-DYLK8!=rG*c`({F~=OoG+>#5kGRlbRXmP7V8PE#7iUL> zWJD#GRp~l@XPyWgy7wf7^3iEX?Y}Vw{%HY 42AstP^MeDVBaV6xh7k*;#LKZqA=wm<`+QcBRS7FRw)rdA{NYbuS33AuVlbeN(6P zOpPYrDy^3wY8}wLP@zdFpouG>Da)rdRKTfhn%M};z_Lw3=x{LX%QQ~Zpx^g EM27B$d%ssq9K@$N3YWj;gq x)LSPWP?J9GNi)Gm|F{t8tXhP%1+CYjRAfr~@1&DOa`U+6x?*2ctfl z1kh5Qz*UtwK0~^Q)oRQ77VYoD- n$A=(P*WXDnN;RuO;jM}H!|{Egq?G7~aufAQV_F0Nm{#;x5U0kDq k0D?g_WiWuyorm&}27pRX>hVFz zlmHjZMWOwo*n@piaHoi$a-`SvSQ?ay=tq=?G`Kmafg~s((Y_n4h6d>wDML+&ijEQG z9~$DRMg}QP0C<$4i6D*BDDl~&DrMdSt!)5!QW~3@77uzjjFL*|C;ib#({)KDYF+m2 z2~HB?!!#?TbWQj-929|5?JL4pNt8 TO$i7r12lR{ zSxFuP_NJA4iae4cf!r@4RTuSBl3a&RQs_3y8d37vE}0{ACwDBNdu{Za04l#MK#>KO zbH0@-4^GlTwr19)nY=>VmRB;!bUt-hLTVZhLINn99tEKf-#IN3AbG-FIISR1EqqtX ztI_uwt(GeE@K 9t2I PI5Mb;Fpro1AJgyB_i+-?3SxQ;%9`AkkM{Ne`$-MRx`u7TwTYla8jX<6(0<6- z6ipz HIVj? 8^vOsIWg$*_ww6Q%_Igm%7pyXgffeOKjrx?r0^0Iji zt8Zfixbic{cQbC8wzYG~T_%zPigMev+eg`hcW)2af(0?LDPa@DtPMarpukHp?Ldt^ z8$Py455i VOpAFWQ1IQ}-50B?XDtC1Vs?QuNyNfm*>hvlN|)W?^W*y% zSi?t?@NuwdB)BT{-cdAU!99yXeF8333z+SVF&4~PKc>NOV9PXgk^mLx4D&t5=>+>C z K3(l(q#ez990g{%+8$~0OcQmp{;4Yx$24$KwcH~k#KTswz5X->6ZRd}%nM5!< z3>FT)4<1J#HCxlA41hq|rMDwM8?Fjjga-PoH3!yAl-2Z{Yosse9vQ`j9}spSWsD=H zF9JCU{goC9G5EGL)UcjN2?(a66h7ZbkR@rv>|ENpNwD_NX_Ugt(j&mZBG54tePcC> zV>KKOy-{zd2E!q;HQaHO42Ke(ON~Y&?)MKUgv6lTfIKTLNRa>vne*^8ZH;`8bkg*8 zD4Wb9$aWQFCV*O6VHb52kg%k^usSCh(231B)ZuU8cweb|igZDWzfx$472>FT#5A&M z84ys%@E_$V0LN(;? dx}=Tp0e!+ z1X4mtt5*p NU* z6ag|m4gh&JI=XC$78A&%`Mk9o21iu<5Li9Sv$3yPdjKx47z^So$e9Q*qEw~azW6v9 z KV#il zxI$oj0e?e}wu$RTV-nJU_IT<4=-9e->o$RsIq{Pp{geR>-w$OoQ`nu)9X2VGemUtz zW5D+_ASfA3<8}5SG8P17*%HqgMrOA@16(P)W*bJ5(B;A6SSp+4!WgypzyU^hCgQqt za8%rXY=Nd0c9)U~v&v XF>-LvY;>2?)g?oq|7uMjg~zP!kf|(hO>JiX5Ou=EvjG zDA#TbdsNW2xSC|!ld;Co3}R@f3H|KzN!gDhiA3*Hgga13lnKBPEoA7ZyhPbKF+m%k zlq`&zpp1k)&|UIiF%Cs!>}muKOcbG1~q zprrg~{w@HN)l??_Xj@n@Jdu(mH>diJ9(yvz0x#Q8C z6&@TM&@W*ClK {Bd3#0MYUWKEJCTKS@*$LEZKW=}1S z?FcNGh<#TY k+Va$fIypZ7Gm;(mB6<-SeuXF0ORh8r{p-u z^L~&<_myiOFfL(Y$0xcrICGNPIm}Az+t)n@co6(D14A?|TJU6?M~@zxDME3VMf`2p z8vmUGwBbGud#u -;m@L?e+_`YzJ^Jk1!!+V( z6$;z(xdoX^6{#(8;n+DzhcXX?Q% Eq#N^9W+|i+=Q|JvibAo-P6!TOhoQIR0Mp`p1QK9RFuBicJ{ Qi- z2W6L`N>GmD64`*ppwFBbWKAHPmw{yfPn=V1L5GEsuog%n3qjbz4ph;QF^R(^7-jrE zM0iiSk;gzc Nn3zHa=K9j8gr_2~Xp~2X;Mgu<(dXS!l;|8`iNQLk}1aTk{P2ii$ zCino2#{i$F^W;(x_%T36zVadJlA0ur2%-2 SE$sl#PpCu4MFU&8qw=T|A})I8<^q#v-d&=Dy1kW_G?# zmM1=`0!z8 H~}98d;$;{kqtnLCw^`( z%!>2p&WlE^#;u^Wu)?HLtu0t!EaAB_2nEQ%l@xd(iq_Cdz%vXoF(5XwR60s0tao9- z2v+mpzHmkWgj{eTlqW=vdr_qoDuN{QWYTy{`b2PJBubMy4DEPj&S1c06VP&s%nOry zjSaF;c;Hn!(*~G(!R(ee&L|=rU?C+BKnDk3R=-6XENu(wwDx_5Tc|m}rDj~FVciaG zGSw-e9p8n^F!&!b`r69(GbvfwQispwwS+ktxE2V|zAJAapyHV5{yR^iECZy($PoZC zE)PD>01fX$YR |2! z4ghA9#(dV23B #`1t50pgjJ 596!T=}3@^xgMhv zS*e7aom^XAm#_}NIqdH48atlAvGL6O{G3@|TNSO=ER=!e$9L~}hn)@wV(A$PHDjm> zFE1{b{Z3aO>>rpe%>_UQ8n}r5k1R`zu8AL1G%a8VjSMs$vkmB+8`3GrxXoIPaE7n@ z{XVvVR7`*a0p|qCt$Mwo7v|?NIMQyvr|F#WQRuWK=rV3Kn(2je=RDeWytlWT93CDf zhrNLcJ&%cHAiS+E&y0G#A?6Yp(O^|^Y(hz3*4Laisnr5G97<$SI8Z0t{^w|AGSk?b zWKMD=9U+dl9dLwK%l|Ws0a=pXbHF4&UjqxvaFQYM9fMLEmy?YqU?R+APt-9%ej3U2 zq&D5t@I$7(&rBhwPHRUl%jz5lhU6(g!nD9HPXK4fm6ueZ>nAxOBO|8l%S<67JKxK3 zNhlAzI^x%)q4KMgc!~#JBt4k|Ajzj4y%HvNzDAbhfKT2Qy9|Z$7bb1bMLXz942Q9( z)v5})+khs1$V{RhO{+R@dv{m$dObNeH><#>uY?t>fS7y-1G+t$Z1+0{W~SNV6 0V>s$Z!~)Gc}Q80D%q}tF5WH1H_uDd*iMn+!O1U6R^B|whiOR8aCbUjkzOf zIuRGPZ?TFB5TXMJL$C}ufLh)KKn>5t+KHy3qsn>9Gl`Y64VnRk?^?S7 feCJbDt3FKmI(O4EUb1l)? z-xFX=02IVbF14j20Mg|%D`NA>V;;A7542h!1_*8nJyfF6s?+t;VtZ?cb$I})B;7Px z1n}{~Ao0Ta^JZ&nTf$ZVX#qA_Va|<_0fCEi>t`kI9f1OK(Ak%0JqK6-u>|08c4kKM z^YQqR>Gvbk8w>zoBs+oAzxj4sz5dD#)9H5glg-C+I2f@29RWE>*BXP~wC9)2`L%Tr ziPhm@2hYCg9CQrL57>!8w(r@C&zgFu%=XT{*Y^ithA13IoJ8ndMj6+8@# Few3{u`rXXUHO=AS0Ognj#9x$pj0qHY zDEU&4IO_6V_{XMxrQSbMM&ov5N3|N42Al#c(&A$dL{!iwi6$%UeB(qV7Z1b DFB=|r6X6C&^%Hx z@y+{N%b?^l9{Gc;iirfVEC3c$ILYF}qo>^5tiW2I!fKZ2+`$70vKv-4&1Mr1E!g)A zC}>qm6I);QdR>JMg+`;14hB6vH#cKitvYAsJG27bKiEZCRzpjo-#avm?Y6F0>tND} zPPa$@J){-p4km8&{)sayi|ka~IXvWQwNKF)?Y8xL-Cz}a<;ruMvWH^mg9rBka12O> zv$HMnga7rv#sB%y`+|-^j3{v2`|PtZ5MZE%)>m4e%+iXm)oQX*DVHZGAXaFfsF!<= zR4HBgAZv$BQsG>NC!iKV9`%3h!*-E~vG#><#QmN$N;_~#l7G--&j5axZu5Bj= zcpygSdg|nn&YG;ul4W!V2@Q03-n}p}Y$LJlwJEoh|v`Vcpa!HQCiYsH`F5#Dy1nUgV>V4fA2M z#^P=%nqJ}rH82)I t4f8k|??R>Am>bix>QZgMDD+nA5m;<^yh$RuBwq%+&P!%nXY;ff1ahkx%mu z{V-Ao2M2^{tDMPAENdC+*@mW I4GpX|gQhm}_3f zkMRoKwRvEsPRL>%2a3!T9_jFJ8=#b3B)^b)DrPw3l=NQyrl;a*6R<3EQWWpWL~A5> z-GGQ9t?DzaJZK*GgN21T)QIEZu zjpU<8Pk8xFKm~+6Lld&BHyXxfEFcMgs3~Bmh50skC(u ^3HST6qT8|LXy~9oU@b-&fV+G`TAh0AY#fbzTQ*@L zq~Te^W8fgh*#qhLB0&ZS5M&*2$v;Xg^>Ks)AWWP#NMb>Z5LISXMXB+x8?^P=5J zqGxx7e|P*1J=UGH#8cr&wW&@gd ?Zji!Gr$DEYOPuq&1xw2_jWm>CY2@M z;%#Whg;R2iw!OKvX|oy*ymDrRzAv=r#Qgj$mwh%jpKy6mI9?A(6ZHzrC7 $j7IJ56N9+&)!mVW2Xd1%= z0_5{oE*X^X4hSgS|LlHdNQaD)97H2?VSQaLEzUzxSi+5ZYkLSrg1|}X^j%TaY5Ess!(= 4Qg)Q)Fob+dd}Xu&CMDd4+7q!NG2Nu-A>Z_xC-zu5bX7wJ?xS9fsn4JdDgE0!Q8M z0E?|8MR|xm*Q&LE?^shMN$}c0hat39q;>?^jOfbXM2>hhD@|pjpsY|J#U5QzL#G9a z0SXxP=RcStjwTMm7 4#=OFB%-#Nu=z=A6d2O&$}dk6Znph6HOqNBKyV zl%C8n hr-_u&wi?oc4JKA#qyO;`~doVeM*H{07gDFKdzCdq(SxVqJ>v)Yuls!)=Eg ;P<-u)_S_6R_p(zl z{hfu&=rw4j9Cj(N#fF0c+Bt1}_goi;&4_TxBGUyC8F;XwXi{eSBDNGET=$Ndq<|d& zIXVtAu#tJLjN5-z)> ~!syBI2-|X7QMU7C z^7 %$EXDY%A0hJ7~6d#Gu@XgW1~&3QzcV5HI{@sp%Aka|M+~|>3FVWmXjHu zkagX6%RO;q<4kQ%%JKcsIlPTh3<76uRA(){Bue=@al5Zuka{v;&Iht8Q1C?wacOCu zh45e^=@EEHbxc6iK1yMT4z`fZA)&j{qW60$Wk^OqS)5s3aO7r>fJ9FWVM0hC0VPL~ zSkSR_W|28AXio-6!B~bB0*(<9_hH8W0e~LHocoUxR3<8-J>PbnO;%hGuG9e4T#AG^ z9NNjHF*B_hIU2=sFdT_W#W!&@1Yuk*EiE!1W`1^-J8$4vJ%|RZ*c_+mY!YT^fj|lc z`+BV^I`quNI%RQ2aC&h22K|A2`1mn_{+`W~X_o4j% Qp>mvC;Aq4|T3Q=-JY)Sicm z8-cNh34xP yqo?Fs#DfNCOhK_aBxLI~(bhQLWY?#5y7 zn-SBNIYilYMrx%KLi#ykaDoZAI^ysAK+?>kM{e=yz=>CqNhmHrgJU=$8R;^d(rF@2 zQNs8<+FhsNi<}ln90xE=$)Z~xQxf_-B-Ya$>uI`(^2FCN0 -$uFP-xKJjlq`J!5xbNiOY_=H8#?26s~2F2Dz^ zesrxC#Bhy;1`5j0KI`3k8X)D&nKL{eAtl<5=S(%MYMM}B #0v;sH(eJBJ7e zgiR{+){%@xk)&VL^2)M?+&zI8nrK@dAs3Am9GrXM*m3sks%f=a;=zN5G?}*1R!J+l zu0ciwwf<+&`7=9XhJ&H}?17@mah^E@FnNPaEhg#N**RJ{N&+(Q;aQ@|b|@B?7TBFQ z%Sza?h|Ll(w?SpAc+U}DwZIaK6;G{R+Bmx)a&5)=4xi#vVc(uJk4ATnHvu3Szr=QP zl*|`d0C#1XqgY>!fkJ+-+3}csH;pR?$sE|QToUx1=AMDTz3$H6p1b`$6)q!`on8LC za|bd8TN&7MD(WDj1P-uGMA;_L#@+`#?rcE@#mhck^kY-5{F5fm$$CzB{fIxiI6rT_ zkG8f%tsW3~m=y`d8aPOUDE!LHFSDcdt&i@oV|A0jEc8z5)r9R0UZ>Xq7;fLb&7|FG zwaMkfh(HbaDzGm=>GIaCo8qw3V||&Jf-A~5=gys{?Nr6ux%IK1P!c74^s_T<8jm%$ zP`UiQ2les~#CV;@)lg&r$fSs^MR3e(KnmDtvD#7DCf9@Qe zM@MWt+>ppTGSA5XoHxYc;*z}f!t H3r+%|Xb- ~uNk=vl!qg*?DGNAS z6h=7VLtVvata7F#5fvDG2{Uvhn_+HsJj``WMn|&=MFrC|_p>}9^P#4Imoka{;{v!j zMd!{*rI6E-Yt0Fn9&rK?nsyx1fWWWPxN;I;D-%T3Q!-O!uFqNA9=ZG8xBY_r_n=VD z@(a9DS%LwM{pU^jTmCB)M}>6q-8w~GlOn>>1t5}_+{H ho8 sHGy_eV9#X__zx@UA z{PWMt;b5Tl_V$ep?#$hn=wf)|wO7s6t5?P2C!3IOhX@oaTI0|b7Z=QPmoJ-3moCzT zsKtYakE{&3@(hx*%gamRg%_@hmtVRr&tEtv?%uu60ZhYQoX%`+c1B!z?h<`(i3Uyj z2vPtf2(oX!@v3<3jW2L!Ksk{%mM(XuZZ_p^zuVt!#|-ltlyBeX%-%fr9{WBu{*tUu z;&F;zjkjsLS5OXMQYgwazQ?co?(_INxCQ((6O`@e@i&iKP~G;j<7E>$-~K&259WV( z9N_%yxU=`TeP=&&3BkAL!Ta@WmyMsD6PFmA>7BGK%7GW~HSwHT9%n1?H_wub`8d?% z+Tb-mcg%t3kGDO!em;|HeQ)x4%Nz3D{(Rdh#RhzVeZM2Z^0wIUF%f_EXMZk6NhD?{ zIA6JPnKNiu<%8tuidSq}c;otY@!G4e(%7;ZI*|4UHwIl<;Et@VtcdsCdyoB-P&VA% z+2PNkoOnRN5j>XP`_?zvOc17xyYz*yg}?96dr=bl?XP`R+<5sV5z?`4ZEbQl6M=9R z7DRW@#q$@$m%j8x0y=AKJ+QmG!=M Gk@3NkLrVT7CO>zb&p@zAR>D=hVG>_e_$es$Opykk6lN zZmB>8=J)>I-=}Bwih_;8pg+KZfv$TfH#fJqGWW%I-WIRF{yOWMpd 4%nci z(7luI(0iVJ<|67LAg!BLqa_=y8BuH0*;5GT{`Q-1n&+=vflImRb^&A>Okf@kBD$_! z(QdcpSHApPa&={uuIWCP!75ewCSh@Ms34eo{n}MY^M(Z12jyP)4|-mp2Q-J!FXsC7 z>*jU3w~rn_hH$J{Svi}wW@a>P-*gTS^y{y@qMy5TNjDoay0f>3TDGo+bqL?51TZ1g zlrGJmA-JY=uQvqkB@O94UD`QHPC=pVcj)F<-}ZD^(PX5DxS018anch{%R=Op!?XE6 zbid~t8}g3yULl+Ai{mv)PLnAy;`3)x%80CT3I|1;P*N)6(v%6Ookl>eED>;A$?G&- zOw+bq{3-*F#rUtLbT8$zX;JQ8`X!VPQ9`Pfry)CgCAGHv!R2?B8T(}!lYAMbj7OqH zxg&8_0~?5m _!y z2hUu(=q vc5LFVCM_H&>s(EH2Xb_S}qFrR{BR@6f9C(8Ls6*3Pbo z8!ug>Ra09c4NM?JUO2lhx`!PZ$3uDL*^A<>H@_ej+Vk{UQ=F%jE;1-P6abJdc;&{+ z;^kLf<$Nr6sVEyLmC9D@RtqKLlw<&d#j}(c2VyC$`X>kF+!qIKp&Zcg#$aH)J!K`& z!NI`$5oA>s^f?eq=aw6~ZWo!Ui#h-lSchB{jysO{y&U)h?lM9^$KRlf!mX()w4ami zd|c2UZ*MGCXTb|^SJ;+j*1~XY&30e*n3#_Ppy0SV78Hf7>5>5}{_f73!4!iqH3m2Q zH}{@wzg`Ap!f*nPe9!*udt;CWY55G`;ZcHt;rGA)m*ULgf_U%U-x5o-vPZ|)(!!$H z+T7&(h2Vej{JQvu|L7mECJMF}2KJm$9zc0xetu5;-nYLcE?is}HCmAaj3V;_0xOH0 z(XoE@D_;?>y!tX{^3ZhzGHj1l{Qy7k)_IkH$ya{s%bWp0xd@-zr-0iZ^q8;;Qt3Co z{+_t_%y}kwBV+XGy?adJMJqhYZ3wb&eBpJ`UYHm39Pzfd2xvph5GBX?xq0#KyI U;CO_IlBs?uz{=dVW)#^2m>>KyUWi$gKKUU7usxO z_~Ff)2Cmm|ir(Y*?1{yN1@pUfUFrEoDOMA}lIZM DH?f^0*oaLz5%m@Gs^bZ5L6{Y3DYFa>1xi(W@9Cgyo7OZ)9`h1}CPe}R86FOjo zI9XI}nxnBNo)&sj$8a~MWfaU55TZ`Wt0~K(sAIs4JccK8+R{n>yj02liubC_Ia-#0 z8JTNlNeiUmvVDjWE{{A-YDncal0S+3pz}nzOQtDdGkXP;X2emmqWss$onX-fDLb~B z>kuj>K)v+ROZAzVN-#6C w z#Mi(6P4Vg*Z?et^-_0~r3bWlOSvdsS9{EyE{t9JeSd|xUb3E9L@R~1us9eb?Q&;6P zlfIL;&r}ZdSUP^Z(Hy6P*JRRnpDoM-ra&YwzV6;LE+ZB9lN~RYSe!wfu>@S^-lz%V z2D}&T%2NPE) P4% z{ucrraxAgWIxTd~H#Q!LAOH9#+$r {773_QEyMCXm7l zVb_X{R_Tog8{#t>qigHyTvkDs6k60%_I$Esn$0Jh1UfE=YuB#244mc1ppy&)?~gyZ z%K+r+^H;fa @WapmlmH|>-h5 -yhm0w-x`+yYCXf zS%5YQ^HP5C!A y6}%*KS0!3+<$L*o%6-LGtro{A@&^ZXmTB(oUimUwD4FxVSK&>rI$wIP4MX+}Ye2 zefY_p5uM9`&LyF*6lO*Hdp&d%C4+uH+B`VW0Kkqz!rFU-r=5&>K1Zo%C>$$gvPjI& z?|z}I;}sUH{**u_PtiSd60JZUQ(id^r07!ugK5EDi|Iyy#i~FVkUNg}T6PR-3J^I> zM#zZM$?zAieNom!p5i_gDHdt2sxitX8 bFXe% zZ#G-?R%@o-fGuF99uiupNNK8`HkDW>6$-{xLMD|;4I(G(VjTJ~;4rBNVI}$z-afuz zvs}#vG^{PD6NBtQB@9*I(>rN~r+q>UQt4Pr2(?k5RFxo9sEgYy2>pSx8{C7-b$Ji1 z0I88o-1H=irp2_rLF?voSFVefUVg)QyI2QZnbQvuBIBf_Q%A8Uoi>UKgk#cc))34d zEy*MR3sERB7q}b0?7t(xVl0a~{p}Pik~DIHYL%yf&=Ed~aoiU@0Zt~K3?&C}n21{P zxeV-xob>;s!|8-``P`Qw;a1)6|K;~6i1zp ZOY8-(Dx^x&j=^4Kbb38f!J6wG7E&TD4^oD };DAagpXg7d|d_LL2G!y2-(QFIiq{$3a-pVc>K2ctrnbv%~GJ ztx<0@94ySuN3@_B&|EMyNj!+tbTEiUgWf@p-r0@%Q948l>!9CDhKGk~Z?|g>hr_r_ z7mNT6y?H=KJD@pevP!L4ppwnuen}RjtV<*BH1CxF6IHSzKS_38pRz2WP5?Uk6df(c ziL99ux`9kdX{e~MI;}iY)LALZ)`%0X*J((*<^+C>IR=28M$9f>4T;6XOwbcYbx%yL z5|XcQMB=FMswr?#@~ T!vfXrAN&N?a%jnZkph z3pK7(JguuDgP@hx=BnsC;BMna*i2fj>Iio3jYdsXtF>UJ*&NUcE)Hw;iqLV&?E5I< zVn#@-EdYahy~?CnEJ9&GN&v-&w1V&X0e!(_Oj-ZV5mre$NrsUAP_=4BS1O^T$%Yo_ z70#s$`aS7|9y^vP*YE<8ZM9aBUO<6Gv9l^jd=e_N#=Qwy7c@KvDxg(g$bpF4bKR;R z+R>hG6IxzwEPA&8SY)!{7J#U6SB*cuUEUaK$|7) Md2RZVqJo%UkSsZ!X@%}1+&2=`>iro>JCkr;e60olfzF581^BD{61L+qn#>)4{F4F)qCi7~70 |f_Tzwv8M#JK8VZd_t z@W=tc0#|2#p)GFQc$p1}Aufl8J$jzGv5OWoT#|`KiCCj+0iKSXg;;T!E>$YyG?vJ2 zrcR-l7bBjPzQ>}1<{C((=!N!z@GkjU>V&rIGszz76L|Fy01=DJ3v^6CgeInSQOd1_ zbR#1AELy?4)je_0t(lrt4>m3B(G){-*2q9;GOfok3>Y;HEw#7DphOSc96gu>R+A$% zdIiu>Ov9_fO5ZOmX4Mpqhdd^@PwRx47JQF044g)kJx+$cti&LX;d&H `9E@Wd$3A6uS afB^t&fL4PtRhc*d0000 import('./part') @@ -9,37 +10,91 @@ const parts = [{ export default class index extends Component { + state = { + saving: false + } + + children = [] + + formData = {} shouldComponentUpdate(props, state) { return !isEqual(this.state, state) } + async onSubmit() { + for (const child of this.children) { + try { + const data = await child.getData() + this.formData = { + ...this.formData, + ...data + } + } catch { + return + } + } + + this.setState({ saving: true }) + if (!this.props.param.record) { + // 新增 + try { + const { success } = await api.houseCodeAdd(this.formData) + if (success) { + Message.success('保存成功') + Modal.confirm({ + content: '已添加成功,是否继续添加?', + onOk: () => { + + }, + onCancel: () => { + window.closeContentWindow() + } + }) + } + } finally { + this.setState({ saving: false }) + } + } else { + // 编辑 + try { + const { success } = await api.houseCodeEdit(this.formData) + if (success) { + Message.success('保存成功') + } + } finally { + this.setState({ saving: false }) + } + } + } + render() { const { id, param } = this.props return ( -+
+{ parts.map((item, i) => ( {item.title && )) }{parts.title}
} -+ this.children.push(r)} /> -+ diff --git a/web-react/src/pages/business/house/code/form/part.jsx b/web-react/src/pages/business/house/code/form/part.jsx index dd76dec..ed86511 100644 --- a/web-react/src/pages/business/house/code/form/part.jsx +++ b/web-react/src/pages/business/house/code/form/part.jsx @@ -1,10 +1,15 @@ import React, { Component } from 'react' -import { Form, Input, InputNumber, Radio, Spin } from 'antd' -import { AntIcon, IconSelector } from 'components' +import { Button, Cascader, Form, Input, InputNumber, Radio, Spin, Select, Row, Col, Tag, Alert, Tooltip } from 'antd' +import { AntIcon, Auth } from 'components' import { cloneDeep } from 'lodash' import getDictData from 'util/dic' +import { api } from 'common/api' +import { CITY } from 'util/global' -const initialValues = {} +const initialValues = { + type: 1, + industry: 1 +} const labelCol = { flex: '150px' } const wrapperCol = { flex: '1' } @@ -17,7 +22,15 @@ export default class form extends Component { codes: { dicHouseType: [], dicHouseIndustry: [] - } + }, + options: { + areaTree: [], + projects: [], + zones: [] + }, + + houseCode: '', + showIndustry: false } // 表单实例 @@ -32,9 +45,16 @@ export default class form extends Component { * mount后回调 */ componentDidMount() { + if (this.props.onRef) { + this.props.onRef(this) + } this.fillData(this.props.param) } + componentWillUnmount() { + if (this.map) this.map.destroy() + } + /** * 填充数据 * 可以在设置this.record之后对其作出数据结构调整 @@ -45,10 +65,37 @@ export default class form extends Component { this.record = cloneDeep(params.record) //#region 从后端转换成前段所需格式 + await this.initMap() + const options = { ...this.state.options } + // 有数据 + if (this.record) { + const { type, areaCode } = this.record + // areaCode需要从字符串转为数组 + this.record.areaCode = [ + areaCode.substr(0, 4), + areaCode.substr(0, 6), + areaCode.substr(0, 9), + areaCode + ] + // 获取项目和片区列表 + const data = await this.getProjectsAndZones({ + areaCode: this.record.areaCode, + type + }) + Object.assign(options, data) + // 定位 + const position = [this.record.lng, this.record.lat] + this.setMarker(position) + this.map.setCenter(position) + } const codes = await getDictData('dic_house_type', 'dic_house_industry') + const { data: areaTree } = await api.getAreaTree() + options.areaTree = areaTree this.setState({ - codes + codes, + options }) + this.showHouseCode() //#endregion this.form.current.setFieldsValue(this.record) @@ -73,50 +120,467 @@ export default class form extends Component { postData.id = this.record.id } //#region 从前段转换后端所需格式 + if (postData.areaCode) { + postData.areaCode = postData.areaCode[3] + } //#endregion return postData } } //#region 自定义方法 + initMap() { + + // eslint-disable-next-line no-undef + const amap = AMap + + return new Promise(resolve => { + const city = CITY + + const district = new amap.DistrictSearch({ + subdistrict: 0, + extensions: 'all', + level: 'city' + }) + + district.search(city, (status, result) => { + const bounds = result.districtList[0].boundaries, + mask = [] + for (let i = 0; i < bounds.length; i += 1) { + mask.push([bounds[i]]) + } + + const geocoder = new amap.Geocoder({ city }) + geocoder.getLocation(city, (status, result) => { + + if (status !== 'complete' || !(result.geocodes && result.geocodes.length)) return + + this.citycode = result.geocodes[0].addressComponent.citycode + + this.map = new amap.Map(this.refs.map, { + mask, + zoom: 12, + center: result.geocodes[0].location + }) + + this.map.on('click', e => { + this.setMarker(e.lnglat, geocoder) + }) + + this.map.on('complete', () => { + this.map.setFitView() + this.map.setZoom(12) + + for (const path of bounds) { + new amap.Polyline({ + path, + strokeColor: '#ccc', + strokeWeight: 4, + map: this.map + }) + } + + resolve() + }) + + const auto = new amap.AutoComplete({ + input: this.refs['map-search'].input, + city, + citylimit: true + }) + + const placeSearch = new amap.PlaceSearch({ + city, + citylimit: true, + pageSize: 1 + }) + + auto.on('select', ({ poi: { name: keywords, adcode } }) => { + placeSearch.search(keywords, async (status, result) => { + const { + poiList: { pois }, + } = result + for (const poi of pois) { + await this.setMarker(poi.location, geocoder) + this.map.setCenter(poi.location) + } + }) + }) + + }) + }) + }) + } + + setMarker(position, geocoder) { + + const set = (position) => { + if (this.marker) { + this.marker.setPosition(position) + } else { + this.marker = new amap.Marker({ + map: this.map, + icon: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', + position, + offset: new amap.Pixel(-13, -30), + }) + } + } + + // eslint-disable-next-line no-undef + const amap = AMap + + return new Promise((resolve, reject) => { + if (geocoder) { + geocoder.getAddress(position, (status, result) => { + if (status === 'complete' && result.regeocode) { + if (result.regeocode.addressComponent.citycode !== this.citycode) { + // 如果选到了别的城市,则中断 + return + } + this.setPosition(result.regeocode.formattedAddress, position) + + set(position) + resolve(position) + + } else { + console.error('根据经纬度查询地址失败') + + reject() + } + }) + } else { + set(position) + resolve(position) + } + }) + } + + setPosition(address, { lng, lat }) { + this.form.current.setFieldsValue({ + address, + lng, + lat + }) + } + + async getProjectsAndZones({ areaCode, type } = {}, mode = ['projects', 'zones']) { + if (!areaCode || !type) { + const value = this.form.current.getFieldsValue() + areaCode = value.areaCode + type = value.type + } + + if (!(areaCode && areaCode.length === 4)) return null + + try { + const result = {} + + if (mode.includes('projects')) { + const { data: projects } = await api.houseProjectList({ + areaCode: areaCode[3], + type + }) + result.projects = projects + } + if (mode.includes('zones')) { + const { data: zones } = await api.houseZoneList({ + areaCode: areaCode[3] + }) + result.zones = zones + } + + return result + } catch { + return null + } + } + + async getCodeNo(projectId) { + this.setState({ loading: true }) + const { data: no } = await api.houseCodeNo({ projectId }) + this.form.current.setFieldsValue({ + no + }) + this.setState({ loading: false }) + } + + showHouseCode(values) { + if (this.record) { + this.setState({ + houseCode: this.record.houseCode + }) + } else if (values) { + const { type, industry, areaCode, projectId, no } = values + if (areaCode && areaCode.length === 4 && projectId && no) { + let houseCode = areaCode[3] + const projectSort = this.state.options.projects.find(p => p.id === projectId).sort + houseCode += projectSort.toString().padStart(3, '0') + houseCode += no.toString().padStart(3, '0') + if (type == 1) { + this.setState({ houseCode }) + } else { + if (!industry) { + this.setState({ houseCode: '' }) + } else { + const tag = this.state.codes.dicHouseIndustry.find(p => p.code == industry).extCode.tag + houseCode += `-${tag}` + this.setState({ houseCode }) + } + } + } else { + this.setState({ houseCode: '' }) + } + } + } + + async onValuesChange(changedValues, allValues) { + const form = this.form.current + // 房屋性质 + if (changedValues.hasOwnProperty('type')) { + this.setState({ + showIndustry: changedValues.type == 2, + loading: true + }) + const data = await this.getProjectsAndZones() + form.setFieldsValue({ projectId: undefined }) + this.setState({ + options: { + ...this.state.options, + ...data + }, + loading: false + }) + this.showHouseCode(form.getFieldsValue()) + } + + // 所属区域 + else if (changedValues.hasOwnProperty('areaCode')) { + this.setState({ loading: true }) + const data = await this.getProjectsAndZones() + form.setFieldsValue({ projectId: undefined, zoneId: undefined }) + this.setState({ + options: { + ...this.state.options, + ...data + }, + loading: false + }) + this.showHouseCode(form.getFieldsValue()) + } + + // 所属项目 + else if (changedValues.hasOwnProperty('projectId')) { + await this.getCodeNo(changedValues.projectId) + this.showHouseCode(form.getFieldsValue()) + } + + // 所属行业 + else if (changedValues.hasOwnProperty('industry')) { + this.showHouseCode(allValues) + } + + // 编号 + else if (changedValues.hasOwnProperty('no')) { + this.showHouseCode(allValues) + } + } + + async onReloadProjectsOrZones(mode) { + this.setState({ loading: true }) + const data = await this.getProjectsAndZones({}, [mode]) + this.setState({ + options: { + ...this.state.options, + ...data + }, + loading: false + }) + } //#endregion render() { - const { loading, codes } = this.state + const { loading, codes, options, showIndustry, houseCode } = this.state return ( - +- -- {codes.dicHouseType.map(item => ( - -{item.value} - ))} -- +- {codes.dicHouseIndustry.map(item => ( - -{item.value} - ))} -+
-+ ++ +++ ++ + + + { + showIndustry && ++ {codes.dicHouseType.map(item => ( + +{item.value} + ))} ++ + } ++ {codes.dicHouseIndustry.map(item => ( + +{item.value} + ))} ++ + { + houseCode && ++
++ + + +labels.join(' - ')} + fieldNames={{ + label: 'name', + value: 'code', + children: 'children' + }} + options={options.areaTree} + expandTrigger="hover" + /> + + +
+ ++ + + + ++ ++ + + + ++ } onClick={() => this.onReloadProjectsOrZones('projects')}> + ++ + + + { + showIndustry && +value.padStart(3, '0')} + max={999} + min={1} + precision={0} + step={1} + className="w-100-p" + placeholder="请输入房屋序号" + /> + - + } + + + } +{houseCode} +房屋编码说明} + description={<> + 房屋所在市 —县(市、区) —街道(乡、镇) —社区、居(村)委会) —项目 —实物幢序号 。 根据省厅既有建筑物编号规则,房屋所在区域编号按照市、县(市、区)、街道(乡、镇)、社区、居(村)委会)、项目分类,其中市、县(市)区部分按照《中华人民共和国行政区划代码》(GB2260)标准编码,街道(乡、镇)按《县以下行政区划代码编码规则》(GB10114-88)标准编码,社区、居(村)委会部分按照统计局提供编码设定。各地上报各街道社区名称后,上述编号由系统自动生成。
各社区下辖项目由各地负责统一编码,住宅项目序号一般一个小区一号,采用3位数,001号起编,范围为001~999。实物幢序号由各地负责统一编码,以幢为单位,采用3位数,001号起编,范围为001~999。 + >} /> +
++ ++
++ + + + ++ ++ + + + ++ } onClick={() => this.onReloadProjectsOrZones('zones')}> + ++ + ++ + ++
++ + + + ++ + + + +this.form.current.setFieldsValue({ - icon - })} /> ) }