From 14118f4f9aad23aa95fe2f24ca62349ec0619559 Mon Sep 17 00:00:00 2001 From: "GukSang.Jin" Date: Fri, 27 Feb 2026 09:38:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PetWash.Api/petwash.db | Bin 20480 -> 20480 bytes PetWash.Api/petwash.db-shm | Bin 32768 -> 32768 bytes PetWash.Api/petwash.db-wal | Bin 74192 -> 0 bytes .../Services/ConfigurationService.cs | 12 + PetWashControl/ViewModels/MainViewModel.cs | 91 ++- PetWashControl/Views/MainWindow.xaml | 543 +++++++++++++++--- 6 files changed, 568 insertions(+), 78 deletions(-) diff --git a/PetWash.Api/petwash.db b/PetWash.Api/petwash.db index acef599f0aa677c0db0e9b6e728552e6c8bf74ed..847d61592ddcdd6a75353ca5c0bfec780e31cf74 100644 GIT binary patch delta 1076 zcmZ`%y=s&}6x}ahcE4Rv$1M`_vq?7D9~(2dGk5O%e25sfu@Qqdf)EHQ5(Ghlk=Sem zn^YG20x5g|CC?!E1lBe-TBWhoJDa4)goWW0bMD-8&z*C4oE;u#Ursk>``5C3Dcjn4 z_G;(li@p4MrBdlvTcZLtmh0PfUvCz_i*Lno@xFLm+%9UhpS9iUY4xDm`ugGf^wiV- zsC{Q<=t|;)Qllkfaax16>!8=QZL2fRNzmGP=Mu`7K+*w|-tPArmBt`z37*rl;d#+$r@CvSH(_SmmE22vi5Qe})Lm^n=xO&I=0zn_z>asI$atI1^5Ep(KiL$x){@p$J@Qf<(`) zTyJsGaIuPH0292*U2oxhx_FHoKwdNX?)>?5@fO%G=MCNd+{Gs)u>_35oFDMkCZEI{ zSi{1KnUk=PSY#G{ku&0jaRrt?PDkI;+IjnIj(R?V|4UmasR;?zpKUXHL7 Up*5x!$J9c+n2#_wI(qo-Kfb%l`~Uy| delta 79 zcmV-V0I>gnpaFoO0kH8e78eWw104ZSVPk7yXJvB(4FCWD7YNpq2QV+OfuINiB^Q$} lHx{$*I2H#37Y~V(2S6qX_79H_>kp(4iL((9QxB7gPj`n(7gGQL diff --git a/PetWash.Api/petwash.db-shm b/PetWash.Api/petwash.db-shm index cff27ec8dcb7cc40e262c3d4d18be5d68fc4658e..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 100644 GIT binary patch delta 80 zcmZo@U}|V!;+1%$%K!t66E8}OTChv7nNGgVi7p`mlYpuI4+Il)WHvsK^4Rzw&Kv-+ C%@oA| delta 259 zcmZo@U}|V!s+V}A%K!o#K+MR%ARq*!S%G-5>|Ub>3nnb8J=k+cM}D2anx*TrZt&+X zAyqxlC@|m$lK+taRCr=Nrzu+AYe6&&Ba0JcZ*0`{;ACWAXW(MsWf0id_?3yD k31|{40~^q5+zfmSf*Tv(GjTFAa5C^P@G}T)Y-BV90K*|O<^TWy diff --git a/PetWash.Api/petwash.db-wal b/PetWash.Api/petwash.db-wal index ffbb270486495df317c69cfa4ee0a7eb0a90ae7d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 74192 zcmeI5ZHQb~8OLXKcC$14b~bI2?ptdiyBN?M&-=^$5VI_Z+7GRQP%>DWYOpFqP3Xp` zHK-|A5nChy$p>4t&=9Rr2}r3HLaOFVq(n&kupdm7_>xZvTKge_&zaeo%)PU_&4#ww zCjU!vNanfsoO6HooO@@U`~1)253KuUY3plarP63AZI7S)?!x=u^YhVP?tSIyuhd@J zNgq`@Ki~7pmG9j5*sC8NrVo4A#S*(h1vU@>0T2KI5C8!X009sH0T2KI5CDO9F@b@e z%6R$yJ)hpSXYbfhxpH^;ft{cF{Latp+M9d=z3IeS{sQ*k$2+qyiRV$U7dsRAjbD5?; zfm^AR_ikoWd$*qM-5huHp%!X-W2}ywH_%?QT|H~;r92N#IT@z!T)rx4 zdGJyT6K3vc_p8u-xEY+;0tH7g=$_H6&mu#MkD76Wp&@P!G*FIPyiYAkpz_kp) zSyN}Nc5|1WPFH2b&U@vJ(!GVs$wt7aO&5HZNl9+Jj!K03$a0m7ObKpjRCyPQm6J_# zZ=!R7D!DcssZV5b+~^pj4m*aMmCw!`GMV+6F*FCY^v+H9Ex#Al<&0Fu*?KSCzZy5DQttjmv)N}h(&+^1P7Xqv=#86} zGQ!3j;ik#bMUQDr)hkOYUJ;ZADnM6q3Z8c4-;kYvu?vFR`}S?;{1L6sh3?I$If=o%OvR8&@YdXDy`zb(JO ze;@tUmVx*Fe)j-ev3>yf500@8p2!H?xfB*=900@8p2!OyU2=rEJ<*~j>xm>v`l|7r%2OCqd zAr*HvOn0Pzu202iDp)E;QZby0p;Qc}VjvZ@R8&*ZpNe&<=xbEdoBmm8G}BY5kn^k= zFVOZ2yz#wgs^fonxEU{SXtnVIhgNag*cAjo00ck)1V8`;-ju-hMoa*`v{^AGAoo6} z5idY5^yqzApm(>37eKr~3L~MHt%w&uyuh`$r8Yynz+#9Mp+LNVM7%&lN6_{Q9Q*p! zE02Ei*)2`K!2Z?x1@^z`!yP+-00@8p2!H?xfIyKzz4hZiA6s1z1mwa&3qSrlqa(>g zQN$^FIcOa%`~vU`z%KwD!4hH@_yyn>$c5D>iNS5HBS`BDwEY5q+T4HiMD^U6reENp z)%pbhHeUjTlAMo<9O7r^=gt(ADX*B8j;Be<}A-y;j#PW>(U1(1&b-{U|41V8`;KmY_l z00ck)1V8`;K;Tv&(2v`$>=aOGwyc$*=FF=Q20|5{K0T2KI5V*|< zOphUcMVzvRUb45hx2%7l3ws)`2^kRKe(6Mv{ijDlWBfR_nrHl#xVm5xf;r%~NXjX63mRPm!n4wHBa5 zp2Ed&{@XntK_5Np+xZAS_r=He@u~Iula645QJ%u9>@vH^F0ci5o}Fc9*lBi(z06)@ zC)jazj6K7Su*2*iYw8I0vrFtb_T;VcMF?jB0w4eaAOHd&00JNY0w4eaAOHeyBZ0n3 zx!g0c=5z#?o|pd-a@$ep2;RnPkE%fc1V8`;KmY_l00ck)1V8`;K;RuE(4ixkTvyf500@8p2!OzvCNMME76?>218|!u1T2rj#2`I% z1oti~1RQt7NeeZ-amm~Z4TS)71lQt{Q_ca+qmRl5xvq1J*$nvzC}JM@2%sZCJ_6(; zSi|`UUfr^#{P8Dxo=7@^Nw)WfbOdx5HV^;-5C8!X009sH0T2KI5C8!X0D+|mBn3fb za*gT;esK2qukSzq&qL4=EPe6tDF}c72!H?xfB*=900@8p2!H?xy!!}r=m@4())72^ z?8qCheRkjJ!BlP2?PSS zQYr7<%%--qBA0uisStpUK&Y)LK$4@`|m!u<@V!N+jN3ff{&Yoh683~{yxH(@0(JBal f00@8p2!H?xfB*=900@A<+9r_F4@|8o9l`$r s.Item2); @@ -464,7 +539,7 @@ public partial class MainViewModel : ObservableObject { var (stepName, duration) = steps[stepIndex]; CurrentStep = stepName; - _logger.LogInfo($"开始步骤: {stepName}"); + _logger.LogInfo($"开始步骤: {stepName}, 时长: {duration / 60}分钟"); // 更新步骤状态 Application.Current.Dispatcher.Invoke(() => diff --git a/PetWashControl/Views/MainWindow.xaml b/PetWashControl/Views/MainWindow.xaml index 20881a0..9159b8b 100644 --- a/PetWashControl/Views/MainWindow.xaml +++ b/PetWashControl/Views/MainWindow.xaml @@ -1550,79 +1550,482 @@ Foreground="#2E7D32" Margin="0,0,0,20"/> - - - - - - - - + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +