From 4afd1003413e6ab27684c7408e9ecea32a93cd45 Mon Sep 17 00:00:00 2001 From: wurong <953969641@qq.com> Date: Thu, 13 Oct 2022 17:47:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0VIP=E6=9D=BF=E5=9D=97?= =?UTF-8?q?=EF=BC=9B=20VIP=20ui=E5=BE=85=E4=BC=98=E5=8C=96=EF=BC=9B=20?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E9=A1=B5=E5=A2=9E=E5=8A=A0Vip=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E6=94=AF=E4=BB=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/image/2x/vip_card.webp | Bin 0 -> 10848 bytes assets/image/2x/vip_discount_left.webp | Bin 0 -> 1406 bytes assets/image/2x/vip_discount_right.webp | Bin 0 -> 1406 bytes assets/image/2x/vip_lock.webp | Bin 0 -> 850 bytes assets/image/2x/vip_shop_hg.webp | Bin 0 -> 13224 bytes assets/image/2x/vip_shop_hx.webp | Bin 0 -> 16910 bytes assets/image/2x/vip_shop_qj.webp | Bin 0 -> 18744 bytes assets/image/2x/vip_wx.webp | Bin 0 -> 950 bytes assets/image/2x/vip_xf.webp | Bin 0 -> 966 bytes assets/image/3x/vip_card.webp | Bin 0 -> 18554 bytes assets/image/3x/vip_discount_left.webp | Bin 0 -> 2874 bytes assets/image/3x/vip_discount_right.webp | Bin 0 -> 2658 bytes assets/image/3x/vip_lock.webp | Bin 0 -> 1012 bytes assets/image/3x/vip_shop_hg.webp | Bin 0 -> 22690 bytes assets/image/3x/vip_shop_hx.webp | Bin 0 -> 32822 bytes assets/image/3x/vip_shop_qj.webp | Bin 0 -> 35330 bytes assets/image/3x/vip_wx.webp | Bin 0 -> 1316 bytes assets/image/3x/vip_xf.webp | Bin 0 -> 1284 bytes assets/image/vip_card.webp | Bin 0 -> 4714 bytes assets/image/vip_discount_left.webp | Bin 0 -> 958 bytes assets/image/vip_discount_right.webp | Bin 0 -> 952 bytes assets/image/vip_lock.webp | Bin 0 -> 694 bytes assets/image/vip_shop_hg.webp | Bin 0 -> 4512 bytes assets/image/vip_shop_hx.webp | Bin 0 -> 5808 bytes assets/image/vip_shop_qj.webp | Bin 0 -> 6442 bytes assets/image/vip_wx.webp | Bin 0 -> 746 bytes assets/image/vip_xf.webp | Bin 0 -> 738 bytes assets/svg/huixiang_vip.svg | 1 + lib/main.dart | 1 + lib/main_page.dart | 5 + lib/mine/mine_wallet_page.dart | 209 +--- lib/retrofit/data/findMiNiGroupList.dart | 3 + lib/retrofit/data/vip_card_home.dart | 968 ++++++++++++++++++ lib/retrofit/min_api.dart | 2 +- lib/retrofit/retrofit_api.dart | 13 +- lib/retrofit/retrofit_api.g.dart | 43 + .../activity_coupon_remarks.dart | 57 +- lib/store/store_view/shop_goods.dart | 29 + lib/store/store_view/shop_goods_car.dart | 2 +- lib/vip/vip_page.dart | 118 +++ lib/vip/vip_view/exclusive_coupon.dart | 132 +++ lib/vip/vip_view/vip_goods_discount.dart | 208 ++++ lib/vip/vip_view/vip_top.dart | 733 +++++++++++++ pubspec.lock | 7 + pubspec.yaml | 4 +- 45 files changed, 2331 insertions(+), 204 deletions(-) create mode 100644 assets/image/2x/vip_card.webp create mode 100644 assets/image/2x/vip_discount_left.webp create mode 100644 assets/image/2x/vip_discount_right.webp create mode 100644 assets/image/2x/vip_lock.webp create mode 100644 assets/image/2x/vip_shop_hg.webp create mode 100644 assets/image/2x/vip_shop_hx.webp create mode 100644 assets/image/2x/vip_shop_qj.webp create mode 100644 assets/image/2x/vip_wx.webp create mode 100644 assets/image/2x/vip_xf.webp create mode 100644 assets/image/3x/vip_card.webp create mode 100644 assets/image/3x/vip_discount_left.webp create mode 100644 assets/image/3x/vip_discount_right.webp create mode 100644 assets/image/3x/vip_lock.webp create mode 100644 assets/image/3x/vip_shop_hg.webp create mode 100644 assets/image/3x/vip_shop_hx.webp create mode 100644 assets/image/3x/vip_shop_qj.webp create mode 100644 assets/image/3x/vip_wx.webp create mode 100644 assets/image/3x/vip_xf.webp create mode 100644 assets/image/vip_card.webp create mode 100644 assets/image/vip_discount_left.webp create mode 100644 assets/image/vip_discount_right.webp create mode 100644 assets/image/vip_lock.webp create mode 100644 assets/image/vip_shop_hg.webp create mode 100644 assets/image/vip_shop_hx.webp create mode 100644 assets/image/vip_shop_qj.webp create mode 100644 assets/image/vip_wx.webp create mode 100644 assets/image/vip_xf.webp create mode 100644 assets/svg/huixiang_vip.svg create mode 100644 lib/retrofit/data/vip_card_home.dart create mode 100644 lib/vip/vip_page.dart create mode 100644 lib/vip/vip_view/exclusive_coupon.dart create mode 100644 lib/vip/vip_view/vip_goods_discount.dart create mode 100644 lib/vip/vip_view/vip_top.dart diff --git a/assets/image/2x/vip_card.webp b/assets/image/2x/vip_card.webp new file mode 100644 index 0000000000000000000000000000000000000000..26396eb4183b43c7c3a308fb01f75afcf8b4da67 GIT binary patch literal 10848 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 KjvTq!d<+1?jo_OA literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_discount_right.webp b/assets/image/2x/vip_discount_right.webp new file mode 100644 index 0000000000000000000000000000000000000000..0dd2e42abd4904d352fb68ec3ff18f8077c9c661 GIT binary patch literal 1406 zcmWIYbaN|XWnc(*bqWXzu!!JdU|=u+Vi5)gH3kMxXXgM3CLouANdiQ&0Ht#CN{WKq zofIM>qZB}5Fp!vBTmWNZp&1z%zFlJgk_-%&b+O1365>orElvh1`T)cwML^3L7#LH4 zY>{*by8^^cg0Oo)?4pn$XP}w|K(U&O#*@s)vrc>+Q#X(j{1_ErW4iCYLU zl?4n8{4ER&+s+px7A1lm!vZ9k($W|hJ}qZp;EiNp5Wc{`z!eR1C_*nHE^zo&0jNg? z=+As0OlQbpNM%r9@MOqiNM_IjvW$R<#E`)Zm|}b^m>C%KMH)B-p0lpqmK%Ed*7KTw z5A$?69JrVSC(NIB;O@hFo3kDIa-z3hdVVi|$LR?&9t|oTlTdFps$}W8UdG6)M z$?f0P*4f_qQy1|k{&B}VeLL9&pPS`(bKJi7@7#tw>AP~5ZoSQpFp=9ouPmeH`}6GD zB-Yw~`Cj7zjsySO`flj zoByv-dtrN+CG~3*o9~}3KFKC0HifM<F$(!q! zoQZhfJE1CaTVAN9c35gg_l4V$CfaRkQ$r(N_GLH)cU7tL#~PTfo_L|f#^j=sri6^G zQ}6<*u!F+AI~#&d1USWQ3|ZBr9PbsJp_b)%b&b~arKN5g9F_?ebLtkq)ffCu8Zf1m8h{yWRve*pz+^{tzgl4hZ$ZRa?3RnlvvgoT+|NH`N*(;vUS?Q72d{PJh2$n~R#|0eTwz4`X-+bx!Dsj)u z%F>pT$wTVB+VaDX>jZdZ<>e=u?$1)1Wn*D6LwWVB>6iBJ-@ZG#<*eq7d$(@I7&`~( z=dM}5HZ(c)>7`4bPEE0EDo86VOtcfxUc791`f{Ow>s{(U%X z@7%U;dU|?(=gNfEPMDEx!qw`uFd$1OG->UwdHeS5Yuwk@w{PFVnA?$J?WZ3W{E*?B J>}Vjy001|S;ne^D literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_lock.webp b/assets/image/2x/vip_lock.webp new file mode 100644 index 0000000000000000000000000000000000000000..493badf70f949fc62661c5032ea74b4fbd20ec71 GIT binary patch literal 850 zcmWIYbaV4!W?%?+bqWXzu!!JdU|=u+Vqq}ybaoDqU;=U(m?S_X3s5RIucRo*-AN%L zGD-m?1_O!7#RV`n7MhWP;oCI^Aj!aRSr>~uAtBC`)Z%2Iq7Oh^QUtV|fq^jv$QDV5 zuq#09BnZ0)#4ZX6at5kd0Ay>VBe9c^*ySY!B|tSNKIgA?khp~qQ(3^k zz~92au;JnYtaW-nKT4y%)xU|$@z>MoDNgN~t&=8rF}?I) z`oy`9p_f(DLCArH`LEAtsgR)N z)L7$Xmf!YN%0HcoCV+Crh99g`^B*CNA#zM8|@AhpV@Zh>^BzQy^)45f1CJT t2BLlbVcc#?AaFYDVrthTo>f)W-+iO^eiA%*==P@E+uI;0PW`_W0{|)?%>n=b literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_shop_hg.webp b/assets/image/2x/vip_shop_hg.webp new file mode 100644 index 0000000000000000000000000000000000000000..9424d0a61145d34843753e940b41ce3faaa84985 GIT binary patch literal 13224 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 literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_shop_hx.webp b/assets/image/2x/vip_shop_hx.webp new file mode 100644 index 0000000000000000000000000000000000000000..29f2e83e6f00d68d158322949e60809a6b0d7b75 GIT binary patch literal 16910 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 E1(Z6>@&Et; literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_shop_qj.webp b/assets/image/2x/vip_shop_qj.webp new file mode 100644 index 0000000000000000000000000000000000000000..daaf44b4ac18ccc5c3b8970eee38272b480476dc GIT binary patch literal 18744 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≥ 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 literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_wx.webp b/assets/image/2x/vip_wx.webp new file mode 100644 index 0000000000000000000000000000000000000000..3b4f1471940a83d76e782bf6bda6bc3f561a99e4 GIT binary patch literal 950 zcmWIYbaPwB%)k)t>J$(bU=hK^z`$St#KK_Y>FgXJ!35+oFiC(&7NAsaUP)1qyOTmh zWRwC(38p847`!RNW8$nz!eR1C_*nHE^zo&0jNg?=+As0 zOlQbpNM%r9@MOqiNM_IjvW$R<#E`)Zm|}bi7#SG!g%7X@Oh2?>qKf9-tb#nxHMo|EPnZ~h(4bb9_1*`C|mCeD$uI{xNeH8WpD!Q-R8 z`##^i{=N8Lea!m5{Y}Rs=lkoQ?fU;e{mu7xf8WKdm;7T~{Y3ch|HQtvM^|c=NHaX< zNuBnPW9=!q%Pc>B+-2L%wq&W6vZCnJ9G}KTuN6F8JI%PgOmDc0Xst3?z_4D0V?uyJ zny5=x>l(&`+txll`&aVzwzo^R-Ck1uZ}U%+){cMLIk(wnhGq7|GcYtw{rdUopG|t~ z3?7qW>(xCc)vS&b`lIW)>d-az2XY>^?_(CEABsKb_UO9C(eRDyJU5-1|K{F=IsUC* z0*WTynY`zpLS_Eef2}FzbxXp6-tsKco3Ja$YH!z$))%*b1{aD{J~z0ueOB7?Z6TR= z_P?;&<{ZD|Wz>DaD`&5;tZC&m{wSEf^7xU-^QKH!ec5LDbUJgKsQdMP|Lcd>to>IW KJasOAss^V3 literal 0 HcmV?d00001 diff --git a/assets/image/2x/vip_xf.webp b/assets/image/2x/vip_xf.webp new file mode 100644 index 0000000000000000000000000000000000000000..1ee398253e56751e282ee3f55372ff17d81a2b73 GIT binary patch literal 966 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 BVd?+? literal 0 HcmV?d00001 diff --git a/assets/image/3x/vip_discount_left.webp b/assets/image/3x/vip_discount_left.webp new file mode 100644 index 0000000000000000000000000000000000000000..dcb060f5ebc4c1936297c4d46fc332cd1e2623e6 GIT binary patch literal 2874 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 EFIX9kY5)KL literal 0 HcmV?d00001 diff --git a/assets/image/3x/vip_discount_right.webp b/assets/image/3x/vip_discount_right.webp new file mode 100644 index 0000000000000000000000000000000000000000..8814588360e9d75bbef8ab5db1c8ff38281569e0 GIT binary patch literal 2658 zcmb`Ic|6ox8^9mKSQBE%HFmm|vDDaZw#m*UOUBw{H@7m##8|Fqkv5IDu8}TgNOB1` z$r2%@xV9u^8Ezz$Y-#jf(Y!zJ{oGIY^Lg+4dH;Ez-{+k3{XOS7zjL1Foag*JogEzf zMFD*5ZQQ-x&3q9AL!>AJ>;`bQwRPW)LS6y2eX|xox~NgdVm%#gRDAvXRW@~hN^mGG z=1=~cmJeX{1t2xRfZpHq|1XtDSU4>dFuMfnSd{DtYqVvZp;9h>%{F|nJ>LD+&C8MistrfjZwOL!D%KhpXl1q(Fr1V^wz z`2Q+j;~8B9V8#XD&-$th$pxrO2iQLHRj0uQkT?xc+ZPiY8~pFZ2p}~oA_CyUO#pE} z0O_Xyq5*#{^y}EKd+}d? zfN4BEGIJoEdL#Q%@vlLn@%sB@R3=AjbtVE~^uo)HND}Ckkx(^ð~hVz#-orMozuDYUu@Sw`9d{?dt zom9`~tApg3`fP+Q@tN!-B3=iMOkS1 zM=~D(?&#w{PVIHyktYpBqX1K4W0(<1HoZRZ`K!k$4a6oj}5H(-lQ<#yiG^xNyN{rYD>nFZRoPHLe96!yaacWK$T@I-FNi|xeuk{ zXiyo-HMafP4LkQ%j0#?^b&5&leh0#gyyV z#HBnI47SuWYAB4+EkQ1fCRK^u(PerW#wF9&zT>yOA{UCO1SiNcX9A(4>vJVb>s?)PEkhGKGce7+-5SLt<6mHuvmK z!i2Wnkmr^CQXNHQNoRGo$thVRmkP3z=qex9HbysG^sWW$&6ogCF;(S@IK|KL&K5(m zB$=f&JHD84j>(X^?0(fh1VrVoqq5puY|J5%Tlip4d)PtG{`*dkWX_+u;ecuo5diF( zaWQw+`a%Xbqg}1jLcJMv_c`*RSbZ(obNwdt8jGy_4AzqpE<^gc*px{%uI4|5607L~e>rpRb5WbZUgW8>kThM7I}hSWwg)p7VY z&Oqfl$MHtw>n&=gnC&84)C_?VmVHumukX{v8f&ZANVkD$))#KZ;uf-$TZ|_XRety} zRaq_kQ=>-eLSy{;r)jDWPU(Gv%d&6qgKLy5oQjQy^9?uAx=cR{!-82g`9tmfAwQ$C zAU5ef7I8yMOZMV%t!pXkZ(dWQb2fTt6(d1j$1cZ_{~-(n(K>x}j<(h|=ZTUN;f5~F zzo-6EU#9cm%zF6|KcY~F*hZhYXAqEMJx|}8m};49jAk7X6y_WmlDO_7&^2z1WPYz5 zR5xNI(hrPO3H2$JiM(xE@7l*Qk#dY;J$c(LUtp17U#i~8J@0LM$RSe#YnA6? zwtR;B^mYpGVB&0pY2>8R9NbsXy_Q)>um;d7?HV zS8wM2%9j*r`5HC!(4e;v80wMv1S_0otW$TTN%!~$S>XiJr13Mlt@hH3C;REC94e{d zmjyPm-V1qSiIHR7CFUHQNb4}mNc`2(`<~dtXSA9MfBL;wk<8LXLi-!4bz)xkeG$Wd xb&!62n2Y|jqAa%|@zUqCV$7U53BYQ|L+}+{GHs<5v5xxLu+*J|87)=>_!pop`dt73 literal 0 HcmV?d00001 diff --git a/assets/image/3x/vip_lock.webp b/assets/image/3x/vip_lock.webp new file mode 100644 index 0000000000000000000000000000000000000000..d506c686c6cdbf3fa933d09d3688cbe3553046e0 GIT binary patch literal 1012 zcmWIYbaQ*d%)k)t>J$(bU=hK^z`$St#Ij)I>FgXJ!35+oFiC(&7NAsaUP)1qyOTmh zWRwC(38p847`yH48j)}7`UQg4n^oi#03t&DggD!0R5Q{ zgy{@945m49N_7K$a0Okr*e1EhG|Ss%sfpl1HK#~NZLw4#?ydi(sBdanHOZjuXr|-T0zw<-aSNlc(yY83;8Eq(# z`U473RN(Mw&sD2#`5%wh$9PXF3H>Oa(0I=4*4gLQnO8Y$GWY$PJx}^)gwFknYti?= zw^sViw|lqgx8aj__VfH~@)m8660u_sjCrN@XxX22-2KXp-g~FrDfuc?h|5#c`ph{S)lNbn{nXHR!cIZ0|geFN&hb^lY$EIeHQNB?iW5deVOIRJbM08F#} zZ`%L=s$N-Id04Iv^N`nSJ@tNUNQ0@uP$j$VI{^|$;zV+<>2?GNy8I41x(zyqKOkON4<_5acG zAD%8n0D!;^0PrH|KXv9=06=><06@I-pE~+)007n(0H6)zYUXbCUnheE-y&LD0|1xh z005>w0D$)!06;VRpA-Gh*#G$A|HD>l_!x4yoi6Z?4Zsm#1)v5f0Gt690Cu=~2M-c1 z03SSJl#O%%01lRZeQZoGnj%;~ZBk1(G&U-<=5ZSabG3lM>Off~c1t3wx5OOFZBGC1 z!k1_w+y-)(VoRA2=2)IkezRIO4Ka0bS!kn3DREl%mz93sUB%LD?`T*%-sZH@<^;P6 zT5NNQbL!@@%}7os!P!65O>vrq@9$EJxpmE+%)@Rx<7dgcdMp#F1}*DhAcOTsah*vwZ0OLMKzxC+QEfe&_S!LK~G{L+!AWa0;7)1cxL#HNz?Y z%2Jy)%hmQ-hQ9oP=XdH>v|!^tMEYVBpI3I@SB)?85Qf@ncPC#LGvvr?>bq44eX2W3 zsP3x9`{;?0u*k(7>}t8JLs0wZ3VDT{^3GRQLeaLd+efUkwU*7WWgW{WYNZgtr+voo zoHCa%HwkTY)$RxF*ReP5_a?lKWN(wt?nBI>BnghoRYl7&vPl%%Fod5(DUwrS|`KS zcVw`+FOc&Q&?E=61DVBdd@`tHa zqI_x}SD!?$j|Haiapi7uA|P>*Y|cQ*x8t)DgR==_ZnstYMbuZ9zv23?{3Gy>0KoC6 z8s~E79wvk(v-1kw1?s$=aA}>rBdr?g1+^>wUPzXqC4m?vVT~gwYo!lzBbbo1$FYg##+vbA>Da3 zh`_LFoy@$p)>_U9_4tHkO%8>0v#tGtnWko{c7OPFJi8FCT51V?q<^JDrYk-GUw$4x zWJcs+EJ6>s(jR*=Kq%W;a+84*WvX`YX zzed|*dgxkbR9xL_{5ifeNrL@}G_SV& zdQ_rRIBUX)U-fZ43wKU1_K_EeGEL2~WErkL*-ru!6t=O}gmX8)B zZ(K#|ux+jX22+ZmE$*AvI#FdN-n_F)wv~$zk(AYDok>GN2IquEAkXo5C~?_qsa-^d zqwOd*8ULY7V0#2G={#g%f#I;OBD5}cLHK$yV0SPSK>x&X{adopK>CQCy>yVbv(C?BPjR0(=<%gq$`pP!iuTg(RQj_@8g4#3478Hg zII3XcijmfEWtpxWeP2^P)5=YY8}E;qnX;A3j}IRHK*l_MOUTm9M@On%Hy-tex=v?i zq}ekq{kJ*!pQYKF_7pu`+dHqyqCZP>Jzd(JHae^{+j96gl6GCTD~3ba2Bj^D4&Nyn zzwVK_OCp;2o+O0N-k9C<;s#q%ez-*+ZUq9Q39_4{Zs@=(4|Jq7YJ!H7%m%*>~ zw5j6kfHc35xL3^!SM#nq2+m7}LkD$Di1At7T{iqwgB)_LxJhCCXL8`aE?;{F+T<>-aM@ej^{aM*`W7U(Mc=^7}u( zYhs0r%>bC>62U#2R#jILX8s8G41RZZ90VJ507@qjLr)e^m_bs@7)(KWcn+ z{z>%_Hruq|%y-%RJ?(~Fo4#cV&6LpPJERevWg$$4)f^{C963q=vriTY2?I>wID&X9 zMPxkjQOuLZaj$&sPoBSw29glrnC;?spjXdgy@%V7o8m=mz*^;71?Ub!K#e-H1#7HWtR z(HllXW>Q8T$mEGFWoulLseYxhWuD1FsQrm^`HOdjQjL`MOjMK%eaQ9O2y9w>czZ4C zGwO$AWx21;7_wv3l432{zol7HD9w(=hb@zb8fAVtl0Jm#!$!LtDm?QOtDR0(*$S}x&)XP>2manWR1-wrK4_d$7XU8Bw5}ZvFH?s??=-% z$C+*rFwAdfoL z`@SiF)GUvKt*+aH{){>je~D7?XIi#U=9RP?Z$=?bsr zKT88r3Z86}?JZR}OI=nfqwn?2$6qJB?-vLA2^`IkK zagKzjE!+KGPMwrm%3gj{4cGq(4f)*)9!1-4$Zhm77jUrHGV-r4cu zOu;TDF9SeZB`q9TEd_lGX!rtWcT)+$({IO{`vQ5jGn7u(olMJhkxq_=%S}7(4nlf~ zaOtp5hZO{H#a;y-f3VqCiy7pU>J6EPjS-9%KNp4ls($@rg}SBqkbCeutWCP_W73EV z$5-JkIo*9{3i69j(l~-Y`u{y?8Qhg&f7Z$m(7}^3erLgVl(vTny5u2Id2iny} zR7}#fXBVYu7TS^&`ZA?8Sk;h6pXWuo4M(v5VvXsbeX6|xJ{O+_Nx_?ny`=DzK}`f} zg1$jKS6sz+V9AZW(Zy4Q<*%H*O2a6njWp zeNF@U&{C(YdbVFvfxXteXM&d;zceLrcoq^A5@GsV=`XH20VHYZFXNI>M_+LE&1oNC zl0f4;)RA1rtS5TxypCcC&EDf{#KmsoVu2rY#jblp2r}P?K3z=ylv`JZ%_%%)#VTID zDTO>&Cr$Y+S4j|M3&)zgkjKTkyPqt*_37)ib-!AsY7#bq-4+Ws7+`B4dyof5kPqCu zg$QGFoD7bK!01V&F*N?vOERXU%I39G?xJ{C7X)*6+`mmg8ys@p1=e@L&S`36-)I|= z2zMRBPKGOX@xdN5M!9MrKEq$ak?ml{f8n5}u_ zCIH~*58*;`wd%o!NY6#n45E372zqlqk5C=J?yPUBiQFo~Iy7{|F3KKtspJ!=(h3K6 zoo||LF62?39jM;dzsCkd3$S;)1l^tWuf7xjU=jmoXp!q44y<9buY+5HxccTMojiRy z&&~|hOmoF3{0Lu4?r#kVpso)z*sKGn`gf;($R`!zec%xL3QfhTdD@4?9=~h?c0<#B z^7wnzrEwywYJxXeyRQ&Fx{ib)F)6`rRltTs_fl%$<#iwxhvets?)O%LzLj4FUD$J< zPns5IDHm73mpQ2k6v~N`QV!c*7j{O-Uh2%WA^|)%UBzoYbzAP` ztYKtlmqRHNyhEMMknwIP2rLbd(z>X!l91Asy)xC^vis#Tpw^x-IlZ&Q9EDfJ&@}(}^jnH^`{&W~Lq2yoQ zvj^Bt2hW)w#mfOf1w$HR-rxtZuA?3&1{+j*RYmXl599;@Vk4jSYY0qEA8jRXIQhVW zG)GdZ_o=$iImX^%bKy&G#ix+r6emhceYFQx1em{>NJN0 zVoC?ftC_^Qv$o*}%*$lSt+{ql<0o;SKaF87VnL1N6nQBo{e|eO`Kn(APhA2P>7=61 z&;?$-?1X&kz{HJtXFC8$VBsUyA(Vsl}? zWB_GH5l2PQm`4fIp(#?*MtnU6>5LdYN7#K*I$H3%(N-UiWfXq0_Q<-L)voT?{Z*D?Mw%2o zNoE9^Av?SC@XwZ3>n151uuv;asNyoR4z`Mz-eKnXc*u#&fmp^!G zWOsQa$c@xNMt%>qiis?+VP&Uoav!=4tQU1~+aW1d)vxOc$ed%X@%HJ3o<-5EVh<%V ziBd&|aUvQTy$yr(7<4@Hx@f?%M_+U3FC?--XY#jhocoE25yx4c)?cJ;fT>#$(H6Vt(u z$5QFyX90;ngq|)RJ*3=)k;76iK9w`ynzE@EzCDplpea4x+9F0^4e*`rJCiUL$C>6Z zQ0{XmB`6h1skGtH5p{c$7()Sw_O+ew^-K}zHS}92D@Me<-&{2xy6`0vjT&Q)IHJD| z=bjC|eL?kb@!3TbHZb2Cvd0KZ)95)32{w2?@9V5~L#J`{#^Q$5Z0-)xpSaf)x48lt zkMX*`CpMM>l{|QA=LjTpH!qm_F5$Xp@fw^@ZuUoaS|xJX&;7#y=+3$iaEq>wJ!r@!2x^1#gM}St(k}yUqnk}E z@E3k$GnMwK5V zO{Fa)7=DTLI`A|WvhwJ86_8)X>DOW|Z_IKgmr$|BCw7)$N)%|jybmM5Ho87jR!Rx0 z$dj(LB|~GDBqEZNQIrTC&wLMPWNo$ZX|F_hmk=WjPm6CjW?gnpIV!+2TTlUvBS%Ko zX5O-p1jQWJ@Kvkb>31(@0W}t_^9!uNJ_ZHVA}?APzCBrZr864J$HCG!IshgmqvNAc z$2_q^=)DjNmB={NdMT0W(lX;%W$JZqGOZ-XRv=?C2X`SNhrzO!*hPQhQ^W2>-_2wu zfckyZ7#^fBw#X4ZJX51sAjF-B=sn<*L7B{?JScxuin)*)=$etwmm~wddsByxJ$B~* zRqGUxx}5q<4G6prS}%C3|E{pWk5F!d7^68(Pd;7=Oh)wPCABB5GJmW3aH}K^$;wm1 zJ_x4fKUQ%o^p^vg(5ShOP(4?`n||9n8NVNcf$9p)!Lrmw#pkTVBeQRt04 z2&8cdc1e9)bG(%ppazR@wYnq%oCHSi0W3n%+SJTD_a`NkJ@<#^{lfkd!D08ZZkN5f|Y zhqrH=rK*xs{RocyiQ6m~skd}}$?KwvFLbXPzGzyFX{hY$sv0cYAo5<0w5EU;YoOQ8 zuB&;Ih}2kC3Lx^Jq)jND*S z!mBo$HEd8n3m4$zJM`;NqnkfEls`mnDHMjYPCovpG8gc^bh?SmHehRB4(EN z!c&+6rvcApaNm_84x!fT!t%%p#jVz%Z$rlal3JOUAjQQ05A_7!g?hOxCeO`wv@dFJ zs3>j10Nuq)Bb*_XMT4IY*DiVDH=oJNvMY7TYlAQ2qq@W`y5~3T?)Z>HEiO2FUbo8z zS<*>onvqlvPX1Xz$xZlfcuxF8{#YDoan2)*iFGjOzlo0~KZr^C)bm_=uH8dH)$fO@ z*YDvPZ%y7Ek_jSuMx9LJO4~74Fc}3`gZ26coP)UufG;<=Q7-j4tY>CNBQXD>g9~Mo~ z$9@J!@ox{@u@WLQ(gu8dfmj%BO(&&K|K~LJdP|>}=WsEVOZ9a`FuZ{x=g0l5!W>y$ zG-N~i3Aq64$*XEHxsW-=)|gLekF-|a8l^0Ij^qVU9k+`Md6<&`@m-1qO3rBifdcQn z>FdNF3Esk|6xH>4yfF^OHS!50mI2;{WVPsT%#`9@xY;sme$kWcC)_|ss};9#X!%7p zgdGk(B;xU^fX&WZmMJ7q?IeP;Avqit@^0bN-C-zv)uuhDg`UAT^de4L{Mhf4$+=P4 zvW2@cBpO48R(~?C4W=Wqz#vtRYE&uYvok;gBIOi3l%>gxEnFpVS7e7K;IfpRaxp#> z(P}y}ca9Ic~m9748t2b95| zL$-T6n3(z9Bjq%$3ZssU&-+)&wo_KGW|sI^!qmS=H;)9zM7l-EU05pOUjhS8N-uMZ z0b5MN2-ucaX^pGH(P66KC3+I44Y#D(D`&B#c8DEkFV~L4Q`jiVozU{Jw$|b!SZVEO z&h&|1pQN-)b!U;7F)@^aoLe5PtFC<-L$?BFVu zV3O05Ar`<1|jJD5%w6CPfc0MSYQdg)Uj89dpy%*(QT6v?{h~60qF)uo70mM`pm$ zzr5HlKVY)YCQM`$E9b5;yr0_K@RGU-S)xL*4FkczKxV%y;;7b zSY`k|)3@TQ_%{Ed!~+)B4UFfz;R5cVg2Ldnr&$|4VnCA|c-ci|xIFQ4h%$eGgj0OkhwQ1-!891)(| zR1?@i!Of`88QN~u52J8gaWmhW?6nr=ibT${RU}20sQgi^dqS}dqm^8#o=@_r#<`@4 zLu7l5YMIgZZ3gT6*un#gLxn!+jjZXy5twV~m#N(#Lc5nkIsz}%GDulsW==jGr zkMuKlV@nW_@a1~^=KFO4gvjWREc=#mTSO->4E>m1iIb0E@ma=1!;0##rIFkZ^9;d# z9QVC~ifmfd7nSV~-Jl{wOA?dkiL-TS?VxF;(@74$>iw{67SobyB^>xVesI75< zDj~5W^{@Hhmtw7-$ zCL)oAQ5pH`wZ5sXv)r7|p%17xF$46~bbdb&zcCrhqoTG}0dMKmFcfK`zHtiNWQg=g zbxJk^!mrP~T&F(Ju*NS1m>`ArAyNLsvI~1ZJyZ04foM1elkj*sPU& z%B2@4FALccc^$Sy1{ym;9Cfc5B|<>dwO~>9Kvsh$ydHYN5<$(YoTGvZ2Rzu|aQPqcV_5!OmYaKG)odNW_pC$=-S+zQgLiR;S6 z@T2vyK+nNT9;`s`R9$3>y`J;(9eWX~Mc!ujr@MWVA(5D$M^=~v5)TT&g9mBLZ%S;1D~wNFAoMjM$Hnfw}3Hjtm1rz#ZQ(2HiZU5X8w`JQnjS( z_Zh2DeDx%TTfDt-CbzWjL!HD_yAY$Cz9#Y5T=dfw&~o()FznDJ7{-k-v-aG!zgX@j z3dvxt0G^hH49ZA+dpOx1Rd(w208?EO@ONo_a-S7@HVGIP?6x_jaF2hyJs-5VDJ@^B zP6&&o9Ehb#UT>a2;_aP4%-rTb**_CL>sU4pdF=GD0+Pz@L-}0?A@*0U@u~m&WXpVc-jY9bfcJ z|BnH~W|=6kgXRw}0%7+fx`9upZ{>_rSMGWVJ0&Nh82AD_Gg%T*(ru^)lqIyrGG2;1 zP6mRsqOJwQ=mPV|wftTPb&`LoUTHDeYI@{fduIMDe4g*q6MTGM&a&1V@nb=jygcdn zC;p`l7DwRIRUYTwKGHL>SonArLmNlctw zMV!XAS1(^cr16y)2nV@}AOq!Fl1Ni|d+mS{Wn*Sa3{K};m)!u%+%U2ayVX63r0pB` zD+j|j&im^oF!)Thvq9KU?f&So8hYcf?4M}&MK&B&@fZH^;WLaE81#WD;!^{Uc{fe0 zTd06C7{;+E)lE;gi9>3XNluTH;YWee!OmeR^a&;ZqGQ>mH|X(RZo`2?6bN(Tz!KQj znT#_{yPi59l!A`x1Y8L^zQ<2iZjR&&mn^CVo*D(+bUqTT@20U#;A7kWaHQxy4-y~1{HXB+zmYXMpW3l2tu%cTKOT& zdp)V?$*hSd$rS2!ONJmkQ-2WU^7sg`hDso`_DU@?aNfjkm}Z%afn>F<7If^#uDipV zX5Mf7aUOai#h&wh^fYVurfYO^Xfa@G1!WT8jN(8#V&5fAF~fgZ^z ze6a`nX5DQWex)ix7#%_i-LV^)=FNV^$O433>1{LT6iYy-6=0-d~H*t-pcv z&8+(oYHudf;r~<=t-8Si7C{^5e^K@B2UveZ!Nbo=aMj5l-X&=qXdCVX>qC@;TY_MM zk;Ga-4MFh#mdv21(^n%VhIrcqbj>oeL=@L6(kE5Um9ixe+;?l3l_PKT!(ge z@pK!`Lnk9xlpUngpnG;VO;MCfj)%X`A?Ov zi^Bd$S#_M{WUU9UZ4%Dc6mst2?8!Y3)B{7FQ_!2GES?@uQiO^897Co;O!Fc4?U0^b zEpRv_sc@dpqx9znl0gxs~;T7TaWRda|tc9w+b5YtHyV|JA9^7zu)ej|!Cb z%lKBMA5 zi_Q|CBFiiI^Y$iTP(8&;j}jf2>i~XwEPMIvUYb1SM#!HcQ>9P(0cf8WGXFH5v3o9Q zrq1kW2(HvX>PpWhk=|&6)QSZ?6q;7D&T!~Dp=}*kF)2EE#DC#Rhyop zyOja(HkM`Ma;C3s{m%Q@hx_RawlEVr9n#s`U%6i`{k&`V>?@avLVU?&XDer2@>?b_ znoQ<%%TlWMUdbd(%rD-8?X>(hMxO*a1k5+iC3zXWTlNhsFq9G|60g8#toUJ1Zp)fu zHGG+}DItllwwvIYw~4GZTzcMwa|Lbe@KeN%sVY|}wg<(DB!Z%)%bBsN4SAUo#axW% z9MWa%?Jj@Y7yoMHv-p-`Q!5&wL192XP+^`V%o=V|Dyad_^6u6c39sr|j^#dKK6`?& zs+~XT7)DRYY(M*i{I#0n2Iv$%7K@Tb8yF~&!LJuLsH&CP%^R1~d$38;cyZB1fHD3l z&aJQ6;)wMQCe5NH`!vxe?X0&wS@aJkXZHj;^bC=i{T_C+NxcZGb_l!jA|))Uh^0rK z6C4#xgqE7QX6p~Ms|;)NYO_$@lwpS{$9I|5t)d9MZPKB#+xflKw2;@ToTjeDtK?zd zs^Q@lp;0@3!|df7teo&+oEg8;lF)y(dL}_NMVMvMo?eiTKReZ#UiAfb*p3++NQbT2 zq&~~co9e`@a*5mPqaAq;8T#s3ri0$QxGK}B+zQ6d-xiOJom15_&|NpjHt)7nSsk)j zQkzym!Y&W>I`q>8Sg#$1;>|qUxZ}#mp8c`x`_`&*|MaQc18sX<2PheFLF?Y9cmp=) z>&8x;EYdy5a;673@9H_%2NY~;rthHjjkissdQMgyBx$=xiRu$WJ#BKMq3^NuSvBEOs6GHe{|)3PLxcdJSzY2KzpdXc*7 zj?KP%ZnC%jn=3=q3i&twr^XZx@!6DRAFAy$f;;)_TTSM(i8GiZmbkY;hMDMRUt`G* zwM&y#Tm91|%XMye>~;=T7TS%JRwr({bSYM=B;aGx@d>-_RNYCjMd-$~-$fE;E_N`E z=sV3B^*L0IB|9BA^QvmH0L`)~sAbYXn z>bGO=eK2yVr3P;b>-FBJQmcS+SeqTv?AJF~PA;H59=-Y;Fyy)+(`G~#cv}}YtmRN- zSlfJBV3($D*{Tt{>PT{+d-VIqfzBj^o3%8X1U4#F*zo)GJ{W{?Ih09Zk+dhxP#>SY zD8Moq^J%dI^t>+;zhf43^>RcO*WN!(wU)5^P#d1jP5T$3^Sy%0U?9u5TE3gDGPj^2 zp|w&jE2-TMxZ1*}`dGny18W)UG;1nXfC82K5;D2%qb6Kpc2p_RsY7M~+J+lBNALHs zv{JV+y0X~g#SM?&M?deyseBZokwpmPQn{9o1?y-8By4H6`^i6>wMCM# zKB4T?z{65TE$-Qx=7us^HdoT~BEcz+9LhJyM+!%F5e(0Y6b8f|Zr*KIiL<3CIbX|o zRSj^pMN}y5>7flli&JN%@uKgnk#mPlV00zhs&?@vho?tM zCfk>p)?FmB&Quy4SotsH8F*FA)@t=>uAf6nIb9B$Wd03dsveROjRHQr2GFXx)vFITQP^No-`N53r~Xj<4#-N*9KqQt-05^z+rNLjGf4>JxnCS+x+#8lgQ# z{We9mh?#iDjNv6unIL9IbvXjGZ|xcO7{b`bY4rBVDutM~1Xqf_@&&adGqxtqXVgl- z7p(|Ab3jqlCm?DYwP-Yh0t0=D-WSwLjC&1h#kX&1BfbG}UQ9xXJ~J<1W8)%7v>dV5 zcGIU*%R-iL6!4>oX_3w04`GF4Lx~ZoBa#%k)xr^KyOb;xEHb74EHG4lk;YY;1^rA& zO)Gi#^eB`=yR|B(8C-%+_+4dNGe!8L-8ASy3Uf}UOhi)(Zvz1>0 zhoFd55hWodn`{P<|8`Ifad&Vh3j!)l@9kkh4i!1uME(R;!X9#UaXYhT2sr8{SNw1}{mD~N%^(qXL`pefd)h^(W zatPOS4n@%P`r$2>wSRNgTFtVla=WagqyK6^^N0Ge=`)OZ)u)p|(65irn_eNy@dbHz zizGFx{oE=6&EP;ydSjE2j`QCvq1f^<5^y7lOJt_)RDvPReSBhiY!h{DSZZBB{qJS` zL1lLJPAeJ9?cT?KoK3~No~WiuHQ`POE z$gM(Y*^q06|ClEcs^FTZnyKV_W!!Qev!3!~Rg*!yADdP>TbJh{&+GM7CG{!aE-F3$9!qfg!GtygD|lTV#Z{&_jiDQlkHocjO)LB-`*#hU?ON4O4s z;&3Vu(IZEN6{N~n?&j*WL2P4K6uxuw~&OdmNl$mzLlrMJy6(|iA6 z4R$ZHlg5H)+4$rFJ=sBlQix~sufm;WIB{*w4G+u^*B{R?=d!*7c$}^(R0}d+pT#eS zp`-$Z{wqWq;Bm?r?2YVT)8M@==hCw4r@Gl>t>Y8R!Vkc1l8-G*=eL_G8QPFre*)h3 zPd%NC{n)T|Za8X@MIciFyv3Yi$vbZRXt zzwcqJAPera$m;t|`^O25auLP<+AEiQ?3<749M67y)2#aMrr~cD1(gOFpBZH?&!^ws zynw-~Q!9(rzH)Zh-0a1PzylNMecqz7&%0@{gIgQ9)pH+sR64_h^sk|LxAc}c4T=7) zAuVuI;Pz~_!ZQ%rfj`(0WA5zZX?$Dim=_6hN7KTvBul@?b^rnJHuwjGCP|wOzTWKuL+*W@s}=kF?8y%_A}(w5 zSHjOzOVRT`)Tg82DR+P|*YC;f-o<&rnfq(@#*jutSFu==bkE`6mUGSRy@_)fyQ;!APw^Q{S+BrDoAAx@a{t@^` z;2(j11pX2DN8lfUe+2#!_($L$fqw-45%@>oAA$c{1fKeU&DReQSf)vM(zYDEr26MT z`E?n0Gxa+ZFfB}NP)i;4c9INB;r^-FU$M;NNk&Kc^Ey~kKv->PL~hW7hBzi#paF;< zw!iul*3R!{f^+%4NecJr2|ePW;@6 z^4VdUzSYc>5^msBHzT%>IbHRZ< z-=cF%6dV4He6jL+UtkS-Y37orJPAFz zf0^#_0j+=rK6>~{?PD`9Z$~#OkSGTbKR$nL{aaCIX|>=q^N~}~)ZQ*oVVWSsuj#~; zzX_K_Jv{E&l#e)At6jpU)uccUB+lT3_TB%ojie7TDoUd%^-rQ*{E+es ZT0xo3ZGMYaT7SyKH@QpNpOGc7{~t})2R8r! literal 0 HcmV?d00001 diff --git a/assets/image/3x/vip_shop_hx.webp b/assets/image/3x/vip_shop_hx.webp new file mode 100644 index 0000000000000000000000000000000000000000..1404ca800d74325ca508d4f6a6e132dba47a1cdc GIT binary patch literal 32822 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 M#tc2ympO9eAJM9utN;K2 literal 0 HcmV?d00001 diff --git a/assets/image/3x/vip_shop_qj.webp b/assets/image/3x/vip_shop_qj.webp new file mode 100644 index 0000000000000000000000000000000000000000..cf7f8077a891844be4bfc3627393e77f7824c6e2 GIT binary patch literal 35330 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 literal 0 HcmV?d00001 diff --git a/assets/image/3x/vip_xf.webp b/assets/image/3x/vip_xf.webp new file mode 100644 index 0000000000000000000000000000000000000000..49d222445e1f89bd52d3760c171d9c2d446bc4f3 GIT binary patch literal 1284 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 literal 0 HcmV?d00001 diff --git a/assets/image/vip_discount_left.webp b/assets/image/vip_discount_left.webp new file mode 100644 index 0000000000000000000000000000000000000000..982f307bde6e8a006d0f1ee0fb9bb7e2a74dc5e6 GIT binary patch literal 958 zcmWIYbaUIr%)k)t>J$(bU=hK^z`$St#6Vh@fx*++IY5F5$Yo%X0Ff*}socDhq9AuC zg^0)~1&|mFBqkRZz}Q%5Mh1p&*BF2#1H)xqEb@eeI8#!KlYxpp0C7nX&~gR_#uOl1 zBpt%80I`!G>>d!iC?v=ksAd6>t&xtzPC{armlTu$)tmsSPcA3|vF`xcHn};aAiF>S z)tcJ(!cV%{q*_EomN)Ny zZ96;hwpm~Dq`B`+fw94GrfOdL?l&=pk9X+pov%Lqz_Xp!3<;+mN8d1J5uWn>@E^$v zEB}ofJ%82K{;Rcq@U`Ce%GG=622KUvrFp*Bh3dTclxP04_@CCYhE%!!|B`M!JEIQ! zcbA_ywc6H%gLl;fFX#3X9v;UwHg5eJb4}obPg}!b*UTByJR(2#bcc!hCCIgj+)FtX z@Pxz2F_T&DCZ|ACs3Qm0e?}|8zS-b73|1V8?U9KrvKX1;{+L_mzcg_#KY`b}fjI!yn0*kdz(vo)J$(bU=hK^z`$St#6Vh@fx*++IY5F5$Yo%X0Ff*}socDhq9AuC zg^0)~1&|mFBqkRZz}Q%5Mh1p&*BF2#1H)xqEb@eeI8#!KlYxpp0C7nX&~gR_#uOl1 zBpt%80I`!G>>d!iC?v=ksAd6>t&xtzPC{armlTu$)tmsSPcA3|vF`xcHn};aAiF>S zL7(dYi@@|p+qUJZT1{^k78VX< zbnO>4o49-L_ge`vo>_Akmn<&|2s&raVE>-`TCU1TKhxiQnT{MkW;}6P#Io$_^wS%1 zrH@;l+*hN|$S{Lp#$BVdnCkG`PnZrI_&3XTPrGr!pL}(z83s1X-!DG(w*E`tlArgl z{S=If`?+mh)cQjI?ps|Z`jS?q!(1sDKjU!NHO$>XUeJF2`5$6HtSTd zvw40J$(bU=hK^z`$St#GGK{>FgXJ0hDE6V3GilEI_H;ypp0IcPE92 z$S4Jn7z`vP7ZJwvVwaZ`lmOM70I5$dC<3wX0NFOVIi(=GKmg=o zp47b1U?3d<#4-%U3_%R;3{F5cRRJPA^A|BNSbSw*V4i>wOPa~Ru)URmLE;udOl1KB z1Ahwx!?yDUiA9NE$FKlNrnEE$hEK~G7T+|TaM{GaJB@LDcRkMa1agrM7DOCSHJ wm~^4RAVVpD`TLhlPGd!-U-~K@8D`}S2dp@yn6(au6|XRTGr#ihqiPlg06$}Tb^rhX literal 0 HcmV?d00001 diff --git a/assets/image/vip_shop_hg.webp b/assets/image/vip_shop_hg.webp new file mode 100644 index 0000000000000000000000000000000000000000..29a4c2d174fd36d8f417391b053991c157f0097f GIT binary patch literal 4512 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 PBbJ4FG7cxvQ7`frpRFXl literal 0 HcmV?d00001 diff --git a/assets/image/vip_shop_qj.webp b/assets/image/vip_shop_qj.webp new file mode 100644 index 0000000000000000000000000000000000000000..b320f51ddbad4325081034cd190d1506fa9ed626 GIT binary patch literal 6442 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 LFo!6bjs);Or}TCp literal 0 HcmV?d00001 diff --git a/assets/image/vip_wx.webp b/assets/image/vip_wx.webp new file mode 100644 index 0000000000000000000000000000000000000000..5262da691c9b3f43ddef0daaa46bd6c55f55f207 GIT binary patch literal 746 zcmWIYbaQ*e#J~{l>J$(bU=hK^z`$St#GGK{>FgXJ0hDE6V3GilEI_H;ypp0IcPE92 z$S4Jn7z`vP7ZJwvVwaZ`lmOM70I5$dC<3wX0NFOVIi(=GKmg=o zp47b1U?3d<#4-%U3_%R;3{F5cRRJPA^A|BNSbSw*V4i>wOPa~Ru)URmLE;udOl1KB z1Ahwx!?yDUiA9NE$FKlNrnEE$hEK~G7tEK$Qt|Y?XSA1(XF?nI0^0-JAJT93$sX7I zmZ7yOn#rq+&3opvE~X7nm^&R?_!&7=-Z;-V=vK&}%XDzTL>1TC?`M48#=qLv-tliT zZ$OJ-yTkuiw;6Y@ddE}ffAz)E{Lq?LM%Quzm-G0y-%C{gb@^nV_l0$pvy2%4@_v-U literal 0 HcmV?d00001 diff --git a/assets/image/vip_xf.webp b/assets/image/vip_xf.webp new file mode 100644 index 0000000000000000000000000000000000000000..273a9d72cdbaa4f17a6bfda3f60085809ecc079c GIT binary patch literal 738 zcmWIYbaT7K#J~{l>J$(bU=hK^z`$St#Qb37>FgXJ0hDE6V3GilEI_H;ypp0IcPE92 z$S4Jn7z`vP7ZJwvVwaZ`lmOM70I5$dC<3wX0NFOVIi(=GKmg=o zp47b1U?3d<#4-%U3_%R;3{F5cRRJPA^A|BNSbSw*V4i>wOPa~Ru)URmLE;udOl1Ku zl3ExTww*6XEJ_4Bh6PA6rKK@2d|J-Hz#GZHAbf#=fh!v3P=sDYT;TAl0#J_((4YB0 zn9h*HkjkLI;K`83kj$V5WElYyi6Mg-Fva-H0V>qzKfo+dzF)|M_mlN-;4u zsr}DA(W3Zln*V=|D=Z9`p56TL@gjrFbWWaz?494AzY}i0$=&BuyMVQ{z&uHyFY9*M z?5Y2jUi4;DlodAsp2d~W literal 0 HcmV?d00001 diff --git a/assets/svg/huixiang_vip.svg b/assets/svg/huixiang_vip.svg new file mode 100644 index 00000000..03816677 --- /dev/null +++ b/assets/svg/huixiang_vip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 58838ac9..6c4a2999 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -74,6 +74,7 @@ import 'package:huixiang/store/store_view/product_meals_sku.dart'; import 'package:huixiang/test_page.dart'; import 'package:huixiang/union/location_map_page.dart'; import 'package:huixiang/utils/ImgCachePath.dart'; +import 'package:huixiang/vip/vip_page.dart'; import 'package:huixiang/web/web_page.dart'; import 'package:huixiang/union/union_details_page.dart'; diff --git a/lib/main_page.dart b/lib/main_page.dart index 2f61661f..a42d8007 100644 --- a/lib/main_page.dart +++ b/lib/main_page.dart @@ -25,6 +25,7 @@ import 'package:huixiang/utils/flutter_utils.dart'; import 'package:huixiang/utils/font_weight.dart'; import 'package:huixiang/utils/native_event_handler.dart'; import 'package:huixiang/view_widget/update_dialog.dart'; +import 'package:huixiang/vip/vip_page.dart'; import 'package:package_info/package_info.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -53,6 +54,7 @@ class _MainPage extends State with WidgetsBindingObserver { final GlobalKey homePageKey = GlobalKey(); final GlobalKey minePageKey = GlobalKey(); final GlobalKey unionPageKey = GlobalKey(); + // final GlobalKey vipPageKey = GlobalKey(); // List iconn; ApiService apiService; @@ -128,6 +130,7 @@ class _MainPage extends State with WidgetsBindingObserver { },invite:invite,interviewCouponList:interviewCouponList,firstLoginCouponList:firstLoginCouponList,), // MainHomePage(), UnionPage(unionPageKey,0), + // VipPage(vipPageKey), Platform.isAndroid ? (ExamineInstance.instance.isExamine?OrderPage():CommunityPage()) :CommunityPage(), // CommunityPage(), MinePage(minePageKey), @@ -136,6 +139,7 @@ class _MainPage extends State with WidgetsBindingObserver { icons = [ "assets/svg/jingbi.svg", "assets/svg/lianmeng.svg", + // "assets/svg/huixiang_vip.svg", "assets/svg/shequn.svg", "assets/svg/wode.svg", ]; @@ -425,6 +429,7 @@ class _MainPage extends State with WidgetsBindingObserver { bottomNavigationItem(S.of(context).main_menu1, 0), bottomNavigationItem(S.of(context).main_menu2, 1), // bottomNavigationItem(S.of(context).main_menu3 , 2), + // bottomNavigationItem("回乡VIP", 2), bottomNavigationItem(Platform.isAndroid ? (ExamineInstance.instance.isExamine?"订单":S.of(context).main_menu3) :S.of(context).main_menu3, 2), bottomNavigationItem(S.of(context).main_menu4, 3), ], diff --git a/lib/mine/mine_wallet_page.dart b/lib/mine/mine_wallet_page.dart index 96ccbb14..925defd5 100644 --- a/lib/mine/mine_wallet_page.dart +++ b/lib/mine/mine_wallet_page.dart @@ -2,11 +2,9 @@ import 'dart:convert'; import 'dart:io'; import 'package:dio/dio.dart'; -import 'package:flare_flutter/base/actor_ellipse.dart'; import 'package:flutter/material.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/base_data.dart'; -import 'package:huixiang/retrofit/data/examine_instance.dart'; import 'package:huixiang/retrofit/data/page.dart'; import 'package:huixiang/retrofit/data/user_bill.dart'; import 'package:huixiang/retrofit/data/user_info.dart'; @@ -16,10 +14,13 @@ import 'package:huixiang/view_widget/classic_header.dart'; import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:huixiang/view_widget/no_data_view.dart'; -import 'package:huixiang/view_widget/round_button.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:flutter/material.dart'; +import 'package:number_precision/number_precision.dart'; + +import '../utils/flutter_utils.dart'; class MineWalletPage extends StatefulWidget { @override @@ -52,7 +53,7 @@ class _MineWalletPage extends State { UserInfo.fromJson(jsonDecode(sharedPreferences.getString('user'))); mgreenMoney = double.tryParse(userInfo.greenMoney); mBalance = double.tryParse(userInfo.money); - pBalance = mgreenMoney + mBalance; + pBalance = mBalance+mgreenMoney; activityMoney = double.tryParse(userInfo.activityMoney); if (mounted) setState(() {}); String token = sharedPreferences.getString("token"); @@ -73,7 +74,7 @@ class _MineWalletPage extends State { mgreenMoney = double.tryParse(userInfo.greenMoney); activityMoney = double.tryParse(userInfo.activityMoney); mBalance = double.tryParse(userInfo.money); - pBalance = mBalance + mgreenMoney; + pBalance = mBalance+mgreenMoney; if (mounted) setState(() {}); } } @@ -467,7 +468,7 @@ class _MineWalletPage extends State { width: 24.w, ), Text( - "$pBalance", + "${NP.plus(mBalance,mgreenMoney)}", style: TextStyle( fontWeight: MyFontWeight.semi_bold, fontSize: 50.sp, @@ -544,7 +545,7 @@ class _MineWalletPage extends State { height: 4.h, ), Text( - "$mBalance", + "${NP.strip(mBalance)}", style: TextStyle( fontSize: 18.sp, fontWeight: MyFontWeight.semi_bold, @@ -574,7 +575,7 @@ class _MineWalletPage extends State { height: 4.h, ), Text( - "$activityMoney", + "${NP.strip(activityMoney)}", style: TextStyle( fontSize: 18.sp, fontWeight: MyFontWeight.semi_bold, @@ -604,7 +605,7 @@ class _MineWalletPage extends State { height: 4.h, ), Text( - "$mgreenMoney", + "${NP.strip(mgreenMoney)}", style: TextStyle( fontSize: 18.sp, fontWeight: MyFontWeight.semi_bold, @@ -626,198 +627,8 @@ class _MineWalletPage extends State { ); } - // Widget balance1() { - // return Container( - // width: double.infinity, - // margin: EdgeInsets.fromLTRB(16.w, 16.h, 16.w, 8.h), - // padding: EdgeInsets.fromLTRB(24.w, 24.h, 24.w, 24.h), - // decoration: BoxDecoration( - // color: Colors.white, - // borderRadius: BorderRadius.circular(8), - // boxShadow: [ - // BoxShadow( - // color: Colors.black.withAlpha(25), - // offset: Offset(0, 3), - // blurRadius: 14, - // spreadRadius: 0, - // ), - // ], - // ), - // child: Column( - // mainAxisAlignment: MainAxisAlignment.center, - // crossAxisAlignment: CrossAxisAlignment.center, - // children: [ - // Stack( - // alignment: Alignment.center, - // children: [ - // Align( - // alignment: Alignment.center, - // child: Text( - // S.of(context).zongzichan, - // style: TextStyle( - // fontWeight: MyFontWeight.semi_bold, - // color: Color(0xFF353535), - // fontSize: 16.sp, - // ), - // ), - // ), - // // GestureDetector( - // // onTap: () { - // // queryUserBalance(); - // // }, - // // child: Row( - // // mainAxisAlignment: MainAxisAlignment.end, - // // children: [ - // // Icon( - // // Icons.refresh, - // // size: 20, - // // color: Color(0xFF8A8A8A), - // // ), - // // Text( - // // S.of(context).shuaxin, - // // style: TextStyle( - // // color: Color(0xFF353535), - // // fontSize: 12.sp, - // // ), - // // ), - // // ], - // // ), - // // ), - // ], - // ), - // SizedBox( - // height: 16.h, - // ), - // Text( - // "$mBalance", - // style: TextStyle( - // fontWeight: MyFontWeight.medium, - // color: Color(0xFF353535), - // fontSize: 50.sp, - // ), - // ), - // // SizedBox( - // // height: 4.h, - // // ), - // // Text( - // // S.of(context).keyongyue, - // // style: TextStyle( - // // color: Color(0xFF20662A), - // // fontSize: 16.sp, - // // fontWeight: MyFontWeight.regular - // // ), - // // ), - // SizedBox( - // height: 24.h, - // ), - // InkWell( - // onTap: () { - // toRecharge(); - // }, - // child: RoundButton( - // width: 104.w, - // text: S.of(context).lijichongzhi, - // textColor: Colors.white, - // fontWeight: MyFontWeight.semi_bold, - // radius: 15, - // backgroup: Color(0xFF32A060), - // fontSize: 14.sp, - // padding: EdgeInsets.symmetric(vertical: 5.h), - // ), - // ), - // ], - // ), - // ); - // } - toRecharge() async { await Navigator.of(context).pushNamed('/router/recharge_page'); loadBillInfo(); } - -//充值/提现 -// Widget rechargeWithdrawal() { -// return Row( -// children: [ -// Expanded( -// child: InkWell( -// onTap: () { -// toRecharge(); -// }, -// child: Container( -// margin: EdgeInsets.fromLTRB(16.w, 16.h, 16.w, 16.h), -// padding: EdgeInsets.fromLTRB(0, 7.h, 0, 7.h), -// decoration: BoxDecoration( -// color: Colors.white, -// borderRadius: BorderRadius.circular(8), -// boxShadow: [ -// BoxShadow( -// color: Colors.black.withAlpha(12), -// offset: Offset(0, 3), -// blurRadius: 14, -// spreadRadius: 0, -// ) -// ]), -// child: Row( -// mainAxisAlignment: MainAxisAlignment.center, -// crossAxisAlignment: CrossAxisAlignment.center, -// children: [ -// Image.asset( -// "assets/image/icon_wallet_recharge.webp", -// width: 40.w, -// height: 40.h, -// ), -// Text( -// S.of(context).chongzhi, -// style: TextStyle( -// fontWeight: FontWeight.bold, -// fontSize: 16.sp, -// color: Colors.black, -// ), -// ) -// ], -// ), -// ), -// ), -// flex: 1, -// ), -// Expanded( -// child: Container( -// margin: EdgeInsets.fromLTRB(16.w, 16.h, 16.w, 16.h), -// padding: EdgeInsets.fromLTRB(0, 7.h, 0, 7.h), -// decoration: BoxDecoration( -// color: Colors.white, -// borderRadius: BorderRadius.all(Radius.circular(8)), -// boxShadow: [ -// BoxShadow( -// color: Colors.black.withAlpha(12), -// offset: Offset(0, 3), -// blurRadius: 14, -// spreadRadius: 0) -// ]), -// child: Row( -// mainAxisAlignment: MainAxisAlignment.center, -// crossAxisAlignment: CrossAxisAlignment.center, -// children: [ -// Image.asset( -// "assets/image/icon_wallet_withdrawal.webp", -// width: 40.w, -// height: 40.w, -// ), -// Text( -// S.of(context).tixian, -// style: TextStyle( -// fontWeight: FontWeight.bold, -// fontSize: 16.sp, -// color: Colors.black, -// ), -// ) -// ], -// ), -// ), -// flex: 1, -// ), -// ], -// ); -// } } diff --git a/lib/retrofit/data/findMiNiGroupList.dart b/lib/retrofit/data/findMiNiGroupList.dart index 6b5a7d9b..63f453ce 100644 --- a/lib/retrofit/data/findMiNiGroupList.dart +++ b/lib/retrofit/data/findMiNiGroupList.dart @@ -85,6 +85,7 @@ class ProductListBean { String weight; String applyPrice; String price; + String vipPrice; int stock; int sellCount; int needLogistics; @@ -117,6 +118,7 @@ class ProductListBean { productListBean.weight = map['weight']; productListBean.applyPrice = map['applyPrice']; productListBean.price = map['price']; + productListBean.vipPrice = map['vipPrice']; productListBean.stock = map['stock']; productListBean.sellCount = map['sellCount']; productListBean.needLogistics = map['needLogistics']; @@ -149,6 +151,7 @@ class ProductListBean { "weight": weight, "applyPrice": applyPrice, "price": price, + "vipPrice":vipPrice, "stock": stock, "sellCount": sellCount, "needLogistics": needLogistics, diff --git a/lib/retrofit/data/vip_card_home.dart b/lib/retrofit/data/vip_card_home.dart new file mode 100644 index 00000000..8f2f02c8 --- /dev/null +++ b/lib/retrofit/data/vip_card_home.dart @@ -0,0 +1,968 @@ +/// member : {"masterId":"0","masterCardRankName":null,"vipNo":"1379254113602109440","nickname":"哈哈哈","headimg":"https://pos.upload.lotus-wallet.com/admin/2021/08/1f8d55ed-85d2-42a2-b155-6737a66226e8.jpg","userType":true,"sex":"0","level":1,"addressId":"0","remark":"","phone":"13052919193","createTime":"2021-04-06 10:06:21","birth":"1998-09-17","balance":null,"money":"31.12","activityMoney":"0.00","greenMoney":"4872.00","expendAmount":"180.02","organic":0,"points":"741","isBind":true,"memberRankVo":{"id":"1462684050274648064","rankName":"白银会员","rankOrigin":69,"rankContent":"","rankImg":"https://pos.upload.lotus-wallet.com/MDAwMA==/2021/11/7453eb74-661e-42b7-b575-8accc00fcbf5.png","status":true,"nextId":"1462684471177248768","nextName":"黄金会员","nextOrigin":20000},"age":24,"inviteCode":"MFZPXU","inviteNumber":4,"todayInviteNumber":0,"signature":"","background":"https://pos.upload.gznl.top/admin/2022/03/dd0af83c-1f2b-4217-bf0c-cdb7a809caca.jpeg","certification":null,"hasPayPassword":true,"isVip":false,"vipExpire":null,"isVipSubscribe":false,"vipDuration":33} +/// cards : [{"id":"1579679485240803328","createTime":"2022-10-11 11:45:13","createUser":"1","updateTime":"2022-10-11 11:48:48","updateUser":"1","name":"888绿卡","duration":30,"price":"188.00","autoSubscribe":true,"isDelete":true},{"id":"1579731753377988608","createTime":"2022-10-11 15:12:55","createUser":"1","updateTime":"2022-10-11 15:12:55","updateUser":"1","name":"一分钱订阅","duration":90,"price":"0.01","autoSubscribe":true,"isDelete":true}] +/// coupons : [] +/// productVips : [{"id":"1580078947226353664","createTime":"2022-10-12 14:12:32","createUser":"1310841663890915328","updateTime":"2022-10-12 14:12:32","updateUser":"1310841663890915328","supplierName":"58","storeId":"1300372027722432512","categoryId":"1300687829071822848","groupId":"1307148205753892864","shortName":"会员商品原价100 会员价6","productName":"会员商品","sellDesc":"","productCode":"PRO202210121412320000000000001","weight":"0","applyPrice":"100.00","price":"101.00","vipPrice":"6.00","stock":882,"sellCount":6,"needLogistics":0,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

1534

","thumbnailImg":"","info":"会员商品原价100 会员价6","buyCount":0,"sellCountLimit":0,"vipDiscount":"95.00"},{"id":"1578663655623360512","createTime":"2022-10-08 16:28:40","createUser":"1336877238389309440","updateTime":"2022-10-10 10:59:39","updateUser":"1336877238389309440","supplierName":"一杯奶茶","storeId":"1328618782985289728","categoryId":"1300688133322440704","groupId":"1391204546956492800","shortName":"一杯奶茶","productName":"一杯奶茶","sellDesc":"","productCode":"PRO202210081628400000000000001","weight":"0","applyPrice":"100.00","price":"61.00","vipPrice":"8.00","stock":-39,"sellCount":38,"needLogistics":0,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

一杯奶茶

","thumbnailImg":"","info":"一杯奶茶","buyCount":-1,"sellCountLimit":0,"vipDiscount":"53.00"},{"id":"1567029160059076608","createTime":"2022-09-06 13:57:20","createUser":"1333246101196636160","updateTime":"2022-10-10 14:37:40","updateUser":"1333246101196636160","supplierName":"海峡姐妹茶","storeId":"1333246101343436800","categoryId":"1300688133322440704","groupId":"1524327158112059392","shortName":"使用茉莉雪芽为茶底,用自有农场有机洛神花熬制的洛神花汁,洛神花中含有丰富的蛋白质,维生素,氨基酸,花青素,可以排毒养颜,清热祛火,降压,搭配新鲜红石榴,入口石榴的清甜中带着微酸,尾段是茶香。","productName":"霸气红宝石","sellDesc":"","productCode":"PRO202209061357200000000000001","weight":"0","applyPrice":"23.00","price":"23.00","vipPrice":"10.00","stock":99905,"sellCount":67,"needLogistics":0,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":1,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"https://pos.upload.lotus-wallet.com/1175/2022/09/b3b773a3-ea3e-4696-bd89-eece441144f1.jpg","info":"","buyCount":-38,"sellCountLimit":0,"vipDiscount":"13.00"},{"id":"1557552263126319104","createTime":"2022-08-11 10:19:32","createUser":"1333246101196636160","updateTime":"2022-08-11 10:19:32","updateUser":"1333246101196636160","supplierName":"前进麦味烘焙","storeId":"1432164681279078400","categoryId":"1343391656220557312","groupId":"1535192671235080192","shortName":"减糖布丁塔壳,加入低温烘烤农场有机南瓜内陷和布丁液,甜而不腻。","productName":"南瓜布丁塔(2入装)","sellDesc":"","productCode":"PRO202208111019320000000000001","weight":"0","applyPrice":"12.00","price":"12.00","vipPrice":null,"stock":990,"sellCount":6,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"https://pos.upload.lotus-wallet.com/1175/2022/08/8db6c09b-c403-4ae7-aa20-07843d292048.png","info":"","buyCount":-4,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555068186037059584","createTime":"2022-08-04 13:48:42","createUser":"1509798398956404736","updateTime":"2022-08-04 14:19:46","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"SIS小酒馆精致单人套餐","sellDesc":"","productCode":"PRO202208041348410000000000001","weight":"0","applyPrice":"118.00","price":"118.00","vipPrice":null,"stock":998,"sellCount":2,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

1.饮品任选一桶(含啤酒,1.5L装).
2.精选冷卤味时令拼盘一份.
3.精选小吃拼盘一份.

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555070675176128512","createTime":"2022-08-04 13:58:35","createUser":"1509798398956404736","updateTime":"2022-08-15 17:27:07","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"家庭游玩套餐一","sellDesc":"","productCode":"PRO202208041358350000000000003","weight":"0","applyPrice":"318.00","price":"318.00","vipPrice":null,"stock":999,"sellCount":1,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

① 饮品任选4杯(含啤酒).
② 小吃任选4份.
③ 特色冰棒4根.
④ 小酒馆体验票2张
⑤ 玩具兑换券1张(水枪/飞盘二选一

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555071062826287104","createTime":"2022-08-04 14:00:08","createUser":"1509798398956404736","updateTime":"2022-08-04 14:19:23","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"家庭游玩套餐二","sellDesc":"","productCode":"PRO202208041400070000000000001","weight":"0","applyPrice":"128.00","price":"128.00","vipPrice":null,"stock":998,"sellCount":2,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

1.提供小帐篷一顶,全家不限时使用.
2.园区内餐车在售饮品任选两杯(含啤酒).
3.台湾小吃街摊位在售小吃任选一份.
4.古桑园特色桑椹冰棍两根.

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555071811366944768","createTime":"2022-08-04 14:03:06","createUser":"1509798398956404736","updateTime":"2022-08-15 17:27:55","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"一家三口.家庭套餐一 (儿童1.2m以下)","sellDesc":"","productCode":"PRO202208041403060000000000001","weight":"0","applyPrice":"80.00","price":"80.00","vipPrice":null,"stock":998,"sellCount":3,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

园区大门

\n

1.成人公园门票两张.
2.儿童身高1.2米以下免票一张.

\n

儿童水上乐园

\n

1.儿童水上乐园,一名儿童不限时畅玩.

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555072466726944768","createTime":"2022-08-04 14:05:43","createUser":"1509798398956404736","updateTime":"2022-08-15 17:28:22","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"一家三口.家庭套餐二 (儿童1.2m以上)","sellDesc":"","productCode":"PRO202208041405420000000000003","weight":"0","applyPrice":"120.00","price":"120.00","vipPrice":null,"stock":999,"sellCount":1,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

园区大门

\n

1.成人公园门票两张.
2.儿童身高1.2米以上门票一张.

\n

儿童水上乐园

\n

1.儿童水上乐园,一名儿童不限时畅玩.

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555072974883651584","createTime":"2022-08-04 14:07:44","createUser":"1509798398956404736","updateTime":"2022-08-15 17:28:47","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"一家三口.家庭套餐三 (儿童1.2m以上)","sellDesc":"","productCode":"PRO202208041407430000000000001","weight":"0","applyPrice":"258.00","price":"258.00","vipPrice":null,"stock":994,"sellCount":6,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

园区大门

\n

1.成人公园门票两张.
2.儿童身高1.2米以上门票一张.

\n

三角帐篷/水上乐园

\n

1.提供三角帐篷一顶,全家不限时使用.
2.儿童水上乐园,一名儿童不限时畅玩.
3.古桑园特色桑椹冰棍两根.
4.园区内餐车在售饮品任选两杯+回乡精酿啤酒一杯.
5.台湾小吃街摊位在售小吃任选一份.

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555075594444603392","createTime":"2022-08-04 14:18:08","createUser":"1509798398956404736","updateTime":"2022-08-04 14:18:08","updateUser":"1509798398956404736","supplierName":"海峡姐妹","storeId":"1511895265261387776","categoryId":"1460889654206136320","groupId":"1555011116692668416","shortName":"分销","productName":"小酒馆体验券","sellDesc":"","productCode":"PRO202208041418080000000000001","weight":"0","applyPrice":"20.00","price":"20.00","vipPrice":null,"stock":991,"sellCount":9,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"

小酒馆体验券

","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1555519619937075200","createTime":"2022-08-05 19:42:32","createUser":"1347839370706550784","updateTime":"2022-08-05 19:42:40","updateUser":"1347839370706550784","supplierName":"回乡农场火锅","storeId":"1347853925696405504","categoryId":"1300687829071822848","groupId":"1305419452992455656","shortName":"赠送","productName":"锅底赠送卷卷菜","sellDesc":"","productCode":"PRO202208051942320000000000001","weight":"0","applyPrice":"0.00","price":"0.00","vipPrice":null,"stock":0,"sellCount":0,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":false,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":1,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1557551663693168640","createTime":"2022-08-11 10:17:09","createUser":"1333246101196636160","updateTime":"2022-09-07 10:19:00","updateUser":"1333246101196636160","supplierName":"前进麦味烘焙","storeId":"1432164681279078400","categoryId":"1343391656220557312","groupId":"1433972467260456960","shortName":"低糖低油南瓜吐司面团,搭配纯天然农场有机南瓜和纯燕麦,南瓜低温烘烤保留营养元素,加入燕麦提升人体膳食纤维,更注重健康营养搭配","productName":"燕麦南瓜吐司","sellDesc":"","productCode":"PRO202208111017090000000000001","weight":"0","applyPrice":"18.00","price":"18.00","vipPrice":null,"stock":956,"sellCount":30,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":false,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"https://pos.upload.lotus-wallet.com/1175/2022/08/2e0c14fd-2717-4812-a355-a24fbef9a78a.png","info":"","buyCount":-18,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1561985460165672960","createTime":"2022-08-23 15:55:29","createUser":"1347820292432461824","updateTime":"2022-09-04 21:53:26","updateUser":"1347820292432461824","supplierName":"百年川椒","storeId":"1300372027722432512","categoryId":"1300687829071822848","groupId":"1318729689669304320","shortName":"3-4人餐","productName":"虎年暴富晚市套餐","sellDesc":"","productCode":"PRO202208231555280000000000001","weight":"0","applyPrice":"401.00","price":"401.00","vipPrice":null,"stock":-16,"sellCount":16,"needLogistics":0,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1560106924941246464","createTime":"2022-08-18 11:30:51","createUser":"1347839370706550784","updateTime":"2022-09-19 19:24:09","updateUser":"1347839370706550784","supplierName":"央厨","storeId":"1347853925696405504","categoryId":"1300687829071822848","groupId":"1315891390147724264","shortName":"","productName":"农场南瓜饼","sellDesc":"","productCode":"PRO202208181130500000000000001","weight":"0","applyPrice":"12.00","price":"12.00","vipPrice":null,"stock":-18,"sellCount":15,"needLogistics":1,"oversold":1,"organic":0,"status":1,"posShow":true,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"https://pos.upload.lotus-wallet.com/1178/2022/08/e6bbd456-b542-4cfd-ac21-996341756da8.jpg","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"},{"id":"1560107415041474560","createTime":"2022-08-18 11:32:48","createUser":"1347839370706550784","updateTime":"2022-09-19 19:25:02","updateUser":"1347839370706550784","supplierName":"央厨","storeId":"1347853925696405504","categoryId":"1300687829071822848","groupId":"1315891390147724264","shortName":"","productName":"南瓜椰奶糕 ","sellDesc":"","productCode":"PRO202208181132470000000000001","weight":"0","applyPrice":"28.00","price":"28.00","vipPrice":null,"stock":-5,"sellCount":-7,"needLogistics":1,"oversold":1,"organic":0,"status":0,"posShow":false,"productType":0,"productNumber":1,"setMeal":1,"attrStyle":0,"detail":"","isDelete":0,"printerFlag":"DEFAULT","materials":null,"materialId":null,"details":"","thumbnailImg":"https://pos.upload.lotus-wallet.com/1178/2022/08/a27093c5-6774-441f-9347-6e1a0abd0b87.jpg","info":"","buyCount":0,"sellCountLimit":0,"vipDiscount":"0.00"}] + +class VipCardHome { + VipCardHome({ + Member member, + List cards, + List coupons, + List productVips,}){ + _member = member; + _cards = cards; + _coupons = coupons; + _productVips = productVips; +} + + VipCardHome.fromJson(dynamic json) { + _member = json['member'] != null ? Member.fromJson(json['member']) : null; + if (json['cards'] != null) { + _cards = []; + json['cards'].forEach((v) { + _cards.add(Cards.fromJson(v)); + }); + } + // if (json['coupons'] != null) { + // _coupons = []; + // json['coupons'].forEach((v) { + // _coupons.add(Dynamic.fromJson(v)); + // }); + // } + if (json['productVips'] != null) { + _productVips = []; + json['productVips'].forEach((v) { + _productVips.add(ProductVips.fromJson(v)); + }); + } + } + Member _member; + List _cards; + List _coupons; + List _productVips; +VipCardHome copyWith({ Member member, + List cards, + List coupons, + List productVips, +}) => VipCardHome( member: member ?? _member, + cards: cards ?? _cards, + coupons: coupons ?? _coupons, + productVips: productVips ?? _productVips, +); + Member get member => _member; + List get cards => _cards; + List get coupons => _coupons; + List get productVips => _productVips; + + Map toJson() { + final map = {}; + if (_member != null) { + map['member'] = _member.toJson(); + } + if (_cards != null) { + map['cards'] = _cards.map((v) => v.toJson()).toList(); + } + if (_coupons != null) { + map['coupons'] = _coupons.map((v) => v.toJson()).toList(); + } + if (_productVips != null) { + map['productVips'] = _productVips.map((v) => v.toJson()).toList(); + } + return map; + } + +} + +/// id : "1580078947226353664" +/// createTime : "2022-10-12 14:12:32" +/// createUser : "1310841663890915328" +/// updateTime : "2022-10-12 14:12:32" +/// updateUser : "1310841663890915328" +/// supplierName : "58" +/// storeId : "1300372027722432512" +/// categoryId : "1300687829071822848" +/// groupId : "1307148205753892864" +/// shortName : "会员商品原价100 会员价6" +/// productName : "会员商品" +/// sellDesc : "" +/// productCode : "PRO202210121412320000000000001" +/// weight : "0" +/// applyPrice : "100.00" +/// price : "101.00" +/// vipPrice : "6.00" +/// stock : 882 +/// sellCount : 6 +/// needLogistics : 0 +/// oversold : 1 +/// organic : 0 +/// status : 1 +/// posShow : true +/// productType : 0 +/// productNumber : 1 +/// setMeal : 1 +/// attrStyle : 0 +/// detail : "" +/// isDelete : 0 +/// printerFlag : "DEFAULT" +/// materials : null +/// materialId : null +/// details : "

1534

" +/// thumbnailImg : "" +/// info : "会员商品原价100 会员价6" +/// buyCount : 0 +/// sellCountLimit : 0 +/// vipDiscount : "95.00" + +class ProductVips { + ProductVips({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String supplierName, + String storeId, + String categoryId, + String groupId, + String shortName, + String productName, + String sellDesc, + String productCode, + String weight, + String applyPrice, + String price, + String vipPrice, + num stock, + num sellCount, + num needLogistics, + num oversold, + num organic, + num status, + bool posShow, + num productType, + num productNumber, + num setMeal, + num attrStyle, + String detail, + num isDelete, + String printerFlag, + dynamic materials, + dynamic materialId, + String details, + String thumbnailImg, + String info, + num buyCount, + num sellCountLimit, + String vipDiscount,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _supplierName = supplierName; + _storeId = storeId; + _categoryId = categoryId; + _groupId = groupId; + _shortName = shortName; + _productName = productName; + _sellDesc = sellDesc; + _productCode = productCode; + _weight = weight; + _applyPrice = applyPrice; + _price = price; + _vipPrice = vipPrice; + _stock = stock; + _sellCount = sellCount; + _needLogistics = needLogistics; + _oversold = oversold; + _organic = organic; + _status = status; + _posShow = posShow; + _productType = productType; + _productNumber = productNumber; + _setMeal = setMeal; + _attrStyle = attrStyle; + _detail = detail; + _isDelete = isDelete; + _printerFlag = printerFlag; + _materials = materials; + _materialId = materialId; + _details = details; + _thumbnailImg = thumbnailImg; + _info = info; + _buyCount = buyCount; + _sellCountLimit = sellCountLimit; + _vipDiscount = vipDiscount; +} + + ProductVips.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _supplierName = json['supplierName']; + _storeId = json['storeId']; + _categoryId = json['categoryId']; + _groupId = json['groupId']; + _shortName = json['shortName']; + _productName = json['productName']; + _sellDesc = json['sellDesc']; + _productCode = json['productCode']; + _weight = json['weight']; + _applyPrice = json['applyPrice']; + _price = json['price']; + _vipPrice = json['vipPrice']; + _stock = json['stock']; + _sellCount = json['sellCount']; + _needLogistics = json['needLogistics']; + _oversold = json['oversold']; + _organic = json['organic']; + _status = json['status']; + _posShow = json['posShow']; + _productType = json['productType']; + _productNumber = json['productNumber']; + _setMeal = json['setMeal']; + _attrStyle = json['attrStyle']; + _detail = json['detail']; + _isDelete = json['isDelete']; + _printerFlag = json['printerFlag']; + _materials = json['materials']; + _materialId = json['materialId']; + _details = json['details']; + _thumbnailImg = json['thumbnailImg']; + _info = json['info']; + _buyCount = json['buyCount']; + _sellCountLimit = json['sellCountLimit']; + _vipDiscount = json['vipDiscount']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _supplierName; + String _storeId; + String _categoryId; + String _groupId; + String _shortName; + String _productName; + String _sellDesc; + String _productCode; + String _weight; + String _applyPrice; + String _price; + String _vipPrice; + num _stock; + num _sellCount; + num _needLogistics; + num _oversold; + num _organic; + num _status; + bool _posShow; + num _productType; + num _productNumber; + num _setMeal; + num _attrStyle; + String _detail; + num _isDelete; + String _printerFlag; + dynamic _materials; + dynamic _materialId; + String _details; + String _thumbnailImg; + String _info; + num _buyCount; + num _sellCountLimit; + String _vipDiscount; +ProductVips copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String supplierName, + String storeId, + String categoryId, + String groupId, + String shortName, + String productName, + String sellDesc, + String productCode, + String weight, + String applyPrice, + String price, + String vipPrice, + num stock, + num sellCount, + num needLogistics, + num oversold, + num organic, + num status, + bool posShow, + num productType, + num productNumber, + num setMeal, + num attrStyle, + String detail, + num isDelete, + String printerFlag, + dynamic materials, + dynamic materialId, + String details, + String thumbnailImg, + String info, + num buyCount, + num sellCountLimit, + String vipDiscount, +}) => ProductVips( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + supplierName: supplierName ?? _supplierName, + storeId: storeId ?? _storeId, + categoryId: categoryId ?? _categoryId, + groupId: groupId ?? _groupId, + shortName: shortName ?? _shortName, + productName: productName ?? _productName, + sellDesc: sellDesc ?? _sellDesc, + productCode: productCode ?? _productCode, + weight: weight ?? _weight, + applyPrice: applyPrice ?? _applyPrice, + price: price ?? _price, + vipPrice: vipPrice ?? _vipPrice, + stock: stock ?? _stock, + sellCount: sellCount ?? _sellCount, + needLogistics: needLogistics ?? _needLogistics, + oversold: oversold ?? _oversold, + organic: organic ?? _organic, + status: status ?? _status, + posShow: posShow ?? _posShow, + productType: productType ?? _productType, + productNumber: productNumber ?? _productNumber, + setMeal: setMeal ?? _setMeal, + attrStyle: attrStyle ?? _attrStyle, + detail: detail ?? _detail, + isDelete: isDelete ?? _isDelete, + printerFlag: printerFlag ?? _printerFlag, + materials: materials ?? _materials, + materialId: materialId ?? _materialId, + details: details ?? _details, + thumbnailImg: thumbnailImg ?? _thumbnailImg, + info: info ?? _info, + buyCount: buyCount ?? _buyCount, + sellCountLimit: sellCountLimit ?? _sellCountLimit, + vipDiscount: vipDiscount ?? _vipDiscount, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get supplierName => _supplierName; + String get storeId => _storeId; + String get categoryId => _categoryId; + String get groupId => _groupId; + String get shortName => _shortName; + String get productName => _productName; + String get sellDesc => _sellDesc; + String get productCode => _productCode; + String get weight => _weight; + String get applyPrice => _applyPrice; + String get price => _price; + String get vipPrice => _vipPrice; + num get stock => _stock; + num get sellCount => _sellCount; + num get needLogistics => _needLogistics; + num get oversold => _oversold; + num get organic => _organic; + num get status => _status; + bool get posShow => _posShow; + num get productType => _productType; + num get productNumber => _productNumber; + num get setMeal => _setMeal; + num get attrStyle => _attrStyle; + String get detail => _detail; + num get isDelete => _isDelete; + String get printerFlag => _printerFlag; + dynamic get materials => _materials; + dynamic get materialId => _materialId; + String get details => _details; + String get thumbnailImg => _thumbnailImg; + String get info => _info; + num get buyCount => _buyCount; + num get sellCountLimit => _sellCountLimit; + String get vipDiscount => _vipDiscount; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['supplierName'] = _supplierName; + map['storeId'] = _storeId; + map['categoryId'] = _categoryId; + map['groupId'] = _groupId; + map['shortName'] = _shortName; + map['productName'] = _productName; + map['sellDesc'] = _sellDesc; + map['productCode'] = _productCode; + map['weight'] = _weight; + map['applyPrice'] = _applyPrice; + map['price'] = _price; + map['vipPrice'] = _vipPrice; + map['stock'] = _stock; + map['sellCount'] = _sellCount; + map['needLogistics'] = _needLogistics; + map['oversold'] = _oversold; + map['organic'] = _organic; + map['status'] = _status; + map['posShow'] = _posShow; + map['productType'] = _productType; + map['productNumber'] = _productNumber; + map['setMeal'] = _setMeal; + map['attrStyle'] = _attrStyle; + map['detail'] = _detail; + map['isDelete'] = _isDelete; + map['printerFlag'] = _printerFlag; + map['materials'] = _materials; + map['materialId'] = _materialId; + map['details'] = _details; + map['thumbnailImg'] = _thumbnailImg; + map['info'] = _info; + map['buyCount'] = _buyCount; + map['sellCountLimit'] = _sellCountLimit; + map['vipDiscount'] = _vipDiscount; + return map; + } + +} + +/// id : "1579679485240803328" +/// createTime : "2022-10-11 11:45:13" +/// createUser : "1" +/// updateTime : "2022-10-11 11:48:48" +/// updateUser : "1" +/// name : "888绿卡" +/// duration : 30 +/// price : "188.00" +/// autoSubscribe : true +/// isDelete : true + +class Cards { + Cards({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String name, + num duration, + String price, + bool autoSubscribe, + bool isDelete,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _name = name; + _duration = duration; + _price = price; + _autoSubscribe = autoSubscribe; + _isDelete = isDelete; +} + + Cards.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _name = json['name']; + _duration = json['duration']; + _price = json['price']; + _autoSubscribe = json['autoSubscribe']; + _isDelete = json['isDelete']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _name; + num _duration; + String _price; + bool _autoSubscribe; + bool _isDelete; +Cards copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String name, + num duration, + String price, + bool autoSubscribe, + bool isDelete, +}) => Cards( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + name: name ?? _name, + duration: duration ?? _duration, + price: price ?? _price, + autoSubscribe: autoSubscribe ?? _autoSubscribe, + isDelete: isDelete ?? _isDelete, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get name => _name; + num get duration => _duration; + String get price => _price; + bool get autoSubscribe => _autoSubscribe; + bool get isDelete => _isDelete; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['name'] = _name; + map['duration'] = _duration; + map['price'] = _price; + map['autoSubscribe'] = _autoSubscribe; + map['isDelete'] = _isDelete; + return map; + } + +} + +/// masterId : "0" +/// masterCardRankName : null +/// vipNo : "1379254113602109440" +/// nickname : "哈哈哈" +/// headimg : "https://pos.upload.lotus-wallet.com/admin/2021/08/1f8d55ed-85d2-42a2-b155-6737a66226e8.jpg" +/// userType : true +/// sex : "0" +/// level : 1 +/// addressId : "0" +/// remark : "" +/// phone : "13052919193" +/// createTime : "2021-04-06 10:06:21" +/// birth : "1998-09-17" +/// balance : null +/// money : "31.12" +/// activityMoney : "0.00" +/// greenMoney : "4872.00" +/// expendAmount : "180.02" +/// organic : 0 +/// points : "741" +/// isBind : true +/// memberRankVo : {"id":"1462684050274648064","rankName":"白银会员","rankOrigin":69,"rankContent":"","rankImg":"https://pos.upload.lotus-wallet.com/MDAwMA==/2021/11/7453eb74-661e-42b7-b575-8accc00fcbf5.png","status":true,"nextId":"1462684471177248768","nextName":"黄金会员","nextOrigin":20000} +/// age : 24 +/// inviteCode : "MFZPXU" +/// inviteNumber : 4 +/// todayInviteNumber : 0 +/// signature : "" +/// background : "https://pos.upload.gznl.top/admin/2022/03/dd0af83c-1f2b-4217-bf0c-cdb7a809caca.jpeg" +/// certification : null +/// hasPayPassword : true +/// isVip : false +/// vipExpire : null +/// isVipSubscribe : false +/// vipDuration : 33 + +class Member { + Member({ + String masterId, + dynamic masterCardRankName, + String vipNo, + String nickname, + String headimg, + bool userType, + String sex, + num level, + String addressId, + String remark, + String phone, + String createTime, + String birth, + dynamic balance, + String money, + String activityMoney, + String greenMoney, + String expendAmount, + num organic, + String points, + bool isBind, + MemberRankVo memberRankVo, + num age, + String inviteCode, + num inviteNumber, + num todayInviteNumber, + String signature, + String background, + dynamic certification, + bool hasPayPassword, + bool isVip, + dynamic vipExpire, + bool isVipSubscribe, + num vipDuration,}){ + _masterId = masterId; + _masterCardRankName = masterCardRankName; + _vipNo = vipNo; + _nickname = nickname; + _headimg = headimg; + _userType = userType; + _sex = sex; + _level = level; + _addressId = addressId; + _remark = remark; + _phone = phone; + _createTime = createTime; + _birth = birth; + _balance = balance; + _money = money; + _activityMoney = activityMoney; + _greenMoney = greenMoney; + _expendAmount = expendAmount; + _organic = organic; + _points = points; + _isBind = isBind; + _memberRankVo = memberRankVo; + _age = age; + _inviteCode = inviteCode; + _inviteNumber = inviteNumber; + _todayInviteNumber = todayInviteNumber; + _signature = signature; + _background = background; + _certification = certification; + _hasPayPassword = hasPayPassword; + _isVip = isVip; + _vipExpire = vipExpire; + _isVipSubscribe = isVipSubscribe; + _vipDuration = vipDuration; +} + + Member.fromJson(dynamic json) { + _masterId = json['masterId']; + _masterCardRankName = json['masterCardRankName']; + _vipNo = json['vipNo']; + _nickname = json['nickname']; + _headimg = json['headimg']; + _userType = json['userType']; + _sex = json['sex']; + _level = json['level']; + _addressId = json['addressId']; + _remark = json['remark']; + _phone = json['phone']; + _createTime = json['createTime']; + _birth = json['birth']; + _balance = json['balance']; + _money = json['money']; + _activityMoney = json['activityMoney']; + _greenMoney = json['greenMoney']; + _expendAmount = json['expendAmount']; + _organic = json['organic']; + _points = json['points']; + _isBind = json['isBind']; + _memberRankVo = json['memberRankVo'] != null ? MemberRankVo.fromJson(json['memberRankVo']) : null; + _age = json['age']; + _inviteCode = json['inviteCode']; + _inviteNumber = json['inviteNumber']; + _todayInviteNumber = json['todayInviteNumber']; + _signature = json['signature']; + _background = json['background']; + _certification = json['certification']; + _hasPayPassword = json['hasPayPassword']; + _isVip = json['isVip']; + _vipExpire = json['vipExpire']; + _isVipSubscribe = json['isVipSubscribe']; + _vipDuration = json['vipDuration']; + } + String _masterId; + dynamic _masterCardRankName; + String _vipNo; + String _nickname; + String _headimg; + bool _userType; + String _sex; + num _level; + String _addressId; + String _remark; + String _phone; + String _createTime; + String _birth; + dynamic _balance; + String _money; + String _activityMoney; + String _greenMoney; + String _expendAmount; + num _organic; + String _points; + bool _isBind; + MemberRankVo _memberRankVo; + num _age; + String _inviteCode; + num _inviteNumber; + num _todayInviteNumber; + String _signature; + String _background; + dynamic _certification; + bool _hasPayPassword; + bool _isVip; + dynamic _vipExpire; + bool _isVipSubscribe; + num _vipDuration; +Member copyWith({ String masterId, + dynamic masterCardRankName, + String vipNo, + String nickname, + String headimg, + bool userType, + String sex, + num level, + String addressId, + String remark, + String phone, + String createTime, + String birth, + dynamic balance, + String money, + String activityMoney, + String greenMoney, + String expendAmount, + num organic, + String points, + bool isBind, + MemberRankVo memberRankVo, + num age, + String inviteCode, + num inviteNumber, + num todayInviteNumber, + String signature, + String background, + dynamic certification, + bool hasPayPassword, + bool isVip, + dynamic vipExpire, + bool isVipSubscribe, + num vipDuration, +}) => Member( masterId: masterId ?? _masterId, + masterCardRankName: masterCardRankName ?? _masterCardRankName, + vipNo: vipNo ?? _vipNo, + nickname: nickname ?? _nickname, + headimg: headimg ?? _headimg, + userType: userType ?? _userType, + sex: sex ?? _sex, + level: level ?? _level, + addressId: addressId ?? _addressId, + remark: remark ?? _remark, + phone: phone ?? _phone, + createTime: createTime ?? _createTime, + birth: birth ?? _birth, + balance: balance ?? _balance, + money: money ?? _money, + activityMoney: activityMoney ?? _activityMoney, + greenMoney: greenMoney ?? _greenMoney, + expendAmount: expendAmount ?? _expendAmount, + organic: organic ?? _organic, + points: points ?? _points, + isBind: isBind ?? _isBind, + memberRankVo: memberRankVo ?? _memberRankVo, + age: age ?? _age, + inviteCode: inviteCode ?? _inviteCode, + inviteNumber: inviteNumber ?? _inviteNumber, + todayInviteNumber: todayInviteNumber ?? _todayInviteNumber, + signature: signature ?? _signature, + background: background ?? _background, + certification: certification ?? _certification, + hasPayPassword: hasPayPassword ?? _hasPayPassword, + isVip: isVip ?? _isVip, + vipExpire: vipExpire ?? _vipExpire, + isVipSubscribe: isVipSubscribe ?? _isVipSubscribe, + vipDuration: vipDuration ?? _vipDuration, +); + String get masterId => _masterId; + dynamic get masterCardRankName => _masterCardRankName; + String get vipNo => _vipNo; + String get nickname => _nickname; + String get headimg => _headimg; + bool get userType => _userType; + String get sex => _sex; + num get level => _level; + String get addressId => _addressId; + String get remark => _remark; + String get phone => _phone; + String get createTime => _createTime; + String get birth => _birth; + dynamic get balance => _balance; + String get money => _money; + String get activityMoney => _activityMoney; + String get greenMoney => _greenMoney; + String get expendAmount => _expendAmount; + num get organic => _organic; + String get points => _points; + bool get isBind => _isBind; + MemberRankVo get memberRankVo => _memberRankVo; + num get age => _age; + String get inviteCode => _inviteCode; + num get inviteNumber => _inviteNumber; + num get todayInviteNumber => _todayInviteNumber; + String get signature => _signature; + String get background => _background; + dynamic get certification => _certification; + bool get hasPayPassword => _hasPayPassword; + bool get isVip => _isVip; + dynamic get vipExpire => _vipExpire; + bool get isVipSubscribe => _isVipSubscribe; + num get vipDuration => _vipDuration; + + Map toJson() { + final map = {}; + map['masterId'] = _masterId; + map['masterCardRankName'] = _masterCardRankName; + map['vipNo'] = _vipNo; + map['nickname'] = _nickname; + map['headimg'] = _headimg; + map['userType'] = _userType; + map['sex'] = _sex; + map['level'] = _level; + map['addressId'] = _addressId; + map['remark'] = _remark; + map['phone'] = _phone; + map['createTime'] = _createTime; + map['birth'] = _birth; + map['balance'] = _balance; + map['money'] = _money; + map['activityMoney'] = _activityMoney; + map['greenMoney'] = _greenMoney; + map['expendAmount'] = _expendAmount; + map['organic'] = _organic; + map['points'] = _points; + map['isBind'] = _isBind; + if (_memberRankVo != null) { + map['memberRankVo'] = _memberRankVo.toJson(); + } + map['age'] = _age; + map['inviteCode'] = _inviteCode; + map['inviteNumber'] = _inviteNumber; + map['todayInviteNumber'] = _todayInviteNumber; + map['signature'] = _signature; + map['background'] = _background; + map['certification'] = _certification; + map['hasPayPassword'] = _hasPayPassword; + map['isVip'] = _isVip; + map['vipExpire'] = _vipExpire; + map['isVipSubscribe'] = _isVipSubscribe; + map['vipDuration'] = _vipDuration; + return map; + } + +} + +/// id : "1462684050274648064" +/// rankName : "白银会员" +/// rankOrigin : 69 +/// rankContent : "" +/// rankImg : "https://pos.upload.lotus-wallet.com/MDAwMA==/2021/11/7453eb74-661e-42b7-b575-8accc00fcbf5.png" +/// status : true +/// nextId : "1462684471177248768" +/// nextName : "黄金会员" +/// nextOrigin : 20000 + +class MemberRankVo { + MemberRankVo({ + String id, + String rankName, + num rankOrigin, + String rankContent, + String rankImg, + bool status, + String nextId, + String nextName, + num nextOrigin,}){ + _id = id; + _rankName = rankName; + _rankOrigin = rankOrigin; + _rankContent = rankContent; + _rankImg = rankImg; + _status = status; + _nextId = nextId; + _nextName = nextName; + _nextOrigin = nextOrigin; +} + + MemberRankVo.fromJson(dynamic json) { + _id = json['id']; + _rankName = json['rankName']; + _rankOrigin = json['rankOrigin']; + _rankContent = json['rankContent']; + _rankImg = json['rankImg']; + _status = json['status']; + _nextId = json['nextId']; + _nextName = json['nextName']; + _nextOrigin = json['nextOrigin']; + } + String _id; + String _rankName; + num _rankOrigin; + String _rankContent; + String _rankImg; + bool _status; + String _nextId; + String _nextName; + num _nextOrigin; +MemberRankVo copyWith({ String id, + String rankName, + num rankOrigin, + String rankContent, + String rankImg, + bool status, + String nextId, + String nextName, + num nextOrigin, +}) => MemberRankVo( id: id ?? _id, + rankName: rankName ?? _rankName, + rankOrigin: rankOrigin ?? _rankOrigin, + rankContent: rankContent ?? _rankContent, + rankImg: rankImg ?? _rankImg, + status: status ?? _status, + nextId: nextId ?? _nextId, + nextName: nextName ?? _nextName, + nextOrigin: nextOrigin ?? _nextOrigin, +); + String get id => _id; + String get rankName => _rankName; + num get rankOrigin => _rankOrigin; + String get rankContent => _rankContent; + String get rankImg => _rankImg; + bool get status => _status; + String get nextId => _nextId; + String get nextName => _nextName; + num get nextOrigin => _nextOrigin; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['rankName'] = _rankName; + map['rankOrigin'] = _rankOrigin; + map['rankContent'] = _rankContent; + map['rankImg'] = _rankImg; + map['status'] = _status; + map['nextId'] = _nextId; + map['nextName'] = _nextName; + map['nextOrigin'] = _nextOrigin; + return map; + } + +} \ No newline at end of file diff --git a/lib/retrofit/min_api.dart b/lib/retrofit/min_api.dart index f7e60731..7e9d7012 100644 --- a/lib/retrofit/min_api.dart +++ b/lib/retrofit/min_api.dart @@ -26,7 +26,7 @@ import 'data/shopping_home_config.dart'; part 'min_api.g.dart'; -const localBaseUrl = "http://192.168.10.78:8765/app/";///本地 +const localBaseUrl = "http://192.168.10.129:8765/app/";///本地 // const localBaseUrl = "https://2946-27-19-77-115.jp.ngrok.io/app/";///本地 const serviceBaseUrl = "https://pos.api.lotus-wallet.com/app/";///线上 diff --git a/lib/retrofit/retrofit_api.dart b/lib/retrofit/retrofit_api.dart index b55cfa21..76c781d1 100644 --- a/lib/retrofit/retrofit_api.dart +++ b/lib/retrofit/retrofit_api.dart @@ -56,12 +56,13 @@ import 'data/user_info.dart'; import 'data/vip_badges_list.dart'; import 'data/vip_benefit_list.dart'; import 'data/vip_card.dart'; +import 'data/vip_card_home.dart'; import 'data/vip_rule_details.dart'; import 'data/wx_pay.dart'; part 'retrofit_api.g.dart'; -const localBaseUrl = "http://192.168.10.78:8766/app/";///本地 +const localBaseUrl = "http://192.168.10.129:8766/app/";///本地 // const localBaseUrl = "https://2946-27-19-77-115.jp.ngrok.io/app/";///本地 const serviceBaseUrl = "https://pos.platform.lotus-wallet.com/app/";///线上 @@ -530,4 +531,14 @@ abstract class ApiService { ///验证验证码 @POST("/member/verifyByUpdatePayPwd") Future verifyByUpdatePayPwd(@Body() Map param); + + ///VIP首页 + @GET("/vipCard/index") + Future> vipCardIndex(); + + ///VIP订阅/购买 + @POST("/vipCard/orderVip/{id}") + Future> orderVip(@Body() Map param); + + } diff --git a/lib/retrofit/retrofit_api.g.dart b/lib/retrofit/retrofit_api.g.dart index f6852f20..1c49aecd 100644 --- a/lib/retrofit/retrofit_api.g.dart +++ b/lib/retrofit/retrofit_api.g.dart @@ -2068,4 +2068,47 @@ class _ApiService implements ApiService { ); return value; } + + @override + Future> vipCardIndex() async { + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + '/vipCard/index', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => VipCardHome.fromJson(json), + ); + return value; + } + + @override + Future> orderVip(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('/vipCard/orderVip', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json as dynamic, + ); + return value; + } } diff --git a/lib/settlement/settlement_view/activity_coupon_remarks.dart b/lib/settlement/settlement_view/activity_coupon_remarks.dart index ce610134..050cc083 100644 --- a/lib/settlement/settlement_view/activity_coupon_remarks.dart +++ b/lib/settlement/settlement_view/activity_coupon_remarks.dart @@ -73,6 +73,45 @@ class _ActivityCouponRemarks extends State { mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, children: [ + // if () + // InkWell( + // onTap: () { + // // widget.activityCart(); + // }, + // child: Row( + // mainAxisAlignment: MainAxisAlignment.center, + // crossAxisAlignment: CrossAxisAlignment.center, + // children: [ + // Expanded( + // flex: 1, + // child: Text( + // "VIP价格", + // style: TextStyle( + // fontWeight: MyFontWeight.regular, + // fontSize: 14.sp, + // color: Color(0xFF353535), + // ), + // ), + // ), + // Text( + // "使用", + // textAlign: TextAlign.end, + // style: TextStyle( + // fontSize: 14.sp, + // color: Color(0xFF32A060), + // fontWeight: MyFontWeight.semi_bold, + // ), + // ), + // Icon( + // Icons.keyboard_arrow_right, + // size: 16, + // ), + // ], + // ), + // ), + // SizedBox( + // height: 13, + // ), if (widget.placeOrder && widget?.settleOrderInfo?.benefitDiscountAmount != null && widget?.settleOrderInfo?.benefitDiscountAmount != "0") Container( margin:EdgeInsets.only(bottom: 13), @@ -225,6 +264,22 @@ class _ActivityCouponRemarks extends State { ); } + String vipText() { + String vip = ""; + if (widget.promotions == null || widget.promotions == "") { + vip = "使用"; + if (widget.settleOrderInfo == null || + widget.settleOrderInfo.promotionInfoList == null) { + vip = "使用"; + } else if (widget.coupons != null && widget.coupons != "") { + vip = "不使用"; + } + } else { + vip = widget.promotions; + } + return vip; + } + String activityText() { String promotion = ""; if (widget.promotions == null || widget.promotions == "") { @@ -248,7 +303,7 @@ class _ActivityCouponRemarks extends State { if(widget.placeOrder) if(widget.minOrderInfo == null || widget.minOrderInfo.orderInfoVo.couponList == null) - {coupon = "暂无可选优惠券";} + {coupon = "未选择任何优惠券";} else if(widget.promotions != null && widget.promotions != ""){ coupon = "优惠券与活动不可同享"; } diff --git a/lib/store/store_view/shop_goods.dart b/lib/store/store_view/shop_goods.dart index fbd2e0b2..91d9b351 100644 --- a/lib/store/store_view/shop_goods.dart +++ b/lib/store/store_view/shop_goods.dart @@ -309,6 +309,35 @@ class _ShopGoods extends State { SizedBox( height: 4.h, ), + // if(widget.productListBean.vipPrice != null ) + // Row( + // children: [ + // Container( + // alignment: Alignment.center, + // padding: EdgeInsets.symmetric(horizontal:2.w), + // margin: EdgeInsets.only(right: 4.w), + // decoration: new BoxDecoration( + // color: Color(0xff32A060), + // borderRadius: BorderRadius.circular(4)), + // child: Text( + // "VIP", + // style: TextStyle( + // fontSize: 12.sp, + // fontWeight: MyFontWeight.regular, + // color: Color(0xFFFFFFFF), + // ), + // ), + // ), + // Text( + // "¥${AppUtils.calculateDouble(double.tryParse(widget.productListBean.vipPrice ?? "0") ?? 0)}", + // style: TextStyle( + // fontSize: 16.sp, + // fontWeight: MyFontWeight.medium, + // color: Color(0xff32A060), + // ), + // ), + // ], + // ), Text( "¥${AppUtils.calculateDouble(double.tryParse(widget.isShopCart ? widget.shoppingCartSkuItemListBean.skuPrice : widget.productListBean.applyPrice) ?? 0)}", style: TextStyle( diff --git a/lib/store/store_view/shop_goods_car.dart b/lib/store/store_view/shop_goods_car.dart index f2cd0dba..5195f3f5 100644 --- a/lib/store/store_view/shop_goods_car.dart +++ b/lib/store/store_view/shop_goods_car.dart @@ -316,7 +316,7 @@ class _ShopGoodsCar extends State { Expanded( flex: 1, child: Text( - "x1", + setMealDataList.productInfoList[0].buyNumber.toString(), overflow: TextOverflow.ellipsis, maxLines: 1, style: TextStyle( diff --git a/lib/vip/vip_page.dart b/lib/vip/vip_page.dart new file mode 100644 index 00000000..da5170ac --- /dev/null +++ b/lib/vip/vip_page.dart @@ -0,0 +1,118 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; +import 'package:huixiang/retrofit/data/vip_card_home.dart'; +import 'package:huixiang/view_widget/classic_header.dart'; +import 'package:huixiang/vip/vip_view/exclusive_coupon.dart'; +import 'package:huixiang/vip/vip_view/vip_goods_discount.dart'; +import 'package:huixiang/vip/vip_view/vip_top.dart'; +import 'package:pull_to_refresh/pull_to_refresh.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../retrofit/data/base_data.dart'; +import '../retrofit/retrofit_api.dart'; +import '../view_widget/my_appbar.dart'; + + +class VipPage extends StatefulWidget { + + VipPage(Key key): super(key: key); + @override + State createState() { + return _VipPageState(); + } +} + +class _VipPageState extends State with AutomaticKeepAliveClientMixin { + final RefreshController _refreshController = RefreshController(); + ApiService apiService; + VipCardHome vipHome; + + + @override + void dispose() { + super.dispose(); + if (_refreshController != null) _refreshController.dispose(); + } + + @override + void initState() { + super.initState(); + queryVipHome(); + } + + queryVipHome() async { + if (apiService == null) { + SharedPreferences value = await SharedPreferences.getInstance(); + apiService = ApiService( + Dio(), + context: context, + token: value.getString("token"), + showLoading: true + ); + } + BaseData baseData = + await apiService.vipCardIndex().catchError((onError) { + _refreshController.refreshFailed();}); + if (baseData != null && baseData.isSuccess) { + vipHome = baseData.data; + _refreshController.refreshCompleted(); + }else{ + _refreshController.refreshFailed(); + SmartDialog.showToast(baseData.msg ?? "", alignment: Alignment.center); + } + } + + + _onRefresh() { + queryVipHome(); + } + + @override + Widget build(BuildContext context) { + super.build(context); + return Scaffold( + backgroundColor: Color(0xFFF9FAF7), + body: Container( + padding: EdgeInsets.only(bottom: 76.h), + child: SmartRefresher( + controller: _refreshController, + enablePullDown: true, + enablePullUp: false, + header: MyHeader(), + physics: BouncingScrollPhysics(), + onRefresh: () { + setState(() { + _onRefresh(); + }); + }, + child: SingleChildScrollView( + child: Container( + child: FutureBuilder( + future:queryVipHome(), + builder: (context, snapshot) { + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + VipTop(vipHome), + + VipGoodsDiscount(vipHome), + + ExclusiveCoupon(), + ], + ); + }, + ), + ), + ), + ), + ), + ); + } + + @override + bool get wantKeepAlive => true; +} diff --git a/lib/vip/vip_view/exclusive_coupon.dart b/lib/vip/vip_view/exclusive_coupon.dart new file mode 100644 index 00000000..0c3bdd27 --- /dev/null +++ b/lib/vip/vip_view/exclusive_coupon.dart @@ -0,0 +1,132 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:huixiang/utils/font_weight.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class ExclusiveCoupon extends StatefulWidget { + @override + State createState() { + return _ExclusiveCoupon(); + } +} + +class _ExclusiveCoupon extends State { + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.only(left: 16.w, right: 16.w, bottom: 40.h), + width: double.infinity, + padding: EdgeInsets.all(16.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.w), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "专享优惠券", + style: TextStyle( + color: Colors.black, + fontSize: 15.sp, + fontWeight: MyFontWeight.semi_bold, + ), + ), + SizedBox( + height: 10.h, + ), + Row( + children: [ + Expanded( + child: Stack( + alignment: Alignment.bottomCenter, + children: [ + Image.asset( + "assets/image/vip_shop_hx.webp", + width: 100.w, + height: 120.h, + fit: BoxFit.fill, + ), + Padding( + padding: EdgeInsets.only(bottom: 4.h), + child: Text( + "6折饮品券", + style: TextStyle( + fontSize: 14.sp, + fontWeight: MyFontWeight.medium, + color: Colors.white, + ), + ), + ), + ], + )), + SizedBox( + width: 14.w, + ), + Expanded( + child: Stack( + alignment: Alignment.bottomCenter, + children: [ + Image.asset( + "assets/image/vip_shop_qj.webp", + width: 100.w, + height: 120.h, + fit: BoxFit.fill, + ), + Padding( + padding: EdgeInsets.only(bottom: 4.h), + child: Text( + "7折烘焙券", + style: TextStyle( + fontSize: 14.sp, + fontWeight: MyFontWeight.medium, + color: Colors.white, + ), + ), + ), + ], + ), + ), + SizedBox( + width: 14.w, + ), + Expanded( + child: Stack( + alignment: Alignment.bottomCenter, + children: [ + Image.asset( + "assets/image/vip_shop_hg.webp", + width:100.w, + height: 120.h, + fit: BoxFit.fill, + ), + Padding( + padding: EdgeInsets.only(bottom: 4.h), + child: Text( + "8折火锅券", + style: TextStyle( + fontSize: 14.sp, + fontWeight: MyFontWeight.medium, + color: Colors.white, + ), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/vip/vip_view/vip_goods_discount.dart b/lib/vip/vip_view/vip_goods_discount.dart new file mode 100644 index 00000000..c4fd3bbe --- /dev/null +++ b/lib/vip/vip_view/vip_goods_discount.dart @@ -0,0 +1,208 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:huixiang/utils/font_weight.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +import '../../retrofit/data/vip_card_home.dart'; +import '../../view_widget/custom_image.dart'; + + +class VipGoodsDiscount extends StatefulWidget { + final VipCardHome vipCardHome; + + VipGoodsDiscount(this.vipCardHome); + @override + State createState() { + return _VipGoodsDiscount(); + } +} + +class _VipGoodsDiscount extends State { + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.symmetric(vertical: 25.h,horizontal: 16.w), + child:Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if(widget?.vipCardHome!=null) + (widget?.vipCardHome?.member?.isVip ?? false)? + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset( + "assets/image/vip_discount_left.webp", + width: 21.w, + height: 39.h, + fit: BoxFit.fill, + ), + SizedBox(width: 11.w,), + Text( + "回乡VIP卡专享权益", + style: TextStyle( + color: Color(0xff32A060), + fontSize:15.sp, + fontWeight: MyFontWeight.semi_bold, + ), + ), + SizedBox(width: 11.w,), + Image.asset( + "assets/image/vip_discount_right.webp", + width: 21.w, + height: 39.h, + fit: BoxFit.fill, + ), + ],): + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset( + "assets/image/vip_lock.webp", + width: 20, + height: 20, + fit: BoxFit.cover, + ), + SizedBox(width: 2.w,), + Text( + "开通回乡VIP卡获取更多权益", + style: TextStyle( + color: Colors.black, + fontSize:15.sp, + fontWeight: MyFontWeight.semi_bold, + ), + ), + ], + ), + vipGoodsRecommend(), + ], + ), + ); + } + + Widget vipGoodsRecommend(){ + return Container( + margin: EdgeInsets.only(top: 10.h), + height: 200.h, + width: double.infinity, + padding: EdgeInsets.all(16.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(6.w), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child:Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "会员专享价格", + style: TextStyle( + color: Colors.black, + fontSize:15.sp, + fontWeight: MyFontWeight.semi_bold, + ), + ), + SizedBox(height:20.h,), + vipGoodsRecommendList(), + ], + ), + ); + } + + Widget vipGoodsRecommendList(){ + return Container( + height: 126.h, + child: ListView.builder( + scrollDirection: Axis.horizontal, + physics: BouncingScrollPhysics(), + itemCount: widget.vipCardHome?.productVips?.length ?? 0, + itemBuilder: (context, position) { + return GestureDetector( + onTap: () { + Navigator.of(context) + .pushNamed('/router/shop_details_page', arguments: { + "id": widget?.vipCardHome?.productVips[position].id, + "storeId": widget?.vipCardHome?.productVips[position].storeId, + }); + }, + child: vipGoodsRecommendItem(widget.vipCardHome.productVips[position]), + ); + }, + ), + ); + } + + Widget vipGoodsRecommendItem(ProductVips productVips){ + return Container( + width: 70.w, + margin: EdgeInsets.only(right:10.w,left:6.w), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Stack( + alignment: Alignment.bottomCenter, + children: [ + MImage( + productVips.thumbnailImg ?? "", + width: 70, + height: 70, + fit: BoxFit.cover, + errorSrc: "assets/image/default_1.webp", + fadeSrc: "assets/image/default_1.webp", + ), + if(productVips.vipDiscount != "0.00") + Container( + width: 70, + padding: EdgeInsets.symmetric(vertical:2.h), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomRight: Radius.circular(4.r), + bottomLeft: Radius.circular(4.r), + ), + color: Color(0xff32A060), + ), + child: Text( + "省${productVips.vipDiscount ?? ""}元", + style: TextStyle( + color: Colors.white, + fontSize:13.sp, + fontWeight: MyFontWeight.regular, + ),), + ), + ], + ), + Padding(padding:EdgeInsets.only(top:6.h,bottom: 4.h), + child: Text( + productVips.productName ?? "", + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: Color(0xff0D0D0D), + fontSize:14.sp, + fontWeight: MyFontWeight.regular, + ),), + ), + Text( + "¥${productVips.vipPrice ?? ""}", + style: TextStyle( + color: Color(0xff0D0D0D), + fontSize:15.sp, + fontWeight: MyFontWeight.medium, + ),) + ], + ), + ); + } +} diff --git a/lib/vip/vip_view/vip_top.dart b/lib/vip/vip_view/vip_top.dart new file mode 100644 index 00000000..c45d98ef --- /dev/null +++ b/lib/vip/vip_view/vip_top.dart @@ -0,0 +1,733 @@ +import 'dart:io'; + +import 'package:dio/dio.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; +import 'package:fluwx/fluwx.dart'; +import 'package:huixiang/utils/font_weight.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:tobias/tobias.dart'; + +import '../../generated/l10n.dart'; +import '../../retrofit/data/base_data.dart'; +import '../../retrofit/data/vip_card_home.dart'; +import '../../retrofit/data/wx_pay.dart'; +import '../../retrofit/retrofit_api.dart'; +import '../../utils/flutter_utils.dart'; +import '../../utils/min.dart'; +import 'package:tobias/tobias.dart' as tobias; + +class VipTop extends StatefulWidget { + final VipCardHome vipCardHome; + + VipTop(this.vipCardHome); + + @override + State createState() { + return _VipTop(); + } +} + +class _VipTop extends State { + int selectIndex = 0; + ApiService apiService; + var payType = 1; + dynamic payListen; + int stateIndex = 0; + + @override + void initState() { + super.initState(); + payListen = weChatResponseEventHandler.listen((event) async { + print("payCallback: ${event.errCode}"); + if (event.errCode == 0) { + SmartDialog.showToast("支付成功", alignment: Alignment.center); + } else { + SmartDialog.showToast("支付失败", alignment: Alignment.center); + return; + } + }); + } + + recharge() async { + if (apiService == null) { + SharedPreferences value = await SharedPreferences.getInstance(); + apiService = ApiService(Dio(), + context: context, token: value.getString("token"), showLoading: true); + } + BaseData baseData = await apiService.orderVip({ + "cardId": widget?.vipCardHome?.cards[selectIndex]?.id, + "type": payType + }).catchError((error) {}); + if (baseData != null && baseData.isSuccess) { + if (payType == 1) { + if (Platform.isAndroid) { + if (!(await Min.isInitialize())) { + // 小程序的微信支付和app的充值支付使用同一个WXPayEntryActivity回调, + // 然而充值时小程序未初始化会导致回调内部代码调用getPackage空指针, + // 故而在此初始化一下 + await Min.initialize(); + } + } + WxPay wxPay = WxPay.fromJson(baseData.data); + await registerWxApi( + appId: wxPay.appId, + doOnAndroid: true, + universalLink: "https://hx.lotus-wallet.com/app/", + ); + payWithWeChat( + appId: wxPay.appId, + partnerId: wxPay.partnerId, + prepayId: wxPay.prepayId, + packageValue: wxPay.packageValue, + nonceStr: wxPay.nonceStr, + timeStamp: int.tryParse(wxPay.timeStamp), + sign: wxPay.sign, + ); + } else { + tobias.isAliPayInstalled().then((value) => { + // 判断是否安装了支付宝 + if (!value) + {SmartDialog.showToast("请安装支付宝", alignment: Alignment.center)} + else + { + tobias.aliPay(baseData.data["body"]).then((payRes) { + if (payRes['resultStatus'] == 9000 || + payRes['resultStatus'] == '9000') { + SmartDialog.showToast("支付成功", + alignment: Alignment.center); + } else { + SmartDialog.showToast(payRes['memo'], + alignment: Alignment.center); + } + }) + } + }); + } + } else { + SmartDialog.showToast(baseData.msg, alignment: Alignment.center); + } + } + + @override + Widget build(BuildContext context) { + return Container( + child: Column( + children: [ + vipCard(), + SizedBox( + height: 15.h, + ), + (!(widget?.vipCardHome?.member?.isVip ?? false) || stateIndex== 1)? + vipCardList(): + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: Row( + children: [ + Expanded( + child: Container( + alignment: Alignment.center, + padding: EdgeInsets.symmetric( + horizontal: 10.w, vertical: 15.h), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.w), + color: Color(0xffffffff), + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Text.rich( + TextSpan( + children: [ + TextSpan( + text: "已享会员权益 ", + style: TextStyle( + fontWeight: MyFontWeight.semi_bold, + fontSize: 15.sp, + color: Color(0xff32A060), + ), + ), + TextSpan( + text: widget?.vipCardHome?.member?.vipDuration + .toString() ?? + "0", + style: TextStyle( + fontWeight: MyFontWeight.semi_bold, + fontSize: 18.sp, + color: Color(0xffF96519), + ), + ), + TextSpan( + text: " 天", + style: TextStyle( + fontWeight: MyFontWeight.semi_bold, + fontSize: 15.sp, + color: Color(0xff32A060), + ), + ), + ], + ), + textDirection: TextDirection.ltr, + ))), + SizedBox( + width: 10.w, + ), + Expanded( + child: GestureDetector( + onTap: () { + setState(() { + stateIndex = 1; + }); + }, + child: Container( + alignment: Alignment.center, + padding: EdgeInsets.symmetric( + horizontal: 10.w, vertical: 15.h), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.w), + color: Color(0xffffffff), + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + "${(widget?.vipCardHome?.member?.isVipSubscribe ??false) ?"已开通自动续费":"续费回乡VIP"}", + style: TextStyle( + color: Color((widget?.vipCardHome?.member?.isVipSubscribe ??false)?0xff3A3936:0xff32A060), + fontSize: 15.sp, + fontWeight: MyFontWeight.semi_bold, + ), + ), + SizedBox( + width: 6.w, + ), + Image.asset( + "${(widget?.vipCardHome?.member?.isVipSubscribe ??false) ? "assets/image/vip_xf.webp":"assets/image/icon_right.webp"}", + width: 16, + height: 16, + fit: BoxFit.fill, + color: Color(0xff32A060), + ), + ], + ))), + ) + ], + ), + ), + ], + ), + ); + } + + Widget vipCard() { + return Container( + margin: EdgeInsets.fromLTRB( + 16.w, MediaQuery.of(context).padding.top + 25.h, 16.w, 8.h), + height: 167.h, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8.w), + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Stack( + // alignment: Alignment.center, + children: [ + Image.asset( + "assets/image/vip_card.webp", + fit: BoxFit.fill, //填充剩余空间 + height: 167.h, + ), + Container( + padding: EdgeInsets.all(16.w), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Text( + "回乡VIP卡", + style: TextStyle( + color: Color(0xff32A060), + fontSize: 24.sp, + fontWeight: MyFontWeight.semi_bold, + ), + )), + Text( + widget?.vipCardHome?.member?.nickname ?? "", + style: TextStyle( + color: Colors.white, + fontSize: 15.sp, + fontWeight: MyFontWeight.regular, + ), + ), + SizedBox( + height: 15.h, + ), + if (widget?.vipCardHome?.member?.isVip ?? false) + Text( + "有效期至 ${(widget?.vipCardHome?.member?.vipExpire ?? "").substring(0,( widget?.vipCardHome?.member?.vipExpire ?? "").indexOf(" "))}", + style: TextStyle( + color: Color(0xffFFFFFF), + fontSize: 13.sp, + fontWeight: MyFontWeight.regular, + ), + ), + ], + ), + ), + ], + ), + ); + } + + Widget vipCardList() { + return Container( + height: 132.h, + margin: EdgeInsets.symmetric(horizontal: 14.w), + child: ListView.builder( + scrollDirection: Axis.horizontal, + physics: BouncingScrollPhysics(), + itemCount: widget?.vipCardHome?.cards?.length ?? 0, + itemBuilder: (context, position) { + return GestureDetector( + onTap: () { + setState(() { + selectIndex = position; + if (widget?.vipCardHome?.cards[selectIndex]?.autoSubscribe ?? + false) { + vipTreatyShowBottomSheet(); + } else { + vipShowBottomSheet(); + } + }); + }, + child: vipCardItem(widget?.vipCardHome?.cards[position], position), + ); + }, + ), + ); + } + + Widget vipCardItem(Cards cards, index) { + return Expanded( + child: Stack( + alignment: Alignment.topRight, + children: [ + Container( + height: double.infinity, + width: 166.w, + alignment: Alignment.center, + padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 25.h), + margin: EdgeInsets.only(right: 15.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.w), + color: Color(selectIndex == index ? 0xffF0FAF4 : 0xffffffff), + border: Border.all( + color: Color(selectIndex == index ? 0xff32A060 : 0xFFEAEAEA), + width: 2, + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Column( + children: [ + Row( + children: [ + Expanded( + child: Text( + "${cards?.duration.toString() ?? ""}天", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.black, + fontSize: 15.sp, + fontWeight: MyFontWeight.medium, + ), + ), + ), + Expanded( + child: Text( + cards?.name ?? "", + textAlign: TextAlign.center, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: Colors.black, + fontSize: 15.sp, + fontWeight: MyFontWeight.medium, + ), + ), + ), + ], + ), + SizedBox( + height: 10.h, + ), + Text( + "¥${AppUtils.calculateDouble(double.tryParse(cards?.price ?? ""))}", + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xff32A060), + fontSize: 36.sp, + fontWeight: MyFontWeight.medium, + ), + ), + ], + ), + ), + if (cards.autoSubscribe) + Container( + padding: EdgeInsets.symmetric(vertical: 4.h, horizontal: 6.w), + margin: EdgeInsets.only(right: 15.w), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topRight: Radius.circular(6.r), + bottomLeft: Radius.circular(6.r), + ), + color: Color(0xff32A060), + ), + child: Text( + "更优惠", + style: TextStyle( + color: Colors.white, + fontSize: 12.sp, + fontWeight: MyFontWeight.regular, + ), + ), + ) + ], + )); + } + + ///会员卡包月协议弹窗 + vipTreatyShowBottomSheet() { + showModalBottomSheet( + builder: (BuildContext context) { + return treatyBuildBottomSheetWidget(context); + }, + backgroundColor: Colors.transparent, + barrierColor: Colors.transparent, + context: context); + } + + Widget treatyBuildBottomSheetWidget(BuildContext context) { + return Container( + padding: EdgeInsets.symmetric(vertical: 20.h, horizontal: 14.w), + height: 127.h, + decoration: new BoxDecoration( + color: Colors.white, + borderRadius: new BorderRadius.only( + topLeft: const Radius.circular(6.0), + topRight: const Radius.circular(6.0))), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 4.w), + child: Text.rich( + TextSpan( + children: [ + TextSpan( + text: "开通即默认同意", + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 12.sp, + color: Color(0xff4D4D4D), + ), + ), + TextSpan( + text: "《回乡VIP会员卡规则协议》", + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 12.sp, + color: Color(0xff32A060), + ), + ), + ], + ), + textDirection: TextDirection.ltr, + ), + ), + GestureDetector( + onTap: () { + Navigator.of(context).pop(); + vipShowBottomSheet(); + }, + child: Container( + height: 40.h, + alignment: Alignment.center, + margin: EdgeInsets.only(top: 26.h), + padding: EdgeInsets.symmetric(horizontal: 16.w), + decoration: new BoxDecoration( + color: Color(0xff32A060), + borderRadius: BorderRadius.circular(24)), + child: Text( + "立刻开通", + style: TextStyle( + fontSize: 16.sp, + height: 1.3.h, + fontWeight: MyFontWeight.regular, + color: Color(0xFFFFFFFF), + ), + ), + ), + ) + ], + )); + } + + ///会员卡包月购买弹窗 + vipShowBottomSheet() { + showModalBottomSheet( + builder: (BuildContext context) { + return StatefulBuilder(builder: ( + context, + state, + ) { + return buildBottomSheetWidget(context, state); + }); + }, + backgroundColor: Colors.transparent, + context: context); + } + + Widget buildBottomSheetWidget(BuildContext context, state) { + return Container( + padding: EdgeInsets.all(16), + decoration: new BoxDecoration( + color: Colors.white, + borderRadius: new BorderRadius.only( + topLeft: const Radius.circular(8.0), + topRight: const Radius.circular(8.0))), + child: Container( + height: 230.h, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Row( + children: [ + Expanded( + child: Text( + "支付方式", + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 15.sp, + color: Color(0xff0D0D0D), + ), + )), + GestureDetector( + onTap: () { + Navigator.of(context).pop(); + }, + child: Icon( + Icons.clear, + color: Colors.black, + ), + ), + ], + ), + GestureDetector( + onTap: () { + state(() { + payType = 1; + }); + }, + child: Container( + padding: EdgeInsets.only( + left: 14.w, right: 32.w, top: 11.h, bottom: 11.h), + margin: EdgeInsets.only(top: 17.h), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.w), + color: Color(payType == 1 ? 0xFFF0FAF4 : 0xffF9F9F9), + border: Border.all( + color: Color(payType == 1 ? 0xFF32A060 : 0xFFFAFAFA), + width: payType == 1 ? 2 : 0, + ), + boxShadow: [ + BoxShadow( + color: Color(0xffF9F9F9).withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Row( + children: [ + Image.asset( + "assets/image/icon_we_chat.webp", + width: 20, + fit: BoxFit.fill, + height: 20, + ), + SizedBox( + width: 8.w, + ), + Text( + S.of(context).weixinzhifu, + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 15.sp, + color: Color(0xff0D0D0D), + ), + ), + SizedBox( + width: 20.w, + ), + ], + ), + ), + ), + GestureDetector( + onTap: () { + state(() { + payType = 2; + }); + }, + child: Container( + padding: EdgeInsets.only( + left: 14.w, right: 32.w, top: 11.h, bottom: 11.h), + margin: EdgeInsets.only(top: 17.h), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4.w), + color: Color(payType == 2 ? 0xFFF0FAF4 : 0xffF9F9F9), + border: Border.all( + color: Color(payType == 2 ? 0xFF32A060 : 0xFFFAFAFA), + width: payType == 2 ? 2 : 0, + ), + boxShadow: [ + BoxShadow( + color: Color(0xffF9F9F9).withAlpha(12), + offset: Offset(0, 3), + blurRadius: 14, + spreadRadius: 0, + ) + ], + ), + child: Row( + children: [ + Image.asset( + "assets/image/icon_alipay.webp", + width: 20, + fit: BoxFit.fill, + height: 20, + ), + SizedBox( + width: 8.w, + ), + Text( + "支付宝支付", + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 15.sp, + color: Color(0xff0D0D0D), + ), + ), + SizedBox( + width: 20.w, + ), + ], + ), + ), + ), + Container( + width: double.infinity, + height: 40.h, + margin: EdgeInsets.only(top: 30.h), + decoration: new BoxDecoration( + color: Color(0xff383A38), + borderRadius: BorderRadius.circular(24)), + child: Row( + children: [ + SizedBox( + width: 16.w, + ), + Expanded( + child: Text.rich( + TextSpan( + children: [ + TextSpan( + text: "¥", + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 12.sp, + color: Colors.white, + ), + ), + TextSpan( + text: AppUtils.calculateDouble(double.tryParse( + widget?.vipCardHome?.cards[selectIndex] + ?.price ?? + "")), + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 20.sp, + color: Colors.white, + ), + ), + ], + ), + textDirection: TextDirection.ltr, + )), + GestureDetector( + onTap: () { + Navigator.of(context).pop(); + recharge(); + }, + child: Container( + height: double.infinity, + alignment: Alignment.center, + padding: EdgeInsets.symmetric(horizontal: 16.w), + decoration: new BoxDecoration( + color: Color(0xff32A060), + borderRadius: BorderRadius.circular(24)), + child: Text( + "立刻支付", + style: TextStyle( + fontSize: 16.sp, + height: 1.3.h, + fontWeight: MyFontWeight.regular, + color: Color(0xFFFFFFFF), + ), + ), + ), + ) + ], + ), + ) + ], + ), + )); + } +} diff --git a/pubspec.lock b/pubspec.lock index ea333bca..e80cc94b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -434,6 +434,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "4.0.1" + number_precision: + dependency: "direct main" + description: + name: number_precision + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.0.2+1" numerus: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 1b13ed61..45322e1c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: 一心回乡. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 3.1.4+28 +version: 3.1.5+29 environment: sdk: ">=2.7.0 <3.0.0" @@ -33,6 +33,8 @@ dependencies: flutter_staggered_grid_view: ^0.4.0 # Null safety pull_to_refresh: ^2.0.0 # Null safety + number_precision: ^2.0.2+1 + permission_handler: ^5.0.1+1 flutter_bmflocation: ^1.0.3