From 67b2d07db98708418d47dc26c86b982e6040ccf0 Mon Sep 17 00:00:00 2001 From: zhangmeng <494089941@qq.com> Date: Fri, 16 Apr 2021 09:26:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E5=93=81=E9=80=89=E6=8B=A9=E5=90=8E?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E6=80=BB=E7=B1=BB=E9=A1=B5=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/icons/borrow_status.png | Bin 0 -> 17554 bytes lib/const/resource.dart | 4 + .../borrow/borrow_goods_page.dart | 45 +++++- .../borrow_goods_detail_page.dart | 128 +++++++++++++++++- 4 files changed, 165 insertions(+), 12 deletions(-) create mode 100644 assets/icons/borrow_status.png diff --git a/assets/icons/borrow_status.png b/assets/icons/borrow_status.png new file mode 100644 index 0000000000000000000000000000000000000000..013eaa9908ce1ce1f9fa5a8c9f37df8f55790426 GIT binary patch literal 17554 zcmeIaWmuEp`!@~)q*NLd5s(f6k&+%r2uOE~l1`P91_e0ns8oc0p>8UE>)r>H$fq#_jP1GDTHSzesdlEeSC}%vviy`2_2p)KN1bO&)1mG3_ z;XNa@>!s}cxvkL z@VQyWt=AgK&Ze*47F-?tWRLz}Bv|a6QJnJO-qp#g@86cBM`n;`IK=SR5S5eEz=xou zLsv!4x}sDbrY*w{B@c7Fwy-j_h+x@KnbD4wvyoF7uh3DrYp$FOB@_>z@V`(0rNMvY z;QvhxNG$U_{|e;clMr%z4A@^!Oc!yy?&|D((@anA{>P4vU~5!oFtM+56Gq9_sL5YUls>FJTPf5;U8%Sit4-P8EEcJ0_+ zwyVHVq}sn)%4!`^i;|C*KR@aXh%d@D;MNg@#1TGPjr&n9ZV`TRa`N4<(rB}UexoE| z=RiHqmHN~9()|HDca6vYY79)tX)*G90mF8dt^utjB@XcF03Kp|!U;Oo{8EgjdpN16 zsOVM1n?OJJnI+AE?I-F1Ec!If*Q;(4MOGf9k7GqLj%_+ZOfnBxX1K82T#wVNL-76r zksBp?w3_2b`Lmc`$JqGLhI1R6JbR$8H*Y*@UVJOuuc?W*pi~sAJSpQ|-__FEdU9>M zfPrFWr~X9zDFuD7xDD?DsdZ z{rVd$>|szc2*)1n`|=)^aJbis(OuJeyHMplQ_bATJ%!K$^83_YPZtZ-|F*d7o(a%! zYh|(6@sluyUnO}zCNlO`G~Y2Ci8S*{K3)+^Rr^)AA7DMI@z>b`pYwpBX~VM#ho#?a zJu19jFOs?8&-(wb#TJa8ttf7ywj86rWTm@Fye?U%-#g(6yCKF0m*Ag3xn{sjO^>50 zDk=`{v2m*t_RzBCN6mREEk<@{NqSuom5^YWN&hNeXv)``7Tdx^!UONB34v?L*E?wD z$Q)A<-_hZOq%*MQJ9fr2pt{#4OSj91+qlb$t!6}dP6e*FMXGO&x?~i49XUEDo&EY~ z{&0`vh#jhUSSs{}<7HT!7D`98l%@LX)0ZkCXf`349-4c^Q&`L37qKdvp<@m3b^!`P z$~U}F#dy*_TMxoU&mg~Pi^4T0&3E4xy&qCH2^!?fBZ|E+K6h?4Y-bZgNR+_-RSBOQ z>=B7VwkxTQR~k*RZquFGCsaC5q9N#shOVj3gIt%XbEW8gJvzu|^7mt}wtF_jyB9W; zGHv>J^K*-hwvrb=Ow@Z24xx`Uyouq&ZO2(HR8VUHeCiXk8|`}!^Sp3Jw930anqRPQ zqIoPxdCF0))NLvoey!2r0aPRkVG+!VLdzT~*}mds<>hM_GymKgU4MJ63{4SohI0cgC|p2ai~ZXgm_-i@Qf8|_ROH8Zu`N~O-Xqjl7o43J%)^f@ms%?$50hH*+l zNDhz#*|j$^uZ2CA+Uq098MJifM~&H75>yG07RlW*Sdz2X2X*oW2E2FQK~;cS-CXM* z%gD!6#!p8o3+gS*N776GJ7KpL@4!4ORM|jHy}{<5E2(gh6bV5UwNWw%F|AB-cZuq- zP(DH}`N4gO&jG*ZlNVg~7h9pmxq*`bYqW2mcwoDDQoQ7M)_1CIVPtk>&MP`^F7XmG%dK(r;*?@0`J)mRk&{{DJE;?!rY_1?JN|v&wqt2llXfaY0zVja zUb4naLl=prCiq_h2Av+i+Lju;EfhW~Pw79XDV4 zZpTh-%$wCNh^KR7NVE#33qlxPMf&mAuvxs6Q@qM@p<(sS6wl?nfC?qn`mn^4*ptqj zeqN7+HIwcq_|&a^*}nsw&>l|F|MaSvhMN$_g2ziXUt4Oz=2}8ts$e8)Pw_+9DGTuU ze^Lexze-CPk}tY9ZaWo1%?vNnSW4Q`W$W*k)4zJrmFv;7FiBVBx@MIu1Rxm(yo z-ELI4bM0YF_6w?2734;8DOpNxk!eGgUT?LD!AJ;}@tc*B+Tw1}I-RPCEJ9%MhI+rj#Jw3{x ze|?bceF+}!$k~P1C{^vMI(mh7gItX|(kF*Hyv#_x*3pZ9lwt3LXt%11AswNX%VobM z+~qW0Kvi8`JzqBBZg41G;pe(*HY&a9nRMn)%k}p|h*Gc`;#F76$GLQJ{1ym@cgy+G zjE5lYyIrd5txFNNDdu z6@}9HSVY!4mrtGLH;2vgy(;xLf6qjpUDs?G{1cC~=zKtdf;7yXAFt%1G~Jntw?E&| z%++ffR*ra%y@w()eK&n*?Ob!msr}-#o^4#%Zf{Zqds9zFbq4=L?P74OnN8(!CCm7( zg=UL0p~qJF?K6^glR47{2lvLH=lULUGGuM)oF{Lh|jLb;yOfl6Q1P* zA12zT`4`%K3y?|z_EV6uI3ka zzj->&6LW^kz5M;}PE-AjS|d3+-JP&Tu5|$wz{#oKRcxsB{@D}RWOkD!*MyUqu8PXO zp(nlExgyRi1X(!tlA<>#mHw{DUrDhdmC4T;J0FW3BSR?TrYU;NUu{Df-;?4~2XM6t z2e6Csp`fHA3yKpP48td1-1Ks#?E2qJN~!xR&)mYa2Ji3hn`2~-2BHhiCeby&)jpjY zGL~ykJ?aqt8NkCFZV3X14r+VPD@jAs6)0!Ml#ZDW1e;e%ld0L9rM;F=;5N*%h-(Z^ zwEEQWMM=nmko!&1`ZbSGB4VEVH>J*heNV0|ks@5;hAM`#s2<=}+dqHbZh|1?3#(xj zbX9Pgg?P#C;aq0%Q{*(aBY(l@x?~dOcJTJdWKC8KR+l@moz!lJh2JyV#3@i(i1ofP zzkwI4{tUB_Yh*ymfwR{1cptjPR7Qq&tUQ55*TmtgoYp8-=4xHp`$pwebL3fwnr`IB zdk|r83gMrM=2bN{9$!HCHEg(mcCk+P=Xu+ezn1v(OB60>C{0)(-Pz>Ztpchxcyl{k zwOiQ5rQ~|v=$}@U&&}FAw7v>t}K${=ikh~eGaS{cDrzv ziZA_8AJVSOKkzs!qojGEYS1G`&ZZ|qxlY$)%oX1~THXSM;1_fM?UUC*Sh~GVqrO^r zG(Ja8%VG{fN%Q5s(tFjE!yQA8>vK#&v?sr}%_MUw#z(UAB_fUj8OHoKus+PErWrto z2m-8n+9c2Ath>Xoeeo`X6PZF0Cj<8oTzbXO${Cz`gg`Te}& z#yHX5?Ik@_I7<{H`qxk#9;vK!@Uf+ax62sZjP!NL`p_n_ zT~67r$!y2+%ZmgJ{KbjGdy5bHEzG+Q+u8-jos&*oL{4Mi8$67g7GV)v?c^I*@^pte zQcPT1ruNh)-&C1St|8kkb1kc<{{f$s-beV&DU> z`aEBGgm$RjQ-A38f%_6rZ}5&9XTPDlP?^&nzKM#k68jg2xzbPMA7VygT~4Qx!6biZDX*>YR9 zK#(2YS)KBT)j;_%WsZtdRK+PPmJ(YTb5c$d?gQix6HR!~V&sCh*p+UwCEar1k3L z{VT=i+U4>YU=ZcQ@eRm)u^OSxDETdLF8usYzjj%Lt6tgGBA;3EP&{jT*Wl*{A;`P2 z;I+3mo~`x>bGvpOPYcug!26TTZZg-T{3I8AmAAD)>f|~-eiCk8%JKz<-v|L6H+gS8phsDSCG7|c{Lox6I@-){TSDG`= z#y@{oH4fV&I=ePA;wIw9Zw2NgX;VD~5w+iMOM`00w{H26q0e@i^oBa>TIq&%b($vzFhQ{W>Y388hZ*B`|1yLS0oae8^(i#r^!;QxF&I5-Fowqx!pV{S1ewp%LN zM&BWO=6uJ-Wr-zWh&;iTITwhz+`fuLos;*o*K$&yGUI~-PAOW|dI1~D=SuV55aF}u z5eDbxT%WQNbeo#|y^?`A8~q1m<-r$+2QI;oxRzHc z(1t-@LQZm#uwGQL^CO07QJ!?|vBSA6mjQzCJi;6KfeSD%^pJ3i0#+Gs;7ky95B)R| z-e<+77^n@E(Dyem=9hV-7Pu&&hM>54-;QnIOqS1*kP9SPpT2-_cGTbnT54KOe#_`S zuD#~Gxo3s-?X~bGqDF0O!oZUNu{*ubGq z?c7w&_;GGi!CYa~oJHu~YPb_+mv|V?6^iM0L@>cbc!~>h!vZq^=*C8Z-%)?&& zlEH+=hJ+Tp57I8aVaeEZF&ica=*wjvn8KtqQ zDeoFfw@tMNnAguzYI4M$EJ_^Tx&ZCESuWT+#*j_ilf9|HgNX!6;J0ewfDE z`mOz%B(D6R3q&aV1`zlgPR;bXY}=JcU4szU0aTmiNpts?p_Z0LpZe9{^9}k z4Po1_CY*cvw+&J5O^oTQ;iq-cL$IyEG!j-pu~&yw!LHxYJpzFhJNP7iO0jODuGX0 zME>Gm4ncrpCAX=jzPMe)H~I*UT&f7vXn81`-;#dBbV*n%5Egt7Ztz~4pfOy2pIo_F zCzV~`yL0sKH*Wg(qkCtcwsND1&)o&r1gsGX^KJ+b8F2AG zgZ$TuQ@P4o1@x-w`zn%$P(1wnBIZ|LTrh%!P!J@+T;;V5t5oSM1QR*!-wk ze#OfQo%^1~GTaQJA|iJ#*SXW(w4lFQlEALYTtOHRKxRm15J`Qa?dsyfNS=|Ne#wQG zl-3bBiV|!6zPT!2YTZA6zOn=>7L4@BBLmE4odk4?Xlv>03~`Me>42l)Ba*mp!hK8) zcYiwQ%UqBa`u$?a=XoS@h;BCMS&qE(L{U1aMEb8w)ng(#N_1ipl|AMgj zjGWF3URiN5gUv1sMP5*hG7*sV^HRX^a%x}2kqxPl?$dGgKZh4!VDn1`Yn4l(%e(OV zzNy-!uX*zWy^t0!|Io&QoBtSrv|k6IohyfZqP`l)We`+kn=&+9t&5{}zT=>BA&VsH z7eoA-T3X_@%T^!t`fiEH3r#2vy}MjH3#=V3D1vY|X2YsOl>2yhT9AI{-dRMZS1#m& zl?liNB)G|KuKracJh*`{I?kf#*C){(#k-f>rp$txKBXe2{3zbSf_a#RRDT+;vJ$#~ zhu-!QVSZ!;bl%>|-GilwE&ij0+rqCK*?lQbBnexo(uALUBgU++i*KNxEU9#-gM{OL zu)h9e0^f6j!CnHeotGCY$&yu>HMt16M+Q0|8=Z48&s5};SnWZoWB-(M z;>lfxo0SiGpV?OtnUdfW2GEVw@v@69RuqN6+}*1g`UdwHMMdm@b@8Z+xdpkh$+r}sv<9LBcs>RlUJV<0dT8q&5y`5s>@i5-p1VAT)r~YW92Z-STWbq z&~VzN&Y2c4Zjod)G~`L}9y#ZJ+tB&Ghr@4oLTZ2rm~+g?H}AgsnLIQ<6Q$DsbNnU zt0_!Yo}4SOQh^m@jaD+}r;~dbvr+D~YRSM5E0ZMimWMtp+~;n*xpe%wUb*p=G65CX z_bLx|@`IDqkfN?KT|RcDL9AM^f|4G{P$k4n!mSdrt*ci%T?1FIjMTpYaRu%N(evh1 zFLU}}tUmJ_Y-#4XI$Fd%MOl)B)f#47=eB!kT7kO1LFRm} zKm{R~H@t{Q9PtLL!nu!HZKeB?RP%0UmlLYkGKONj$>NlsRuIj@%WLCpnaoPg{yqnw zG(Y)`YeX4}%EvLCYtxT4P3c+l8RpuuODi{FcEZX6H7vB~g0LE_kSlm`+B#W^g z?n6mP9l7o21z>|>aAXfq3pG?H0=*KisDTH{heob?a%*}iNdF!N+i9749lxk3 zDM3r7;_FC2NKEMNVU{Po#}+0hOSR>vTn1=AI0NOQTC5yD=5BgnN~KKOQ5NUn=xy1^ zM#TCfH>|nceR^prBvS<=B6e+8NRe$v6P(Z@{u6Wdp^aDIv)la>B!sL_-`NHkseZ|H zWG3o z`TH2ms1)@{YqbJr$+;iLmeE}R4A%Rw^A!qR+fcK&Sl58z6Y0E84R(W0O5v2IW7i1! zMK<&=Bl^kn-M}hZr8{8wyD;iwsHU;=?LEg$bDYz?a2lsyfEHCslt&cT~#k_M{Wm%>6Y>R@1lfoE~6C zBPFXPQmHH81xXE2>$rx7@8vh}3EOFO6t^qORWMh)7+Tod$=`=v=yD(Hj5GT!42xsK zjTkd?rG4D6nGG$_p>(RT)}I6}L&J>KsJu1>kDT<^q1Ca)>6x2n!dZuvI?y>7`~#b*_iC%Uy`o(s1dF`iY{eP;+d*ky+95m{ zSeH2(9k$x36PMP+6IsS;&(se3iGn7Oc)7aLo+H;tV7MX*I%YmEwlL@tQRB!1=%qTJ z-`YhFdj;U$wjU}dZgS`MP5JfGBy{=T!=Cu#3wvSyCt<*vR2Djjf1Lw@eEV*1%#tIoj4;{&1+1cVrY;I zjG{h~ccXt~O2YbH2%mFLPt(x_c92Ycx*F6Z*H+D$uevc`UtgbaqWaYT>nb@7*JG2L z!fp<#z$MMljJ3Mm()8miM`TVuLu7_ayacGH>W1KL;a2;v%2gvZR#T&90`Gf(|2c%H zulKdIv}Ecpd_yy{TjNm&d>xr&KrN$vX*NZu9y<5}FO^3bt|?}HoZ`!W?(yy2%^HMP zTJ&IOim+P9%C7mMh?!a=$IOK$pS<9)JcU}NtLbwfa0s7;n60F^qD~?;H8tbc`qq{% z?9o@i|M9miZ#v&(bMD3OM~B>Lndgnwy9iq!L8P5;dv{&WXluOymmX={_u>O8MlzI* zfG+X$uo*c{lLWt=hVWhmUi}T1_4987=sd~T8F>bGU9^@NsG=wwMKW04ptd>SaDZhg z4#Ee00QAnxQvs3F|bb1N^Ki%_i zZawRERzxI}Xu?!_GcRJ=C-|KET;0*uC32KWa(9F-&_c z>=A=i7ZDf|g7&R42IaHN`G&0zzRUi#@e$0Mw|;m>)aa4~0{ z<|_8|(CX$L3kPK&_d(QYQ%IzX)-&me(!6?Fa#C4E&sOGqAl)r0{~-`Qics7bia4S- zF#2@|Y;GXra&sX%jdKDC6PNL7JsT*{jU^!&{&**~i5m-pf2@Y0FG4{zz{UI)nCEj; z$myoqD%DBMCCz1kr!L%YZlG!nd0fRT<}y{`^z%OOH-K=KfScn1$hnUGCU{qEdO_si z0{9pY;t#?BRg7~faq;5QFW0mvzQ?HaUR>!ufiR|t*5U-WXDPu5ohgR#eK|MB%ro|T z!XT4m9V-s=y)FLX!-uWK<*0Vk#xS@jOFV>V&)&^YPw1(~X@h`y^ScO-+!Siyp#8&F zyw}!wleo1zxsNM$%n3+k%}~;}^D(Ic;9aON*y1O;d&E1Ik^m_t2bR(3(>2c1CLjWP zbr{X9irnD;IbwHt_ZLt>PvX+bdVq4Km8{5$V6JY+W~MD|qrdi!UeJpj9BGZr3Gqjo zG05Vc{r6=4{Z{rxA32%D=e_C~|7Pw*)+3(r}8&S9V=#eSmg{MJA*M>3~ zId|Hg2#(r*xDX_0%24(>#6Br7V&qcW)Wh`06B7mMEvN$sq3%X5>#I-w#!8wg-KhUZ z%-qPI@@2T|#w;g{v0L+{w=w6(zoQgvU;`UAA{0$C@#4!6r1VM=r2M_XWoX2h^ivV6 zB4xZ{C|Frt?T#qfo*;=a%{0UraCp0BtkD&vSgU$@?fR@uKhjhqTg8RCrgRx6`WzWF z&q%lIV-VX#q%>T2cX$PDO|8NrIy==`wpU|10zjDVki2C#*26g;pGMIogss(O0s zPJ%Mkn3Q$aIfF>RqW5DOEof{xA~Ldq6j(Hjp-wX$2ohatS= zz-E~kLkEH!l$CqqTA^15f?!PXIEM)4I)38S&YeM@_C8fL^v@9X z8^95@jZg)AEv_2re5HQ+YMT1OXg=r9^Fgw^oN;jO^m)a+PXKO{-M2`*%4+87RFlmNSrO=v=#LDWF-O-pNk5I5-0+nkm9<4>1Z%2Skh2Lo`1mgV zd^5adq|AFY{4sf&{`mC?1<&8`UgwfiI0dP!B~I>^r?9lf8gcKIuX+J3nCxSiB;6*N zmh#|JirPuhgZx?oy&t)wv=6M<8hG=!(;t1N1@#1ahs^DGF~-~3I3xv)$+OTEkl~55Q8+`liRS~ zzCdsrf4D@-khU>fZhEEB`- z%`InCTUGXUT-i^A<%)~DtxXgMGK^oP2Tsus5})zJrm^dkVi)fy%dL|+%K}yF{78YPa6Yu zBksNn^TEejWel%JImsW_Wh^yX;uEob{D4OqEb#7=kcNgvHmXNQo=@Do*=WfVX z*+^tclt#*(sJhdpLCtD0?gT+i}PpL*Q@v?{7at{rQRH+Uxu>Wz=h>uRW~+K5I zbMr-fcnR~?I+3H#RMrJSKoc+@?!++Gk~&PhKSQ`T(d-`&#JroYe6L5sxW*(!Oj6Sn z!FZ}2Dd_Cdgvw`FjpJtXftenkZx4!tWuU0!_v!a>3lb<$u5Nbfh^=Nbau{|lGhy@1QG#k+dBhI*kK;RU~G z{o~?VOLKqs*Ii6a`5uq|BtlAqbTReSZ{IX=cVq&oSd#4}R44<2F77ERIy$;813gd8 zvZJzI%dZ_1g^9xQ7k2`wlFdJ7ln-f#cMrvq(y=tnQb!Z61Qocnz=Rcz|xU&Peq#lAy^VlHvOi(=@{ z&WZlnOx@OufRT;4hA55&yXcE_jq)igz-yTonV1k+L1G<);Be&<;Cu;UQ6gbFiKH!!P93$ql3(g|EscpMovpJ&bqDH27p@u)6qEpr9RO9^ zn@FzUD`V{SI<7Kp5a)Apa8SJ1=wE>G<>)auTb&d#7NZjMd?F1R;Md=`mA${24*C~? zX$=MZX$}4}%>&bvAnxBx62x!1go-)tj7hvzqRPF@WH5h}phYk?`yMI|RE2Yu0DlihsSFbxtUCnQ+@N;)}$LjjA?8t#- zF1!YZ_hIn!PDQ6@EZ+jCvih%C%!vHFc0mwxU^su*jME|M`6C8zM~&O>Blj#Tv1hrf zI}ewXE;$Ck=`97nt2gg|wUG5lAkMG4r5L&N37(&CbJWW6_cBchvjQtnoD^16xI|um zf0{v@?@iZ35Byfk5b(oLW0oD}%Z;#rVe%*W+AF;d=m6@G)1I-C!*~fXvFWaD&GSn* z`tQYRx_&&*aw?t%$v{VVVy6|JFUT(zZjd7a8o|yOd7dixrr$`9DzpFm^H0$0l|bVk!LZG5VGYdoeN-jswZ)? z3m4U;@CePc|3L`9VTq+AuyV@Jnob`Dyt8&vRqb0elMHF>gC9}i#}hujZ~TBE^L_Hv zp=F(IZ?%QYK;d<^AtYP5Q+(iIU%WU(k&l2b zUHhdb!CRhMyU#2{by1wy^7mWAgD;c)d*M#+b|^Dt!&r{`BIh$2$h-2>Irq3l`J;o~ z5>aoy`Z{7XQ=+yiX7mL){x(RBmi%;c<<>SEK5r{ldNI8-@)e5G}&lKU)zUpVY;kAH^Bz ztuPp?2WYrP?D4}2JCPPM;vHt?yrU5GkD-Hu1M|Jm`V^w57;h$xdpJ*eqy|+uP;ZKl zzmu7|DmnZ;dGcM01CmwL4_zDO*pk!Uidf*sR&-Up5@Bgf9=i6`|AflDW}%+|lpG(e zTKZ`tK06o9FLj0D>Q20$A-s+bYm90DfbvmAEAW`%HkG{s6eZ-v(Iy!k99MG9ty#@J z)XF||+95qTGRz%RY3J!R>tw2}ef53N$<5Y+=H&w9)frk7|L}Zx^>hvYw?)NqJ@n_U znwTNVoUSV%TD(hJyW;wH<-8lfPzwhz->obPDeC#8z@L$KqQ~DihxB>+vRVABk3dC{ z!~|*{e6F228(Pd2#1rX|)}Z+fliWPVJEcrVqC`!?N2=sv8s}i7CvQcHmBttMw{dn} zo4u$=(_3#uY?ySPy_tS?(+aVBNEa=MkV%Q6ZiT!2HsRd2D%HD_!m5*pN7@19$#oRr z7w6o^(EUygj%&!AHQPI%L%ussx@-WQp#fE_*Kj_YSDmN1rrTetV`_J-4@erW%fSrT4V;B&9~HYc8N zH@<|M^LJTmIbsTKeQ;?Ec`fcZqGN94_fOJu8JY)7_UiW({^5Ugy0yJI&06}PzOCtVF}s}--!l+NDFFf0DRH*vT}7p#3adAKL3p$xuGK|~(WSs?T&-#=S7 z6Qyl9ADWeLkogKda!cmL-zM}<%S~sR;Z@o(^!`uaV&ruc&(!;Q)YpZ4x%RCEhnean z>TsZtbS@t=)Jb;KBLX{kYm`PVnq7;o$O4UKkFuCAStSQK z`OZ&`kk#9N=8=h_X7Uf<5L+WDvG=~flC1IEvT;HEkr1Ok$%(C(;s1@_z-##yYdQLh zElZHlyL%q*_FvybIVsi2kAe=Q$JG)(ji*j=z7%lsFR|GX%pR!TXp2l#SH5N@8i_Cs zIx~EWeIENRq)=B+mHyU^=b1yiPDs^|dgRmS&R3Zc3mEiZq(0@)KWD)Qg0Jc4DHgyJJoylU1qs=&xTaz5zoP)75aef3kXJ*;f!ZW>(jwG`+kd z&NLD}3>^=h)a*?kqV;VbsE1fhpfZ==D!F$yG&b%%x;=cpEz^|Qd?En)irPZ;Vze^V z{l?VSeXG-2)T{Nh`9L3XuQT)5?miNA9vJ(H-k&}A__IHw6$YY^2 z(~1f+^B2g8%ES!HRajWWQk$*^T1OA17%O&~@v7~0^RiZe%0O@p^#{21FoD12GYN5V zj|%nXjCcF#WM>^9S_1X~FN3kgonWO+%45_WEjoI|@ogU6x|#S0_cMeJ?X8FUm2g?w#E+*D2+tZ!$#&7K?>NNA--R|$p#8UqdSQ5PSG()Yh zvqemMV{pnPS=JgL91q35Ggm0d8Z2jMRCtsl=F1kU4OhfZ0{J!1cxV)pqt4KK+o-O9 zv!j38N~UrCR8K+e+mDk)r$fYHXtt=jdQ&B`-3n?GMO~qW)>LQ4jeEsVe}o&j$DCX4 zRv~T&jAkKV`Q;YdshM5-GSE>pUejYsb;Hf)$E)wRCH9|S?x!k%va&94=DNMlrEu;3 zyWc^lwzVK#poXWMUpdN(m+MVW=z^;|^%)7R_5nSTDP z?>X_kxV}6Pyq{bwIBabGX!UsAlfQb}{a#e91^jsl*)98GD49ZcbvIw^P*Jn%)1ErHi}3RN**mx zWzMqNO0B7^oYyFQh}EMsUtuN)%OezJ#HEC!<>ZkQ30&iQ`cgR$bhigc+-rw@3e$4G zRh9BPzVUgLU=S}_sXHB-bdZu;qPY<}!j@-CNDXi#?yw95TNCM$1)p~Y^{KeOSl;3i z`9hI-P7c%hG`1bV2`vS|b?Mn$rG>=qjWPmsXKB&7VN(r9pg@swI9Yp1^`p{N??x+P zMtK|du}TmR7_&LNVYfc0#;9=lfVP5fraAVMA9-}-oyPJ+zQx``*wsCbRs_9Y)UAH7 z#OyHiNVa*M-9Vyexw50{ePgNL;Q-zkb+$Twi!=^#%t+B=fYbo8*ZlD^@N{?I6lW~Q z=}a;_pK{As*Xp)VISgc1jcb2?VN9u8WdO(vgppx!1DML%O>I|^Gs9>HM|n23=)0s& zEbtJK8gbQ{+)Dj%%VE8FCvr$6utem#w#=@O?86^&y8NhZr)5_U!5)I}0;0X(lNd5d zL*fougUgo4JYa>P(t>**eU4}Ir5MkHnhI5DP7x2cbyWZHCv=sq%_o5`M^&#($Mxiy z5w-)`2994lzNXmXaJ$^RA;cU)Bf39WODGV}^S2(2TY7)z;W{YTn6V2EZjjjNfuwxE z<65n*`UcAsr=5__pWltVoucjZl+PF;jFDY6Yp1Q}CrzynhQ5og7hNY*1VBdAgudik z{nUg-1 z$j2E?o!wv5|Hv&7aQdR0V1S zUC6qX&*nNRU8!brbc?^@9=!@{6d)v%Z$Q813|W^F;w`R9P)Ed+|6KSalVDYGYYg|z z;~;+2AoSegZIHsza6S>qCve!dXQf8u5I~)=gnu;2BwT!To=@^0ML$x520M)0>@pvn zB&J{v5-H6oCe#*72aeaVHE?(Q0q1UKtL0hgG;$y#ZVa`2?BxHV+5i%&ri&}E>I(6Z z+H})>A;4-&cm{gyPv<3+=pR}iY|K6UAY>Jyq^hc#LeElNepf~KuB|Rq?d%%1ztvQ= zVsy@_Fm`L&seRG*-$j#CHc*gGvUIw!VQXd}Y0!+>E=BY)Kh3Wu>{;PPMm%_vo>BGCXmdRMNzsU)q<_)KZIsSQfmlJ`O z*o#(%zfuek^(}1Uv7eCp2YG{Q=kH2jDSwWw-prn=FKzd4S_=3E`uiW>Msj!Fv!wzJ z`w)5}leeZ{i^}d1tz$3}i18g_{?9CV^c&S{Uu>E={*{?0e`PTepa7`ILOJ&5p_g~S zFSJ1z^fO?~%knf~A&A3n&;dY*o}$aB?XwP}YB+E}*9iyzReF|E0nIRSxV7e&Fz* XZEWg!8djI#fj>26Eu|Vo>zDrrp3L~- literal 0 HcmV?d00001 diff --git a/lib/const/resource.dart b/lib/const/resource.dart index fde9802f..fdebb2a4 100644 --- a/lib/const/resource.dart +++ b/lib/const/resource.dart @@ -124,6 +124,10 @@ class R { static const String ASSETS_ICONS_ARTICLE_NAME_PNG = 'assets/icons/article_name.png'; + /// ![preview](file:///Users/zhangmeng/akuCommunity/assets/icons/borrow_status.png) + static const String ASSETS_ICONS_BORROW_STATUS_PNG = + 'assets/icons/borrow_status.png'; + /// ![preview](file:///Users/zhangmeng/akuCommunity/assets/icons/comment_notice.png) static const String ASSETS_ICONS_COMMENT_NOTICE_PNG = 'assets/icons/comment_notice.png'; diff --git a/lib/pages/goods_manage_page/borrow/borrow_goods_page.dart b/lib/pages/goods_manage_page/borrow/borrow_goods_page.dart index 71f7e2b7..2af0228f 100644 --- a/lib/pages/goods_manage_page/borrow/borrow_goods_page.dart +++ b/lib/pages/goods_manage_page/borrow/borrow_goods_page.dart @@ -21,6 +21,8 @@ class BorrowGoodsPage extends StatefulWidget { class _BorrowGoodsPageState extends State { EasyRefreshController _easyRefreshController; + List _submitIds = []; + List _counts = []; @override void initState() { super.initState(); @@ -50,6 +52,7 @@ class _BorrowGoodsPageState extends State { path: API.manager.articleBorrow, controller: _easyRefreshController, convert: (models) { + _counts.addAll(List.filled(models.tableList.length, 0)); return models.tableList .map((e) => ArticleBorrowModel.fromJson(e)) .toList(); @@ -58,7 +61,7 @@ class _BorrowGoodsPageState extends State { return ListView.separated( padding: EdgeInsets.symmetric(vertical: 16.w, horizontal: 32.w), itemBuilder: (context, index) { - return _goodsCard(items[index]); + return _goodsCard(items[index], _counts[index]); }, separatorBuilder: (_, __) { return 16.w.heightBox; @@ -93,7 +96,7 @@ class _BorrowGoodsPageState extends State { ); } - Widget _goodsCard(ArticleBorrowModel model) { + Widget _goodsCard(ArticleBorrowModel model, int index) { return Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -137,16 +140,48 @@ class _BorrowGoodsPageState extends State { ], ), ], - ) + ), + _counts[index] == 0 + ? SizedBox() + : Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Container( + alignment: Alignment.center, + width: 40.w, + height: 40.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20.w), + color: kPrimaryColor, + ), + child: '${_counts[index]}' + .text + .color(ktextPrimary) + .size(24.sp) + .bold + .make(), + ), + ], + ).expand() ], ) .box .color(Colors.white) + .height(232.w) + .width(686.w) .padding(EdgeInsets.symmetric(vertical: 24.w, horizontal: 24.w)) .withRounded(value: 6.w) .make() - .onInkTap(() { - Get.to(() => BorrowGoodsDetailPage()); + .onInkTap(() async { + List ids; + await Get.to(() => BorrowGoodsDetailPage( + articleId: model.id, + )).then((value) { + ids = value; + _counts[index] = ids.length; + _submitIds.addAll(ids); + setState(() {}); + }); }); } } diff --git a/lib/pages/goods_manage_page/borrow_goods_detail_page.dart b/lib/pages/goods_manage_page/borrow_goods_detail_page.dart index 37e868b0..f175d487 100644 --- a/lib/pages/goods_manage_page/borrow_goods_detail_page.dart +++ b/lib/pages/goods_manage_page/borrow_goods_detail_page.dart @@ -6,9 +6,12 @@ import 'package:akuCommunity/pages/goods_deto_page/deto_create_page/widget/commo import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart'; import 'package:akuCommunity/utils/network/base_model.dart'; import 'package:akuCommunity/utils/network/net_util.dart'; +import 'package:akuCommunity/widget/animated/animated_scale.dart'; import 'package:akuCommunity/widget/bee_scaffold.dart'; +import 'package:akuCommunity/widget/buttons/radio_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyrefresh/easy_refresh.dart'; +import 'package:get/get.dart'; import 'package:velocity_x/velocity_x.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:akuCommunity/const/resource.dart'; @@ -26,6 +29,7 @@ class _BorrowGoodsDetailPageState extends State { List _models; bool _onload = true; List _selectItems = []; + bool get allSelect => _selectItems.length == _models.length; @override void initState() { super.initState(); @@ -58,9 +62,93 @@ class _BorrowGoodsDetailPageState extends State { children: [..._models.map((e) => _goodsCard(e)).toList()], ), ), + bottomNavi: _onload ? _empty() : _bottomButton(), ); } + Widget _allSelectButton() { + return GestureDetector( + onTap: () { + if (allSelect) { + _selectItems.clear(); + } else { + _selectItems.clear(); + _models.forEach((element) { + _selectItems.add(element.id); + }); + } + setState(() {}); + }, + child: AnimatedContainer( + height: 40.w, + width: 40.w, + decoration: BoxDecoration( + border: Border.all( + color: allSelect ? kPrimaryColor : Color(0xFF979797), + width: 3.w, + ), + borderRadius: BorderRadius.circular(20.w), + ), + duration: Duration(milliseconds: 300), + curve: Curves.easeInOutCubic, + alignment: Alignment.center, + child: AnimatedOpacity( + duration: Duration(milliseconds: 300), + curve: Curves.easeInOutCubic, + opacity: allSelect ? 1 : 0, + child: AnimatedScale( + scale: allSelect ? 1 : 0, + child: Container( + height: 24.w, + width: 24.w, + decoration: BoxDecoration( + color: kPrimaryColor, + borderRadius: BorderRadius.circular(12.w), + ), + ), + ), + ), + ), + ); + } + + Widget _bottomButton() { + return Row( + children: [ + _allSelectButton(), + 16.w.widthBox, + '全选'.text.color(ktextSubColor).size(24.sp).make(), + Spacer(), + '已选择 '.richText.color(ktextPrimary).size(24.sp).withTextSpanChildren([ + '${_selectItems.length}' + .textSpan + .size(32.sp) + .color(ktextPrimary) + .make(), + ' 项'.textSpan.size(24.sp).color(ktextPrimary).make(), + ]).make(), + 32.w.widthBox, + MaterialButton( + elevation: 0, + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(37.w)), + color: kPrimaryColor, + padding: EdgeInsets.symmetric(horizontal: 50.w, vertical: 15.w), + onPressed: () { + Get.back(result: _selectItems); + }, + child: '确定'.text.black.size(32.sp).bold.make(), + ), + ], + ) + .pSymmetric(v: 22.w, h: 32.w) + .box + .color(Colors.white) + .width(double.infinity) + .padding(EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom)) + .make(); + } + Widget _empty() { return Container(); } @@ -77,11 +165,24 @@ class _BorrowGoodsDetailPageState extends State { return Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - CommonRadio( - size: 32.w, - value: model.id, - groupValue: _selectItems, - ), + GestureDetector( + onTap: () { + if (_selectItems.contains(model.id)) { + _selectItems.remove(model.id); + } else { + _selectItems.add(model.id); + } + setState(() {}); + }, + child: Container( + height: 232.w - 48.w, + alignment: Alignment.center, + child: BeeRadio( + value: model.id, + groupValues: _selectItems, + ), + ), + ).material(color: Colors.transparent), 24.w.widthBox, SizedBox( width: 184.w, @@ -105,7 +206,7 @@ class _BorrowGoodsDetailPageState extends State { height: 40.w, ), 4.w.widthBox, - '物品名称:'.text.color(ktextSubColor).size(28.sp).make(), + '物品名称:'.text.color(ktextSubColor).size(28.sp).make(), '${model.name}'.text.color(ktextPrimary).size(28.sp).make(), ], ), @@ -118,7 +219,20 @@ class _BorrowGoodsDetailPageState extends State { height: 40.w, ), 4.w.widthBox, - '剩余数量:'.text.color(ktextSubColor).size(28.sp).make(), + '物品单号:'.text.color(ktextSubColor).size(28.sp).make(), + '${model.code}'.text.color(ktextPrimary).size(28.sp).make(), + ], + ), + 12.w.heightBox, + Row( + children: [ + Image.asset( + R.ASSETS_ICONS_BORROW_STATUS_PNG, + width: 40.w, + height: 40.w, + ), + 4.w.widthBox, + '出借状态:'.text.color(ktextSubColor).size(28.sp).make(), '${model.borrowStatus}' .text .color(ktextPrimary)