From 49fa3e50342eb75242615762d7f9ae4b9273bb87 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Tue, 29 Jul 2025 14:47:41 +0800 Subject: [PATCH 01/16] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E4=BB=A3=E7=A0=81=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomNoMore/images/no_more.png | Bin 79568 -> 0 bytes pages/order/components/CustomNoMore/index.vue | 14 ---- .../components/CustomNoMore/styles/index.scss | 17 ----- .../images/refresher_loading.gif | Bin 99597 -> 0 bytes .../components/CustomRefresher/index.vue | 39 ---------- .../CustomRefresher/styles/index.scss | 21 ------ pages/order/components/OrderCard/index.vue | 23 +++--- .../components/OrderCard/styles/index.scss | 67 ++++++++++-------- pages/order/list.vue | 21 ++---- 9 files changed, 55 insertions(+), 147 deletions(-) delete mode 100644 pages/order/components/CustomNoMore/images/no_more.png delete mode 100644 pages/order/components/CustomNoMore/index.vue delete mode 100644 pages/order/components/CustomNoMore/styles/index.scss delete mode 100644 pages/order/components/CustomRefresher/images/refresher_loading.gif delete mode 100644 pages/order/components/CustomRefresher/index.vue delete mode 100644 pages/order/components/CustomRefresher/styles/index.scss diff --git a/pages/order/components/CustomNoMore/images/no_more.png b/pages/order/components/CustomNoMore/images/no_more.png deleted file mode 100644 index 8bca5fedb43c82dcc608024e4566782da8dc55ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79568 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%0AQ{*`^) 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

V|NqUzL^{ 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 - - - 已经到达宇宙尽头啦~ - - - - \ No newline at end of file diff --git a/pages/order/components/CustomNoMore/styles/index.scss b/pages/order/components/CustomNoMore/styles/index.scss deleted file mode 100644 index d67b2ff..0000000 --- a/pages/order/components/CustomNoMore/styles/index.scss +++ /dev/null @@ -1,17 +0,0 @@ -.nomore { - /* #ifndef APP-NVUE */ - display: flex; - /* #endif */ - flex-direction: column; - align-items: center; - padding: 10px 0; -} -.nomore-image { - width: 100px; - height: 65px; -} -.nomore-text { - margin-top: 5px; - font-size: 12px; - color: #222963; -} \ No newline at end of file diff --git a/pages/order/components/CustomRefresher/images/refresher_loading.gif b/pages/order/components/CustomRefresher/images/refresher_loading.gif deleted file mode 100644 index 1ee754f3112499b7b8dd8dbbda5a42a5705da4ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99597 zcmaHScUV*1vu+A0^w2v5q}R}kl+dJ0KoO*9=uIFL>0szp4MmE8geoE^O(`OVB2C30 zD9sWSDGCx0X#%-?zjMBG&mZ@>d7eDkd-lwlS!>U%WWVpk%;KDuw)-ex6tD*X>@I!% z_A2aPi#)wD_i`{{<5SJ>%cPCZ^{QQ~v$M0m_kN2#{D>OZi+R{q*cCsiT3BqS}W(_&o8vU>i~{3zgJ$q33QY1TobCD{(jDU z_pQ>=(UHQ_m6MYb`6tW2OMv_D)PDDMD|N2!&$%%7{@wq3MEmoD_EM0xNdeqjrLIl< znLbaW9f{UXT^n6heDMCu*6ueAD-mVwzZCD3INZ*xpN64H2x);QG@r!*M_r#gKH7(C zpZ|M&Z20KCL{8Jm$x;5BZ`kUxzQv8b)wbiq-;diH-Q65_=e$N&w%>gF`DlL4%+~hr z-rCo%Umup=ycQAO`=I#l+@{XMsrxf48~Hl7CzcL>f3|ROAAM3g`*V9ZA?#;lbrnn7y2;c9cGlRJ#t=p^<(dQwUx82Y9DHfa*Ohg zj*kzv-o_3rta=(hX?IQ^`P|q4^i@%a9s}r8pUmy51wz9oFq}HW1L8@}(`-&6X!6#Zg- z|JT^u`tQRX${N<=_~<~lX?ky|`1b3s+a$GK%0`W*-09-&&ddxiZ|w}d-2XMc_m$8* zw|4Yvqhxk-cNV+5+PYbBZ@XV>=I8d|?@uSkN56^;_hx6mY1yneIPOnr+$C1-yc}Nq z`HR-hOglc>tR(Jl3?ET{DRr(KP-1@f4`>;mJD|kvzJI?s8ra-GJfdzME++meEnU*J z`&D9EUS0L)8|Bwsi|>XGm9;gG8>{s#tQW^ZKCCWm6zH}*tlfU0BH!`-aGgS<(L`yC z=S?qOFgC=PswkqsKmY)6Dsr;HAWhsO+)qDs4We=Go`K#GNDpsc|6o0_&1Wyfkp5nJ zVvg!IC>xxyx1YaxY?$|j*z*@XV*@?4y~GUkk-E`3(LuN%?+ABfbkMcnaGhv9F?X*J z4{x2*Xc=p$8EL2(YAY+7 z8fj~vQ$43*sHUc=t!=8Jrt+_?MR0h8d$6bXzrOuXegC(u;s4iG$2iQ}Jt8FRVo1of zf3pDN7ZMQ??iYeXs+{H{QrgDd(?9qhiOfHD>Axmz;vME6>FsqcEF=i|pJmqZ|9^y_ zrmCT;t)Z!=;DgdsS5WiO^it4PQ}t5t_R!EoX=r(PYI|60EPO4C!x=`?Wv zMx*1Ss;=hluA-^nq2;Ne;H9pnp`eXY)>hC|S5sG3_Hg%9Q`HnxIt@|jpUnARne?yd zG(G=0{GYlwJ^7!?@(w;Nr?Aty0n$!)gTIFd`+K{8c7AVfQ8#~WtpEJ6wz{(Xed*iR zMaq}YpFS?k&&|$!ct1V$Zj$_V;?3(<<71;E!!L&h2l`1b`kwbb>*?<5eEOuLy{)z7 z@uTLZhm8*!?$_7V)>Ky!EALg5m)$KbDK5HGSdgDbxP9wpZccVqW=48iYD#hv{zhU# zd|YfybX4T^i14sbTu5-xwZH&>KVKhjFHaA5?A0r7t}f1(og6PYT)bd!hp|0xV{K(= zVQzNL)Wq1x5N)8Zr+ZdMTT4?zT}@R*8KtDCATK8?BP}HempQzu0Ut+OYesG(jk5(U+G@uNq%SnOj>1bbrH&?a z1EA0%T%x*pq4QC#jKGSrMeXAwHR5bea^<7S(o@o;ZQ6$1J$32tG8HjTE1qra z{3txQSz`O5@A!a?viR+exko*G6sRQ}0AM%cj+J<@BIvPU<6Cic?||z|DyRMK`}iXS z2fdPo?ve%FQiTRGl&zdQNeX_8E>nf^b9xz^W!&*<7S{*AnwvvjUrUTc^6$^!6BD?E zvt^Q(taHScxIGgzHP&ix7E2G1Z-}0B@nlJ)M`81XMB6DjQ-+ye3cQN=M3n7i=`61} zW%J$(7^)bNFq7|rd-AE=Lf4eW7g^+9f=d9e1aKEcjok{ra?v+mCle!-5VtEMQ(7vs za~1!9OLML$>&lWuOK~kJS$GhG64Ck@n+kPS z$G`okHg1$X5Z6iqsdP}bMvympm01Eu&yGCjbc`M|R4l|88H6&?nTus3l2$Pm_?9&f3VL-YXDHs@bwn_zDam+50Z-YPvfTqGPfMYXcScm?Th0lDPv@z4`|(eQ79JX zv2GAeIf;55o%=k?M}&n({AP5w2vA8=$z*8DN5uuUDs=Yw^Dp&`Mr=qlNsQAFZUi?% z5U?qUu5UrSB)}fs4C^LWFf$Z`|8~tx<8wDDQWBLTCMNn~AGoPjSY>zvY1G}*Ph<%q z^@Hw0^*-Fe0-52-h-@T~K7yE`pGpGKQt(MX4+4`l=nNUTu_=&MMV7MY%S$K98lSb( zEH`srKUVwBgPCR(C6X!&)+6D9TAMeT2T2SqBX}s92&NOq!V;x{a6}&Pg0Tm?Ap#^= z{)XL~!(1>dBcn~cpF?8$>m6}5zQkH!F!SO^UUyW6dh|8OF}g;$?!!5);jIFLQ~dI%=wjPM>Z6B#d~hr>*+(Y^^V^=u`<4`I=$JuX5^jfS#d2P7rQy-r8krNI z7!yf~b;fgVjo$rnr=g!hPDiKc)n%{ zFi+*z7OZ@+#On$EK-~&wT4P;<59P;(Woqo-hjjTSv8!R(qT!2y*GfmjoTZf#W6F%3 zokV@!Q~_7$JkXVv$hR=?~yuo5!&;XI*~lV?nm7{j8Y_z;FC^-N$%r zxNiXe9#=q6VvMokJ>P7ySZXth0>(K0aI^o4?A7~d$UXkoWtTe=$~%EeXMXs(fBq69 z2B$!mint6vX>Kb{coUWAt9@YlAQWC9W)y8{LF@}F2z!DKjN4BUb|pRiDY1?S_<5Uw z_h8gqzs*2{iWhwic)r%W0cmRiBj>kbr7*!7gN+`e9a`pjPF0K=PS~^#LVoqLR$*oI zIFyQ^fec8=F;%@Ttgo?f0d$+e?&}r(zcFuP6G;Uzfu9+7D31)}K`fRJK90*?47=B5 z72rq8aeui;Jf1ZXbS3$x2m-FgBZLAj@3{$?b-|Y31XcJ_0TQ%>_bt2a`LJV0)*F_lbz(_*qd3MnF@e@Wv~1g?2-t5&%YZ|UH80YES})kpfM zWTIWjC{GUYGpwxatr>Sjg$OcTWT&N1@Fo`GhzH}u;C9h1Lr|9}5Cew9nNKp7e7XQq zzh6{nzQ4%Q0a*IfHb1&@t7}M9KjqVhr?3clBd_-It4!;fc9{6@3`Yqmj)#BmfN6CA zMO3!6hAI-Smugfcq#vBM@NxOvqy4KQIAGLFE0BrORbwdp(poZNN^y3G;XE!yYp9=H zqSzVS_9@JMz!l`=w}0)o^{=wHgs&&$?usgEus90;P{JvRdHp7_*7F^w%88j^FqxI1 z{0&{S`Qb2cug}97J0?EL2I30&&tn1ouUxZ$*f%+$B6lku%2Bn7^DEY_mLap{T2ifP zi^+vhPMji7GF>FqGsF0Z+F%wBi8uks=T5JmG+z6tUa*shbKgzYU1eTBhJRX|-83jU zfTUygrv<)z%=&V`agJeU?GA-aCaj;?5|?t7(d2M?r9zyWv^O0fK#!BWMr+QAKiaNb z7+v*_l0Nfr7^3T}UHoh0SCr{qefa0!Wx9p}W=bcFuSuf<*u?KVctH$Ui3&*I#w%e$ zS&5LWbCvc&GAkLZ=N0*m zE@3YLs|`w##%hv|=4vs0i}@C;)L zkOSk5>arKP&$s3o0rUk$JH~BCG5KN)%OZ44sbJle8`k>(B@!^|5?-B@sZ7bl?}8#Q z-q)wCYofAnqXCN2K%Zh8jakn6lE^oa;Blzc`THrcLw3z|F2a~}=~XDA1?*0ML{Q)- z*c`zYFEJ-DWD?`P3H->@ksDk}zhcip&zD7sxa@{DBt~ZiD^ckp zFlDw>x+@` zmHd(KZmWN^AOYw^b`pDU?0^FS#n!IPHow|4W`EVNQgknquT53C?YQT0@NZN4s=JDE7$g~BO95Wp z11S?8YL>OLxICcF0-X_${MLX=*|tK2T7!U0ufKKb6qpf3jYXDY@9yKcaYPBZZ7Sf& zjLv;w)K!u>jJK?n596Rme!47K?FGxtnm1OHfm+9Q@Q}-;h#l&A^s&h-oc*_FplB^5 z^x@r>GI$5B5U|i)%#Q2opZ67C#owbdi=fi^{_v%(>qnDvrvGjLO zWrMRu8*f-|XA()MF*6^!U zU#fQX1SczvOdmz9Ax2c+%&rjkYY5)~2b!bD}JgKXUS%cFS?q%7N{3A%+ ztL?wC+>3E}^01)SoU z06tuFv$L5HiA2M)Udz6oX;ng8Ysob)e3Is#>@b@A{ff6Py$X$3$duQ1Ui3-eQ@}0K zQ2f(O4oYyingb%&??9kjdN$LbDJxxf9JUZ3OufWSuErLE?k;cw&pw&_4GWJ?zhj;3 zZfUP5=&pC|8GnpdVIefb@xfoj)LS={T9_|djiAnn<6#wz$>Hp}K1$Gb)|Mk-9M zyz*}j9w-aNARWGC1^8$OzhHWuw9cAbpT&cPr(HepRH?sO#G?L8oQ!VZZn$ zSg5(=v!*Kk8vXtfj&U7EBCI{P!a#5cE?wR2P;T&{0;rWbS~`J$G7(9c2tz}?s6Y`4 z04elt7zxW;@Le%|yW0dxyLM%@X*9PSfyeMy-PJaxu@#rq+9(s=q{@~sHM`qt44+{7 z?#bMZtFIT_m=vv;wtPN~RDhX0_uaN0uUWs+_4mbtkBDp(s2E^j#8y!$g<&K?Scy}Z zH&e(Xub1-gBPEAoWMIRjX&m#67o|ct{++#^Q`0WMSQ=`Y3;Y;|=tTm&7l&J{H5gG4 zdbhFdBd@6D56JR7K_o0xZ_ZM0COi5=r@E7e;E>6|B~HRHOCFu80w>Ug{7D>ql`wm~ zVxqR`-PqB*oX~*PFfbB5_jChLbnNT%hRmc;5^(qeNgU5ghQ$WH(IiaK`^`vKynC(S z)C8S-lCV%<11%`UGk#hSvMy8%8lZ^5<7w?ayf_HG(EC?!KE4rhim|~@DtrpFnd#Z+ z7s|aOKwbE_5*Tv8n)=+LLGSZ;(C3rpcdIsDi_yS!p_%TRvGdPI^P|4d35{{$KU#hG zLJNAER{ptN4+vqIIqw!<+2s3ucL7PA3(%DcJ$OGkb-KMxrd%84&>xR!o-x$}i&QLH z+PsTfE;X@mG5)aFlYnpNrR*KE$_LKl+X0%SFUcQfqn>|gWA@`hL)9KlM^XsFNJf7O z*y%jj=^nHV1wWxqr^O7{dxFpCOKn*!nckX})gSf$G;4h_o5(#Ex-l6cJd=(A3nKs_ zXmH#u9(H!18Ub2~PmWo8!Jyw+Lwh4}2gA;vE~EP=moE`HPh z)!4!yPXSA?1LX<7ew3zZQriQxYwxjETL1ztz5 z%f0=jK%?4R6_cUB6evVI9;LMj)UJe+a)j%iTWFd9Zwpf&ID*r$JCe7z_0fEzCtUKZ zThfKUmIkQFSnQuif1)e@?0)|9xGE|4Gph=2Ng2IsWS;yaVMn+bXl)DL=;O)#vc1vA zuZ9+>o)}gQ{~falRB!*iJ=cAs{Yy$ndYkzI(v8Z}!f-^~W_}AQ>fe`t3kD6a%23}f z8G)nzvRV+~F*i1c*kSvfK1AF7t1|(DC?Mv_A?emaITacx0%Um$78_uF$okijy-_mm z_=rMJ0Zf(9-u|Vq-#LJ7KM*=JG{-C9fRW_M^7GJi3@`-wL+pLw{&p{Wha(tS9iWn)`4u2 zds*(@Z1kDokplOZcbljl5*a++dbsMO3sSb+x=Xjn_~eFnY^Hx?zpsD;jK%PcERwFg zUmdcYpNtc662?pfPYK&wY~Ru{bb`VMK3SaE#E`G63o0jRNqJ#c zx3#uuULViAxOA(35tywB#F8n%;!3w?RqE7*oMPJ??jmQ~`+fXd^s_ux@`TXA+>MW2 zFAjf(4IUNCgrHD(wkj>=I#kgOVVfT9+>5^GoxuyAXg3}pFO!nl+uAeb_$(VXTB$>a zV`gjLbkqGXg{unTO9$dW1IYvAU;j4{h#W) zl14;c9koIb(qpE^XNm=~D{IWHlEz$jQo<~C?IH{bz^l{tXZU*72P&0>c2={6s#Iy= zlOi$z(ZODVj%9~d0e^o7H_8c^!tr~jL&xHp7SKxJuMEM8;jrZE!x0apzpnC_SHvay z;;x6rHK}bEW%@o7Q{@=Baf=r`9)vIEK`xm$O(%A_Am1y##y&Y`;$8P=o?UtlWA9q# z5XG|$%-F_hefsy!ioOtsQ@4Kc@=7oioDNfb*) z*`jW1aZDBoCL%`BOonfNExlUdr&XK8Ej>UqC@7F*VznToX}@Z6g^DhhKJ=kslb{6j zq5%IpYL&vhnEHMgw_mg;Jzu&!FvI;$WE_gaaxpx~&f*C?#jg3$JcxA75FNyrPA_>LqAjA2@V&JTPF>&2q| zICBIyVkmViQ0g_riq3A%yYZ~=v^(Owllul)VfJnGDtAl&=8LJ|UW%DzYr^4xb>?80 zcLHteH^^#MFz`iz0=fD@h1!jPKJVgtvAc}nhBb-g&4dqclSa<(^W5?6OJW!PwL-U8 zs^rmDV6rqHg>LL3`6>t2eH?okRTha zJ7(CCxIf{uRAD$Nu`Ac=)xuS9*R%o1J;)903Sbcyg5`bbh#98x)vT$cB&HodpdiNn4y@G#EFUul!6FN|=9YxL@hJv~@iQ6kQkWk< z?Q=MdQNzD0+eKwm2!B6L}d0J}_0LasPJ1)YJ*jbiL-kW9IBb z#5<}W-$(^b-Zk!Z)p$a$WK)E_jU*YW%3T2QP5Uq;szV4e-Lrx#}v{yj5zAA62RUm5q6$rdJV5ufv-9)j8rGjQ;F@l z0sK=v7jC##G3Lg+2JN)i@_XYEDw+9io3bBTEt_af33a5aa_#oE8meIb^$}*_8mD2M z-Bu4h>5Fggp1alYgHh9o#G`^umuZRs%KU-xh{-tbS{OCOK40=OZXAY`_dBF!8wT#J zT^K>g0$WXFgM%Cy>X+5qTxA29xcFZp#3^T#QO1FfF?KOeWx=r}%p2u_XG=BS*L=*a z(hZGGzvNbR_SsP~lSgzKEEPaU&{FzCfXsbvo9TIaZ8cDtoR@J}!}`4!bWWN4@#OsZ zPJp79OYz2RD8)2Q+#sr)bXOUk#Nj79wv z5xJ?U4#i-Bgp$@f_Z{n2)A1$wpHvjQW8BIaKm$JY_vr5y`RH(uCdoyxCGlq(8<<%m zNVTe}V4Q%qTqAlC44L?a}V4VK(ua)CLeqj{FunZa2b@z*C_3`Q{(BMPidSO_D8hzIqDw!LwB?Nv#VR zFhNuZuw-A|m?-e$cyWF%gu|pkK!EMq=Ht1Ab0J;cuMy^{aW`H{?k%MA{hE^*g8cYg z>A29`5%W-B2<|WOT!1hhHxoQJd+#^RKzwl%I(wF4aki^x?)Y}%+4#k$IgwpK1VVh- zvw05N`Dd*OTd5HO3%6&rMhY%v<2L^yqj{rO`+~OTyYY-RLxy9_iBQGzB*ay+#_PA< zAR_D&owzwkYyuA!#3do;Zczd0d7Kh9Ui&OAT4-jea@r%OmI zx%E63(b#Q0&^K=3lm7LFtHBhP2#FcK(6?5+qPu88{vA1!@Vi3lc;s`vx1D74;*=^j@JbY?Dh{wK;ftbXC z@u(*pR*+;TlbJL*P@rY4q7;~P{QIv<3mjI^uCl9PT`k{y&OfmYn5IxuLyD&Gdd3J3 zt%+}S7UW4{|If|=Go<8&d%R1xGWf8XQGL{!U#k_h5<6N#YJV^+>KjHh0?s!wok{(d zIiAXaniT2fDO9;fp2G3luCWfK3@&bG$aNr6xrKERpM35)_!c_{>n@Inzqi0cFrUYE z&|E(iN=W7_p(yZG4q@I4%oxso05pG93d4TSBupgno_Mv0@yRi40A$WvT^gmDw&x6M z9n&Zi_<1bu5!}?R;S3YF*ZD4k{bOXUlll(U!=Plf*j!SvFZ!x@9`)<2XPw&47h~io z;Uyi}q08AhGS4xkK+d}*g$_emUWVX?FW)Oz+bEO@FbcwexgCwFE5%%6V=ASx$-Wj2 zzPp}t;vBi(h3xciLHn5mL3d4UH#X+(Mz_#k7Py)c3FCk{Q)$rTYFWv5Uvu)jRO&JebIZj=M&a`809ee%^$RdPbAh6&M0nL5q%6yj zRk3?f4tIk`zi+$MqN`Ej zyoDGUxK^e+v5dp%FFzeUT-&8>KBkP{&N&k*C1mTT`o&?l`YIKoye`^A1k=9(*=pBO&{5j!7>+R*THa9%I}C+NHYz0etDUKgN^ zmlfizLB&V+?LhrdQk3hI!~GAeace^x;G&e;J#cM7-`+Vvt?ejEO6Ljdkc(2rDY)Ez zy!_N4qB@S*ozOf*y!Lmh6sFfPJhkjhd1|=!T9XDa7u=sD-Td7htiGOc6`*0AlOfg5 z3c9{+yE$IOue-zNiidEn@1c>H*KbjSraP~$_89Q#PNGAyxPlXmN~m`x*a=A#2|qod z=#K{L%1VeV`DlJohW5|)N$fZ#7XPSGxNd?PXV4$_* z4LDKihJ3<)x1x&giNEz$o?B!w9Y|8SyQLts4o8R}heR7GH$z@ylN$bXHk#IDp=3ol z{VzU9yr>-N^l@Q(z6hv{UWEB2kyskBZ2n1JxxTrztjAmU0~-n`9hEAyMB#P>hC=yL zYoxzr_Jh8M++Z|k!}0%-Xh2Uwd>W@gJGhr2&66>rqGOODB=p{$R*8Y1q7o}nNmc=; zbRiPVr+?a#p!K_Sm;mnAVIRWWvWEz)Q^5MXMnfnF0<@Yh6$~{^()GxGbr~S)0WfdP zeH62uvl5=Wdi(JoTz;E7r6dMf-ouA95_h!gD_>uz{DnFh|%7e4K{FCk>F)Z+Z%5odBSL=-xD-Q}3{ z?qT6&Q3zbF_w&i_T~jqT7b(og0)`#5?oJi&V7?>5iRP9bv)Q|Wr|yEZVBA5y+h@AvCNWaH1ux)U_sI#}q*s7B@58&8wK zz-TaYs$deFnj&)U7J&I3m0q}dB4pfK(dg;CM;f~6z7yLuD0^q;zTx|tKMx26NBza^_NkCXQpBh;njmXms$Y*qI8IC>X%BkudMJ2f6eK zjvd>9jfv$H=w5%Gy4zA}O&RP64KzsB1Bthz5t}Elw+Z^2XhH&lh#7k6r~n84*zH%w z#Il_I{h?6x0$B0BVXGY;^!#cCl%K4_d=4G0xuPc8aB1i*%sujnnae!?Rm1g(j)g9z zio0TV8=XQe42gs?k!6-%=uYtUyRdsAGQ5Ti_M6Mrs5CeT+xzx!ZfNR|AzA2l@b~X5 zhTv}I!HJ9QuG(AB2WH4cr_vFvAi--*M)}z{bv4GAtqZQV4xs0HBLANE4smACjUT z_U*p0mx zjuPaG4o-1Q;nPZ!rp61w!G!=&BVFou`{V?1J{3IhS6Zrtlda3}c|j^bnhFI1z=@sy zm!)Dalq4MyZamNg#gjn_SbEn6ltf9K(^jYo4lHJtZp8zJOhYtVGOwZ_Av8RY2>>1$ z@qYjV^J6mXN0XvTQe*(&2RJB_%oo$?4unU4Rt$MGGF?OkVH^71HLE!$i0_ z=ai#K262*d`bv@<_H(X}CY=F*dx%`6X}PM&;380_zJwFG!49u{^8yY$({S^!;idur zR7ha#;k{LCo^dxit%tx!?7FpXE~1EpGxz5@+Tm4@PHuREW@*mM5}+gYW^C7O;RiQ4 z0if>8l=2c#_5Cb?=v#$kP+u}|q>CUcMz4VbaRY9%t(h^>(7*%~gwMiFASv?%cl%&J z&qOB2ikKwP9eac?)ESKpLDT>JV1s&qQl!Eilv5Flx!Q9uH!PGdMp(He&-iko*JV&) zOODWNj?Gx?8GH^B1Ckbjuso*hFq5tU<6oKK#fFX!yOgAcgENysEJ?tc(YudQVENcPPv~#+ zqRu|eDx3D_WyaG1Y;6i-kcg}{g|Q0HUgMHjrc zsDOU}FeAYlWN0}N7%c5^qAiFcL(P%kp;S;R_4iomoy(QX zNI$VTfEAvhfkb~D1H+ME4J~wgYd1B;;F1L5-S40xB)o;MVoJM8KRKM{Cg_4LHk~Q;ARqPi)f}H?;XRd-yjB{umV;Ytb2{#R> zRagc=O1QXWOSmj+3PM40ST06#jlMI8`NL&7TwRF_JReWIGViL0E1$F|lfr-`@O2?` zmy;Rl@-s^HW2+|V%lvy9xM|3kV|?jt0DT?yepDm&Hi{49T#xv1AE(VX*?$$0t#=LY~@SW9=k2Ik?@*oRfI4ZGdN9+tpOi!zbZ2O%VV9Re1L ze$dhrkW^GEN^a_z2bA(P$M;}3G0h(WngxAj#0r~6{q9U2HupN$`!f{hy8~xpAI;9+ ze?8m`m?cse9&N>N^(8+NUCUKL zt(3sDXd&9yBZ7XZLpav%@KIsNj~Pip5;Ko7=? z{=vhZ&BM++agRi?rUM0edrr33%Yd4s0zM*41^Kim&}iK6DLMOT!A#G4o!%!A5I0P! zi-wgejqzqG5?s&y{N2K{zQ4_+oadax=j*jyDkO+<8Swo)E3O#$&82TSP>(kM%(==rNSFeCDk524F#A=|a(@n1&MeDbsR0xdrUx{BkV_?_oBqaSPYIqw$$kd8g9 z*VOCqJ=0}NMX)m~0@OY*DCu=))vCXnr{mhsr+io_FAo1_i8X=H;fU|#MGl;IRb&%iTd>cf|6LRWJJWaCSLuFd|{u-{hg>aQT8XyEOZ!H9JoiTDvJ zO|~pH{!vj9IF341T&nvr+>05zasT_9hNv8=>;)aKdP;pEuF-9C+j zhT!Z++(fRY{tg7}Xv2{~Tfl%Qq3zxL_~gO(PEVaj{Htb9(3=OZD6+~4cOTqzZj85V zoai-jwS3)~R!gA5dym@ZvP*peW!T$`-(-W6vGn(?-$*WjEEwpMk?`AiaKqoG-rhz6 zl0KBuW$*rK+4X!h1yqNmCjjV6@bvju`j7NB~4p0xk{fp%6--iFw^nWs#;%WLHB&UOne4WZ@ zEW5uj+UhyNjMTmq-CyN3#>207+VuZUB!kHbX-*(l`DBzjDB>Dgs=P;dSR>KW?uLYc z8ip7N!||P~j}E_Xis<0PJ(sCdASgvLwKK$b;$u~T z?>vJb(Y&RfVmDQf*G)Q%yZ8>2ap6odKy-+ln(MC@Oe!;E^LDO0l2vZj@xI9Y$Yw?mYa#m#m@FAJI5fQ8~X`1=`X0FjdvmGWJO9 z81ZfKwZA_a8PKyF`|RaT6Hles5I$zrshNplN+#!4M+M+fFL-(EDZ z@cNpSdB!K-JkGWvS_ICBbk7X^(EJ|j|2YXJ3=4L0D!x7IZ{`UzvGn84XD{p&cU0e@ zdKr|A7H0w+J^UM_?hTna$zZBxS>Y;P%D@{89(#gO>}bFHm-*I_K+a`{*#5eb09nyA z)glQYy7n3P#~)~~s}{TJ8W8lNZ%@JWc zg~9i5R$6W5Yt@-}RUV!p{GR2{r;Lsfdx%+A|ERyK_HVf@F%Z}&L(Ei?5{A*E&JyA|Cyv8jv|)iE4oQ zjCXrBdOvvtC)n4SWACDMwpgj%ftQ!cu0j>@5NWLzn1ar$zdk5%lM^9%{I?nO9vS~f z&6MrnEQ93GbyY!eBzWmzNtzD&*^SwnYhZi!1KngE&r*oQcnyUva&%C*XBEg_p2|d% zN0-(6$)wWL&vfBak|0_GH{>iP=n`j=g#7Mb^EDZ>Kya9aRN7M=Svd(tWDL!@fatB8b8YZ6ymYy%Y5Ja{ZT@{K@ga_-_a4BXx3!aeY- zHQxm6*+V5XgPCug_b;sZv8tn+IFX<@hUXV?_wSZ<5^3O zV&-0oYU>UO;^Pl<8Bb#J+9$yTNfVL$#w;?w&9{fTjIW-sm!RYEh%6_XK&|v^SZSBI zq=@p!kUSotyejTUfEh68L>Tz&WGwa_yj*qzRQ$Mh|D5KyUF3LG^{B;Xrcv{EB1Y_V z+)igMNUvqpVZ)HgROamSEdWJbbk(SPgL$iwy~tg=82Ybx!Q9EoYVJEsZiTsuYjab_ z@|zHk77=L6vMr)70(nM$^&&S4;=g>cwr$=2LQ)S~75|?m0n;D(4VMjLuOJe+qS5>^ zEr8u42tx7s4+Gxs5@BN$#w!Yyii0}mxU7kJnSU0y$47u?iGNyIFh7kRUbZ1%eIt;V z2Uns}GBWgjL+Ou4br}QSzT=O~@G-IS6wSG$A}^gi-E__TYtP$NTF@o^WUZuxUnxK) zSHrt08&&=puLdh8-nKTWH+o%`m?bQ2wP9Kf4MG-B>^eUllZ1lwG6LtnNgm}8SordWcz47kSyR8 zRqVm_@B+`XJjHy`L4haWWvWDu8a4|mW|<-n-KwE6aMWp_aM|>pVrF`&4_S&rv^>`@ z>~BppnL6Arx*3qkAB_Zr5DiPtAb^R~n%8VZLwro*Y5nuo1Ddz^q&9)e8qnnkFQe8eymAGAWQ-x99a8;nd+(>WVl;Hp>(P_uf-lDbE(`xbeelb;+kYugv%OQ)C)vi6LJdI0&Kn z<)P~4R5*hd5-Q9S%gkgKQB&{{=CiC`YI_SOOa()Z5PR^6*C0dPBazF+U6gK?5MXWa z=j3ROY%k(U$6J*4E%hE9^_B?!5&?*GOZ+E)BCvM~OGk{_QDIHK-fUIAOs$W88Quqa z?8ejL$J1k3{dE56t9jr<3atOYojMUn+K#v#yK<11%vMX>zm<5#C=+|woMQCZ{q|r( z)UPY+!&i2NV)7D0UY|ELE8+;j$IgBedVLwNH6qO$kFcaK@N&m_Uj7P-4>A{ z6z|*pVfW2_x}GHn4;HqT>gR=pb5WtUh9i0}1+!7&zVQH;M-n$O;`MRSrwv_1B%spg z1`Vxxz{4id5}JS%JuXJ8FR`}$59WjLxm6U_?UQ(l`3y(Jua6|&s*i=chYOYN1m& zDxZhhw}%m+Y2S8ZE;yy&GC@C!Q&4DnB*xmz?uHvY_3EmZ6cWr!#(Mju3%H;5DuMq8 z`MFD*35;5a!#SlKp^{$y3;o1tNf??ZT$l{cg+-)D$DLbcb;E%h_aPUk(9^$~p-_o^ zm*P=G;GO++t>`Sr5)g{O;0pj9<6#w}>X`q-+Fgb<-9P;QUk3vjJ$k5wlmqF|5z-FEe*WC+sW=!VgaBLyXfbf_Z)1jL~zh;a@P1uQHS4E`VV{C=6_jYp}?BE#B z_v`)mEJuCSOOj-gyi;S1erKO@9FStN|H(d}DD}y>0+VFN|74#^jjWIH=(;d(8;J~c zroFdAf_Fq1kbRgM+3e)puNv8V*@u?>#4+*wVs=ql;$HTl<9g2KxF$e<{z1Mt57s&m>d(DR&d?DTYloLdqi9Ah!pXo24Y?m=35MEM+ z2L0L5UwsA`dE}PKh4K_Hy%8aR(TJIK7^9FZR+)8 zoB8ePuYI6D(Z?^v|CN!K?@Q>7Erjn_F3@}~dRNB+&4-bX!57)0xp4TR&FyOGe>I;R zl&8>+&!6T4O9AH+Xt46id^}2mqwD4mc^2&ylN9LdDmd#9LFL+*)-U=)%L^z>6AXMjkIIAeVCNxY=nb zEK+)jd?F*4;CDolQTy>wO{!a#OgHX)hK+O&C;`;yR_?BdO~{4RT|(EL+!2jG!@Hi~M+mM7bc+(O;#Xrv6(mQ9u3oO3x9*;E@lnw zZL@_b)H)=4<(!|Y%yFn!eBLkdf&Tlr5VYX~;-;^skD(_dxR@>+dxm;)nyGUy>ANa}`N3 zsV7z*qx%n4zV5aaX;+O2i@hBY_7NVv;sRu!NBOr*R7zk0V;q@dVl#bv*@uw8y~-I& z>Tw|T<2FYFen=?(7-!QSG!v!^dmCTa%@T>;zR63pkIy1#8Z+Q;LTG7>_iTrvHW@bB z-L6;&?@$cButX9pdNZ_840~K_Uh&nU{f|yO2s7!9UFrJxLh*sWq znXc>>nexw^ep@rW=FH%1o-&l6^V4znOdY6%sc{kg8LhF~0gUOEE2;-3Nb)F(>z&IU zkoELC@PH$wW>=g1z%d!kzE`e>%g*+yHUin__>=BW&J{_IsrLP#SHH8*E&019FCd=( z$vy^^ZO2_(_OcIiz*hebOjq*%WS_q`ApAcig01dK;OnTwIf19ZH}<>hQQb~Djmr=H za?Y=&i9D&sC|LMz_(}pss^nSQ;PWc+L#dF0syz{eF4`l zeck#`Tl01bH47EDTovZ2F(ks{2MYc(1cmwKA*X!i1CGrH0Z$&92R^8YN9Z!exg-_vWN_;9cM!q6X#)~ z$U~XXgW6M4gr)jG$U*W_Q`ORy>q}QoFV#Q2*W(7ESAx1)m%3sf_f4!-8Cm5Vab>cNi_~!ui@9sBN07^HWjExOF6b0tJu_r5Oq0Ch12z@4;jX*XG(u znOCguqvT9;tpT!O;?%|x%DQXnmWk&olOFLYBhc^~)~;JK*sR;xr_C+J&`4Ei!@k{G zlzPCty5&GcxwYUiKPIi;Z}yHjXQm>~KiK1XLH4^xwvAaO3v`d(XLTua#|amMZNB`N zJ5oAVYy9+rNWYB#Lcn&mfgPrtomfhI-h)L7vWO*#sBKv zR;e?0tKUwn2GsGIeWad%-Te`Ea<%#xM0nGwj4>IJt0$EZIi-rUk7id}Bk_10^1S4| z^w!Hh=ofhLz6>k_E0}OcQ|5UZhY<;GpuX%NK@$J+wJJqQRk=F8r3NXQuJN+(Svp%h z7hm|r6JG?qZw@=&qrk-+jS>#XH?0(C%_doK_piRFK6mQ4&x_+GQB8@cHl{PnB-0YL%z5m6C zU|@4mrOPQ(O_}3{o^_-7VTx>{muV@o8%k*d^$jHhb zyTBNp5J~Nt8|P*q29w%TXNHj?Kc4L1^<6$Ef`z0gA9yXT*VcKsEGb|k2~w%hifVc> zTK3q0*tIbsS9v;xU7_psyTNx?GDn3*XXD@Wy**B*Vk8ThC-*_iSV??_C^K7bl8PSG zQpIpMrCX4X`(44xLnUKje-`5$1|RySW8xkgg?xfPw9mK4 zciGgY;VKOZ8v*t-J}14G%nd#y0sa|qJt*NU!5L-{13@M zK_r1bCs5*LGwW48@e`Wv;*XBZG55toXCzJr z;T+@Fa7+*?loomCH3KXO0wa`(p4corYFD2EtuT%Eg4~W@&Y~6_qz}jLf07&Za3ojd zTZ@FRKlAcSdP-O;P5dys`=n2Vfk^oW3YM4v#}RvHzHla78U^heCnX);f^rx$T;5)L z4in#0JhqcJpSzz0?UWcpAKc*;c}N-}WCWA_<@E*cq#1}Ih7q`LPuL%Q8y|8a!7=zT zf$}hj3PDNk6b&49%CM-HGLHQ0VIpA!gT{3&2l9iSAE;1MpEJ$RXACXxtCrT?SSDpJ zhP;@ur0Och#6yl4B=Ww@H+y54CtL8GU0!qqfjo3AGx)LOeKWikhz*;nW$_9ep2i3( z4vtqNHo`6bhzv#=%ceW1-CKP9(z2)AM)?HXZ*B#2fJJy-&1j`sh@hL5Z5407wQIJ(a#-@vHi%a&>k_BHMC--fPgT<@xrI znod3Jm8ns2PcTM+v;h@k%r{u#+l@KoZN5w`pwqw@+ouvj$)rSPJgt8EjVyLwVyF1( zK56$(Ht|zdotNr45M;WZet7@&J~q7$`?YwS4&8whwbf0}4*bjMI|aR~Q-eHa6@bLO zCQfc0h%QiNUy_fOoH)+n=${l3VrEd4hAEt=Drw(^w8Z=TWTca0pxfEU^MVmy2mihx z8&ERkpg@do!(#PMbxw4(#XTVOnNBZ;g#nFSpRZz;VJ3TBlNWPu27M30 zD$&OgSSvtefcPtkIQ|wHDD-0~7BBV-M^5U;F_PiaOMu9583~9Ci>OC!mY@6sO8H0G z+?qv*o#HN&@tE-dD&$}$XHba$Gc!5X>n+M|_r~Gp$s$IiPqF19FZ%8Tv`1 z-N1(o-<;Vv#j`zZ_U;38Y%>w^uDEjP(=#?Qd1}t*Hp&Kn>6s-F4D3W z^+3RCC{{k_yX~vq#(jM}{N(5cRME;`OpO9w>G{}y1ZCu#@d)nXIE+3=O%ySSe=6Y* zYFfWO9&HZ7%+LB$9p1jr_kS!7-uxTn;cs$8)8$u@LdGk!; z0~Zwc;&A-c*ucw!KiBzC-=K8*Y_ay$s~VRuW8a69horg6)z`jo?L)F^cZq)s;2`(^ zp8a;p;56%`x=P%8WGTzGrAu&tr7)vXp@r{!M)tbr8`(t*L5{$k})22h83m@B_Y6pGtW~H)e>`wCGM&diHh!Q`rh20C< z;!zV8bYF_h9YOh7Ou6$F=0>+f0uTe)`vY*JpJBiOGxH$hq=5U{-q`3r5ChHp2~W%( z#6Sr}O2zAqgUu%r!i~J|7$f28rhvo1<&(JQFfiS=)K9)t6X?88p7eqo>kaP%90r!I zyP-PZFhCt*xPLng$Hrq+@ySZWWD~$)V7loTn))szt7&+DmIf;z&3^1I@C2Yj3d5jz zVa9w&ik_im2;5POp78F~zaR!istCbt%>l~qn5H&n2|x^KrD=a4hR{Ut!7v>5vSx~b z#{GI&8E@(y#6TcdMR)@c17ggw<`2ZchY^`z^@ivVm<6=m_$F1vU=L8>7cUv@aC2 zZ$VBHkx|>QlPqM;-l2E~W)h4ki`ggvw@D(5lJgJKGESC&U=g{~%1O zIIET4Q+B)TtW)u?w7AGMPdiC#d(e5Vv_iE>urnUKbvaYW%>?TP(*WgG&x71H9WqJ+ zjo0(u36y*JmYkRX3sT_r4VG{_xB$IeaT_G^Mf0Q+S0wEu=EFr?v-;MSSLJ%poOfjk z;4th`9RyjGSzjUMWkj!eOF!>w)+AVN!Ex1xOAUO4hbyY@wmBXTOCf--uUDn|{w302 zfVCp=;FGg1$9+~e6;;hp(uiqJ3sl{NWy$z)-Nv4xB9v9R%*bW7hoI-^c4NNY)@xuZ ze4=LPX-6tJdp%49RKR}4KxHvCPaso1BT$3|URNy>aN`m3yTlm`3+FN13PT=Mt2N?J zhFz`}JxfH*Cmm*#pPT^m`=o_4Qw6DDRaz02S!ufi-RcGD`fx>35nf9$;uN;0tje+z zqJV`7n|e!@)O7>RoP~(hM8i|z?;ZusA`86>LE~i&Q4z$LjQU?zP%A4~!md#PZyqd? z3G<3-j3ic|Ngz|<}O(+t87%26^ zjEt-$&cQXTA(c?DbX8~xhONVT;ENjn5DetFUt6_mUDXa7S60iwq6oOU)@1=^%d9iB zZJ^=Xsn(WLR~^Y$-+#dxVw-Q6HFwNoZRnuwM}H|3&^%brUyX6Jasw;@nmEw9xL7S! za)o^-qfRIiY1nGL;n()4aD|O)wH&E~MHQNH1wCq;hCw(sVPd57hp|wKU;8(*=vv^X$JR zn4$yl3yhe>(psyf{F}GS_xOcP$9_Mq^{E=#v~I2WfN5EE(HO@bzd)pU&sW9|II_ntFbw&Vd93`kx~!R)v;F?1@6?lbF)2nmZW*&^!8-akMsD^>x)r$d znki9kn?@B*vHvBYHuB4Az$3EQV5@d%=FZ)By3?qT5)@qN(u304Fw zan!BsY_G*0yg<3Tuk|h~+AW!V?x+;wC;%_enDTe-c@oN>xy)j(+lB0IfzUDtcow)K z8u-)IcyM`ytaAjA7baY9b;P(G3B1Spo(;$g3P0yjKkr#-+>7nD+b_aki?rpXj_j*R zaZ+j-olyY}QqEY-D`ii4X3eG#JzN*L!2`$(paf9cJd&Tl(XE(Hsz$))Apy_X6STny0DYIh`@1 zH%~lV@2lxDk1+4dXEUGcczQHbqq<3pfeW*#Ia@_2pwCKYTV(COm7) zUO0ba{=Uo0cW*(C)vp|W-4UnD9wkEEEur#+HF?(RfB`gdm)06;#W*lNoy;6Z{TO-D z36k8r+ji$g$c;h7>-mVbSJm&HRaz}$_OIy>*OCBvflfFTzXoHc#3^7&c+7_($s5u} zl6dI&kJgscufn&M?*ClB1XO+o;iFq=vUart9eHCs}V~Rt(-Tv+uk(oTjR3?^Y9Kq;(hiBqav{_3^z!x;In6)d+LJZ zY(o26aFy7*CoOE^R>+Iz_?phWdv$aTbr))t2Z>`s?)P7f#4g8Um(~2?54RtT`DyJM zfX$x0JqOqe*v;jm?~XF~6Mu2B1#ReHk2U-y$F<9V5GkkTl;8SdQ6JvXui-JttotG0 zIAcIzz_XO_AEgA6gB3QPw1AN(q0LA6tS-K5K8jOeh@7^3PtEwGBaX_w@d13k;`Fpi zPwZ#;v{drjJB)Xrs|?Otvz!yNkaOTKFW+q@=0OfnArXJC3Tt6cS)p`KzO|GW(j=ApCvZoUe=gASs8E0d&mL zUk|-5Ql`H`fTP#PF{^)$UQg$2CgyBB0^`ch@Kyf39ewiz+6^8_6#em&b0qC;V%^(V zYD4;&^VX#qCU3!J4v7~?E2rDuP=47|?B;!qy1QNZ_bPFhQ!V-j1ROWTX|!~7@#ns@ zVa>`2;f;-)cRB>fxw-A>_^&%>WDW3Kn-8g}d4 zM@QHm@_+wTm9Iy5J0hGLd;3ns@b;&npe`C=sP9CV?}DEg*gyb<#Wh*HI-`ZmiIZo_ z4QB8=vQpl8K@VTWHTKo$eBN)^zQ-;|_I;JNH9xWwb5Bx$`T2E_;h-yMzv>%QWmD3^ zzBeP{@7?LLSJ~U}hZWHwhPeu)jG|MYx1;d3wxlPi9VYU8Cfp;z0=F^-uPw~q&t7}b z(G^4Rp@9Vhd=hy$MlvG2idjBTv>=fNN<5(Q^4qI;R}v%*%l|D5u6|Oic%jgtr)>gJ zOoa1UZZz#e_Z_uzN;tbkbOfPlDf|_9fqKyX$LElzoQ?m|({O`lRrTPz`d6G8DMd~_ zj<1|@aUKB-9%YHtnh&nRx{VHUVBbWC8zHJ0u<@Yt@wUHq-ZPGzoP_g#Z*~nNl$~>F z@9h}WevdF)>%PSEtop}7d)cN_$P)Z~&9igYb!(EiWm3B?umnSh z@9wY7Tj5W9;tx^pJ-$KKW3#{+>^qOY{_WOXxEkmbN~Gx+>9|$+&pIMp!BMXsjd9s6cl12&YejVF-D(hqVaD>H`0NiRg- zyXtYScrYM@)Zo z6!kT^X5?&z$eg5@D$`QoK4a|a-)tq1kW<=koe!vNIV%vfuB-DG762EBhxJsG8M_1@ zHeTXcxtjBb&z^fj?fP6VI_fiuQKVq6f1cn7Gr28nMH9z48HT59UUg0m@zA7$75W!% z9nY{X8G2)qy@Nej$5mh?r6+~`VybZH+owy)F^ylDzQfobH6_BdyhIEA8FsvkToe^7 zFYesB!8{++16w^VS85%$v%+?oF=@n40|>S>tn%VrQ)}6|^aOe>B(~Y;s*{@dP6rPICK+BqXQgR9-JPkT2M&*B#J84@iO14j z@KGN*EG(I|b`;fUzE2xj@KI?IUzQOHH;aFW=(UkzfUVH}iy;{{h$yQKaq#VAtQ8AY zQuMA8;{Q}Ifh*mq8zlIJN|AGw0AIu#&f%yXAD{X4B~~p5m=@cMNhrH)@dZhJdR+hW zD52?>WZ8y|hI+gb1%k1HL~^<|@1oRTA%*zF(Qn7c8hKE0*9qMgjKdtMWYxjZXBX`1 zv>z0`k0wTVq<>P?kQ9j@&6vTz@e!mwz)i+$fD(Aw16E@CDP*%<5Coe;NsQab9er&J z;W-bQ<#NK^Zcs|Vj5A=8GVyG7qy%2JHHg9|X{6>eI!7U8RpBO?UF)H^#AU5M=tifd z&0he;>jx8g5eT-UbXIr8gR&{!z!WjO=eHxTC{jL0h;sPOKiaN2pQN&=W#Vh` z>P}76z6+r|O}DHradw8LsH8VfB-yEx<~fs98&!36?H+6O#iw*}XrMOC1ePvWzU*w* z?DIJ)uD56_3avjOdh7sQD@e_!EA*@UQ4#s*C`9Pr_g(%LEHz4e}8`&e)H$gAj)guzdz49K>lqRV1WgE{eLY3-crv! z_MTH{xTE$Gz}|~H`(V9Bk|lmy26-zfxx#WoEMoqP%q&rWyt=j z`&`OchQFu|@92v4KVnf#Pz#S>ZT64zpiOY{WTnNX0%D|}u>HOFF!wZm&%QFsmrq8w zMRbTA>4FI-(Asp*%>W(ARE)OP(1mBqrrAOw)r-3`%A)7bqx3yrF=MfWbHi^q#K6nn zzs}>sb!H~n1holeBhj4!;Jau}o9U|cJ_*N(~LeSG{RFs=Y(jwZiWA@f=+2}rA3FMK* zd5?B4~suU&9IBkD|o?(n-jnD4|yh-qb=398*r?Fo}k>~787IGKPI(Q(D z8#$iJ=cZ1)IHmd-boQ9tnD?zBNB(kS(m?hHyNsU{ya7MYn-bQA*+A*x#IWL`;eFgh z>u2=>c7BH%xh!Q0F3*4I(&KRa(QFuVihnm_wZ>&bD%mXyp?({dZ{N$Jp7T{t%nN%6 z(6j;xvVi;+D_wn}Y5ycQ(zzZva`l5G*Xx$ejtLkd^=B9a#i6r2oO^f-@0pEduV_vR z45KAmqHnNbf)I!Pk$Zz<7Ec9l4&1*B* z!bt-of8x{mCwcSAb{w5V!=YXFPY+c?g7w(Lt`@!<2+|9mrOf1=`kJfo*0ly^PbR&g zstJBe=n{_){R%UoQ1ocgyS7&!9zh=cmdn=yZ-G7easRgHojf%GJ4L^P{Z*Qq4f#qGB^xtuw7yC>-?Rwqc z`Wa%P_x&%ZPB64)P4`#}6O21BfGQvPkl zFngQ69$M_KxL|}nbbdvE`{`i`JCMU2GL^!fcG8`1gZSoGM@|RY$MpH@$@^~G}& zGyTa+0q`sjyZHTl&7%U3@#pibkPaHp{8B-6q^Apo>yNhCl0T>DXxWEtA_sTOyq zNoy59w}J~oc(D6&ilZTzrr_*Un<-%=By|n#i!O zRW>c>DfEUvb%;mO@*o(;yCe(Rz2;vA)_-xAu-~9P_^^8Is=M7V3}@;nwm&FFgbsBQ zcn#{@A6kC@$K(ZlWJ1AGk**QRF@v8BO^iBN9p7--2VOC%TrJs=B`GJ!3p?&>#D6gG z&gD;vuO;xim9(SxMj3px?FG@CtzNAszCU;?oNKgB*~h`rV$$Dvh2IqPu<=OLZB4l_ zXFv7UakPCHiHd(N)Z3(#6^K=`BCK8WE{ip9N!3Z&l{v z0B&;R1V4;ibT#r3kJXbUZ}90!(1)W!&a8~!%bS?j?Dx{oWDVFJcpC89UW@?4osEz? zrdJ1_)FyF0mAwwVu6N^PXyhIOLVdk zM)i$#Yg$XGmOX&~-E~Xr!kKqtLUy6fPE9FI@kq!fLMT)d!o@-!8xa8u)i3kxw-#F) zclj$(qh`0w#3*g1MTl?KixE|oNpcQ$)TOZb3#WHZXi6y8QBi;~t(2}D(iM;O3jh>6BW z%He%p;JQ)ybv@UteV<*1AtvF}gDMj0m6ns0NBSw;I=s1&irvz4`ez+n9@p+;8RkZw z0OWi8LjOxJrw`Ffh}}Id^ID7EM{0^xrQ###2bHEe8;GC|PyhWk%h>nPZ~d>j^T}_5 z%dT_0OW+xLV(v4{M)>Kft}emhOH>=;;2w!Icmcyv^$NOCLLFO!4|c0n%Wej4CS*oG z$=uxn14i|mB#q@|>@l^<UZ4yPpP2tv%zNIC8GH^fL^CR$rEIOpRZdK`_sJzNzk zmZS-f^U}@KgEgEccJzo&<=kt%?wd3EmcaWP!=$IC;xa1%-;Kf*?Z}kE@6(5 zaVb~P=MKlVjuo8##77Psh*9{lxU9+jeCshVdrxI->upZ?Gd`RPk6QgRd;gkwZp6BU z{x!_}%X`glpYJ>{KmDLR?f~K1`>Y3%YvbpibNJD{ z+B~Ngfz{~q{E3J1(p_f1Cd#^5ZP_5R!;)BGk!F(#K53BW$lt4XqJ{Btoc*K?j+&?? z1I1BEr`M7>FL)zvfjKFVAS{T0kL>3U?@3LO2PWu?(Fb-JNChUuhL9Sam^dxXr#X?R z)0^rc0F?r?18l~gcJLcJSi0xDw zm79xP`%5H=XeKK0o=Gu79dZW+kt9QGFBg9Rqbw-U3*U;#+l7*3Xox1<$+RH4tZX6z z;oeiAb13`5gwFsmZzRk!!)d=15uW1`J{K;gm6bP_?G4|p{M#n;a%8-+fZ;nx z(J;7N`~}2}0zLOA(>w_b_XT%8s^kKO?*#u&buTVTBsC@B&+y$U9^5ZeDeeig*ku+^ zM^bSF-I?{ujYGnJhVNcR{x1+-XJ0}Gwh%rld&74QWc61Mh=)}^hF)l~UT)rBy`kyO z!2~Ijpn(jukX4$lT1^%L8AyRCgGe|s3~0ksV=y8XVmDeYM=3^WRkSqII5vGX{~zgq zT`QLafgO2OW4j8m0l~&2tJfoI)oz!6c8k)W)8w70nzzrZ(P`|mP+n8;NEmEurB2cd zq6wtGi-dSg2pX2GmEpW&&v%dC3UT)9UbFd9=LU5d>b8^4y@4Aj2zt&H7i<|jq{ z+$=Yy!8~Y9nNz;TEMd>`%LiqfQ`d!GZ5L7on)7d$Yc7Ctw#zXTs4)m;N50aml?pYz zszz>^EN|%^XvXXmhM9pankzLY;5H1H2NkMGxiUI%p&C&kvDrGa1fpxUQJrmg$!%*H zZIaGZgRWNNN5v~b?X%^VW1~v1yMfos+c$)oH(s`d;A%h0w&UnAtlD-B%^YP~J_yl@ zAr<~|PPW6>f`!{BHLu9g+H?LjdDnxrYHZR&WZ)e54xaCY%}_3QMf=|3oteM4c*nP0 z+vU1^5EGc@spd2=;co@5v#UF#Dn=v1(HR#2 z=75=KDyOxy)YZjTYbD%$XZ)HZwO!4i3t=CGR)fnr?d{$5V5uY*cg@XKkH?+R>1*H0 z+km~h)Qfar?>-3Z-H9c-5r`n?-e9So$ck&xud&d~9_6$8g_`h+2ycKnsO9gC_*RvL zIbEI7D^qdpn19E%nN?UQRJOkxU=Ey2z?oEg1BPLv;DBvWOucyz;^DQmonBpmg4oRg zyO2J@wpGS!dY`tv4RN4Bn4TxsFHq4YVP(7mE!ekhl?pHigrYs>V3*iCJ!tcHTJQ5K zz1Pgu)9GG`8M%?NLChvw7;8#nWNhRPf z(Ko+E8*;rKih4YF|NEejkJTP?z;N)Q_Xo*kxiaY-I`$TBdsmE{^0#teBm$H7$hy7B`@+XDxd+8N+PAFry5lgvC-1a)PGIs*?{=W|;jBj8 z*^eA>9S27b5G&dQ9gO{BM8ceI@`CKcUA0s%-_+iHGI}qwXX_NhIJ0YS?@oqU#!M0t zM>FK3p#<{R%yU_}&(q^rUdx%$uub445Wpz{UBl zu^UX0fUuy!%!qJ12F!-ssz{zGDT2NffyiBf!2+54H4(2w+AM^ruH~(%GsVA#XcG8J zOmL$eeQr8)R9c~d_jEF`hIN-+WWWr2-=_Rt#yUhP@b+}YeXZ*>i4*DC!uNHA29D~^ zW3CK=`{$JcClC5xv(UXZvOTAyd*|^K%;G7?QX${9_5Shet#%3z#Rlq?0-;%$2hy=H z#nxiu*n56=`c$7j3~DX)z&@z)hdC-VsFCmg^1U~c0S!NK4Zm~M3=cn|P|2SSy!yQ1-xYqUl zn4IAcv9s4`Zgy#SB1%aGyz(eV_>C76A}MnMbu7w)wfQ{w! zk`6n_&fkX(C`6UkcX7$Chd(D6Vw9g)^le0XcbaB7IQ!T=-wN0CaIR5=0AA`Rx{f0Jq?*+?`rd{*^qXMvK!n`l{hp$y?8hHE8SvjdjqM^$DmI;Ob@^DL`}*4`yB8Vm{jWA2@ti;A>3v94)w8^VvTHVD;~b%? zfp;AV!;kx|p2otU(w@wfFLC1v8Nc0v=k+`<a0@I%Z}I1<{dNnGmq)@X&mklx3U74|-!p8V5Z!YNkes_+ zfq$R=d*&8giPf4v@Mhr46HTb1`qI;*J@X;SfLA%(p}*wG!rYI8**xRHgCPjYmICvk z>w>(-^3hYYQ*>_fr<2m*1od)P5sTMl7eV(vkNO5}e`yXQ3w(2dA3XcxCO&ElKo!%5&_(T#o^UK{uhCiJ-2|d=N4?9O`U_b?TjW0-^hQ> z{*PPGZT`R90@>eg!BxO5nEc}weEytlxNU&q8~MjAsB=u#!Vg|-sSAJrZh@A2iF@Aa z!O8#Y7T_yxIM(1Lbbx<+SB2T-8C<_?ZwE^;2lu@JX`j`89Pd?{&zAP$;Hp72GRkCJ zY?gIg%y9&}eT{cNMJ63-&C3(J=N8a4P|BCi&r8!@0d9f(hgtz+n|%FWhH~!m|F{Kf zf7Py3*z~Mc9~iO5ySm#Q+ep*ZiJFa7`0W-X()QefCbR1idu{=D7H1Rfk6Yk&WZ?gC z3+j_l=6Lp+Khys|HL+nfaX z0Md)0<@d~$8C z+ML|0Hs9Sq{$|1Y%7-;a;*I`P8$H?osW#=-wTh+ zSMrAix}1-m4lBx%EhQd6z8-y1lnV{RUv(EHJxsC;DHrd^StC;J4ZIvj?K7BzoFiN1 zj`7exvj>vGBaAxnVI7{5i3#;GCngi>TeoAX&#pj|cy{Mgqi}r?m7hxnb34VU+Er)V zt>xy&uUu)z->&nla!-t%Ra3WrQ2$r>_eYUCr@9!re>ol|K6%c6A%!lwAHlx$=6-hnRcXI2Mg&|$+_k2JrcQeYXbtuaLZ=S=br70- z#4mOFsX4#zW_*q>ZAE3$9eeCvJK=<1BB;QTAa(DBROb~|#WlyvoA;|66EkLIF%Ph+ zn?%qvB2>{B5Bb4DmL4D`s>J9YoW@i|-1f&xGr#Ok4oJ8ivCY!GdxFraah;V|a9KNh zo-!!ddX0vxnnO<}h^v@{mX7{dJ)YS=WBonPCDkYXrBppuIq{PoK+^Mw8zE4$D;~xQ zH;)FrkmdR%jF2u1oxHiEYxGEq1#d3H$;!_dgmP7pafbxYklbV{1S*49C zBEsV3bMLXK_x9hlA9`$s4Wq@*1s_;K^6vWR(RrT3QeXEi2F3NFaW<^c-$tcDg6a+K zohaf1(e`V5M5R+^|BC~=TXT`1mwQBI06&V0ZTYnw*!?PQ?+@RFZtOq$i7z61Ga5b!RGa+ek9*a| zn6a%yp7v*b2=pHKPqj%)=>w`wxSBlsX6c*IJNLDJSDV9E+Or;*`s`I3-(1S%-(rzV z(G}}?|E@N^+oMmjV@9loo(r7(x$LcRbI+xG#jEn$rNr;7_3;1SWP<`D0vL$0lo*8G zk@o;jNe+(1N_;ZD_`je6#@RHZ^PLZ40jS`{*XR}XxHSHF)EsO?Ivy<%!MBFxcZg7; zhumE_o;0>sZ62xlKiLYD{9SFzfNEnBj_KniF(_(2SdFIN)rR)F+5}sDwLxZtCHe9N&Qc?S^K}$23ZHQ4366BNR*_I&h$p<{_3Ys#-^x;*F0iSw6$tCt@dgJBi68FLlC2M*Tw28`{{vB@anPkf~r97BS zQ~Vun(j{D;;l%$5HzrmUXLD4(;5LA8!^-)fk@w+GxB+E<`&YPuXi{GT;fBTg9LFUf z1Fd)f7gEX6ol6A5&0AbLZ)CxTU7*}-{wLflCj0`z4OS7y%s#j-u@`PAR5P#tgd2Rp z8z9`E^0?CrT+_4683{+Xqkn*kPoiP~rIP>hNz+H_iey-FULu!Xj?HhSQdv+!iCEzB zs3-;y3$WRTHL}m5V-B#g_QV401^<3A3InD=2qp`bSOa1KvBZ{Eq;|WcJUz=B>!rJ1 zaNi_6y%EEY4lwE|wbh5``hxS&T$a2=k4nob`hQm&f`8juUJlMH9jG=~MZ@^=?UlW1 z6SSUrA_Ifl=kAHMrMcoQ*BQEt~T2qK(%2NPnS_~R==x_;6K&otd#%C z)>+S&(7r8%pWR-yVMkU2V!Q`AAGjEAxsAm!3tu-^@BbH9kUZ(ZTmBDMu$v4vW?uT$ zY+(U{0bD^#Kg73;)_J=evjnQ@Dfqu!0h9LSn*$r{pJb+ zqe^=&G@td0YS(O#kE$MDzfAK3H!g6tN5aeqh|H-bav1Eobz_usZ9zuq_26o2!KO;B zvX;mYj?L0`fGZ%wh(vhPl`Hm+)NVg0P;I9Cu2xRbtRpY;vI?gnLtOE23j#uu3T-xP z;hONJ3qn{+EgYbV7edWa$H8mmZR>uuNGHQ5X8Gq#+dl5JL~UG7yDiL5Yug!U%P&9o z-Z^={R{N(YniZGg_bUZ2WT5ifXXXY#Cfn_5Ch!BY^p6>p^#hRa8#4dnQxXj4GN4$O zWE&=k$GpS3{}>{p11K|qPkGo$8t^Gsc7=q`J71e9hRR&M_F@CrT|mD74mTGdVMrj{ z5ZZWYrCN`h)Ie=VF%_!n!H1&}5$KFCAlxvV1nFIMovkPRo%YLi+fE0xIYD+Zju=H- zeNG|SGV;U9z!wRIWQ`t3F_h)kbJU!U0Q!?GG?SvQ+l0i>T)fE83+vt9pvw`_o@b|f zWncH!%XV$}>2gx^i-30X?E=tlXhwVOCRf{~vZwdZ)oaA)jvePct3dwIzuFDU@UqiD zNg>pFu-Ds#gb?maoaQ<52-)ecnju$!ebC1_Jy>!O-c&IFG4F4=3J{gXs|O0OXzL81 z-RxTZjyL39CdQc6*SoURdqZPrz5JhcbLN#ru>W4W840_wrhR>0uKnTb8*6Mgk?=jP zz^DSew!|4)4Bj5R`9oNrTl;#f+>l~Ln=&;X`DKqQh(3$BB-cAS3Ew9?Trvi`KX`*z zm{DBOw#OCN-K=Y(+cdif6@oN+2c-hEJT?cHcW%;suh+Bnt^HRlU=0KD#qV|MN@nWO zfl*}00PoO<{neh0osqZ*c(Q}^8M=D^7mx%+!H(Vd-1<#NSGr+VTY|8J7X>Vc`v3U4 z?|-WQ{}23U;n>IC9A%Tt>>PXV5h90>nM3yK*gMC_rekj*vUQBI%gl&6A`z9gihQ5+ ze!a)%^8J4QgY(n5oO65J?zgMiA7BL~oFqLJtQhfxEOy9KtfhgY{a2V@P!8A)%^6(q zi17qu72&NY{q_+`Y=nlFplIt$UfiyKHdCo1@i={-SA}XE>eZSZF{nlL;6E#s66I8c zd-texq8bNIM8_`_wVHbsw@i&YD^2Pb44o9=vXvQsdxDeC;+s;csYnal<+TTI^rtHA zq<#7xqgqCv9^KpA9sc4eo%OE1+!GumQg>ay!LMif&0>{41~zBdvHzOCh! ztR6;nJOfoA{UFwC{QJH`ebdQmF6lI$7u!i0U2WMUF~_qyd{L!}tG^0`of`1u z*ym05APVc_JnReV(|BQ{M&+V;6^c^r{spREeHZ!{(hRc%4Ho%QI|WPTR}GU5QH#{* zMTF9G_4S3Eu0@aOUcPE}1BiDwHfjJz$P1RhJIt ztM=xA1 z_iyiJ+Xh{B*1I`NUJ@z(NO`V}nQfBZz9{dKkJL`hrR0{v)E=}}Oy;ox#Tni*Xk3vT z|4vTJ=Fmj0#IY3-q!mL=szWd0@Q!bMt_E5lW<%HNsfs|xu@*|euFu@zNC2`JSF$*o zOSexOG>?}$HCh)&Lao(-4N1j=uY?VsC+sGCNT(J8iDj)`vAn{OrQRb3>+^QF4Ywh! zM;ycc2OzDBt3_d<&f`Sp2L`}~n`S{4IKFAvQavkB%D*R%jbJ zEzlgK*nWxUxuv#8b)k&R1798QkJn>~iBoEkb~&l_(}BS5MJ4_j>qi@6;xvnGynjXE z={Tv=mF#EFB{9>|N+hnh&CJHF_rpf>yaIILkA1oV}kiY z6$fqYOo8=Ck{o?QHlAD|k%!J0bHg{Ts@Xf#=;3Q<#ks+k?2$;`+d))jMsw zRf0hm{qR~hkubY*@{}_9q}*?k!19pQuM&_t)FcGNt1D^fj;_i}xuTK5<=#pkcQIt9 zu7+#vZk`d>SIqvE$X~oLYgCT=>j=W4PJH>bmxZF)YIO20#sRgVH%J5Z48#qkm=@Oq zl<0)D9o0_Jkb2MG&+zNdYha}OViXV>XPC`4Y_g414Wcx(?G-p*cqxbZUWwi)19kY1 zVQ6^N-FzpXZY5szEKS$Ybonc-!!f%X#GaL=4m}9yvgfq0#cX} zmEd*!Np`0nE4HO`$xZ#YhG63oB4JTsceg{eFmxu?Q%Rv&%ZCH~;rB<{h>>U>YQoO7 z9YcowuO#M=w&a58kC3K4&Kb&Sr9PCcD5KT`Xx)3DWsTPuuXO+p{ev6lPGB{d8#6R;N zE#&ZX9-xH`$e$b5H8v-qjvzwM$*T<)n_U)$mZR=SXda)=Mq(LGL6$`aVUXodS(3^^SmjqNl8EC`6ZZ?B*b*4^Lrp{3 z{mVE4-L;YWvxUv`<)~HXpFK(C3CFsh+Zl2Qec^eB863w3!?R^se@G@T0(?wo4`r+J%_BxenYU$ub z^1h(*kBp|2jzW*`r!m3Q`QQ1x(wH8$dq4^NXjSgdUuFNb&@8?4#&1b@D!&hx3Sw8s z+UL)+D5DaYYu^VL6y8%yIKD! zZVhTPw?{*%uWFr;E*qV*dCO@XqJrw9$!{yII+~>I;{}e1zfXCnf%TMlNV3 zzHUN;1C-!&6SFW`QLQl_dldOd!N~b%ws(BlK9%Z}7?WXQ29vA7lp$z$jW1X-nS4oV zQnfzuf<_KJj-2X#%dRcjJ95E6cCPUrI009!5i=TEbvbZeT>a z4gawrOrR zCjiqp4|u1oN?deT~Ooxo-x&)O>VyDi6H}TgYE{$=-!Aj%_Muv z5>1~3X52Z2LQ>N4huE=FiAGsJ();J+TIK>$hQrONI{x;?hEY{~MD`15z zyT-~18B6CG{d+Oe{f4{d+YmK(>=7#J?%%;k;O}9+41-OWbtcAc6l3XrOA@0B3`U0i zdoU6eo@gBk3`V-b+h5w0A)00|KTQDQn^B3Azc% zHgSLzl2M!fBIzoMfaqaO+)i+Gz+En4Wef%uBTdshyY5gGqydAGHSRH~`H(w#NpSac zU@-DQ47j5!V|56228G$E$A!M&z~k_%_cDBK0QGj+AthOz8?IY{+ccjmlc4nO3y zJ0lU2qZ^t9bY~0{NF=*)7HoO=5K>8jOor|h-8|QxnL8P7PR?}~fbNW&2iScV!5NU% z3eWQw&O7bSAl(yfGH$S5w*^ud2~lQ5?(N-+;&_-mIwx0Gk(D6C+>&2icSjdXfqfVv z#SFf=! zyDwg2+6E$z_vvO+6p$c2?gE`t$U;Pe&nXlSov=Cnr#?fBH_daE0sXDdH~{sT=b8W##AcK10x|+nyQz-wF2@X&HTSX47zk0ejbIy9RAb;>NEEWY^sFu(t7zL8^Q9X zrDPLAh;H9Yrls4$(D%CFj3C%(cGJ_j?w*z;f_NA*ohKi2j=%QrV!qfH) zy7HQb4dz`%RB*nSCqDUG!Ii=qW@7L$CjYcOgQ|9=aM1y=T~@3*8LxIEXG=Z_%(Anq z@zl#FUjn&>=KrfcgQ$&t7qh-odkIlru2`R8SEFVpb*Kq`sZdD%@A?d~wuIuQcS1fd zuAzDrl(f>|Sy<1AXdGg1BpnrEv~2iolhfbRD5zI>vKwsW2_9B#8uG;OW4y-R#T<<{ zPEnLvNs2D~!u1J3rCLBURrQoJnJetkmNWO(dK$}CYD7^@=>KZa&{x*Ww=|0b4H{ze z$FQu4FC||To6a^PaXLVQhR_h#S_$&

^ULdC>s+h9K%Soo+^A_+;{oUT1>(^udL; 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

=^FnIIhF8W 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 diff --git a/pages/order/components/CustomRefresher/index.vue b/pages/order/components/CustomRefresher/index.vue deleted file mode 100644 index b2b87db..0000000 --- a/pages/order/components/CustomRefresher/index.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - diff --git a/pages/order/components/CustomRefresher/styles/index.scss b/pages/order/components/CustomRefresher/styles/index.scss deleted file mode 100644 index c153bae..0000000 --- a/pages/order/components/CustomRefresher/styles/index.scss +++ /dev/null @@ -1,21 +0,0 @@ -.refresher-container { - /* #ifndef APP-NVUE */ - display: flex; - /* #endif */ - height: 150rpx; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.refresher-image { - margin-top: 10rpx; - height: 45px; - width: 45px; -} - -.refresher-text { - margin-top: 10rpx; - font-size: 24rpx; - color: #666666; -} \ No newline at end of file diff --git a/pages/order/components/OrderCard/index.vue b/pages/order/components/OrderCard/index.vue index ddf941f..dd045fb 100644 --- a/pages/order/components/OrderCard/index.vue +++ b/pages/order/components/OrderCard/index.vue @@ -4,13 +4,13 @@ - {{ orderData.title }} + {{ orderData.visitorName }} - {{ getStatusText(orderData.status) }} + {{ getStatusText(orderData.orderStatus) }} @@ -25,7 +25,7 @@ 联系房客: - {{ orderData.contactName }} + {{ orderData.visitorName }} 联系电话: @@ -55,7 +55,7 @@ const props = defineProps({ createTime: "", contactName: "", contactPhone: "", - status: "pending", // pending-待处理, completed-已完成, cancelled-已取消 + orderStatus: "pending", // pending-待处理, completed-已完成, cancelled-已取消 }), }, }); @@ -66,10 +66,13 @@ const emit = defineEmits(["click", "call", "complete"]); // 获取状态文本 const getStatusText = (status) => { const statusMap = { - pending: "待处理", - completed: "已完成", - cancelled: "已取消", - processing: "处理中", + 0: "待支付", + 1: "待确认", + 2: "待使用", + 3: "已取消", + 4: "退款中", + 5: "已关闭", + 6: "已完成", }; return statusMap[status] || "未知状态"; }; @@ -97,4 +100,4 @@ defineExpose({ \ No newline at end of file + diff --git a/pages/order/components/OrderCard/styles/index.scss b/pages/order/components/OrderCard/styles/index.scss index 7f43dd8..cc44207 100644 --- a/pages/order/components/OrderCard/styles/index.scss +++ b/pages/order/components/OrderCard/styles/index.scss @@ -1,10 +1,10 @@ .order-card { background-color: #fff; border-radius: 6px 6px 12px 12px; - box-shadow: 0px 3px 8px 0 rgba(0,0,0,0.12); + box-shadow: 0px 3px 8px 0 rgba(0, 0, 0, 0.12); margin: 12px; transition: all 0.3s ease; - + &:active { transform: scale(0.98); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); @@ -46,37 +46,42 @@ .status-tag { box-sizing: border-box; padding: 6px 16px; - border-radius: 20px ; + border-radius: 20px; font-size: 12px; font-weight: 500; - - &.tag-pending { - background-color: #FFF7E6; - color: #FF8C00; - border: 1px solid #FFD591; + + &.tag-1 { + color: #f00044; + border: 1px solid #f00044; } - - &.tag-completed { - background-color: #F6FFED; - color: #52C41A; - border: 1px solid #B7EB8F; + + &.tag-2 { + color: #ff8c00; + border: 1px solid #ffd591; } - - &.tag-cancelled { - background-color: #F5F5F5; + + &.tag-3 { + color: #818181; + border: 1px solid #818181; + } + + &.tag-4 { + color: #00a6ff; + border: 1px solid #00a6ff; + } + + &.tag-6 { + color: #52c41a; + border: 1px solid #b7eb8f; + } + + &.tag-5 { + background-color: #f5f5f5; color: #999999; - border: 1px solid #D9D9D9; - } - - &.tag-processing { - background-color: #E6F7FF; - color: #1890FF; - border: 1px solid #91D5FF; + border: 1px solid #d9d9d9; } } - - .card-content { padding: 16px; } @@ -85,7 +90,7 @@ display: flex; align-items: center; margin-bottom: 10px; - + &:last-child { margin-bottom: 0; } @@ -112,19 +117,19 @@ width: 280px; height: 42px; border-radius: 50px; - border: 2px solid #FFCA70; + border: 2px solid #ffca70; font-size: 14px; font-weight: 500; transition: all 0.3s ease; - background: linear-gradient( 179deg, #FFB100 0%, #FF7F19 100%); + background: linear-gradient(179deg, #ffb100 0%, #ff7f19 100%); color: #ffffff; margin: 0 auto; &:hover { - background: linear-gradient(135deg, #FF7A00 0%, #FF6600 100%); + background: linear-gradient(135deg, #ff7a00 0%, #ff6600 100%); } - + &:active { transform: scale(0.95); } -} \ No newline at end of file +} diff --git a/pages/order/list.vue b/pages/order/list.vue index ecceed3..c40b245 100644 --- a/pages/order/list.vue +++ b/pages/order/list.vue @@ -2,6 +2,9 @@ @@ -21,14 +24,6 @@ - - - - { if (res && res.data && res.data.records) { const records = res.data.records; - const hasMore = pageNum < res.data.pages; // 判断是否还有更多数据 // 完成数据加载,第二个参数表示是否还有更多数据 - paging.value.complete(records, !hasMore); - console.log("数据加载完成", records.length, "条记录,hasMore:", hasMore); + paging.value.complete(records); } else { // 没有数据 - paging.value.complete([], true); + paging.value.complete([]); } } catch (error) { console.error("查询列表失败:", error); @@ -124,4 +115,4 @@ const handleOrderComplete = (orderData) => { \ No newline at end of file + From 2e83634d36ddb2d3aa262fbf4a9e26b7830ace51 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Tue, 29 Jul 2025 15:46:27 +0800 Subject: [PATCH 02/16] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E6=96=87?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/components/OrderCard/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/order/components/OrderCard/index.vue b/pages/order/components/OrderCard/index.vue index dd045fb..3da8a89 100644 --- a/pages/order/components/OrderCard/index.vue +++ b/pages/order/components/OrderCard/index.vue @@ -71,7 +71,7 @@ const getStatusText = (status) => { 2: "待使用", 3: "已取消", 4: "退款中", - 5: "已关闭", + 5: "已退款", 6: "已完成", }; return statusMap[status] || "未知状态"; From 716788cd9aeabab74f7928039d2b89d1c7d81f63 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Tue, 29 Jul 2025 19:44:36 +0800 Subject: [PATCH 03/16] =?UTF-8?q?feat:=20=E6=96=87=E6=A1=88=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/components/OrderCard/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/order/components/OrderCard/index.vue b/pages/order/components/OrderCard/index.vue index 3da8a89..4d3758d 100644 --- a/pages/order/components/OrderCard/index.vue +++ b/pages/order/components/OrderCard/index.vue @@ -55,7 +55,7 @@ const props = defineProps({ createTime: "", contactName: "", contactPhone: "", - orderStatus: "pending", // pending-待处理, completed-已完成, cancelled-已取消 + orderStatus: "0", // pending-待处理, completed-已完成, cancelled-已取消 }), }, }); From c2ab41512cb40bf7f4d5ae796d53dc44dc307420 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Tue, 29 Jul 2025 19:46:52 +0800 Subject: [PATCH 04/16] =?UTF-8?q?feat:=20=E6=96=87=E6=A1=88=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/components/OrderCard/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/order/components/OrderCard/index.vue b/pages/order/components/OrderCard/index.vue index 4d3758d..d54f500 100644 --- a/pages/order/components/OrderCard/index.vue +++ b/pages/order/components/OrderCard/index.vue @@ -70,7 +70,7 @@ const getStatusText = (status) => { 1: "待确认", 2: "待使用", 3: "已取消", - 4: "退款中", + 4: "已退款", 5: "已退款", 6: "已完成", }; From 8142e8b07817913ff2bedb7250e00e89913dc743 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Tue, 29 Jul 2025 21:19:57 +0800 Subject: [PATCH 05/16] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AD=97=E6=AE=B5=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/OrderCard/constants/order.js | 59 ++++++++++++++++++ .../components/OrderCard/images/arrow.png | Bin 0 -> 549 bytes .../components/OrderCard/images/hotel.png | Bin 0 -> 816 bytes .../components/OrderCard/images/ticket.png | Bin 0 -> 713 bytes pages/order/components/OrderCard/index.vue | 17 ++++- .../components/OrderCard/styles/index.scss | 38 ++++++----- pages/order/list.vue | 2 +- 7 files changed, 97 insertions(+), 19 deletions(-) create mode 100644 pages/order/components/OrderCard/constants/order.js create mode 100644 pages/order/components/OrderCard/images/arrow.png create mode 100644 pages/order/components/OrderCard/images/hotel.png create mode 100644 pages/order/components/OrderCard/images/ticket.png diff --git a/pages/order/components/OrderCard/constants/order.js b/pages/order/components/OrderCard/constants/order.js new file mode 100644 index 0000000..fc349fd --- /dev/null +++ b/pages/order/components/OrderCard/constants/order.js @@ -0,0 +1,59 @@ +// 订单类型 +export const ORDER_TYPE_MAP = { + 0: [ + { + label: '订单编号', + key: 'orderId' + }, + { + label: '入住时间', + key: 'checkInData' + }, + { + label: '游客姓名', + key: 'visitorName' + }, + { + label: '联系电话', + key: 'contactPhone' + } + ], + 1: [ + { + label: '订单编号', + key: 'orderId' + }, + { + label: '份数', + key: 'commodityAmount' + } + ], + 2: [ + { + label: '订单编号', + key: 'orderId' + }, + { + label: '份数', + key: 'commodityAmount' + } + ], +} + +// 工单类型 +export const SERVICE_TYPE_MAP = { + 0: [ + { + label: '创建时间', + key: 'createTime' + }, + { + label: '联系房客', + key: 'userName' + }, + { + label: '联系电话', + key: 'userPhone' + } + ], +} diff --git a/pages/order/components/OrderCard/images/arrow.png b/pages/order/components/OrderCard/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8fe8cb43025965fe884b6d7c8524993199ef90 GIT binary patch literal 549 zcmV+=0^0qFP)Px$-$_J4R9Hvt)xT>LK@Lm;~xL=L=}X9g^6!e)P{k?gi_nECAYy1t! z@Kq1KY+Y`UlyVwCkBIIW6o9939KY}Nda4L2H^>~?YPA~7{06`*5q)FkwK$I77C{vP z8I*0?4a>3&ssSL;S~rCdTR{-~$dgoIkU6y3Y|b$A3jhm5lrZx%B6=MJ!S}4FQb4~@ zcL1ydcmUx1V!*w6y}s`I{x}P&G?3?cqTlZ?2q88uV3Pp0l~OD1cKhs~fTWajMD!AX zxphZMsny|d_%Z8%my(ce+Yc?vdIew#z%esFN|IzJE5;;Q2;_O5H5d%c%!B|YnE9(x zYN^xd>}F}x?`sQzq?C_|=sAGf06r7ZYOPk=@qJ(ab&%sY_k|Ge0Nm1An`dJ=ilW1! z&qwZrT-Tk~T5kf_8;wSGx7+RKO{KJ!xvqP6JRYA$QFKxUrtnagg(xkd3iKxuNZT{_ nElb-tZ@mJgC08Z%-zD@Dw|}7}NH6o`00000NkvXXu0mjfNK*3Q literal 0 HcmV?d00001 diff --git a/pages/order/components/OrderCard/images/hotel.png b/pages/order/components/OrderCard/images/hotel.png new file mode 100644 index 0000000000000000000000000000000000000000..60bba2e8886c8f89f33ddc730f338a3d9c500a7e GIT binary patch literal 816 zcmV-01JC@4P)Px%>PbXFR7gw3mrZO;Q51l`b7s;OL8E1Xg@&k-ZdmzQk!YGGQX64s(GU_Agj9p3 zNIM7%5>n~Hj@bA~8mYvpepYOXs*qZ+>5mklW6azm@3o`T_RY+zRC`x1@1AqNbIv{Y z+;fFI!y1V)mnBKZ8WpWFY?GLj1Er&?10vRA$TKz9f%2B0^hp!RTuV!~Noz!zLxpp? z3y~VIN}wQ*oe7XG%-U7m9fs+aCR~tCR&c5%vJdPSumXtYi_C<1&)bh67b7Q9H$s7} znG%OKA{?3`ELhyQs<Hgf*;P35;8cJDLd}2TnEX6@>lM2u&O3 z!CNB@?r{2t5B3tt6-Da6TEn_QQSpdqd?>UE$bOBd+Ps7t0moS9Oz#1!LakC-fowkQ zi`vsOFwh-J4S28OYNejn;+<1hsHYGbLS=7p8B%i-S-x=u{OLK?z88ji!@!dm&HBro z6+6#T=OPclHssV4h0?W1?QNu_Vw|WAc4PN;!@wJ`z+;;sFE3P6JH%Sp>d=Qd6G|gc zwjJGe85XS$w(rY3+~XtA`v_brmk$YttCmzu&tn|V>FvrIwCWlxSO#RPIR@W8<2nw) zhxXiI7cPj4NvD}?36zW$LHSO!x(&SVFe4eqJ*U%6i=SK}j?;95 z@s88)7Pe}h0y52eoKUZTgejTR3r?5J5SN73-htBb^*L+W_P@g2_xgyyF?LD#H_TM8 z#e9b)`~29o=!5^I5%?$gghn8}#*DWVRm uYn*76V4G~hqs_#61bODnbwoox+Wr7EuUMQeBXGw60000Px%gGod|R7gw3mrqEPQ4qj?GrN=pcBnMyk8}vqN))TOX zjF9ECPQq-ZH0mf<(R#yb#N;5bGod;!V$+6cPua~T}0P1EtwXr6J-k(&S^6u z4PcePrYwFgg1o_OSk(>ii?`B+^V7))j`fDlf?Wjm1L16uNn7`J`w`@N=t}HvAh7kY z!=arB=W>MkiyLlW){w{xK(u%oN26z@e_p2E(Gi~#%k8XIgxDo-QFyO-r` z<~jDb6&B{xbY(&{)+p9XokK@_6RNZdJ@o{N_v8*vIK=l)>AH&!cS2$j?Zdd_Yx)0x zLAWL^B4cK9%pY8do*aU0Wx4P8%LF#q1V28n(lxP{66@7jpv2d5(RSoe3sQXsN~?TD z{La|sC*jpCZ0Z3l{q)nD^T1va&sekLOJ%ia^9Y2CR(tQ0TyCHNK0E{SeIMdCI2d?e zE!wj2;I%_t;f1;lc2(yX>YLcq!_1+MMr2I#oLmx5u0ma>rC#bZ&jm!i0+O|4HV;F| zk=*a`%!@?HoXb!$3-w48>{%>mBal3Vyth6{aKW0rc-RZk-lpb#-W&Smuor5CNpT=P vwBaasqV - - {{ orderData.visitorName }} + + {{ orderData.commodityName }} + + + diff --git a/pages/order/components/OrderCard/OrderCardContent.vue b/pages/order/components/OrderCard/OrderCardContent.vue new file mode 100644 index 0000000..77356e3 --- /dev/null +++ b/pages/order/components/OrderCard/OrderCardContent.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/pages/order/components/OrderCard/README.md b/pages/order/components/OrderCard/README.md new file mode 100644 index 0000000..04f7067 --- /dev/null +++ b/pages/order/components/OrderCard/README.md @@ -0,0 +1,109 @@ +# OrderCard 组件 + +订单卡片组件,用于显示订单和工单信息。 + +## 组件结构 + +``` +OrderCard/ +├── index.vue # 主组件 +├── OrderCardContent.vue # 卡片内容组件 +├── InfoRow.vue # 信息行组件 +├── images/ # 图片资源 +├── styles/ # 样式文件 +└── README.md # 说明文档 +``` + +## 组件说明 + +### OrderCard (主组件) +- 负责整体布局和事件处理 +- 包含卡片头部、分割线、内容区域和操作区域 +- 处理点击、呼叫等交互事件 + +### OrderCardContent (内容组件) +- 负责根据 `orderType` 动态渲染不同的内容 +- 支持订单类型(0-酒店订单,1-门票订单,2-其他订单)和工单类型 +- 使用条件渲染显示对应的信息字段 + +### InfoRow (信息行组件) +- 可复用的信息展示组件 +- 统一的标签和值的显示格式 +- 支持字符串和数字类型的值 + +## 使用方式 + +```vue + + + +``` + +## Props + +### orderData (Object) + +| 字段 | 类型 | 说明 | 必填 | +|------|------|------|------| +| id | String | 订单ID | 是 | +| commodityName | String | 商品名称 | 是 | +| orderType | Number/undefined | 订单类型:0-酒店订单,1-门票订单,2-其他订单,undefined-工单 | 否 | +| orderNumber | String | 订单编号 | 否 | +| checkInTime | String | 入住时间(orderType=0时使用) | 否 | +| visitorName | String | 游客姓名/联系房客 | 否 | +| contactPhone | String | 联系电话 | 否 | +| quantity | Number | 份数(orderType=1,2时使用) | 否 | +| createTime | String | 创建时间(工单时使用) | 否 | +| orderStatus | String | 订单状态 | 否 | +| status | String | 状态 | 否 | + +## Events + +| 事件名 | 说明 | 参数 | +|--------|------|------| +| click | 卡片点击事件 | orderData | +| call | 呼叫事件 | orderData | +| complete | 完成事件 | orderData | + +## 显示逻辑 + +### 订单类型 (orderType !== undefined) + +- **orderType = 0 (酒店订单)**:显示订单编号、入住时间、游客姓名、联系电话 +- **orderType = 1 (门票订单)**:显示订单编号、份数 +- **orderType = 2 (其他订单)**:显示订单编号、份数 + +### 工单类型 (orderType === undefined) + +显示创建时间、联系房客、联系电话 + +## 优势 + +1. **可读性**:组件职责单一,代码结构清晰 +2. **可维护性**:组件化拆分,便于独立维护和测试 +3. **可复用性**:InfoRow 组件可在其他地方复用 +4. **健壮性**:类型检查和默认值处理 +5. **扩展性**:新增订单类型只需修改 OrderCardContent 组件 \ No newline at end of file diff --git a/pages/order/components/OrderCard/index.vue b/pages/order/components/OrderCard/index.vue index c8971df..5f99480 100644 --- a/pages/order/components/OrderCard/index.vue +++ b/pages/order/components/OrderCard/index.vue @@ -3,15 +3,20 @@ - - {{ orderData.commodityName }} + + + {{ orderData.workOrderTypeName || orderData.commodityName }} + - {{ getStatusText(orderData.orderStatus) }} + {{ getStatusText(orderData.orderStatus || orderData.workOrderStatus) }} @@ -19,31 +24,19 @@ - - - 创建时间: - {{ orderData.createTime }} - - - 联系房客: - {{ orderData.visitorName }} - - - 联系电话: - {{ orderData.contactPhone }} - - + - + diff --git a/components/Qrcode/qrcode.js b/components/Qrcode/qrcode.js new file mode 100644 index 0000000..d1a71f1 --- /dev/null +++ b/components/Qrcode/qrcode.js @@ -0,0 +1,1201 @@ +let QRCode = {}; +(function () { + /** + * 获取单个字符的utf8编码 + * unicode BMP平面约65535个字符 + * @param {num} code + * return {array} + */ + function unicodeFormat8(code) { + // 1 byte + var c0, c1, c2; + if (code < 128) { + return [code]; + // 2 bytes + } else if (code < 2048) { + c0 = 192 + (code >> 6); + c1 = 128 + (code & 63); + return [c0, c1]; + // 3 bytes + } else { + c0 = 224 + (code >> 12); + c1 = 128 + (code >> 6 & 63); + c2 = 128 + (code & 63); + return [c0, c1, c2]; + } + } + /** + * 获取字符串的utf8编码字节串 + * @param {string} string + * @return {array} + */ + function getUTF8Bytes(string) { + var utf8codes = []; + for (var i = 0; i < string.length; i++) { + var code = string.charCodeAt(i); + var utf8 = unicodeFormat8(code); + for (var j = 0; j < utf8.length; j++) { + utf8codes.push(utf8[j]); + } + } + return utf8codes; + } + /** + * 二维码算法实现 + * @param {string} data 要编码的信息字符串 + * @param {num} errorCorrectLevel 纠错等级 + */ + function QRCodeAlg(data, errorCorrectLevel) { + this.typeNumber = -1; //版本 + this.errorCorrectLevel = errorCorrectLevel; + this.modules = null; //二维矩阵,存放最终结果 + this.moduleCount = 0; //矩阵大小 + this.dataCache = null; //数据缓存 + this.rsBlocks = null; //版本数据信息 + this.totalDataCount = -1; //可使用的数据量 + this.data = data; + this.utf8bytes = getUTF8Bytes(data); + this.make(); + } + QRCodeAlg.prototype = { + constructor: QRCodeAlg, + /** + * 获取二维码矩阵大小 + * @return {num} 矩阵大小 + */ + getModuleCount: function () { + return this.moduleCount; + }, + /** + * 编码 + */ + make: function () { + this.getRightType(); + this.dataCache = this.createData(); + this.createQrcode(); + }, + /** + * 设置二位矩阵功能图形 + * @param {bool} test 表示是否在寻找最好掩膜阶段 + * @param {num} maskPattern 掩膜的版本 + */ + makeImpl: function (maskPattern) { + this.moduleCount = this.typeNumber * 4 + 17; + this.modules = new Array(this.moduleCount); + for (var row = 0; row < this.moduleCount; row++) { + this.modules[row] = new Array(this.moduleCount); + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(true, maskPattern); + if (this.typeNumber >= 7) { + this.setupTypeNumber(true); + } + this.mapData(this.dataCache, maskPattern); + }, + /** + * 设置二维码的位置探测图形 + * @param {num} row 探测图形的中心横坐标 + * @param {num} col 探测图形的中心纵坐标 + */ + setupPositionProbePattern: function (row, col) { + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || this.moduleCount <= row + r) continue; + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || this.moduleCount <= col + c) continue; + if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + }, + /** + * 创建二维码 + * @return {[type]} [description] + */ + createQrcode: function () { + var minLostPoint = 0; + var pattern = 0; + var bestModules = null; + for (var i = 0; i < 8; i++) { + this.makeImpl(i); + var lostPoint = QRUtil.getLostPoint(this); + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint; + pattern = i; + bestModules = this.modules; + } + } + this.modules = bestModules; + this.setupTypeInfo(false, pattern); + if (this.typeNumber >= 7) { + this.setupTypeNumber(false); + } + }, + /** + * 设置定位图形 + * @return {[type]} [description] + */ + setupTimingPattern: function () { + for (var r = 8; r < this.moduleCount - 8; r++) { + if (this.modules[r][6] != null) { + continue; + } + this.modules[r][6] = (r % 2 == 0); + if (this.modules[6][r] != null) { + continue; + } + this.modules[6][r] = (r % 2 == 0); + } + }, + /** + * 设置矫正图形 + * @return {[type]} [description] + */ + setupPositionAdjustPattern: function () { + var pos = QRUtil.getPatternPosition(this.typeNumber); + for (var i = 0; i < pos.length; i++) { + for (var j = 0; j < pos.length; j++) { + var row = pos[i]; + var col = pos[j]; + if (this.modules[row][col] != null) { + continue; + } + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + } + } + }, + /** + * 设置版本信息(7以上版本才有) + * @param {bool} test 是否处于判断最佳掩膜阶段 + * @return {[type]} [description] + */ + setupTypeNumber: function (test) { + var bits = QRUtil.getBCHTypeNumber(this.typeNumber); + for (var i = 0; i < 18; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; + this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; + } + }, + /** + * 设置格式信息(纠错等级和掩膜版本) + * @param {bool} test + * @param {num} maskPattern 掩膜版本 + * @return {} + */ + setupTypeInfo: function (test, maskPattern) { + var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern; + var bits = QRUtil.getBCHTypeInfo(data); + // vertical + for (var i = 0; i < 15; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + if (i < 6) { + this.modules[i][8] = mod; + } else if (i < 8) { + this.modules[i + 1][8] = mod; + } else { + this.modules[this.moduleCount - 15 + i][8] = mod; + } + // horizontal + var mod = (!test && ((bits >> i) & 1) == 1); + if (i < 8) { + this.modules[8][this.moduleCount - i - 1] = mod; + } else if (i < 9) { + this.modules[8][15 - i - 1 + 1] = mod; + } else { + this.modules[8][15 - i - 1] = mod; + } + } + // fixed module + this.modules[this.moduleCount - 8][8] = (!test); + }, + /** + * 数据编码 + * @return {[type]} [description] + */ + createData: function () { + var buffer = new QRBitBuffer(); + var lengthBits = this.typeNumber > 9 ? 16 : 8; + buffer.put(4, 4); //添加模式 + buffer.put(this.utf8bytes.length, lengthBits); + for (var i = 0, l = this.utf8bytes.length; i < l; i++) { + buffer.put(this.utf8bytes[i], 8); + } + if (buffer.length + 4 <= this.totalDataCount * 8) { + buffer.put(0, 4); + } + // padding + while (buffer.length % 8 != 0) { + buffer.putBit(false); + } + // padding + while (true) { + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD0, 8); + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD1, 8); + } + return this.createBytes(buffer); + }, + /** + * 纠错码编码 + * @param {buffer} buffer 数据编码 + * @return {[type]} + */ + createBytes: function (buffer) { + var offset = 0; + var maxDcCount = 0; + var maxEcCount = 0; + var length = this.rsBlock.length / 3; + var rsBlocks = new Array(); + for (var i = 0; i < length; i++) { + var count = this.rsBlock[i * 3 + 0]; + var totalCount = this.rsBlock[i * 3 + 1]; + var dataCount = this.rsBlock[i * 3 + 2]; + for (var j = 0; j < count; j++) { + rsBlocks.push([dataCount, totalCount]); + } + } + var dcdata = new Array(rsBlocks.length); + var ecdata = new Array(rsBlocks.length); + for (var r = 0; r < rsBlocks.length; r++) { + var dcCount = rsBlocks[r][0]; + var ecCount = rsBlocks[r][1] - dcCount; + maxDcCount = Math.max(maxDcCount, dcCount); + maxEcCount = Math.max(maxEcCount, ecCount); + dcdata[r] = new Array(dcCount); + for (var i = 0; i < dcdata[r].length; i++) { + dcdata[r][i] = 0xff & buffer.buffer[i + offset]; + } + offset += dcCount; + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); + var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); + var modPoly = rawPoly.mod(rsPoly); + ecdata[r] = new Array(rsPoly.getLength() - 1); + for (var i = 0; i < ecdata[r].length; i++) { + var modIndex = i + modPoly.getLength() - ecdata[r].length; + ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; + } + } + var data = new Array(this.totalDataCount); + var index = 0; + for (var i = 0; i < maxDcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < dcdata[r].length) { + data[index++] = dcdata[r][i]; + } + } + } + for (var i = 0; i < maxEcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < ecdata[r].length) { + data[index++] = ecdata[r][i]; + } + } + } + return data; + + }, + /** + * 布置模块,构建最终信息 + * @param {} data + * @param {} maskPattern + * @return {} + */ + mapData: function (data, maskPattern) { + var inc = -1; + var row = this.moduleCount - 1; + var bitIndex = 7; + var byteIndex = 0; + for (var col = this.moduleCount - 1; col > 0; col -= 2) { + if (col == 6) col--; + while (true) { + for (var c = 0; c < 2; c++) { + if (this.modules[row][col - c] == null) { + var dark = false; + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); + } + var mask = QRUtil.getMask(maskPattern, row, col - c); + if (mask) { + dark = !dark; + } + this.modules[row][col - c] = dark; + bitIndex--; + if (bitIndex == -1) { + byteIndex++; + bitIndex = 7; + } + } + } + row += inc; + if (row < 0 || this.moduleCount <= row) { + row -= inc; + inc = -inc; + break; + } + } + } + } + }; + /** + * 填充字段 + */ + QRCodeAlg.PAD0 = 0xEC; + QRCodeAlg.PAD1 = 0x11; + //--------------------------------------------------------------------- + // 纠错等级对应的编码 + //--------------------------------------------------------------------- + var QRErrorCorrectLevel = [1, 0, 3, 2]; + //--------------------------------------------------------------------- + // 掩膜版本 + //--------------------------------------------------------------------- + var QRMaskPattern = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + }; + //--------------------------------------------------------------------- + // 工具类 + //--------------------------------------------------------------------- + var QRUtil = { + /* + 每个版本矫正图形的位置 + */ + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), + G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), + G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), + /* + BCH编码格式信息 + */ + getBCHTypeInfo: function (data) { + var d = data << 10; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { + d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); + } + return ((data << 10) | d) ^ QRUtil.G15_MASK; + }, + /* + BCH编码版本信息 + */ + getBCHTypeNumber: function (data) { + var d = data << 12; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { + d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); + } + return (data << 12) | d; + }, + /* + 获取BCH位信息 + */ + getBCHDigit: function (data) { + var digit = 0; + while (data != 0) { + digit++; + data >>>= 1; + } + return digit; + }, + /* + 获取版本对应的矫正图形位置 + */ + getPatternPosition: function (typeNumber) { + return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; + }, + /* + 掩膜算法 + */ + getMask: function (maskPattern, i, j) { + switch (maskPattern) { + case QRMaskPattern.PATTERN000: + return (i + j) % 2 == 0; + case QRMaskPattern.PATTERN001: + return i % 2 == 0; + case QRMaskPattern.PATTERN010: + return j % 3 == 0; + case QRMaskPattern.PATTERN011: + return (i + j) % 3 == 0; + case QRMaskPattern.PATTERN100: + return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; + case QRMaskPattern.PATTERN101: + return (i * j) % 2 + (i * j) % 3 == 0; + case QRMaskPattern.PATTERN110: + return ((i * j) % 2 + (i * j) % 3) % 2 == 0; + case QRMaskPattern.PATTERN111: + return ((i * j) % 3 + (i + j) % 2) % 2 == 0; + default: + throw new Error("bad maskPattern:" + maskPattern); + } + }, + /* + 获取RS的纠错多项式 + */ + getErrorCorrectPolynomial: function (errorCorrectLength) { + var a = new QRPolynomial([1], 0); + for (var i = 0; i < errorCorrectLength; i++) { + a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); + } + return a; + }, + /* + 获取评价 + */ + getLostPoint: function (qrCode) { + var moduleCount = qrCode.getModuleCount(), + lostPoint = 0, + darkCount = 0; + for (var row = 0; row < moduleCount; row++) { + var sameCount = 0; + var head = qrCode.modules[row][0]; + for (var col = 0; col < moduleCount; col++) { + var current = qrCode.modules[row][col]; + //level 3 评价 + if (col < moduleCount - 6) { + if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) { + if (col < moduleCount - 10) { + if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) { + lostPoint += 40; + } + } else if (col > 3) { + if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) { + lostPoint += 40; + } + } + } + } + //level 2 评价 + if ((row < moduleCount - 1) && (col < moduleCount - 1)) { + var count = 0; + if (current) count++; + if (qrCode.modules[row + 1][col]) count++; + if (qrCode.modules[row][col + 1]) count++; + if (qrCode.modules[row + 1][col + 1]) count++; + if (count == 0 || count == 4) { + lostPoint += 3; + } + } + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + //level 4 评价 + if (current) { + darkCount++; + } + } + } + for (var col = 0; col < moduleCount; col++) { + var sameCount = 0; + var head = qrCode.modules[0][col]; + for (var row = 0; row < moduleCount; row++) { + var current = qrCode.modules[row][col]; + //level 3 评价 + if (row < moduleCount - 6) { + if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) { + if (row < moduleCount - 10) { + if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) { + lostPoint += 40; + } + } else if (row > 3) { + if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) { + lostPoint += 40; + } + } + } + } + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + } + } + // LEVEL4 + var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; + lostPoint += ratio * 10; + return lostPoint; + } + + }; + //--------------------------------------------------------------------- + // QRMath使用的数学工具 + //--------------------------------------------------------------------- + var QRMath = { + /* + 将n转化为a^m + */ + glog: function (n) { + if (n < 1) { + throw new Error("glog(" + n + ")"); + } + return QRMath.LOG_TABLE[n]; + }, + /* + 将a^m转化为n + */ + gexp: function (n) { + while (n < 0) { + n += 255; + } + while (n >= 256) { + n -= 255; + } + return QRMath.EXP_TABLE[n]; + }, + EXP_TABLE: new Array(256), + LOG_TABLE: new Array(256) + + }; + for (var i = 0; i < 8; i++) { + QRMath.EXP_TABLE[i] = 1 << i; + } + for (var i = 8; i < 256; i++) { + QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; + } + for (var i = 0; i < 255; i++) { + QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; + } + //--------------------------------------------------------------------- + // QRPolynomial 多项式 + //--------------------------------------------------------------------- + /** + * 多项式类 + * @param {Array} num 系数 + * @param {num} shift a^shift + */ + function QRPolynomial(num, shift) { + if (num.length == undefined) { + throw new Error(num.length + "/" + shift); + } + var offset = 0; + while (offset < num.length && num[offset] == 0) { + offset++; + } + this.num = new Array(num.length - offset + shift); + for (var i = 0; i < num.length - offset; i++) { + this.num[i] = num[i + offset]; + } + } + QRPolynomial.prototype = { + get: function (index) { + return this.num[index]; + }, + getLength: function () { + return this.num.length; + }, + /** + * 多项式乘法 + * @param {QRPolynomial} e 被乘多项式 + * @return {[type]} [description] + */ + multiply: function (e) { + var num = new Array(this.getLength() + e.getLength() - 1); + for (var i = 0; i < this.getLength(); i++) { + for (var j = 0; j < e.getLength(); j++) { + num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); + } + } + return new QRPolynomial(num, 0); + }, + /** + * 多项式模运算 + * @param {QRPolynomial} e 模多项式 + * @return {} + */ + mod: function (e) { + var tl = this.getLength(), + el = e.getLength(); + if (tl - el < 0) { + return this; + } + var num = new Array(tl); + for (var i = 0; i < tl; i++) { + num[i] = this.get(i); + } + while (num.length >= el) { + var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0)); + + for (var i = 0; i < e.getLength(); i++) { + num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); + } + while (num[0] == 0) { + num.shift(); + } + } + return new QRPolynomial(num, 0); + } + }; + + //--------------------------------------------------------------------- + // RS_BLOCK_TABLE + //--------------------------------------------------------------------- + /* + 二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数] + */ + var RS_BLOCK_TABLE = [ + // L + // M + // Q + // H + // 1 + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + + // 2 + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + + // 3 + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + + // 4 + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + + // 5 + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + + // 6 + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + + // 7 + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + + // 8 + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + + // 9 + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + + // 10 + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + + // 11 + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + + // 12 + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + + // 13 + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + + // 14 + [3, 145, 115, 1, 146, 116], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + + // 15 + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + + // 16 + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + + // 17 + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + + // 18 + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + + // 19 + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + + // 20 + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, 43, 15, 10, 44, 16], + + // 21 + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + + // 22 + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + + // 23 + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + + // 24 + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + + // 25 + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + + // 26 + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + + // 27 + [8, 152, 122, 4, 153, 123], + [22, 73, 45, 3, 74, 46], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + + // 28 + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + + // 29 + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + + // 30 + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + + // 31 + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + + // 32 + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + + // 33 + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, 55, 25], + [11, 45, 15, 46, 46, 16], + + // 34 + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + + // 35 + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + + // 36 + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + + // 37 + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + + // 38 + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + + // 39 + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, 45, 15, 67, 46, 16], + + // 40 + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + + /** + * 根据数据获取对应版本 + * @return {[type]} [description] + */ + QRCodeAlg.prototype.getRightType = function () { + for (var typeNumber = 1; typeNumber < 41; typeNumber++) { + var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel]; + if (rsBlock == undefined) { + throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel); + } + var length = rsBlock.length / 3; + var totalDataCount = 0; + for (var i = 0; i < length; i++) { + var count = rsBlock[i * 3 + 0]; + var dataCount = rsBlock[i * 3 + 2]; + totalDataCount += dataCount * count; + } + var lengthBytes = typeNumber > 9 ? 2 : 1; + if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) { + this.typeNumber = typeNumber; + this.rsBlock = rsBlock; + this.totalDataCount = totalDataCount; + break; + } + } + }; + + //--------------------------------------------------------------------- + // QRBitBuffer + //--------------------------------------------------------------------- + function QRBitBuffer() { + this.buffer = new Array(); + this.length = 0; + } + QRBitBuffer.prototype = { + get: function (index) { + var bufIndex = Math.floor(index / 8); + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1); + }, + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1)); + } + }, + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8); + if (this.buffer.length <= bufIndex) { + this.buffer.push(0); + } + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); + } + this.length++; + } + }; + + + + // xzedit + let qrcodeAlgObjCache = []; + /** + * 二维码构造函数,主要用于绘制 + * @param {参数列表} opt 传递参数 + * @return {} + */ + QRCode = function (opt) { + //设置默认参数 + this.options = { + text: '', + size: 256, + correctLevel: 3, + background: '#ffffff', + foreground: '#000000', + pdground: '#000000', + image: '', + imageSize: 30, + canvasId: opt.canvasId, + context: opt.context, + usingComponents: opt.usingComponents, + showLoading: opt.showLoading, + loadingText: opt.loadingText, + }; + if (typeof opt === 'string') { // 只编码ASCII字符串 + opt = { + text: opt + }; + } + if (opt) { + for (var i in opt) { + this.options[i] = opt[i]; + } + } + //使用QRCodeAlg创建二维码结构 + var qrCodeAlg = null; + for (var i = 0, l = qrcodeAlgObjCache.length; i < l; i++) { + if (qrcodeAlgObjCache[i].text == this.options.text && qrcodeAlgObjCache[i].text.correctLevel == this.options.correctLevel) { + qrCodeAlg = qrcodeAlgObjCache[i].obj; + break; + } + } + if (i == l) { + qrCodeAlg = new QRCodeAlg(this.options.text, this.options.correctLevel); + qrcodeAlgObjCache.push({ + text: this.options.text, + correctLevel: this.options.correctLevel, + obj: qrCodeAlg + }); + } + /** + * 计算矩阵点的前景色 + * @param {Obj} config + * @param {Number} config.row 点x坐标 + * @param {Number} config.col 点y坐标 + * @param {Number} config.count 矩阵大小 + * @param {Number} config.options 组件的options + * @return {String} + */ + let getForeGround = function (config) { + var options = config.options; + if (options.pdground && ( + (config.row > 1 && config.row < 5 && config.col > 1 && config.col < 5) || + (config.row > (config.count - 6) && config.row < (config.count - 2) && config.col > 1 && config.col < 5) || + (config.row > 1 && config.row < 5 && config.col > (config.count - 6) && config.col < (config.count - 2)) + )) { + return options.pdground; + } + return options.foreground; + } + // 创建canvas + let createCanvas = function (options) { + if (options.showLoading) { + uni.showLoading({ + title: options.loadingText, + mask: true + }); + } + var ctx = uni.createCanvasContext(options.canvasId, options.context); + var count = qrCodeAlg.getModuleCount(); + var ratioSize = options.size; + var ratioImgSize = options.imageSize; + //计算每个点的长宽 + var tileW = (ratioSize / count).toPrecision(4); + var tileH = (ratioSize / count).toPrecision(4); + //绘制 + for (var row = 0; row < count; row++) { + for (var col = 0; col < count; col++) { + var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW)); + var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW)); + var foreground = getForeGround({ + row: row, + col: col, + count: count, + options: options + }); + ctx.setFillStyle(qrCodeAlg.modules[row][col] ? foreground : options.background); + ctx.fillRect(Math.round(col * tileW), Math.round(row * tileH), w, h); + } + } + if (options.image) { + var x = Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); + var y = Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); + drawRoundedRect(ctx, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true) + ctx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize); + // 画圆角矩形 + function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) { + ctxi.setLineWidth(lineWidth); + ctxi.setFillStyle(options.background); + ctxi.setStrokeStyle(options.background); + ctxi.beginPath(); // draw top and top right corner + ctxi.moveTo(x + r, y); + ctxi.arcTo(x + width, y, x + width, y + r, r); // draw right side and bottom right corner + ctxi.arcTo(x + width, y + height, x + width - r, y + height, r); // draw bottom and bottom left corner + ctxi.arcTo(x, y + height, x, y + height - r, r); // draw left and top left corner + ctxi.arcTo(x, y, x + r, y, r); + ctxi.closePath(); + if (fill) { + ctxi.fill(); + } + if (stroke) { + ctxi.stroke(); + } + } + } + setTimeout(() => { + ctx.draw(true, () => { + // 保存到临时区域 + setTimeout(() => { + uni.canvasToTempFilePath({ + width: options.width, + height: options.height, + destWidth: options.width, + destHeight: options.height, + canvasId: options.canvasId, + quality: Number(1), + success: function (res) { + if (options.cbResult) { + options.cbResult(res.tempFilePath) + } + }, + fail: function (res) { + if (options.cbResult) { + options.cbResult(res) + } + }, + complete: function () { + if (options.showLoading){ + uni.hideLoading(); + } + }, + }, options.context); + }, options.text.length + 100); + }); + }, options.usingComponents ? 0 : 150); + } + createCanvas(this.options); + // 空判定 + let empty = function (v) { + let tp = typeof v, + rt = false; + if (tp == "number" && String(v) == "") { + rt = true + } else if (tp == "undefined") { + rt = true + } else if (tp == "object") { + if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true + } else if (tp == "string") { + if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true + } else if (tp == "function") { + rt = false + } + return rt + } + }; + QRCode.prototype.clear = function (fn) { + var ctx = uni.createCanvasContext(this.options.canvasId, this.options.context) + ctx.clearRect(0, 0, this.options.size, this.options.size) + ctx.draw(false, () => { + if (fn) { + fn() + } + }) + }; +})() + +export default QRCode \ No newline at end of file diff --git a/pages/order/components/GoodsInfo/index.vue b/pages/order/components/GoodsInfo/index.vue index 6c33a8d..09284a6 100644 --- a/pages/order/components/GoodsInfo/index.vue +++ b/pages/order/components/GoodsInfo/index.vue @@ -2,13 +2,13 @@ - 天沐温泉酒店 + {{ orderData.commodityName }} - + - 温泉早鸟票 - 预定时间:5月1日 + {{ orderData.commodityName }} + 预定时间:{{ orderData.checkInData }} @@ -26,9 +26,24 @@ \ No newline at end of file diff --git a/pages/order/components/OrderCard/images/food.png b/pages/order/components/OrderCard/images/food.png new file mode 100644 index 0000000000000000000000000000000000000000..87cf3384de29bf5a13cdc146937e335e30b1a86c GIT binary patch literal 978 zcmV;@11Px&j7da6R7gw3mR)EZRTRg6=gcIV1Vw9GHI*Wgs?idyMe<@l#E*wc)z%QO1*Oow z2nvc3O${4Ul5E6?2!byW6v403+S)>)f@mT>M5x73jnyE68a1^l+H^NNbC1l{NH*^7 z>}VwSaqj<|-??|rz4tG~4C}@}TSH@w_*bd84I*+gSd&3xAyham$hbLs&xwxAxZp&? z3_nT_u2O0#H)-v7`8Bk7qV1yGZAKGN7gJ|oCdWi=U*Oz3wViw+f|ZIX3l93dog&tO za3zKpw=?tR^T0QTr2WqD^{T-392dH*b^(tjgq4#&t97nd9^u!yf}$1w1$_p%4@fN# zI0w9{b?&jb@FH-S(LvzB1%%Gl9>HJmI$g)?hXU9P2?xA;1$%9QR#`HQne6gD3161I zgavS}pJre55U}e11OwxtbK7d4gu%vqZg=&1utnr+YS`T+`cXF%S3D_LWtvO z&ADzl(??@UyaOWE8XpPFf|o?cngXzDaCF}YC$fRtB>9Ygo8pcDepTQVt;o`Akd1wX zEH<3RPM?JDM)6Ek0YY##?R=%_uU6+QH8zFT*_zlr@2|*Tezhjf5*t-wI zZ(qlz!q_8jz#B2MbrsdiThKd(pz+4aNq_njcj$hY8mp)iWLUxhox)gFR(Zh{Xxo0c z_`3L&M2g9eaff%n&*NqF0^doP(Gbv*Dldg>eG6H&xjN{q>hm{o2e(&>ah1U2L9s*-2ScS8m{zk;xhWJ!DXf9<@%k-?azZ>pA4KogB^Vc8+)a6oN!89#{0mq z4JE-hbs_7YD!lfIh8Z@J#y;vV873khR)3rlkz>Tsamx4kx2n3s|8N%#%aOGY{3o0p zdl9Cm=I00;x=E&cSy|`n5i?d7DVAM}?y7tql|5ae_&eU$k&l!PsyzmBZhlmX&Oq57& z$ae3E@QvtgSzPNgTlS)vy~4IHhP|Ep!-9;rO|U({6-gl { 2: "待使用", 3: "已取消", 4: "退款中", - 5: "已推荐", + 5: "已退款", 6: "已完成", }; return orderStatusMap[status] || "未知状态"; diff --git a/pages/order/components/OrderInfo/index.vue b/pages/order/components/OrderInfo/index.vue index b5a85ff..79092ca 100644 --- a/pages/order/components/OrderInfo/index.vue +++ b/pages/order/components/OrderInfo/index.vue @@ -2,19 +2,19 @@ 订单号 - HUSUWF29387865 + {{ orderData.orderId }} 流水号 - 76487829387865 + {{ orderData.paySerialNumber }} 支付方式 - 微信 + {{ orderData.payWay }} 实际支付金额 - ¥31.8 + ¥{{ orderData.payAmt }} @@ -22,9 +22,24 @@ \ No newline at end of file diff --git a/pages/order/components/OrderQrcode/index.vue b/pages/order/components/OrderQrcode/index.vue new file mode 100644 index 0000000..9bf810f --- /dev/null +++ b/pages/order/components/OrderQrcode/index.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file diff --git a/pages/order/components/OrderQrcode/styles/index.scss b/pages/order/components/OrderQrcode/styles/index.scss new file mode 100644 index 0000000..fb026af --- /dev/null +++ b/pages/order/components/OrderQrcode/styles/index.scss @@ -0,0 +1,18 @@ +.order-qrcode { + background: #ffffff; + border-radius: 10px; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 18px; + margin-bottom: 12px; + + text { + font-size: 12px; + color: #666666; + line-height: 17px; + margin-top: 4px; + } +} diff --git a/pages/order/components/UserInfo/index.vue b/pages/order/components/UserInfo/index.vue index 7f8c19c..b5c883d 100644 --- a/pages/order/components/UserInfo/index.vue +++ b/pages/order/components/UserInfo/index.vue @@ -3,20 +3,34 @@ \ No newline at end of file diff --git a/pages/order/detail.vue b/pages/order/detail.vue index 56fe43e..81f4839 100644 --- a/pages/order/detail.vue +++ b/pages/order/detail.vue @@ -1,22 +1,37 @@ \ No newline at end of file diff --git a/pages/order/list.vue b/pages/order/list.vue index 5baaf19..8ecebd5 100644 --- a/pages/order/list.vue +++ b/pages/order/list.vue @@ -93,11 +93,10 @@ const handleTabChange = ({ index }) => { }; // 处理订单点击 -const handleOrderClick = (orderData) => { - console.log("订单点击:", orderData); +const handleOrderClick = ({ orderId }) => { // 这里可以添加订单详情跳转逻辑 uni.navigateTo({ - url: `/pages/order/detail?id=${orderData.id}`, + url: `/pages/order/detail?orderId=${orderId}`, }); }; diff --git a/request/api/OrderApi.js b/request/api/OrderApi.js index b9f33e0..40834bf 100644 --- a/request/api/OrderApi.js +++ b/request/api/OrderApi.js @@ -9,4 +9,11 @@ const userWorkOrderList = (args) => { return request.post('/hotelBiz/workOrder/userWorkOrderList', args); } -export { userOrderList, userWorkOrderList } \ No newline at end of file + +// 获取订单详情 +const userOrderDetail = (args) => { + return request.post('/hotelBiz/order/userOrderDetail', args); +} + + +export { userOrderList, userWorkOrderList, userOrderDetail } \ No newline at end of file From 283530c0e2f53d39697721dbc60b570cd3433f8a Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Thu, 31 Jul 2025 13:38:12 +0800 Subject: [PATCH 10/16] =?UTF-8?q?feat:=20=E8=AE=A2=E5=8D=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E4=B9=9F=E6=8E=A5=E5=8F=A3=E5=AD=97=E6=AE=B5=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/components/OrderInfo/index.vue | 40 +++++++++++++----- pages/order/components/UserInfo/index.vue | 47 ++++++++++++++++++---- pages/order/detail.vue | 3 +- 3 files changed, 69 insertions(+), 21 deletions(-) diff --git a/pages/order/components/OrderInfo/index.vue b/pages/order/components/OrderInfo/index.vue index 79092ca..7f42942 100644 --- a/pages/order/components/OrderInfo/index.vue +++ b/pages/order/components/OrderInfo/index.vue @@ -10,11 +10,11 @@ 支付方式 - {{ orderData.payWay }} + {{ payWayText }} 实际支付金额 - ¥{{ orderData.payAmt }} + {{ formattedAmount }} @@ -22,24 +22,42 @@ \ No newline at end of file + diff --git a/pages/order/components/UserInfo/index.vue b/pages/order/components/UserInfo/index.vue index b5c883d..f922a2f 100644 --- a/pages/order/components/UserInfo/index.vue +++ b/pages/order/components/UserInfo/index.vue @@ -1,8 +1,8 @@ \ No newline at end of file + diff --git a/pages/order/detail.vue b/pages/order/detail.vue index 81f4839..bd303f5 100644 --- a/pages/order/detail.vue +++ b/pages/order/detail.vue @@ -24,7 +24,6 @@ import OrderInfo from "./components/OrderInfo/index.vue"; const orderData = ref({}); onLoad(async ({ orderId }) => { - console.log("onShow", orderId); const res = await userOrderDetail({ orderId }); orderData.value = res.data; @@ -34,4 +33,4 @@ onLoad(async ({ orderId }) => { \ No newline at end of file + From 3cf429931cf5a01a336546967932bec51e45e862 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Thu, 31 Jul 2025 21:15:24 +0800 Subject: [PATCH 11/16] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=AD=97?= =?UTF-8?q?=E4=BD=93=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 2 + pages/order/components/NoticeInfo/index.vue | 48 +- .../components/NoticeInfo/styles/index.scss | 30 +- pages/order/components/OrderInfo/index.vue | 46 +- .../components/OrderInfo/styles/index.scss | 300 ++++++-- .../components/OrderStatusInfo/index.vue | 30 +- static/fonts/iconfont.css | 19 + static/fonts/iconfont.ttf | Bin 0 -> 1924 bytes uni_modules/uni-icons/changelog.md | 42 ++ .../components/uni-icons/uni-icons.uvue | 91 +++ .../components/uni-icons/uni-icons.vue | 110 +++ .../components/uni-icons/uniicons.css | 664 ++++++++++++++++++ .../components/uni-icons/uniicons.ttf | Bin 0 -> 35824 bytes .../components/uni-icons/uniicons_file.ts | 664 ++++++++++++++++++ .../components/uni-icons/uniicons_file_vue.js | 649 +++++++++++++++++ uni_modules/uni-icons/package.json | 89 +++ uni_modules/uni-icons/readme.md | 8 + uni_modules/uni-scss/changelog.md | 8 + uni_modules/uni-scss/index.scss | 1 + uni_modules/uni-scss/package.json | 82 +++ uni_modules/uni-scss/readme.md | 4 + uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 ++ .../uni-scss/styles/setting/_radius.scss | 55 ++ .../uni-scss/styles/setting/_space.scss | 56 ++ .../uni-scss/styles/setting/_styles.scss | 167 +++++ .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 ++++ .../uni-scss/styles/tools/functions.scss | 19 + uni_modules/uni-scss/theme.scss | 31 + uni_modules/uni-scss/variables.scss | 62 ++ 32 files changed, 3416 insertions(+), 107 deletions(-) create mode 100644 static/fonts/iconfont.css create mode 100644 static/fonts/iconfont.ttf create mode 100644 uni_modules/uni-icons/changelog.md create mode 100644 uni_modules/uni-icons/components/uni-icons/uni-icons.uvue create mode 100644 uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons_file.ts create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js create mode 100644 uni_modules/uni-icons/package.json create mode 100644 uni_modules/uni-icons/readme.md create mode 100644 uni_modules/uni-scss/changelog.md create mode 100644 uni_modules/uni-scss/index.scss create mode 100644 uni_modules/uni-scss/package.json create mode 100644 uni_modules/uni-scss/readme.md create mode 100644 uni_modules/uni-scss/styles/index.scss create mode 100644 uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 uni_modules/uni-scss/theme.scss create mode 100644 uni_modules/uni-scss/variables.scss diff --git a/App.vue b/App.vue index 07dac14..5cc77d3 100644 --- a/App.vue +++ b/App.vue @@ -28,6 +28,8 @@ onHide(() => { \ No newline at end of file diff --git a/pages/order/components/NoticeInfo/styles/index.scss b/pages/order/components/NoticeInfo/styles/index.scss index 7589229..73c6e1b 100644 --- a/pages/order/components/NoticeInfo/styles/index.scss +++ b/pages/order/components/NoticeInfo/styles/index.scss @@ -4,36 +4,10 @@ padding: 16px 18px; } -.notice-section { - margin-bottom: 20px; - - &:last-child { - margin-bottom: 0; - } -} - .notice-title { display: flex; align-items: center; - margin-bottom: 8px; - font-size: 14px; - font-weight: 600; + font-size: 16px; + font-weight: 500; color: #333; } - -.notice-icon { - width: 18px; - height: 18px; - margin-right: 10px; -} - -.notice-content { - font-size: 12px; - color: #666; - padding-left: 28px; -} - -.notice-item { - display: block; - margin-bottom: 5px; -} \ No newline at end of file diff --git a/pages/order/components/OrderInfo/index.vue b/pages/order/components/OrderInfo/index.vue index 7f42942..6b5faed 100644 --- a/pages/order/components/OrderInfo/index.vue +++ b/pages/order/components/OrderInfo/index.vue @@ -12,11 +12,20 @@ 支付方式 {{ payWayText }} + + + 退款单号 + {{ payWayText }} + + 实际支付金额 {{ formattedAmount }} - + + @@ -54,10 +63,41 @@ const payWayText = computed(() => { // 格式化金额显示 const formattedAmount = computed(() => { const amount = props.orderData.payAmt; - return amount ? `¥${parseFloat(amount).toFixed(2)}` : "¥0.00"; + return amount ? `${parseFloat(amount).toFixed(2)}` : "0.00"; +}); + +// 按钮文案逻辑 +const buttonText = computed(() => { + const status = props.orderData.orderStatus; + switch (status) { + case "0": // 待支付状态 + return "立即支付"; + case "2": // 待使用状态 + return "申请退款"; + default: // 其他状态 + return "再次预定"; + } +}); + +// 是否显示按钮(退款中状态不显示) +const shouldShowButton = computed(() => { + return props.orderData.orderStatus !== "4"; // 4-退款中 +}); + +// 按钮样式类逻辑 +const buttonClass = computed(() => { + const status = props.orderData.orderStatus; + const baseClass = "reserve-button"; + + // 申请退款状态(待使用状态)保持原样式,其他状态添加pre-btn类 + if (status === "2") { + return baseClass; // 申请退款状态,背景色不变 + } else { + return `${baseClass} pre-btn`; // 其他状态,添加pre-btn样式 + } }); - diff --git a/pages/order/components/OrderInfo/styles/index.scss b/pages/order/components/OrderInfo/styles/index.scss index 255f5dd..13fa3f2 100644 --- a/pages/order/components/OrderInfo/styles/index.scss +++ b/pages/order/components/OrderInfo/styles/index.scss @@ -1,49 +1,267 @@ +// SASS变量定义,提高可维护性和编译性能 + +// 颜色系统 +$order-bg-color: #fff; +$text-color-primary: #333; +$text-color-secondary: #666; +$text-color-accent: #ff5722; +$button-color: #ffa500; +$button-hover-color: darken($button-color, 8%); +$button-disabled-color: #ccc; +$border-color: #ececec; +$shadow-color: rgba(0, 0, 0, 0.08); + +// 尺寸和间距 +$order-border-radius: 10px; +$order-padding: 16px 18px; +$spacing-small: 8px; +$spacing-medium: 10px; +$spacing-large: 20px; +$button-height: 42px; + +// 字体系统 +$font-size-small: 12px; +$font-size-medium: 14px; +$font-size-large: 18px; +$font-weight-normal: 400; +$font-weight-medium: 500; +$font-weight-semibold: 600; + +// 过渡动画 +$transition-fast: 0.2s ease; +$transition-normal: 0.3s ease; + +// 响应式断点 +$breakpoint-mobile: 480px; + .order-info { - background-color: #fff; - border-radius: 10px; - padding: 16px 18px; -} + background-color: $order-bg-color; + border-radius: $order-border-radius; + padding: $order-padding; + box-shadow: 0 2px 8px $shadow-color; + transition: box-shadow $transition-normal; -.order-item { - display: flex; - justify-content: space-between; - margin-bottom: 8px; -} + &:hover { + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); + } -.label { - font-size: 12px; - color: #666; -} + // 订单项样式,优化布局和视觉层次 + .order-item { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: $spacing-small; + padding: 4px 0; + transition: background-color $transition-fast; -.value { - font-size: 12px; - color: #333; -} + &:hover { + background-color: rgba(0, 0, 0, 0.02); + border-radius: 4px; + margin: 0 -4px 8px; + padding: 4px; + } -.amount .label { - color: #333; -} + .label { + font-size: $font-size-small; + color: $text-color-secondary; + font-weight: $font-weight-normal; + flex-shrink: 0; + line-height: 1.4; + } -.amount .value { - color: #ff5722; - font-size: 18px; -} + .value { + font-size: $font-size-small; + color: $text-color-primary; + font-weight: $font-weight-normal; + text-align: right; + word-break: break-word; + overflow-wrap: break-word; + line-height: 1.4; + max-width: 60%; + } -.reserve-button { - width: 100%; - background-color: #ffa500; - color: #fff; - border: none; - border-radius: 50px; - height: 42px; - font-size: 14px; - margin-top: 20px; -} + // 金额特殊样式,增强视觉重点 + &.amount { + .label { + color: $text-color-primary; + font-weight: $font-weight-medium; + font-size: $font-size-medium; + } -.feedback { - display: block; - text-align: center; - font-size: 14px; - color: #333; - margin-top: 10px; -} \ No newline at end of file + .value { + color: $text-color-accent; + font-size: $font-size-large; + font-weight: $font-weight-semibold; + max-width: none; + + // 货币符号样式 + &::before { + content: "¥"; + margin-right: 2px; + font-size: 11px; + } + } + } + + // 移动端适配 + @media (max-width: $breakpoint-mobile) { + .value { + max-width: 50%; + font-size: $font-size-small - 1px; + } + + &.amount .value { + font-size: $font-size-medium + 2px; + } + } + } + + .line { + border-bottom: 1px solid $border-color; + margin: $spacing-medium 0; + height: 0; + opacity: 0.6; + transition: opacity $transition-fast; + + &:hover { + opacity: 1; + } + } + + .reserve-button { + width: 100%; + background: linear-gradient( + 135deg, + $button-color 0%, + darken($button-color, 5%) 100% + ); + color: #fff; + border: none; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50px; + height: $button-height; + font-size: $font-size-medium; + font-weight: $font-weight-medium; + margin-top: $spacing-large; + position: relative; + overflow: hidden; + box-shadow: 0 2px 8px rgba($button-color, 0.3); + transition: all $transition-normal; + letter-spacing: 0.5px; + + // 再次预定按钮背景样式 + &.pre-btn { + background: linear-gradient(179deg, #00a6ff 0%, #0256ff 100%); + border: 2px solid #00a6ff; + } + + // 按钮波纹效果 + &::before { + content: ""; + position: absolute; + top: 50%; + left: 50%; + width: 0; + height: 0; + background: rgba(255, 255, 255, 0.3); + border-radius: 50%; + transform: translate(-50%, -50%); + transition: width 0.6s, height 0.6s; + } + + &:hover { + background: linear-gradient( + 135deg, + $button-hover-color 0%, + darken($button-hover-color, 5%) 100% + ); + transform: translateY(-2px); + box-shadow: 0 4px 16px rgba($button-color, 0.4); + + &::before { + width: 300px; + height: 300px; + } + } + + &:active { + transform: translateY(-1px); + box-shadow: 0 2px 8px rgba($button-color, 0.3); + } + + &:focus { + outline: none; + box-shadow: 0 0 0 3px rgba($button-color, 0.3); + } + + &:disabled { + background: $button-disabled-color; + cursor: not-allowed; + transform: none; + box-shadow: none; + + &::before { + display: none; + } + } + + // 移动端触摸优化 + @media (max-width: $breakpoint-mobile) { + height: $button-height + 4px; + font-size: $font-size-medium + 1px; + + &:hover { + transform: none; // 移动端禁用悬浮效果 + } + } + } + + .feedback { + display: block; + text-align: center; + font-size: $font-size-medium; + color: $text-color-primary; + font-weight: $font-weight-normal; + margin-top: $spacing-medium; + cursor: pointer; + text-decoration: none; + position: relative; + transition: all $transition-fast; + padding: $spacing-small; + border-radius: 4px; + + // 下划线动画效果 + &::after { + content: ""; + position: absolute; + bottom: 4px; + left: 50%; + width: 0; + height: 1px; + background-color: $text-color-accent; + transition: all $transition-normal; + transform: translateX(-50%); + } + + &:hover { + color: $text-color-accent; + background-color: rgba($text-color-accent, 0.05); + + &::after { + width: 60%; + } + } + + &:active { + transform: scale(0.98); + } + + // 移动端适配 + @media (max-width: $breakpoint-mobile) { + font-size: $font-size-medium - 1px; + padding: $spacing-medium $spacing-small; + } + } +} diff --git a/pages/order/components/OrderStatusInfo/index.vue b/pages/order/components/OrderStatusInfo/index.vue index 19dbd8a..117f331 100644 --- a/pages/order/components/OrderStatusInfo/index.vue +++ b/pages/order/components/OrderStatusInfo/index.vue @@ -1,19 +1,37 @@ \ No newline at end of file diff --git a/static/fonts/iconfont.css b/static/fonts/iconfont.css new file mode 100644 index 0000000..f8e8077 --- /dev/null +++ b/static/fonts/iconfont.css @@ -0,0 +1,19 @@ +@font-face { + font-family: "ZhiNian"; /* Project id 4988933 */ + src: url("iconfont.ttf?t=1753966564544") format("truetype"); +} + +.ZhiNian { + font-family: "ZhiNian" !important; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.iconyoujiantou:before { + content: "\e678"; +} + +.iconshizhong:before { + content: "\e600"; +} diff --git a/static/fonts/iconfont.ttf b/static/fonts/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a555f9802244f157b2652c16decc728ff0e8eedf GIT binary patch literal 1924 zcmd^AO>Y}j6uoz5?D5!%9b(6>(gqEoI97=4#Bm&G(^Rx2p%Q9Q8XOuT(y24{IM^P` zo>WOTF%qhXK)^3xQHfm_MQo8MmDur7i3J;|x_}4?b_I!*&3WSqCH)IL>%MpHxgYPo zJM+fGL=>Vn$uzlm<@Iy=`_JtX@e5#=FJH-I=Y}r60{sK%*NQcxQ5wJhE%d)3H_O$X z(wFysJxwIP2mP958XFVuIA6o}AtY~sP#?(e0)GKHY1N$VJ^=XsfvK-*7Y&-EJBV*X z57dn91`kjX_G8fXx=}MjpTs*v%5Ox{n+?0=eD~wTD3N*r_OpcA<#xACYYJ3&AK#*EkIel=p`PzApB>u}ZoRd8TOoNFYJem!SY(oE1tNxEgZL43g^D5UK~z6a z(uIXrmnmE|oH`AQBHSVD|HWLblnvzXMKWx{%3zrM9;+zCACnK;?MvT)`>40_@04Xk zO62QR1Jlv*TIuBtx_dwe+ipKd{)yV~5H&m=lGyN20I`pIx``gmZ+ZT2fEAGwSaD+T z3NWEclt+@-rHd{cuCRy`h%-ncjs^O^k3P2nDX$H9dkz4Fh&SnAyC-g!1t;zRI@i4| zOLz+t=wU9y$uUl|KbFui#q+bAKg)TUSyI%_dL(rs!tG8wav~MxTdE>4w`E^2sPe5a zkEFt#z0O`ZHNwIe42lOWo^v5G8r#eA6@> zb3?zrqgRS{y=2#&RjYETV$_$+@>bPodYZQs%x0@%*Y&CNq{l3pb+dVxqIIL3b)1r3 zYT7k@0lCa-)z%wLd($jBY0GgMr!pC_hv3siyGG}!NhTTOVBR2|uG0?Y3O?mF)v4sp z4y}>}?h?cRy9D1dZJ|*HqL12+Y6W;Usf9R^O{XbJ93G!4s3r b63eVmaL3--#6xlHtw77F>{@oc4A*}Eb$baJ literal 0 HcmV?d00001 diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..0261131 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,42 @@ +## 2.0.10(2024-06-07) +- 优化 uni-app x 中,size 属性的类型 +## 2.0.9(2024-01-12) +fix: 修复图标大小默认值错误的问题 +## 2.0.8(2023-12-14) +- 修复 项目未使用 ts 情况下,打包报错的bug +## 2.0.7(2023-12-14) +- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug +## 2.0.6(2023-12-11) +- 优化 兼容老版本icon类型,如 top ,bottom 等 +## 2.0.5(2023-12-11) +- 优化 兼容老版本icon类型,如 top ,bottom 等 +## 2.0.4(2023-12-06) +- 优化 uni-app x 下示例项目图标排序 +## 2.0.3(2023-12-06) +- 修复 nvue下引入组件报错的bug +## 2.0.2(2023-12-05) +-优化 size 属性支持单位 +## 2.0.1(2023-12-05) +- 新增 uni-app x 支持定义图标 +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue b/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue new file mode 100644 index 0000000..ce307c1 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue @@ -0,0 +1,91 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..9634a9c --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..0a6b6fe --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,664 @@ + +.uniui-cart-filled:before { + content: "\e6d0"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-arrowthinleft:before { + content: "\e6d2"; +} + +.uniui-arrowthinup:before { + content: "\e6d3"; +} + +.uniui-arrowthindown:before { + content: "\e6d4"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthinright:before { + content: "\e6d1"; +} + +.uniui-down:before { + content: "\e6b8"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowright:before { + content: "\e6d5"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-up:before { + content: "\e6b6"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowup:before { + content: "\e6d6"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..14696d038d828073edac09ea4e5ba1dec2f58115 GIT binary patch literal 35824 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 F{2S@rCxHL} literal 0 HcmV?d00001 diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts b/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts new file mode 100644 index 0000000..86318df --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts @@ -0,0 +1,664 @@ + +export type IconsData = { + id : string + name : string + font_family : string + css_prefix_text : string + description : string + glyphs : Array +} + +export type IconsDataItem = { + font_class : string + unicode : string +} + + +export const fontData = [ + { + "font_class": "arrow-down", + "unicode": "\ue6be" + }, + { + "font_class": "arrow-left", + "unicode": "\ue6bc" + }, + { + "font_class": "arrow-right", + "unicode": "\ue6bb" + }, + { + "font_class": "arrow-up", + "unicode": "\ue6bd" + }, + { + "font_class": "auth", + "unicode": "\ue6ab" + }, + { + "font_class": "auth-filled", + "unicode": "\ue6cc" + }, + { + "font_class": "back", + "unicode": "\ue6b9" + }, + { + "font_class": "bars", + "unicode": "\ue627" + }, + { + "font_class": "calendar", + "unicode": "\ue6a0" + }, + { + "font_class": "calendar-filled", + "unicode": "\ue6c0" + }, + { + "font_class": "camera", + "unicode": "\ue65a" + }, + { + "font_class": "camera-filled", + "unicode": "\ue658" + }, + { + "font_class": "cart", + "unicode": "\ue631" + }, + { + "font_class": "cart-filled", + "unicode": "\ue6d0" + }, + { + "font_class": "chat", + "unicode": "\ue65d" + }, + { + "font_class": "chat-filled", + "unicode": "\ue659" + }, + { + "font_class": "chatboxes", + "unicode": "\ue696" + }, + { + "font_class": "chatboxes-filled", + "unicode": "\ue692" + }, + { + "font_class": "chatbubble", + "unicode": "\ue697" + }, + { + "font_class": "chatbubble-filled", + "unicode": "\ue694" + }, + { + "font_class": "checkbox", + "unicode": "\ue62b" + }, + { + "font_class": "checkbox-filled", + "unicode": "\ue62c" + }, + { + "font_class": "checkmarkempty", + "unicode": "\ue65c" + }, + { + "font_class": "circle", + "unicode": "\ue65b" + }, + { + "font_class": "circle-filled", + "unicode": "\ue65e" + }, + { + "font_class": "clear", + "unicode": "\ue66d" + }, + { + "font_class": "close", + "unicode": "\ue673" + }, + { + "font_class": "closeempty", + "unicode": "\ue66c" + }, + { + "font_class": "cloud-download", + "unicode": "\ue647" + }, + { + "font_class": "cloud-download-filled", + "unicode": "\ue646" + }, + { + "font_class": "cloud-upload", + "unicode": "\ue645" + }, + { + "font_class": "cloud-upload-filled", + "unicode": "\ue648" + }, + { + "font_class": "color", + "unicode": "\ue6cf" + }, + { + "font_class": "color-filled", + "unicode": "\ue6c9" + }, + { + "font_class": "compose", + "unicode": "\ue67f" + }, + { + "font_class": "contact", + "unicode": "\ue693" + }, + { + "font_class": "contact-filled", + "unicode": "\ue695" + }, + { + "font_class": "down", + "unicode": "\ue6b8" + }, + { + "font_class": "bottom", + "unicode": "\ue6b8" + }, + { + "font_class": "download", + "unicode": "\ue68d" + }, + { + "font_class": "download-filled", + "unicode": "\ue681" + }, + { + "font_class": "email", + "unicode": "\ue69e" + }, + { + "font_class": "email-filled", + "unicode": "\ue69a" + }, + { + "font_class": "eye", + "unicode": "\ue651" + }, + { + "font_class": "eye-filled", + "unicode": "\ue66a" + }, + { + "font_class": "eye-slash", + "unicode": "\ue6b3" + }, + { + "font_class": "eye-slash-filled", + "unicode": "\ue6b4" + }, + { + "font_class": "fire", + "unicode": "\ue6a1" + }, + { + "font_class": "fire-filled", + "unicode": "\ue6c5" + }, + { + "font_class": "flag", + "unicode": "\ue65f" + }, + { + "font_class": "flag-filled", + "unicode": "\ue660" + }, + { + "font_class": "folder-add", + "unicode": "\ue6a9" + }, + { + "font_class": "folder-add-filled", + "unicode": "\ue6c8" + }, + { + "font_class": "font", + "unicode": "\ue6a3" + }, + { + "font_class": "forward", + "unicode": "\ue6ba" + }, + { + "font_class": "gear", + "unicode": "\ue664" + }, + { + "font_class": "gear-filled", + "unicode": "\ue661" + }, + { + "font_class": "gift", + "unicode": "\ue6a4" + }, + { + "font_class": "gift-filled", + "unicode": "\ue6c4" + }, + { + "font_class": "hand-down", + "unicode": "\ue63d" + }, + { + "font_class": "hand-down-filled", + "unicode": "\ue63c" + }, + { + "font_class": "hand-up", + "unicode": "\ue63f" + }, + { + "font_class": "hand-up-filled", + "unicode": "\ue63e" + }, + { + "font_class": "headphones", + "unicode": "\ue630" + }, + { + "font_class": "heart", + "unicode": "\ue639" + }, + { + "font_class": "heart-filled", + "unicode": "\ue641" + }, + { + "font_class": "help", + "unicode": "\ue679" + }, + { + "font_class": "help-filled", + "unicode": "\ue674" + }, + { + "font_class": "home", + "unicode": "\ue662" + }, + { + "font_class": "home-filled", + "unicode": "\ue663" + }, + { + "font_class": "image", + "unicode": "\ue670" + }, + { + "font_class": "image-filled", + "unicode": "\ue678" + }, + { + "font_class": "images", + "unicode": "\ue650" + }, + { + "font_class": "images-filled", + "unicode": "\ue64b" + }, + { + "font_class": "info", + "unicode": "\ue669" + }, + { + "font_class": "info-filled", + "unicode": "\ue649" + }, + { + "font_class": "left", + "unicode": "\ue6b7" + }, + { + "font_class": "link", + "unicode": "\ue6a5" + }, + { + "font_class": "list", + "unicode": "\ue644" + }, + { + "font_class": "location", + "unicode": "\ue6ae" + }, + { + "font_class": "location-filled", + "unicode": "\ue6af" + }, + { + "font_class": "locked", + "unicode": "\ue66b" + }, + { + "font_class": "locked-filled", + "unicode": "\ue668" + }, + { + "font_class": "loop", + "unicode": "\ue633" + }, + { + "font_class": "mail-open", + "unicode": "\ue643" + }, + { + "font_class": "mail-open-filled", + "unicode": "\ue63a" + }, + { + "font_class": "map", + "unicode": "\ue667" + }, + { + "font_class": "map-filled", + "unicode": "\ue666" + }, + { + "font_class": "map-pin", + "unicode": "\ue6ad" + }, + { + "font_class": "map-pin-ellipse", + "unicode": "\ue6ac" + }, + { + "font_class": "medal", + "unicode": "\ue6a2" + }, + { + "font_class": "medal-filled", + "unicode": "\ue6c3" + }, + { + "font_class": "mic", + "unicode": "\ue671" + }, + { + "font_class": "mic-filled", + "unicode": "\ue677" + }, + { + "font_class": "micoff", + "unicode": "\ue67e" + }, + { + "font_class": "micoff-filled", + "unicode": "\ue6b0" + }, + { + "font_class": "minus", + "unicode": "\ue66f" + }, + { + "font_class": "minus-filled", + "unicode": "\ue67d" + }, + { + "font_class": "more", + "unicode": "\ue64d" + }, + { + "font_class": "more-filled", + "unicode": "\ue64e" + }, + { + "font_class": "navigate", + "unicode": "\ue66e" + }, + { + "font_class": "navigate-filled", + "unicode": "\ue67a" + }, + { + "font_class": "notification", + "unicode": "\ue6a6" + }, + { + "font_class": "notification-filled", + "unicode": "\ue6c1" + }, + { + "font_class": "paperclip", + "unicode": "\ue652" + }, + { + "font_class": "paperplane", + "unicode": "\ue672" + }, + { + "font_class": "paperplane-filled", + "unicode": "\ue675" + }, + { + "font_class": "person", + "unicode": "\ue699" + }, + { + "font_class": "person-filled", + "unicode": "\ue69d" + }, + { + "font_class": "personadd", + "unicode": "\ue69f" + }, + { + "font_class": "personadd-filled", + "unicode": "\ue698" + }, + { + "font_class": "personadd-filled-copy", + "unicode": "\ue6d1" + }, + { + "font_class": "phone", + "unicode": "\ue69c" + }, + { + "font_class": "phone-filled", + "unicode": "\ue69b" + }, + { + "font_class": "plus", + "unicode": "\ue676" + }, + { + "font_class": "plus-filled", + "unicode": "\ue6c7" + }, + { + "font_class": "plusempty", + "unicode": "\ue67b" + }, + { + "font_class": "pulldown", + "unicode": "\ue632" + }, + { + "font_class": "pyq", + "unicode": "\ue682" + }, + { + "font_class": "qq", + "unicode": "\ue680" + }, + { + "font_class": "redo", + "unicode": "\ue64a" + }, + { + "font_class": "redo-filled", + "unicode": "\ue655" + }, + { + "font_class": "refresh", + "unicode": "\ue657" + }, + { + "font_class": "refresh-filled", + "unicode": "\ue656" + }, + { + "font_class": "refreshempty", + "unicode": "\ue6bf" + }, + { + "font_class": "reload", + "unicode": "\ue6b2" + }, + { + "font_class": "right", + "unicode": "\ue6b5" + }, + { + "font_class": "scan", + "unicode": "\ue62a" + }, + { + "font_class": "search", + "unicode": "\ue654" + }, + { + "font_class": "settings", + "unicode": "\ue653" + }, + { + "font_class": "settings-filled", + "unicode": "\ue6ce" + }, + { + "font_class": "shop", + "unicode": "\ue62f" + }, + { + "font_class": "shop-filled", + "unicode": "\ue6cd" + }, + { + "font_class": "smallcircle", + "unicode": "\ue67c" + }, + { + "font_class": "smallcircle-filled", + "unicode": "\ue665" + }, + { + "font_class": "sound", + "unicode": "\ue684" + }, + { + "font_class": "sound-filled", + "unicode": "\ue686" + }, + { + "font_class": "spinner-cycle", + "unicode": "\ue68a" + }, + { + "font_class": "staff", + "unicode": "\ue6a7" + }, + { + "font_class": "staff-filled", + "unicode": "\ue6cb" + }, + { + "font_class": "star", + "unicode": "\ue688" + }, + { + "font_class": "star-filled", + "unicode": "\ue68f" + }, + { + "font_class": "starhalf", + "unicode": "\ue683" + }, + { + "font_class": "trash", + "unicode": "\ue687" + }, + { + "font_class": "trash-filled", + "unicode": "\ue685" + }, + { + "font_class": "tune", + "unicode": "\ue6aa" + }, + { + "font_class": "tune-filled", + "unicode": "\ue6ca" + }, + { + "font_class": "undo", + "unicode": "\ue64f" + }, + { + "font_class": "undo-filled", + "unicode": "\ue64c" + }, + { + "font_class": "up", + "unicode": "\ue6b6" + }, + { + "font_class": "top", + "unicode": "\ue6b6" + }, + { + "font_class": "upload", + "unicode": "\ue690" + }, + { + "font_class": "upload-filled", + "unicode": "\ue68e" + }, + { + "font_class": "videocam", + "unicode": "\ue68c" + }, + { + "font_class": "videocam-filled", + "unicode": "\ue689" + }, + { + "font_class": "vip", + "unicode": "\ue6a8" + }, + { + "font_class": "vip-filled", + "unicode": "\ue6c6" + }, + { + "font_class": "wallet", + "unicode": "\ue6b1" + }, + { + "font_class": "wallet-filled", + "unicode": "\ue6c2" + }, + { + "font_class": "weibo", + "unicode": "\ue68b" + }, + { + "font_class": "weixin", + "unicode": "\ue691" + } +] as IconsDataItem[] + +// export const fontData = JSON.parse(fontDataJson) diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js b/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js new file mode 100644 index 0000000..49e42cd --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js @@ -0,0 +1,649 @@ + +export const fontData = [ + { + "font_class": "arrow-down", + "unicode": "\ue6be" + }, + { + "font_class": "arrow-left", + "unicode": "\ue6bc" + }, + { + "font_class": "arrow-right", + "unicode": "\ue6bb" + }, + { + "font_class": "arrow-up", + "unicode": "\ue6bd" + }, + { + "font_class": "auth", + "unicode": "\ue6ab" + }, + { + "font_class": "auth-filled", + "unicode": "\ue6cc" + }, + { + "font_class": "back", + "unicode": "\ue6b9" + }, + { + "font_class": "bars", + "unicode": "\ue627" + }, + { + "font_class": "calendar", + "unicode": "\ue6a0" + }, + { + "font_class": "calendar-filled", + "unicode": "\ue6c0" + }, + { + "font_class": "camera", + "unicode": "\ue65a" + }, + { + "font_class": "camera-filled", + "unicode": "\ue658" + }, + { + "font_class": "cart", + "unicode": "\ue631" + }, + { + "font_class": "cart-filled", + "unicode": "\ue6d0" + }, + { + "font_class": "chat", + "unicode": "\ue65d" + }, + { + "font_class": "chat-filled", + "unicode": "\ue659" + }, + { + "font_class": "chatboxes", + "unicode": "\ue696" + }, + { + "font_class": "chatboxes-filled", + "unicode": "\ue692" + }, + { + "font_class": "chatbubble", + "unicode": "\ue697" + }, + { + "font_class": "chatbubble-filled", + "unicode": "\ue694" + }, + { + "font_class": "checkbox", + "unicode": "\ue62b" + }, + { + "font_class": "checkbox-filled", + "unicode": "\ue62c" + }, + { + "font_class": "checkmarkempty", + "unicode": "\ue65c" + }, + { + "font_class": "circle", + "unicode": "\ue65b" + }, + { + "font_class": "circle-filled", + "unicode": "\ue65e" + }, + { + "font_class": "clear", + "unicode": "\ue66d" + }, + { + "font_class": "close", + "unicode": "\ue673" + }, + { + "font_class": "closeempty", + "unicode": "\ue66c" + }, + { + "font_class": "cloud-download", + "unicode": "\ue647" + }, + { + "font_class": "cloud-download-filled", + "unicode": "\ue646" + }, + { + "font_class": "cloud-upload", + "unicode": "\ue645" + }, + { + "font_class": "cloud-upload-filled", + "unicode": "\ue648" + }, + { + "font_class": "color", + "unicode": "\ue6cf" + }, + { + "font_class": "color-filled", + "unicode": "\ue6c9" + }, + { + "font_class": "compose", + "unicode": "\ue67f" + }, + { + "font_class": "contact", + "unicode": "\ue693" + }, + { + "font_class": "contact-filled", + "unicode": "\ue695" + }, + { + "font_class": "down", + "unicode": "\ue6b8" + }, + { + "font_class": "bottom", + "unicode": "\ue6b8" + }, + { + "font_class": "download", + "unicode": "\ue68d" + }, + { + "font_class": "download-filled", + "unicode": "\ue681" + }, + { + "font_class": "email", + "unicode": "\ue69e" + }, + { + "font_class": "email-filled", + "unicode": "\ue69a" + }, + { + "font_class": "eye", + "unicode": "\ue651" + }, + { + "font_class": "eye-filled", + "unicode": "\ue66a" + }, + { + "font_class": "eye-slash", + "unicode": "\ue6b3" + }, + { + "font_class": "eye-slash-filled", + "unicode": "\ue6b4" + }, + { + "font_class": "fire", + "unicode": "\ue6a1" + }, + { + "font_class": "fire-filled", + "unicode": "\ue6c5" + }, + { + "font_class": "flag", + "unicode": "\ue65f" + }, + { + "font_class": "flag-filled", + "unicode": "\ue660" + }, + { + "font_class": "folder-add", + "unicode": "\ue6a9" + }, + { + "font_class": "folder-add-filled", + "unicode": "\ue6c8" + }, + { + "font_class": "font", + "unicode": "\ue6a3" + }, + { + "font_class": "forward", + "unicode": "\ue6ba" + }, + { + "font_class": "gear", + "unicode": "\ue664" + }, + { + "font_class": "gear-filled", + "unicode": "\ue661" + }, + { + "font_class": "gift", + "unicode": "\ue6a4" + }, + { + "font_class": "gift-filled", + "unicode": "\ue6c4" + }, + { + "font_class": "hand-down", + "unicode": "\ue63d" + }, + { + "font_class": "hand-down-filled", + "unicode": "\ue63c" + }, + { + "font_class": "hand-up", + "unicode": "\ue63f" + }, + { + "font_class": "hand-up-filled", + "unicode": "\ue63e" + }, + { + "font_class": "headphones", + "unicode": "\ue630" + }, + { + "font_class": "heart", + "unicode": "\ue639" + }, + { + "font_class": "heart-filled", + "unicode": "\ue641" + }, + { + "font_class": "help", + "unicode": "\ue679" + }, + { + "font_class": "help-filled", + "unicode": "\ue674" + }, + { + "font_class": "home", + "unicode": "\ue662" + }, + { + "font_class": "home-filled", + "unicode": "\ue663" + }, + { + "font_class": "image", + "unicode": "\ue670" + }, + { + "font_class": "image-filled", + "unicode": "\ue678" + }, + { + "font_class": "images", + "unicode": "\ue650" + }, + { + "font_class": "images-filled", + "unicode": "\ue64b" + }, + { + "font_class": "info", + "unicode": "\ue669" + }, + { + "font_class": "info-filled", + "unicode": "\ue649" + }, + { + "font_class": "left", + "unicode": "\ue6b7" + }, + { + "font_class": "link", + "unicode": "\ue6a5" + }, + { + "font_class": "list", + "unicode": "\ue644" + }, + { + "font_class": "location", + "unicode": "\ue6ae" + }, + { + "font_class": "location-filled", + "unicode": "\ue6af" + }, + { + "font_class": "locked", + "unicode": "\ue66b" + }, + { + "font_class": "locked-filled", + "unicode": "\ue668" + }, + { + "font_class": "loop", + "unicode": "\ue633" + }, + { + "font_class": "mail-open", + "unicode": "\ue643" + }, + { + "font_class": "mail-open-filled", + "unicode": "\ue63a" + }, + { + "font_class": "map", + "unicode": "\ue667" + }, + { + "font_class": "map-filled", + "unicode": "\ue666" + }, + { + "font_class": "map-pin", + "unicode": "\ue6ad" + }, + { + "font_class": "map-pin-ellipse", + "unicode": "\ue6ac" + }, + { + "font_class": "medal", + "unicode": "\ue6a2" + }, + { + "font_class": "medal-filled", + "unicode": "\ue6c3" + }, + { + "font_class": "mic", + "unicode": "\ue671" + }, + { + "font_class": "mic-filled", + "unicode": "\ue677" + }, + { + "font_class": "micoff", + "unicode": "\ue67e" + }, + { + "font_class": "micoff-filled", + "unicode": "\ue6b0" + }, + { + "font_class": "minus", + "unicode": "\ue66f" + }, + { + "font_class": "minus-filled", + "unicode": "\ue67d" + }, + { + "font_class": "more", + "unicode": "\ue64d" + }, + { + "font_class": "more-filled", + "unicode": "\ue64e" + }, + { + "font_class": "navigate", + "unicode": "\ue66e" + }, + { + "font_class": "navigate-filled", + "unicode": "\ue67a" + }, + { + "font_class": "notification", + "unicode": "\ue6a6" + }, + { + "font_class": "notification-filled", + "unicode": "\ue6c1" + }, + { + "font_class": "paperclip", + "unicode": "\ue652" + }, + { + "font_class": "paperplane", + "unicode": "\ue672" + }, + { + "font_class": "paperplane-filled", + "unicode": "\ue675" + }, + { + "font_class": "person", + "unicode": "\ue699" + }, + { + "font_class": "person-filled", + "unicode": "\ue69d" + }, + { + "font_class": "personadd", + "unicode": "\ue69f" + }, + { + "font_class": "personadd-filled", + "unicode": "\ue698" + }, + { + "font_class": "personadd-filled-copy", + "unicode": "\ue6d1" + }, + { + "font_class": "phone", + "unicode": "\ue69c" + }, + { + "font_class": "phone-filled", + "unicode": "\ue69b" + }, + { + "font_class": "plus", + "unicode": "\ue676" + }, + { + "font_class": "plus-filled", + "unicode": "\ue6c7" + }, + { + "font_class": "plusempty", + "unicode": "\ue67b" + }, + { + "font_class": "pulldown", + "unicode": "\ue632" + }, + { + "font_class": "pyq", + "unicode": "\ue682" + }, + { + "font_class": "qq", + "unicode": "\ue680" + }, + { + "font_class": "redo", + "unicode": "\ue64a" + }, + { + "font_class": "redo-filled", + "unicode": "\ue655" + }, + { + "font_class": "refresh", + "unicode": "\ue657" + }, + { + "font_class": "refresh-filled", + "unicode": "\ue656" + }, + { + "font_class": "refreshempty", + "unicode": "\ue6bf" + }, + { + "font_class": "reload", + "unicode": "\ue6b2" + }, + { + "font_class": "right", + "unicode": "\ue6b5" + }, + { + "font_class": "scan", + "unicode": "\ue62a" + }, + { + "font_class": "search", + "unicode": "\ue654" + }, + { + "font_class": "settings", + "unicode": "\ue653" + }, + { + "font_class": "settings-filled", + "unicode": "\ue6ce" + }, + { + "font_class": "shop", + "unicode": "\ue62f" + }, + { + "font_class": "shop-filled", + "unicode": "\ue6cd" + }, + { + "font_class": "smallcircle", + "unicode": "\ue67c" + }, + { + "font_class": "smallcircle-filled", + "unicode": "\ue665" + }, + { + "font_class": "sound", + "unicode": "\ue684" + }, + { + "font_class": "sound-filled", + "unicode": "\ue686" + }, + { + "font_class": "spinner-cycle", + "unicode": "\ue68a" + }, + { + "font_class": "staff", + "unicode": "\ue6a7" + }, + { + "font_class": "staff-filled", + "unicode": "\ue6cb" + }, + { + "font_class": "star", + "unicode": "\ue688" + }, + { + "font_class": "star-filled", + "unicode": "\ue68f" + }, + { + "font_class": "starhalf", + "unicode": "\ue683" + }, + { + "font_class": "trash", + "unicode": "\ue687" + }, + { + "font_class": "trash-filled", + "unicode": "\ue685" + }, + { + "font_class": "tune", + "unicode": "\ue6aa" + }, + { + "font_class": "tune-filled", + "unicode": "\ue6ca" + }, + { + "font_class": "undo", + "unicode": "\ue64f" + }, + { + "font_class": "undo-filled", + "unicode": "\ue64c" + }, + { + "font_class": "up", + "unicode": "\ue6b6" + }, + { + "font_class": "top", + "unicode": "\ue6b6" + }, + { + "font_class": "upload", + "unicode": "\ue690" + }, + { + "font_class": "upload-filled", + "unicode": "\ue68e" + }, + { + "font_class": "videocam", + "unicode": "\ue68c" + }, + { + "font_class": "videocam-filled", + "unicode": "\ue689" + }, + { + "font_class": "vip", + "unicode": "\ue6a8" + }, + { + "font_class": "vip-filled", + "unicode": "\ue6c6" + }, + { + "font_class": "wallet", + "unicode": "\ue6b1" + }, + { + "font_class": "wallet-filled", + "unicode": "\ue6c2" + }, + { + "font_class": "weibo", + "unicode": "\ue68b" + }, + { + "font_class": "weixin", + "unicode": "\ue691" + } +] + +// export const fontData = JSON.parse(fontDataJson) diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..6b681b4 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "2.0.10", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y", + "app-uvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "y", + "快手": "y", + "飞书": "y", + "京东": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); From 824f3c49013bb3a853a1c489f787879027579b72 Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Fri, 1 Aug 2025 11:29:03 +0800 Subject: [PATCH 12/16] =?UTF-8?q?feat:=20=E5=AD=97=E4=BD=93=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/components/GoodsInfo/index.vue | 2 +- .../components/GoodsInfo/styles/index.scss | 4 +- .../components/OrderStatusInfo/index.vue | 68 +++++++++++++++--- pages/order/components/TopNavBar/index.vue | 9 +-- .../components/TopNavBar/styles/index.scss | 10 --- pages/order/detail.vue | 9 ++- pages/order/images/back.png | Bin 311 -> 0 bytes pages/order/styles/detail.scss | 15 ++-- static/fonts/iconfont.css | 10 ++- static/fonts/iconfont.ttf | Bin 1924 -> 1964 bytes 10 files changed, 83 insertions(+), 44 deletions(-) delete mode 100644 pages/order/images/back.png diff --git a/pages/order/components/GoodsInfo/index.vue b/pages/order/components/GoodsInfo/index.vue index 09284a6..73d4b78 100644 --- a/pages/order/components/GoodsInfo/index.vue +++ b/pages/order/components/GoodsInfo/index.vue @@ -46,4 +46,4 @@ defineProps({ \ No newline at end of file + diff --git a/pages/order/components/GoodsInfo/styles/index.scss b/pages/order/components/GoodsInfo/styles/index.scss index 1f4ca7c..4b73fbc 100644 --- a/pages/order/components/GoodsInfo/styles/index.scss +++ b/pages/order/components/GoodsInfo/styles/index.scss @@ -28,7 +28,7 @@ } .goods-image { - background-color: pink; + background-color: pink; width: 65px; height: 65px; border-radius: 8px; @@ -74,4 +74,4 @@ .service-quantity { font-size: 12px; color: #666; -} \ No newline at end of file +} diff --git a/pages/order/components/OrderStatusInfo/index.vue b/pages/order/components/OrderStatusInfo/index.vue index 117f331..ddbdf25 100644 --- a/pages/order/components/OrderStatusInfo/index.vue +++ b/pages/order/components/OrderStatusInfo/index.vue @@ -4,17 +4,52 @@ - 已取消 + size="20" + color="#fff" + > + {{ "" }} + + + {{ statusText }} - 您已取消待支付的订单 + {{ statusDescription }} \ No newline at end of file + diff --git a/pages/order/components/TopNavBar/index.vue b/pages/order/components/TopNavBar/index.vue index a160644..92c086a 100644 --- a/pages/order/components/TopNavBar/index.vue +++ b/pages/order/components/TopNavBar/index.vue @@ -2,11 +2,8 @@ - + + @@ -57,4 +54,4 @@ const goBack = () => { \ No newline at end of file + diff --git a/pages/order/components/TopNavBar/styles/index.scss b/pages/order/components/TopNavBar/styles/index.scss index cdc929d..1b92fb4 100644 --- a/pages/order/components/TopNavBar/styles/index.scss +++ b/pages/order/components/TopNavBar/styles/index.scss @@ -1,12 +1,9 @@ - - .nav-content { display: flex; align-items: center; height: 40px; box-sizing: border-box; padding-top: 8px; - } .nav-left { @@ -17,11 +14,6 @@ height: 30px; } -.back-icon { - width: 16px; - height: 16px; -} - .nav-center { flex: 1; display: flex; @@ -34,5 +26,3 @@ color: #333; text-align: center; } - - diff --git a/pages/order/detail.vue b/pages/order/detail.vue index bd303f5..9f5468d 100644 --- a/pages/order/detail.vue +++ b/pages/order/detail.vue @@ -1,6 +1,6 @@ + + + + \ No newline at end of file diff --git a/components/Calender/styles/index.scss b/components/Calender/styles/index.scss new file mode 100644 index 0000000..bba01e7 --- /dev/null +++ b/components/Calender/styles/index.scss @@ -0,0 +1,265 @@ +// 颜色系统 +$primary-color: #1890ff; +$primary-light: #e6f7ff; +$primary-dark: #0050b3; + +// 中性色 +$text-primary: #262626; +$text-secondary: #8c8c8c; +$text-disabled: #bfbfbf; +$background-white: #ffffff; +$background-gray: #f5f5f5; +$border-color: #d9d9d9; + +// 状态色 +$success-color: #52c41a; +$warning-color: #faad14; +$error-color: #ff4d4f; + +// 尺寸规范 +$modal-max-height: 80vh; +$modal-border-radius: 12px; +$modal-padding: 12px; + +// 日期格子尺寸 +$date-cell-size: 40px; +$date-cell-gap: 4px; +$date-cell-border-radius: 6px; + +// 字体大小 +$font-size-title: 18px; +$font-size-subtitle: 14px; +$font-size-date: 16px; +$font-size-price: 12px; +$font-size-label: 10px; + +// uni-popup会自动处理遮罩层和定位,这里移除相关样式 + +// 弹窗主体 +.calendar-popup { + position: relative; + width: 100%; + background-color: $background-white; + border-radius: $modal-border-radius; + overflow: hidden; +} + +// 头部区域 +.calendar-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: $modal-padding; + border-bottom: 1px solid $border-color; + background-color: $background-white; +} + +.header-content { + flex: 1; + display: flex; + flex-direction: column; + gap: 4px; +} + +.header-title { + font-size: $font-size-title; + font-weight: 600; + color: $text-primary; + line-height: 1.4; +} + +.header-subtitle { + font-size: $font-size-subtitle; + color: $text-secondary; + line-height: 1.4; +} + +.header-close { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 50%; + transition: background-color 0.2s; + + &:active { + background-color: $background-gray; + } +} + +// 周标题行 - 固定显示 +.week-header { + display: flex; + padding: 16px $modal-padding 8px; + background-color: $background-white; + border-bottom: 1px solid #eeeeee; +} + +// 日历主体区域 +.calendar-body { + padding: 8px $modal-padding $modal-padding; + max-height: calc(#{$modal-max-height} - 140px); + overflow-y: auto; + -webkit-overflow-scrolling: touch; + + &::-webkit-scrollbar { + display: none; + } +} + +.week-day { + flex: 1; + text-align: center; + font-size: $font-size-subtitle; + color: $text-secondary; + font-weight: 500; + line-height: 1.4; +} + +// 全年容器 +.year-container { + display: flex; + flex-direction: column; + gap: 32px; +} + +// 月份区域 +.month-section { + display: flex; + flex-direction: column; +} + +.month-title { + font-size: $font-size-title; + font-weight: 600; + color: $text-primary; + text-align: center; + margin-bottom: 16px; + margin-top: 8px; + line-height: 1.4; +} + +// 日期网格 +.date-grid { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: $date-cell-gap; +} + +// 日期格子基础样式 +.date-cell { + position: relative; + width: $date-cell-size; + height: $date-cell-size; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 2px; + border-radius: $date-cell-border-radius; + transition: all 0.2s ease; + cursor: pointer; +} + +// 空白格子 +.date-cell-empty { + background-color: transparent; + cursor: default; +} + +// 有内容的格子 +.date-cell-content { + background-color: $background-white; + border: 1px solid transparent; + + &:hover { + background-color: $background-gray; + } + + &:active { + transform: scale(0.95); + } +} + +// 禁用状态 +.date-cell-disabled { + background-color: $background-gray !important; + color: $text-disabled !important; + cursor: not-allowed !important; + + .date-number, + .date-price { + color: $text-disabled !important; + } + + &:hover { + background-color: $background-gray !important; + transform: none !important; + } +} + +// 选中状态 +.date-cell-selected { + background-color: $primary-color !important; + border-color: $primary-color !important; + + .date-number, + .date-price, + .date-label { + color: $background-white !important; + } + + &:hover { + background-color: $primary-dark !important; + } +} + +// 范围内状态 +.date-cell-in-range { + background-color: $primary-light !important; + border-color: $primary-light !important; + + .date-number { + color: $primary-color !important; + } + + .date-price { + color: $primary-dark !important; + } +} + +// 日期数字 +.date-number { + font-size: $font-size-date; + font-weight: 500; + color: $text-primary; + line-height: 1; + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} + +// 价格文字 +.date-price { + font-size: $font-size-price; + color: $text-secondary; + line-height: 1; + font-weight: 400; + text-align: center; + min-height: 14px; +} + +// 自定义标签 +.date-label { + font-size: $font-size-label; + color: $primary-color; + padding: 1px 4px; + border-radius: 2px; + line-height: 1; + white-space: nowrap; + font-weight: 500; + text-align: center; + min-height: 12px; +} diff --git a/components/Calender/year-demo.vue b/components/Calender/year-demo.vue new file mode 100644 index 0000000..ccdaf02 --- /dev/null +++ b/components/Calender/year-demo.vue @@ -0,0 +1,269 @@ + + + + + \ No newline at end of file diff --git a/pages/order/components/OrderInfo/index.vue b/pages/order/components/OrderInfo/index.vue index 56f820b..dfa1165 100644 --- a/pages/order/components/OrderInfo/index.vue +++ b/pages/order/components/OrderInfo/index.vue @@ -23,8 +23,13 @@ {{ formattedAmount }} -