7#SEE=o=X68ye{vnp+tgSs558K!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EV
zetCJhUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal
z@=Hr>m4GgVcpucqiS6q^qmz?V9Vygtyua}vbVr6J*;^buLXku>WW@2dQYU*fd;OJ=PYT@W&
zWNu+4ZC?Vt)0Bv?jEy^rQO>ryA&s6|>*eVmZTa0j;
z2i2Q`+bza8_38s1qYsK!q-cf-0n-kM2~V^@4m{bX<^j`s5in63MQrc{=CEC!E{-7;
zx8B^@?IjZ^bKqg=MuXNxPC^A+BMJ?34TM}5|KJg8%1==Jq0ltde}Shjhgc
zBwd^Eh40UUSHG-2NqJa45HBsAc->*@l|O%r7uM_O@qhV#tbX=VTN5OB_OZHB?|2jQmF8j?|o=~3P@tBV%pzUd(y_X5agFMj+9?Z;SpbF_kAc9B628
n1Y$yl2Y%)kp^j~lTlnWvqUJ7=Y>Ul
zie~nzd{&J4&Iy++n!1UB_c`fi7Uepdtji{Puq?jK~K{wxS=clLl
zGQY|1mF6
z@EdB+xwb-Iw}k<%z=FHyv?e(;=nn~6XKk#gFO@F})E4e1%gP*Y1feoR5?ZlGmC={W|=pt@yA?nY0DzBOSY%ET=&4
zUO<2BIH$`-fp=ebTKB3rjC~PUUna8bC7IAjRvO^nwV+9Auu3fa(m1Q7U)94t@jMZC
zhlRj|dDf9928Xmry7#0RQSj#S`G+LPeLQD2k5i|0K^@?V1fjWI)f3vgrB6=3bI1QA
z)8-0Wy$`C-P;M>BmWEbI`{0D2iS*wZ8>00+{N76hzAFgY~1G>A3AoPL>~m^D|ugE7zS*JuD()OGe1(!~TNMf=efoQl8m6*N3
zC*qsFjBfdPf8B~Keaxr}De2GtaI0J@ax{j?%4{y-F>RDnLpo`;x^W@FK82886~>sZ
z;9+$7+SHRR9Kb>JY(mAJSCP4*SIcAq(`W>e^Ds
zd|1C5q4vjUuG)3mYh*OHBk;?E#;7P$_;D!8yf(BBGEqAcln)-MRiVz5?VyeGJesTE
zqnr6=9J%}6c5K=lp6hj0pYdH$Rv)u*xiYeR)%hfjESu#JPd=(iRZ<`Ed)AmFkZ1`n
zdTyS?g8HTS-Ha8A;mN4?Q3Xrr&Ec;DV6R__y)mUE1H)JH@O^#UV{YpDb%iXiUESZP
zwd)CcyN5IG6CrEvamlL;Wr(C(?>WsEn?jI7{n@CWk|o!+hrpt-USE^e$EQ
zL%KEJu00gnKP5vOomW463ZPTSq4
z(k0?*oEoqI-j0_az+<7|js>8C4Lm1%`8>vG_V77BYLI%(tY_yrqAr>aw)!!?9Xv0w
z247+-Z@V4TRM3DCPE+jOGJn}~qmKF%8fxC5d`l}r#$#M|k~
z0d2+cEQuZXk-VPAzSD#>u34F_nG$WZ|DTgp8@CHg>p130maMu&p%V*)3u3W?nX`I*
z<@J%Q_#B{H1u{#CcAL|c=N>TG&d$Oe?#96%?H4<#%Ohxov)?~{b%EJ%vh!*4-f&q}
zJ9CA8eR4cgRqg$9={Jt%t1!-MTUN>IO|
zmWw>uHxCeRxYhl^$5%B48XIo&v2n1IWedKtyDF-T5lp$c4@G5ng(~SoRbWu7FY>7M
zH=j~6XFLj9HHC#m;+;yGV7yrQ$&s!;dfIF%ajEe0Rg9S5uOlI&PAWdDsYKBa96MR9
zX9;N3*-11Q>IeF8Z}28o0@ZZUyq7g3_!jr+OeA;vTWuhypu9l)cY#vM(3;QLJ8meV
z#`UNn6mh5xZRiZ`P%EV~u-=NOGadZ06&pO^)_SrX3ZP+K7lBj$7BMNjSaXhizx^+i
zJ^_!6dGQ-As*@~tcQk!?vo|tGjk9xBJ~ayB2QMktsU(V>G0PNnn=9~f>0N!##d3Xa
z6Jo`;_A!JAI!DUs`;1;zC~5b7n$o%?ixL_IsQ#sSmIzOk6eL_y^{RuI$m)=s4+-t6
ziJvPq5KN&8$(ftEIj&Fqe|rab!xs0BVNYiJGzDa-#69B=8b
zF@&cK%Nby%$1m(e9>mVgb4f6L5oEjdZ!6Lh1Os~QsHX#HUH@SD<(l6uXW`geA9s27_nnk%|c~7e5|(SK<0%*q2U!g
z+^6UM*iecDN^)5~VRYM-t-3djXLdvL_N%2az<98+TYvuV`b_*8Ee~ZsVR?7Soum%O
zR+^bSd4(t^YB!lxc^5#!Eehq)Y9|M=_i;}=s-(_o>{{0U@(JU#VY%{h<%(P3m7()G
z7=32@^KL?x=$RHjYd@V&`S<$MBr1OM1rb8sLj-v}owyA?Lqu14L!8O#z+jQx)V!T2{-*;X7LWt%X94YBs?vgHVsQ^B
zE>m7ph7PI-p}!;!YQmZ?3MZ$ICS=WKxIZ0jOX`5c7JP>>a#n-YM_v>MelXg2|yX3->nZW8}-hL^X+$EgtC@@y%!Q
zRc+;v?!{V*$K9cW9hZJ;`g-Z>*|Rvu{%9ZaH!3VFBdYjBagkU$C-mF7YgT3Q3(?>;
zzw0N2`;sx#FFa$MJXPg|^q2V_2d|Y1iz_`#C`em_O$GMYTj$F4DzruzW-M
zPzVP6Wm#G=_c%N<7QNMc76|#u=!U9etOP7Bln&8;P_3@Lt+QbC6Sp;8Kwl~Oy?$Y2
z(9iD3m0#KflaUXO_X>%H+UwE|LWd(+SQ2H$9TDH$yoEd(jZ|x!c%3aq8E80|l0?DH
zSjP)Fd3j+m3;0-|-nEFSnfbY{tEF5Q7XAB=oU22hIYj3zgTxVyxz-(b-H|nAYtPlP
z5G@tE)z9y)AZS}%)Yd&ZPEGP&P7>kRu;P8B;ykBov0RFcce!K(W|r{2o(XR*SSyt@
zcBiy)xPm0%n%E(4=I1HKNosuWoim$=2IoDNN3|%5vb-a{55fm$N;K`xh{Mlt0hHNg
zzZx!44`)Y1w?c)52jvSiD^u3Z7k!g8>wXV^7Q!RPQcAzhBt(s`D-Z2!ZL7qP1n||Jo{?oB9Y_2=dj31slJ2c
zf!kvl&$#ctz;toleza_&RYRJZ0q(h-@C$8Wh{$2sg;9S3mE`5{2zRKrr3aO3}Fn
zo;8q13l~pJ4aL7YEAZ$=v>9dMCyC-KglT76zuDqdOr_7WwkDH?-|bZqp#nW3y(E1nsCnKd;6Hs
z6W848;;8K@8Q<&eds>MoYfnNc1wXW(SlsB?ZJ
z7{U%iT;VEJeGk>kO|Kk(!qtBLL*%3mvxTx*_x4HEl&URh(6PpHK?@u0EBfFU9rr~f=@vqXCtw!fYUOT^D
z?d+s{kCWbmaGTsPP8=l`r6SJ*Zdl5@t6qW!8i+n%okkvH3qRzfxqXt+gT?ki+(T2P
zfa{R$z7#jT=D&o?!>lSgjq84`6@;(+Y9pzygcxeiNO)V=Hy2u-BLW!J|{sREh
zbddDB&nHB#*%xxbb9lZQYAAtYwfh-S`CA&WnH>VNUMD@2*FO5w2Je3G=1qE0W0?+*
z4*eOf_%Wit4Ls0K59U0XEZnxlU2XHaB0wM4esrE+^*EwKB=VUK>^P&cyWrOz`mL0b
zWmlI}Af1-!F|oPo^$&MNG>%1=7yW3Swd)|U$*OMMEBo+NE
zT-Qv@f|9%v+fu@?M7n=jq@t`EiG`IcOLTs6x9Jm;0#@|p5eCu?Sx}>Zku-r}d!LS5
zq>0@X`R9tQKH3uss<+F%5Kv*+gxTd->)HMh@$|KoD{k|rD#-<6iw=BpcTy!8ml`;W$
ziQ}2C;X<|+X6GdCj*Ow#Kk31V9PNes-d8}*DyZbg?-R54_N^z@uAUR7jTMTRNY=lI
z$SWPpUSo746x1Y11vcQC!Zm#>q62}U5PN`H?TG4}XfwP7=IgGk^$qF0qo4LQy`Mbm
zpTU<<6(#bMB9xKi0!>`fz>L6`9k_DgNSzb$N`3>e)V3y*a{o=>_TABy(iIEr$Ps_V
zu+gr%zwvg>XV_Q8xAuk*pNN)dvi+#@#t{uENe{4~>LzMS{|9w&;NjP~?dNPGd(C
z+27}ME_rT8^(WnZ&1Qtxu*Ru*yK2x+u|Iw6_`iVoAa_g>PTrV>NeL-h@{i?B^_5yZ
zrpKj0COwC5Av7zNfdNI6?#rsz$Hdu|uEZaDK)4v=WEGee;Pul+R+RwJ*%KU4rYRJ3
zJ6qJ$LZ7dgbNa4g`A6g!yfoM+3SfDT18?#R=A0NcY&(1uH6$&NI)g_sF99;*RSz-n
z`z`UgPjfBVrs{prwe>e(SI2t)&`|*HX<|XkWaP5_@fK){8aVIqP`E#R9C@8H7Q%-}
zgNTTYWV9h~SHV!*y2(%OWysDTB2j2X2-2S6>tihzr2gG&2YJSMd0PHv{5}SOXpfn4
zk}?F-Q85SmxF4A}Hf^k{HsZCouZ}5PJW1Z!O?QYlZoxZ!-VYqN6k>cvzOL&4x;Qr-
zh|BpTlg_M?W?E&+AfoEE^`d_aJ~NmHui+qNIF;)hqb1*v189Z9BRutAJp95vsoE~G
zOES)76sZx}ScB%@6cw@_O{{NOAv6O%(Sk+s`VQ`Zp8r0=uR*CNxBrZHMD{Xle(+`q
zt=%cz+~`;>7e=pu#w9LatpXZPz4x6uF#|oGpS7P!7F5;FdVxXecVsFN`uoc-wZ98+
zQWGzg5{qmKw!7$bC_{gJGR$>%3!M{NwFJMeVi@l;E$HxeN$@>;K$8vB3KCmu_&wT;
z(;uPu2FNnUh4e0)_r|fG#2nY3BAbCYI`v;EjWPoRc+$itAZ=__-5WiD5vZjx(P{ae
z#>siMmm@%r&+!0gEzHZcnUE&*^b^AvFcta`lgp@dG{tl1pFY!Q6OF7^Bfby0QH(}koQl8J
z2MpO{b3<7pzP}f}B5!%5$TyRF4L>ITx}hl(%ETeeU5%O-{i*fkr!j+DrHs_W3u_-M
zC^f^=uZLqBN_VbqiXtekuZB(fEBw3vR5#5K+K}-Vndp4^u}yYOG6vXn+y~!_paA|?
z=L(9t;ZFLbHe^Plq(UUO6L%bRSFTiJPFp=p*IvADCdc}Q`RnYdPJtJ-jTb?F@s;0h
z##>TgWz!oEp1wcYO3{IN5~TP1v`}ZnEc6hvP^96Qe)g}I4+SFTO@2nA9uoTeDmhj>
z{nk>N?pg0RxQ9#f^yB_Sn*2g6&w2!ZCE=B9>f~=viFdg8UPrjEg{rp$UT>E5j}PWV
zDYF;I%IIkoR0xiy9q2C+jZcMAQf=2z4Jx&Wl7tjgKTvbiVLdPmk~~(5OZB2ezyv>uXX=m#g5NvleM+`v
zm)}#i$4Xs}`Mr|(_pFQ9>l}OE=>Ea+#XTLk345$dZQZ&^F%9^Y^EtNSYlnX_I(^Xl
zq92l0c7m<(V*9d8jb7-TG;|ZrTo(a$49Wav|2*HDC4MZs4`tCKEHw+J7S%R5rL}D5Tjf!aUd9JZj*zvv|fZFub90IozMl6>|hw&S%i8g~(*9HEpmyo#XVLx=0
zJR0!mh$p#D7iLjlADQ*AE64?rjjZG!k$~j#;O3Ch?)zAMqxa3K#peZw&y~WlCHQ{s
zumTgGy``5@5*^{>HKive!Ik@b*SgDU%n=?g^kd5A#eJS+cV=m-T&2{J0T`$@kqV<$
zJN$y5413_cWqJZ=mgc|xwMBG`@aX}!4Q%*6cj1iz_lbvvanu#np#v|fj+WeTe^KCO
zY<}hW!b(ZP_%eNBd0zMROot?`dDrp%;x}ohp)v)j>^$Z3x2njt483d_dTtJaPbAQ%
zLsfCOziu>_&g5AyEJRSJs)bSD6kaV0)U?N}Gsa%l)>!1vtL90TD|#Vak0G
zs$jV=sksF9WADvasumSFu5nCkP!C`r;x3-BI_ENa?KbkB2a_slTibBbN`6Y{tK>-$
zuCdU%S-xaa_|=r(S&1{kPye@En^0BV#Wd+kDMFzA&LbTbOJa{&`{5y_3b
zEgi}UXeQcJ=FBo|-u~S_aGYgfoUNWT6AJ63X3=vTlkO8ae>zzfbUgepfY7sj
z_pE3()&G-8Qa#ZOZ{C2l;=}NT2k+sJH__UCTnvg!V+s+BmY!=yaP;|I|H`MX$x|*2
zWHVM-nFop=(^>a7b6AAF`ZGDKf05G)oE?N%IT7ht-+8A;;+x!yY&${d<6%S$^x|4B
zCQ+;eap{36LA#yf6z;S@dZ3npSCfpChEAcJ5qWoPTjs|2nYz$2-`%gcjMR`56>9sBdupHpS*$%QwtsS8Y_S>ZEM_
zO$??lEzyjs9qXxyB}sx!v#inX-1T1scm|sI8gnLJoY9c({_-F-VS`bDEYztLf?PJU
z)(U`b_UBbo6MJ(2Fh;x2bAxe6qaqd0^lJ|8)S#$oVYG((g#3#JP`8n==zgegb#5S+
zzlLT7YMTN^Q(t9>6DWa$VBc@&k~YeJqFzo3qL&!GhQU){DO1Xj|0#c49*gI{jiKy$NQB3{mAXxN~H^;=bSE=5W2
z_I4^Ma5E?8K&ikuU=uY1!PLR?^_5Y*agxi@!90Gd^2pI7$C_y{UNO2hHP7~~JWM#!
z5~yXtTWQdIC~6zjazobW1AGq(CRzGuD%zz&HA+YDH6@C8jVmwvm8_%^S>^kT{-PcU
z+uYa>oz%oXg&Cgj5bI^CX%UX&Mjae@gB6a0db+u$I}1vY7cL
zQx6n6nH$-1Dax^b{-b++UZ!HxIU_CO?8e}Mlc^I%RwEg5Q{U^_`T2;!3|oui4{}ab
zA5#NEC)8!L*vQNTHehN1UFHL)|=VA
z%6jWWq)7SeD{3m%)0tzrE;XBy%jY_w}P&;8?DBxl#SXn1$pw-6StNmf9Nl>E-~w^sSh>Bp{;M#rzBH
z=U3h5SG0oO%rjdWQ*~f>M%^?u
z^}73qoB!z8f2;40O`~-l_*WwZeoxwLR)A8>*-0&(xmVogL*r^NQXwxJjrzhAt$fm0
zotBrYfb>U^Jswx@8(T)GSw29!u}>`EF26ihoGjGO@3vxpsb-2=(Z|ohT|7@_7Dfdh
zB9QR;hchrk5H4Eoe7Q#1@zGxYSzZC%2%+cMD;)}cz^=r&TbBdt>}VoCi(l`3V=QDE
z6Fe&VRrUjr@d-d#N!tAp(_J3LC$9T1%@$ttEa4S{q9Xk~n>|blKxWWOHz8k8x4s@f
zbE(ajMS1ItK-XWae*|kcX)=Gi?mp?$SK9mT+C7Y^vRXz+F88P-)jAwjhS-VKM0
z(zD6;<;XW}kR%0PB;0)Pj2YS7_JOg7>=K1bmo&`X+T%Ba=#Jz{esnVrVxv6j>D&Ac
z3bc=XQHa=^SH-9tygsA?8F}3%3rcX=)(%P`<}qeaR+-u0vh9u`Ic#Rq*s2B!U92-L1POs;q3xx~#ZPtGL<9?^bvx`RUu|7;+r_X$H65mXzeSHW
zl@MOH@_$Ec2ve6N9XnpEHG`ECMN7W0Qg65>(N;8aJyJ~@vh4prswvs
z_;>M`>veGu`BIe2qt@P4Lvt~XWkPBx^7R9(+vmCKAveKPX68@&2@#pAOIk|~r>y``m3vp?8ToS5&gH5nQB|M07G*)WIU*zfF}uh2fOm@*jK`uM`85>&0&UY#
zkD<+*mbpyn31~UMk(C_o<@X5wAHzp5r5Ex(xqePh37GiX`29jz>uwrk
z&}AG@rL0a<`pApp_|LEPa3K5jt{BQ~cvB>mf=;BbFe|PxitMYc#KD
znas{sx3uLx?b^8*T1HiwQZv$+wROrXIS(;M@!Y%#$Ij-Q-Ty*qoE;VXO!}gJ
z>D#xDcD%w5SRiwG_(3%yJo`CvcXTJCc08eW3?3i#THuTOs-1Qu)eN}9H2ielkomEM
z-c2YHJ+J;t_^Y1|+wx5`(=d~Afbi1M{t0p0D?PznU^X`ChxO1fhnPjJg*$$IOuXCMXj#cOfgK;XTUt&nY@HN5JjTuPDR8!;i3A@RR-P
zfS#?|Ddnh&YdBfbt4SAf$dbxhmW|YwQ%$&^e%q<5N}6BM$>ccQDbO7sM@I7;$>;X#
zS;Q{8LH}#{ewNLYYa#ogv2+KRiOhYDkQbo`d0dptGlIFA5ReF4j+mK_{KWDJo=A1o
z9&ia5gMLMh7CieP*?bn^>E>i00x{&wqjfsY&ALt{iIhZsJ#9InqvF}XeJkKOZ|E`1
z0`V<1IWE;i9Uz26M;NC#az&mJiTJ*rc&;hUNFc>1S0hVmLQ3QI_t~Q7R!q)nSYnXo
z!0#s+ZPl;B+B-&tmX*(2hG$Bq^U?nN+xcW_NdfS_+xq$MuPhf?jNgyWTXWeh*HN^w
z%v9QmJ$$g4n-N>oXq`b|O?G+9QtA9r3ZeWAA}>;HIkB9&M8W
zqg?pL(nOZCw%2$rz4h_l;AK^+xmzqK5+{yR$besCB;XHoiJfsy7eOt~5CQ0xM>_8r
z_s4dTZ_(s-bq5nHL$aF
zbXp(6-gNQ7@09pBi1jE~wojz4_0ZAOxqu#PJ-f<;6i&t%W$MpXh8GQ;d!*3y@hAI<
zVjL&8TPa>)CO@(^n~1${ajfBU+SOUa+fHo#z&te&)n=mKyWrY=&DgEqT^I1^*t}Rt
zcK3pR#rlu!4ITOj>S63MGBis2pY;n}c9#Mj(wW(%7ikDbG4U^nj0xGTv|}n&b+t>o
z+Z%HY9%p2abU9pWzHFY+c{7}4;L*|CmyH(T^S)N-ddz)(S{xfLr_DiiC24~bjJ5s$
zT)ncWmw&*;KYI7=v~J0>1!u=x)Oq}A6Gv~Nyx@wcd)N;@wvXOfd-D2t(zIJvXNt%#
z5#s2&`WkRnM{#>9P%%EM=+eN))+MT_o#RG{?GiCPH}tqP_x~0Sxt#nN<;{Xs&TtnD
zT%E0f00--6T=$~iUp8q5>(n4?&gWec0`$=d;bf2*y-N(7i=`_d83W&CDaeDcj2Uobd{1nE)9tcQng$hK3M@*Bm6xrX*9B`NpXX?})jB$^rx)i
zic*J9svku?PC557T#}EQwg{a}RA}^_{%bf0R?K!=JCN4aq1u}Cny=MuS@!7*QSEaJ+lEzlebD`V
zET3PuoGuSIr|s%g47LV&$MT_D-5W}grodq-B
z-Tw2)XN#lkwu|#R(jAIL85FxQ6p!;H8M|KA?-fu$C@%ChL7Fe-l7R6YC2hG^Z~SaZ
z9oWGt_Y?=|LmZ;qn~jC=!pr&pcbgqSc(^FbMd{n|VOD!vt7v1)X@7#lY^AB6y=57D
zfR%A8lEBU9r2b4%JW0xFoZ-(K0;;Y(QP0Yn>;~C>!cEwd_$L;v%f?XBeCTq6l}Tg0
zwxNW<_j%6fTQuyf1H!=OcT=W+U~cY%R0ZNc)CzhE%WUOn#|9DBR}D(TQ|0NB61{H|
zMd&Zn8SKNUkMKE`>h;yQ+P8}?|I%k!C4Zgon98z-Jq&BT`!hEod0FJZf41WzR3|~9
z$5z#XY)dG-W`kb0)j|Ehg(yYj^2Eja!$&^g2hv16UPlb`pwz@A=Q=jx4(H-rd`Dsa
z*hCHYgOIWEIr`>4(hX+_1_w>Dx#jpz>R#WG6-*9kAD$`c5Q63}eft&f6-S6Z+x<4T
zm@7CD2DX0VczB7sX0Dq9J~z6r*_jLF;CVYnF~szi(yXu5=$dG8jI7*Bszsl02Mh3(
zt&YB0FQ?+zFkkJb`0KrU?Q8B6?tTE__*RYCP+Hd`zKfPz{Eo86K
zV;F7Bm9Z%{!Qrkj(vN=9*oQ0|j5_*)jJW>H$@%z1G~hj|^{lbV^>BqP>mAj14k9!1
zkoGc%lqh;Yjw8xMy1>W(p_C|Iv~FXnlN0O1ApK_-hMV>-M(v3G$R(GN>-;cDJ2f%#
z#c6f#meM)^Et^MHjQn9$E-cB01hlj^abe2}vK~+SufBS1ttNXwt-s#4t8GfO_UX?p
z#(jU$IfaHM7Vi6ogz54w3d5G|3IgE@<77;1*vHJ56M4i~CAY2B+dB^?y?ylZLXsVs
zfO7j5n;`9VPyNg)p5_S6j`~^oGi}oXW&>uQXAG<8g;#%IkK>8FWfzv-TPh%>jz8}h><#6SsqjrO
z!4TtDbBb#XLjm0v1>7ed--GFePlIRsnCPx3s{~)p9;3ZN|%ENui)Psl#OC&qjX_`ssQ=oE-p!Wg%dE#G8*>I=J
zr*hKNM+PdY>)AdV8cS!sUt*y6uOg+MBmh(xtYwce+)jec5PRA^yJeP=Q*Ob#s(V&q
zX}9&0KJ6O2&uVO4j{>(B_C0UP^j#Bj$HYV#P
z%I1x5oJvp=-N=r0V^b`qz|+yp@c13BW&iy1PT3oy%Nuc)S~^f(Wk})wxmD0%Y~#uq
ze#q2)kYsanSX&TE5*?QX-0mFt)PN;7IkR_B&YX#ck*E4t`gRW$m0EQNI4Wtag=IL$
z6-VfHN0HZwzK(`1V7%3aNrT^STRC^Ko+9O^v0(HMdC#6$!UOC@pL>OaK4iUtoQiY7a_tx3b{iI3EO
zeP5Q5`Me*$;f%L9TqIuiTX`HJd{5Ev_xBo$(TlzGn8*B0n7f}5q%jON7wYRi(q1~l
zO4&+@(LStlMnHovVnsHTW`or1j+KtDHI(9YT9nZZ;jz-Qc7o6>y+;X1
z{TPzM=Zt;n?2$x$@3v-s^pR;{n;}}8X?9aY2RAufv{ECBbAbmIXVAV3^r-EPwDfN}
zl9we(1V$e}&3!M@^)0?94(u=O<0biRWsNxdch6PXZ?UY5GK683@BPk)3Hz54OI%
zX?b;p9qzZ!yZItPdx=O*pRFIz{8wR5jda}%aWs;rMl9W9GXh4|UbkSGGG+T6s~O*m
zz6zNnNhGuLOK{F53#@saRTjzYx$)794LlSM?Qd8
zdKbrBBaoo8M1LRU$0(<1kJwj&i`{VdkN%B7m9w}$5pL=BCc-~s_yQUTCH7UwbE}Ia
zHk~~;pmoFI_4)<-OZ_ZngvI?({8hhlRHzsIL*47sBOX)(rN%SKrq09hABPTsckR{B
zLntX-pO$M)xlefqP+(_VvgQJ(VQ;)Fiz<1?T4p+ufJ@)=9hRVBek#k6+r5JQo>tH+
z1JRBWz%(rPLh<3%WR;aqym*~Uxk-jw35X3^*RHT$2PQ$LHE73MypkUEVpRx4;}Y{h
X!lw4y|2_Uwf${mHs$8XvQQ-do;aw2N
diff --git a/src/views/mp/menu/components/MenuEditor.vue b/src/views/mp/menu/components/MenuEditor.vue
deleted file mode 100644
index 684d66f..0000000
--- a/src/views/mp/menu/components/MenuEditor.vue
+++ /dev/null
@@ -1,244 +0,0 @@
-
-
-
-
-
-
- 删除当前菜单
-
-
-
- 菜单名称:
-
-
-
-
-
-
- 跳转链接:
-
-
-
-
- 小程序的 appid :
-
-
-
- 小程序的页面路径:
-
-
-
- 小程序的备用网页:
-
-
-
tips:需要和公众号进行关联才可以把小程序绑定带微信菜单上哟!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 素材库选择
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/menu/components/MenuPreviewer.vue b/src/views/mp/menu/components/MenuPreviewer.vue
deleted file mode 100644
index d262632..0000000
--- a/src/views/mp/menu/components/MenuPreviewer.vue
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/menu/components/menuOptions.ts b/src/views/mp/menu/components/menuOptions.ts
deleted file mode 100644
index d86dd78..0000000
--- a/src/views/mp/menu/components/menuOptions.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-export default [
- {
- value: 'view',
- label: '跳转网页'
- },
- {
- value: 'miniprogram',
- label: '跳转小程序'
- },
- {
- value: 'click',
- label: '点击回复'
- },
- {
- value: 'article_view_limited',
- label: '跳转图文消息'
- },
- {
- value: 'scancode_push',
- label: '扫码直接返回结果'
- },
- {
- value: 'scancode_waitmsg',
- label: '扫码回复'
- },
- {
- value: 'pic_sysphoto',
- label: '系统拍照发图'
- },
- {
- value: 'pic_photo_or_album',
- label: '拍照或者相册'
- },
- {
- value: 'pic_weixin',
- label: '微信相册'
- },
- {
- value: 'location_select',
- label: '选择地理位置'
- }
-]
diff --git a/src/views/mp/menu/components/types.ts b/src/views/mp/menu/components/types.ts
deleted file mode 100644
index b9f7659..0000000
--- a/src/views/mp/menu/components/types.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-export interface Replay {
- title: string
- description: string
- picUrl: string
- url: string
-}
-
-export type MenuType =
- | ''
- | 'click'
- | 'view'
- | 'scancode_waitmsg'
- | 'scancode_push'
- | 'pic_sysphoto'
- | 'pic_photo_or_album'
- | 'pic_weixin'
- | 'location_select'
- | 'article_view_limited'
-
-interface _RawMenu {
- // db
- id: number
- parentId: number
- accountId: number
- appId: string
- createTime: number
-
- // mp-native
- name: string
- menuKey: string
- type: MenuType
- url: string
- miniProgramAppId: string
- miniProgramPagePath: string
- articleId: string
- replyMessageType: string
- replyContent: string
- replyMediaId: string
- replyMediaUrl: string
- replyThumbMediaId: string
- replyThumbMediaUrl: string
- replyTitle: string
- replyDescription: string
- replyArticles: Replay
- replyMusicUrl: string
- replyHqMusicUrl: string
-}
-
-export type RawMenu = Partial<_RawMenu>
-
-interface _Reply {
- type: string
- accountId: number
- content: string
- mediaId: string
- url: string
- thumbMediaId: string
- thumbMediaUrl: string
- title: string
- description: string
- articles: null | Replay[]
- musicUrl: string
- hqMusicUrl: string
-}
-
-export type Reply = Partial<_Reply>
-
-interface _Menu extends RawMenu {
- children: _Menu[]
- reply: Reply
-}
-
-export type Menu = Partial<_Menu>
diff --git a/src/views/mp/menu/index.vue b/src/views/mp/menu/index.vue
deleted file mode 100644
index 0b02cc1..0000000
--- a/src/views/mp/menu/index.vue
+++ /dev/null
@@ -1,399 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 保存并发布菜单
- 清空菜单
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/message/MessageTable.vue b/src/views/mp/message/MessageTable.vue
deleted file mode 100644
index fc5e55f..0000000
--- a/src/views/mp/message/MessageTable.vue
+++ /dev/null
@@ -1,145 +0,0 @@
-
-
-
-
-
-
-
- 粉丝
- 公众号
-
-
-
-
-
-
-
- 关注
-
-
- 取消关注
-
-
- 点击菜单
- 【{{ scope.row.eventKey }}】
-
-
- 点击菜单链接
- 【{{ scope.row.eventKey }}】
-
-
- 扫码结果
- 【{{ scope.row.eventKey }}】
-
-
- 扫码结果
- 【{{ scope.row.eventKey }}】
-
-
- 系统拍照发图
-
-
- 拍照或者相册
-
-
- 微信相册
-
-
- 选择地理位置
-
-
- 未知事件类型
-
-
- {{ scope.row.content }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 未知消息类型
-
-
-
-
-
-
- 消息
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/message/index.vue b/src/views/mp/message/index.vue
deleted file mode 100644
index db92cc0..0000000
--- a/src/views/mp/message/index.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/statistics/index.vue b/src/views/mp/statistics/index.vue
deleted file mode 100644
index 4e2dbfc..0000000
--- a/src/views/mp/statistics/index.vue
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 用户增减数据
-
-
-
-
-
-
-
-
-
- 累计用户数据
-
-
-
-
-
-
-
-
-
- 消息概况数据
-
-
-
-
-
-
-
-
-
- 接口分析数据
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/tag/TagForm.vue b/src/views/mp/tag/TagForm.vue
deleted file mode 100644
index b1f96eb..0000000
--- a/src/views/mp/tag/TagForm.vue
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
diff --git a/src/views/mp/tag/index.vue b/src/views/mp/tag/index.vue
deleted file mode 100644
index 8d452a5..0000000
--- a/src/views/mp/tag/index.vue
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 新增
-
-
- 同步
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mp/user/UserForm.vue b/src/views/mp/user/UserForm.vue
deleted file mode 100644
index 612e496..0000000
--- a/src/views/mp/user/UserForm.vue
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
diff --git a/src/views/mp/user/index.vue b/src/views/mp/user/index.vue
deleted file mode 100644
index 422e219..0000000
--- a/src/views/mp/user/index.vue
+++ /dev/null
@@ -1,179 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 同步
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ tagList.find((tag) => tag.tagId === tagId)?.name }}
-
-
-
-
-
- 已订阅
- 未订阅
-
-
-
-
-
-
- 修改
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/pay/app/AppForm.vue b/src/views/pay/app/AppForm.vue
deleted file mode 100644
index a04ca49..0000000
--- a/src/views/pay/app/AppForm.vue
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
diff --git a/src/views/pay/app/index.vue b/src/views/pay/app/index.vue
deleted file mode 100644
index 4bafeed..0000000
--- a/src/views/pay/app/index.vue
+++ /dev/null
@@ -1,463 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/pay/merchant/MerchantForm.vue b/src/views/pay/merchant/MerchantForm.vue
deleted file mode 100644
index 8d86e3f..0000000
--- a/src/views/pay/merchant/MerchantForm.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
diff --git a/src/views/pay/merchant/index.vue b/src/views/pay/merchant/index.vue
deleted file mode 100644
index 806a0b6..0000000
--- a/src/views/pay/merchant/index.vue
+++ /dev/null
@@ -1,242 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/pay/order/OrderDetail.vue b/src/views/pay/order/OrderDetail.vue
deleted file mode 100644
index ec2af78..0000000
--- a/src/views/pay/order/OrderDetail.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
diff --git a/src/views/pay/order/index.vue b/src/views/pay/order/index.vue
deleted file mode 100644
index 72e5128..0000000
--- a/src/views/pay/order/index.vue
+++ /dev/null
@@ -1,336 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 商户
- {{ scope.row.merchantOrderId }}
-
-
- 支付
- {{ scope.row.channelOrderNo }}
-
-
-
-
-
- ¥{{ parseFloat(scope.row.amount / 100).toFixed(2) }}
-
-
-
-
- ¥{{ parseFloat(scope.row.channelFeeAmount / 100).toFixed(2) }}
-
-
-
-
- ¥{{ parseFloat(scope.row.refundAmount / 100).toFixed(2) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/pay/refund/RefundDetail.vue b/src/views/pay/refund/RefundDetail.vue
deleted file mode 100644
index 4d241d9..0000000
--- a/src/views/pay/refund/RefundDetail.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
diff --git a/src/views/pay/refund/index.vue b/src/views/pay/refund/index.vue
deleted file mode 100644
index 17ca2a0..0000000
--- a/src/views/pay/refund/index.vue
+++ /dev/null
@@ -1,341 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 退款
- {{ scope.row.merchantRefundNo }}
-
-
- 交易
- {{ scope.row.merchantOrderId }}
-
-
-
-
-
-
- 交易
- {{ scope.row.tradeNo }}
-
-
- 渠道
- {{ scope.row.channelOrderNo }}
-
-
-
-
-
- ¥{{ parseFloat(scope.row.payAmount / 100).toFixed(2) }}
-
-
-
-
- ¥{{ parseFloat(scope.row.refundAmount / 100).toFixed(2) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/report/goview/index.vue b/src/views/report/goview/index.vue
deleted file mode 100644
index 7267085..0000000
--- a/src/views/report/goview/index.vue
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
diff --git a/src/views/report/jmreport/index.vue b/src/views/report/jmreport/index.vue
deleted file mode 100644
index bae999f..0000000
--- a/src/views/report/jmreport/index.vue
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
diff --git a/src/views/system/area/AreaForm.vue b/src/views/system/area/AreaForm.vue
deleted file mode 100644
index 1610c9b..0000000
--- a/src/views/system/area/AreaForm.vue
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
diff --git a/src/views/system/area/index.vue b/src/views/system/area/index.vue
deleted file mode 100644
index 320c2dd..0000000
--- a/src/views/system/area/index.vue
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
- IP 查询
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
deleted file mode 100644
index e4c83bc..0000000
--- a/src/views/system/dept/index.vue
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 展开/折叠
-
-
-
-
-
-
-
-
-
-
-
- {{ userList.find((user) => user.id === scope.row.leaderUserId)?.nickname }}
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/errorCode/ErrorCodeForm.vue b/src/views/system/errorCode/ErrorCodeForm.vue
deleted file mode 100644
index 9525a1a..0000000
--- a/src/views/system/errorCode/ErrorCodeForm.vue
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
diff --git a/src/views/system/errorCode/index.vue b/src/views/system/errorCode/index.vue
deleted file mode 100644
index b21bef2..0000000
--- a/src/views/system/errorCode/index.vue
+++ /dev/null
@@ -1,225 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/loginlog/LoginLogDetail.vue b/src/views/system/loginlog/LoginLogDetail.vue
deleted file mode 100644
index c59746b..0000000
--- a/src/views/system/loginlog/LoginLogDetail.vue
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
diff --git a/src/views/system/loginlog/index.vue b/src/views/system/loginlog/index.vue
deleted file mode 100644
index ed3f20b..0000000
--- a/src/views/system/loginlog/index.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/mail/account/MailAccountDetail.vue b/src/views/system/mail/account/MailAccountDetail.vue
deleted file mode 100644
index 49bf98d..0000000
--- a/src/views/system/mail/account/MailAccountDetail.vue
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
diff --git a/src/views/system/mail/account/MailAccountForm.vue b/src/views/system/mail/account/MailAccountForm.vue
deleted file mode 100644
index 53f12ac..0000000
--- a/src/views/system/mail/account/MailAccountForm.vue
+++ /dev/null
@@ -1,66 +0,0 @@
-
-
-
-
diff --git a/src/views/system/mail/account/account.data.ts b/src/views/system/mail/account/account.data.ts
deleted file mode 100644
index 8b33edc..0000000
--- a/src/views/system/mail/account/account.data.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
-import { dateFormatter } from '@/utils/formatTime'
-const { t } = useI18n() // 国际化
-
-// 表单校验
-export const rules = reactive({
- mail: [
- { required: true, message: t('profile.rules.mail'), trigger: 'blur' },
- {
- type: 'email',
- message: t('profile.rules.truemail'),
- trigger: ['blur', 'change']
- }
- ],
- username: [required],
- password: [required],
- host: [required],
- port: [required],
- sslEnable: [required]
-})
-
-// CrudSchema:https://doc.iocoder.cn/vue3/crud-schema/
-const crudSchemas = reactive([
- {
- label: '邮箱',
- field: 'mail',
- isSearch: true
- },
- {
- label: '用户名',
- field: 'username',
- isSearch: true
- },
- {
- label: '密码',
- field: 'password',
- isTable: false
- },
- {
- label: 'SMTP 服务器域名',
- field: 'host'
- },
- {
- label: 'SMTP 服务器端口',
- field: 'port',
- form: {
- component: 'InputNumber',
- value: 465
- }
- },
- {
- label: '是否开启 SSL',
- field: 'sslEnable',
- dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
- dictClass: 'boolean',
- form: {
- component: 'Radio'
- }
- },
- {
- label: '创建时间',
- field: 'createTime',
- isForm: false,
- formatter: dateFormatter,
- detail: {
- dateFormat: 'YYYY-MM-DD HH:mm:ss'
- }
- },
- {
- label: '操作',
- field: 'action',
- isForm: false,
- isDetail: false
- }
-])
-export const { allSchemas } = useCrudSchemas(crudSchemas)
diff --git a/src/views/system/mail/account/index.vue b/src/views/system/mail/account/index.vue
deleted file mode 100644
index f66bbf6..0000000
--- a/src/views/system/mail/account/index.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 详情
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/mail/log/MailLogDetail.vue b/src/views/system/mail/log/MailLogDetail.vue
deleted file mode 100644
index 26c56bc..0000000
--- a/src/views/system/mail/log/MailLogDetail.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
diff --git a/src/views/system/mail/log/index.vue b/src/views/system/mail/log/index.vue
deleted file mode 100644
index c24ff00..0000000
--- a/src/views/system/mail/log/index.vue
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/mail/log/log.data.ts b/src/views/system/mail/log/log.data.ts
deleted file mode 100644
index 62cbf51..0000000
--- a/src/views/system/mail/log/log.data.ts
+++ /dev/null
@@ -1,133 +0,0 @@
-import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
-import { dateFormatter } from '@/utils/formatTime'
-import * as MailAccountApi from '@/api/system/mail/account'
-
-// 邮箱账号的列表
-const accountList = await MailAccountApi.getSimpleMailAccountList()
-
-// CrudSchema:https://doc.iocoder.cn/vue3/crud-schema/
-const crudSchemas = reactive([
- {
- label: '编号',
- field: 'id'
- },
- {
- label: '发送时间',
- field: 'sendTime',
- formatter: dateFormatter,
- search: {
- show: true,
- component: 'DatePicker',
- componentProps: {
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- type: 'daterange',
- defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
- }
- },
- detail: {
- dateFormat: 'YYYY-MM-DD HH:mm:ss'
- }
- },
- {
- label: '接收邮箱',
- field: 'toMail'
- },
- {
- label: '用户编号',
- field: 'userId',
- isSearch: true,
- isTable: false
- },
- {
- label: '用户类型',
- field: 'userType',
- dictType: DICT_TYPE.USER_TYPE,
- dictClass: 'number',
- isSearch: true,
- isTable: false
- },
- {
- label: '邮件标题',
- field: 'templateTitle'
- },
- {
- label: '邮件内容',
- field: 'templateContent',
- isTable: false
- },
- {
- label: '邮箱参数',
- field: 'templateParams',
- isTable: false
- },
- {
- label: '发送状态',
- field: 'sendStatus',
- dictType: DICT_TYPE.SYSTEM_MAIL_SEND_STATUS,
- dictClass: 'string',
- isSearch: true
- },
- {
- label: '邮箱账号',
- field: 'accountId',
- isTable: false,
- search: {
- show: true,
- component: 'Select',
- api: () => accountList,
- componentProps: {
- optionsAlias: {
- labelField: 'mail',
- valueField: 'id'
- }
- }
- }
- },
- {
- label: '发送邮箱地址',
- field: 'fromMail',
- table: {
- label: '邮箱账号'
- }
- },
- {
- label: '模板编号',
- field: 'templateId',
- isSearch: true
- },
- {
- label: '模板编码',
- field: 'templateCode',
- isTable: false
- },
- {
- label: '模版发送人名称',
- field: 'templateNickname',
- isTable: false
- },
- {
- label: '发送返回的消息编号',
- field: 'sendMessageId',
- isTable: false
- },
- {
- label: '发送异常',
- field: 'sendException',
- isTable: false
- },
- {
- label: '创建时间',
- field: 'createTime',
- isTable: false,
- formatter: dateFormatter,
- detail: {
- dateFormat: 'YYYY-MM-DD HH:mm:ss'
- }
- },
- {
- label: '操作',
- field: 'action',
- isDetail: false
- }
-])
-export const { allSchemas } = useCrudSchemas(crudSchemas)
diff --git a/src/views/system/mail/template/MailTemplateForm.vue b/src/views/system/mail/template/MailTemplateForm.vue
deleted file mode 100644
index 55367e1..0000000
--- a/src/views/system/mail/template/MailTemplateForm.vue
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
diff --git a/src/views/system/mail/template/MailTemplateSendForm.vue b/src/views/system/mail/template/MailTemplateSendForm.vue
deleted file mode 100644
index e900f1c..0000000
--- a/src/views/system/mail/template/MailTemplateSendForm.vue
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
diff --git a/src/views/system/mail/template/index.vue b/src/views/system/mail/template/index.vue
deleted file mode 100644
index a964a6f..0000000
--- a/src/views/system/mail/template/index.vue
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
-
-
- 测试
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/mail/template/template.data.ts b/src/views/system/mail/template/template.data.ts
deleted file mode 100644
index e68f875..0000000
--- a/src/views/system/mail/template/template.data.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
-import { dateFormatter } from '@/utils/formatTime'
-import { TableColumn } from '@/types/table'
-import * as MailAccountApi from '@/api/system/mail/account'
-
-// 邮箱账号的列表
-const accountList = await MailAccountApi.getSimpleMailAccountList()
-
-// 表单校验
-export const rules = reactive({
- name: [required],
- code: [required],
- accountId: [required],
- label: [required],
- content: [required],
- params: [required],
- status: [required]
-})
-
-// CrudSchema:https://doc.iocoder.cn/vue3/crud-schema/
-const crudSchemas = reactive([
- {
- label: '模板编码',
- field: 'code',
- isSearch: true
- },
- {
- label: '模板名称',
- field: 'name',
- isSearch: true
- },
- {
- label: '模板标题',
- field: 'title'
- },
- {
- label: '模板内容',
- field: 'content',
- form: {
- component: 'Editor',
- componentProps: {
- valueHtml: '',
- height: 200
- }
- }
- },
- {
- label: '邮箱账号',
- field: 'accountId',
- width: '200px',
- formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
- return accountList.find((account) => account.id === cellValue)?.mail
- },
- search: {
- show: true,
- component: 'Select',
- api: () => accountList,
- componentProps: {
- optionsAlias: {
- labelField: 'mail',
- valueField: 'id'
- }
- }
- },
- form: {
- component: 'Select',
- api: () => accountList,
- componentProps: {
- optionsAlias: {
- labelField: 'mail',
- valueField: 'id'
- }
- }
- }
- },
- {
- label: '发送人名称',
- field: 'nickname'
- },
- {
- label: '开启状态',
- field: 'status',
- isSearch: true,
- dictType: DICT_TYPE.COMMON_STATUS,
- dictClass: 'number'
- },
- {
- label: '备注',
- field: 'remark',
- isTable: false
- },
- {
- label: '创建时间',
- field: 'createTime',
- isForm: false,
- formatter: dateFormatter,
- search: {
- show: true,
- component: 'DatePicker',
- componentProps: {
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- type: 'daterange',
- defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
- }
- }
- },
- {
- label: '操作',
- field: 'action',
- isForm: false
- }
-])
-export const { allSchemas } = useCrudSchemas(crudSchemas)
diff --git a/src/views/system/notice/NoticeForm.vue b/src/views/system/notice/NoticeForm.vue
deleted file mode 100644
index c1962f1..0000000
--- a/src/views/system/notice/NoticeForm.vue
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
diff --git a/src/views/system/notice/index.vue b/src/views/system/notice/index.vue
deleted file mode 100644
index d7fb975..0000000
--- a/src/views/system/notice/index.vue
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/notify/message/NotifyMessageDetail.vue b/src/views/system/notify/message/NotifyMessageDetail.vue
deleted file mode 100644
index 908d75a..0000000
--- a/src/views/system/notify/message/NotifyMessageDetail.vue
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
diff --git a/src/views/system/notify/message/index.vue b/src/views/system/notify/message/index.vue
deleted file mode 100644
index 36d9885..0000000
--- a/src/views/system/notify/message/index.vue
+++ /dev/null
@@ -1,210 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.templateParams }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/notify/my/MyNotifyMessageDetail.vue b/src/views/system/notify/my/MyNotifyMessageDetail.vue
deleted file mode 100644
index ad45d4e..0000000
--- a/src/views/system/notify/my/MyNotifyMessageDetail.vue
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
diff --git a/src/views/system/notify/my/index.vue b/src/views/system/notify/my/index.vue
deleted file mode 100644
index 5a4afc6..0000000
--- a/src/views/system/notify/my/index.vue
+++ /dev/null
@@ -1,215 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 标记已读
-
-
- 全部已读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.readStatus ? '详情' : '已读' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/notify/template/NotifyTemplateForm.vue b/src/views/system/notify/template/NotifyTemplateForm.vue
deleted file mode 100644
index 55e51eb..0000000
--- a/src/views/system/notify/template/NotifyTemplateForm.vue
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
-
diff --git a/src/views/system/notify/template/NotifyTemplateSendForm.vue b/src/views/system/notify/template/NotifyTemplateSendForm.vue
deleted file mode 100644
index 78788f0..0000000
--- a/src/views/system/notify/template/NotifyTemplateSendForm.vue
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-
diff --git a/src/views/system/notify/template/index.vue b/src/views/system/notify/template/index.vue
deleted file mode 100644
index 12392b8..0000000
--- a/src/views/system/notify/template/index.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
-
-
- 测试
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/oauth2/client/ClientForm.vue b/src/views/system/oauth2/client/ClientForm.vue
deleted file mode 100644
index d874a24..0000000
--- a/src/views/system/oauth2/client/ClientForm.vue
+++ /dev/null
@@ -1,259 +0,0 @@
-
-
-
-
diff --git a/src/views/system/oauth2/client/index.vue b/src/views/system/oauth2/client/index.vue
deleted file mode 100644
index 17ebec3..0000000
--- a/src/views/system/oauth2/client/index.vue
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.accessTokenValiditySeconds }} 秒
-
-
- {{ scope.row.refreshTokenValiditySeconds }} 秒
-
-
-
-
- {{ authorizedGrantType }}
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/oauth2/token/index.vue b/src/views/system/oauth2/token/index.vue
deleted file mode 100644
index b97506f..0000000
--- a/src/views/system/oauth2/token/index.vue
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 强退
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/operatelog/OperateLogDetail.vue b/src/views/system/operatelog/OperateLogDetail.vue
deleted file mode 100644
index f69af13..0000000
--- a/src/views/system/operatelog/OperateLogDetail.vue
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
diff --git a/src/views/system/operatelog/index.vue b/src/views/system/operatelog/index.vue
deleted file mode 100644
index 87ce265..0000000
--- a/src/views/system/operatelog/index.vue
+++ /dev/null
@@ -1,210 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.resultCode === 0 ? '成功' : '失败' }}
-
-
-
-
-
- {{ scope.row.duration }} ms
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/post/PostForm.vue b/src/views/system/post/PostForm.vue
deleted file mode 100644
index a314806..0000000
--- a/src/views/system/post/PostForm.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
diff --git a/src/views/system/post/index.vue b/src/views/system/post/index.vue
deleted file mode 100644
index b94d1c9..0000000
--- a/src/views/system/post/index.vue
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/role/RoleAssignMenuForm.vue b/src/views/system/role/RoleAssignMenuForm.vue
deleted file mode 100644
index cfd3084..0000000
--- a/src/views/system/role/RoleAssignMenuForm.vue
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
-
diff --git a/src/views/system/role/RoleDataPermissionForm.vue b/src/views/system/role/RoleDataPermissionForm.vue
deleted file mode 100644
index 279ba97..0000000
--- a/src/views/system/role/RoleDataPermissionForm.vue
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
-
diff --git a/src/views/system/role/RoleForm.vue b/src/views/system/role/RoleForm.vue
deleted file mode 100644
index 828d7f1..0000000
--- a/src/views/system/role/RoleForm.vue
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
deleted file mode 100644
index e7b8158..0000000
--- a/src/views/system/role/index.vue
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 重置
-
-
-
- 新增
-
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 菜单权限
-
-
- 数据权限
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/sensitiveWord/SensitiveWordForm.vue b/src/views/system/sensitiveWord/SensitiveWordForm.vue
deleted file mode 100644
index d9b5b78..0000000
--- a/src/views/system/sensitiveWord/SensitiveWordForm.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
diff --git a/src/views/system/sensitiveWord/SensitiveWordTestForm.vue b/src/views/system/sensitiveWord/SensitiveWordTestForm.vue
deleted file mode 100644
index 9375060..0000000
--- a/src/views/system/sensitiveWord/SensitiveWordTestForm.vue
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
-
diff --git a/src/views/system/sensitiveWord/index.vue b/src/views/system/sensitiveWord/index.vue
deleted file mode 100644
index 921bde3..0000000
--- a/src/views/system/sensitiveWord/index.vue
+++ /dev/null
@@ -1,251 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 重置
-
-
-
- 新增
-
-
-
- 导出
-
-
-
- 测试
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ tag }}
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/sms/channel/SmsChannelForm.vue b/src/views/system/sms/channel/SmsChannelForm.vue
deleted file mode 100644
index c526739..0000000
--- a/src/views/system/sms/channel/SmsChannelForm.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
diff --git a/src/views/system/sms/channel/index.vue b/src/views/system/sms/channel/index.vue
deleted file mode 100644
index 7924970..0000000
--- a/src/views/system/sms/channel/index.vue
+++ /dev/null
@@ -1,199 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/sms/log/SmsLogDetail.vue b/src/views/system/sms/log/SmsLogDetail.vue
deleted file mode 100644
index bb63de0..0000000
--- a/src/views/system/sms/log/SmsLogDetail.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
diff --git a/src/views/system/sms/log/index.vue b/src/views/system/sms/log/index.vue
deleted file mode 100644
index 0be8d84..0000000
--- a/src/views/system/sms/log/index.vue
+++ /dev/null
@@ -1,265 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
- {{ scope.row.mobile }}
-
-
- {{ '(' + scope.row.userId + ')' }}
-
-
-
-
-
-
-
- {{ formatDate(scope.row.sendTime) }}
-
-
-
-
-
- {{ formatDate(scope.row.receiveTime) }}
-
-
-
-
-
- {{ channelList.find((channel) => channel.id === scope.row.channelId)?.signature }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 详情
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/sms/template/SmsTemplateForm.vue b/src/views/system/sms/template/SmsTemplateForm.vue
deleted file mode 100644
index 91bf829..0000000
--- a/src/views/system/sms/template/SmsTemplateForm.vue
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
-
diff --git a/src/views/system/sms/template/SmsTemplateSendForm.vue b/src/views/system/sms/template/SmsTemplateSendForm.vue
deleted file mode 100644
index ec204ec..0000000
--- a/src/views/system/sms/template/SmsTemplateSendForm.vue
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
diff --git a/src/views/system/sms/template/index.vue b/src/views/system/sms/template/index.vue
deleted file mode 100644
index 6ed0f02..0000000
--- a/src/views/system/sms/template/index.vue
+++ /dev/null
@@ -1,313 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ channelList.find((channel) => channel.id === scope.row.channelId)?.signature }}
-
-
-
-
-
-
-
-
- 修改
-
-
- 测试
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/tenant/TenantForm.vue b/src/views/system/tenant/TenantForm.vue
deleted file mode 100644
index 660e69a..0000000
--- a/src/views/system/tenant/TenantForm.vue
+++ /dev/null
@@ -1,176 +0,0 @@
-
-
-
-
diff --git a/src/views/system/tenant/index.vue b/src/views/system/tenant/index.vue
deleted file mode 100644
index 349fd37..0000000
--- a/src/views/system/tenant/index.vue
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 重置
-
-
-
- 新增
-
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
- 系统租户
-
-
- {{ item.name }}
-
-
-
-
-
-
-
-
- {{ scope.row.accountCount }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/tenantPackage/TenantPackageForm.vue b/src/views/system/tenantPackage/TenantPackageForm.vue
deleted file mode 100644
index d423026..0000000
--- a/src/views/system/tenantPackage/TenantPackageForm.vue
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
-
diff --git a/src/views/system/tenantPackage/index.vue b/src/views/system/tenantPackage/index.vue
deleted file mode 100644
index 51f9b8f..0000000
--- a/src/views/system/tenantPackage/index.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
-
-
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/system/user/UserImportForm.vue b/src/views/system/user/UserImportForm.vue
deleted file mode 100644
index 9890c00..0000000
--- a/src/views/system/user/UserImportForm.vue
+++ /dev/null
@@ -1,131 +0,0 @@
-
-
-
-
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
deleted file mode 100644
index d4d8d90..0000000
--- a/src/views/system/user/index.vue
+++ /dev/null
@@ -1,359 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 重置
-
- 新增
-
-
- 导入
-
-
- 导出
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 修改
-
- handleCommand(command, scope.row)"
- v-hasPermi="[
- 'system:user:delete',
- 'system:user:update-password',
- 'system:permission:assign-user-role'
- ]"
- >
- 更多
-
-
-
- 删除
-
-
- 重置密码
-
-
- 分配角色
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-