From d82f1c50c3daae1568c6d45a855626925aa6df4c Mon Sep 17 00:00:00 2001 From: "GukSang.Jin" Date: Thu, 26 Feb 2026 14:30:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PetWash.Api/Data/PetWashDbContext.cs | 6 +-- PetWash.Api/petwash.db | Bin 20480 -> 20480 bytes PetWashControl/PetWashControl.csproj | 3 +- PetWashControl/ViewModels/MainViewModel.cs | 41 ++++++++++++++++++++- PetWashControl/Views/MainWindow.xaml | 26 +++++++------ 5 files changed, 60 insertions(+), 16 deletions(-) diff --git a/PetWash.Api/Data/PetWashDbContext.cs b/PetWash.Api/Data/PetWashDbContext.cs index a716393..a49d399 100644 --- a/PetWash.Api/Data/PetWashDbContext.cs +++ b/PetWash.Api/Data/PetWashDbContext.cs @@ -16,9 +16,9 @@ public class PetWashDbContext : DbContext // 初始化套餐数据 modelBuilder.Entity().HasData( - new Package { Id = 1, Name = "基础清洗", Price = 50, DurationMinutes = 15, Description = "基础清洗服务,适合小型宠物" }, - new Package { Id = 2, Name = "标准清洗", Price = 80, DurationMinutes = 25, Description = "标准清洗+烘干,适合中型宠物" }, - new Package { Id = 3, Name = "豪华清洗", Price = 120, DurationMinutes = 35, Description = "深度清洗+烘干+护理,适合大型宠物" } + new Package { Id = 1, Name = "套餐1", Price = 50, DurationMinutes = 38, Description = "适用于小型犬" }, + new Package { Id = 2, Name = "套餐2", Price = 80, DurationMinutes = 48, Description = "适用于中型犬" }, + new Package { Id = 3, Name = "套餐3", Price = 120, DurationMinutes = 60, Description = "适用于大型犬" } ); } } diff --git a/PetWash.Api/petwash.db b/PetWash.Api/petwash.db index ee096538d8fdd1f7dc2677044e7b5ae24b01de04..b190d967142b43a9e11bdfffda6796e2c63c013b 100644 GIT binary patch delta 345 zcmZozz}T>WaRZwGM=t~aE&eV1y_*FU>iO$cnb{bm#TgBsE}i~z$pm9VBLh7Ho0knu z&!?<-va9dulI2h5bwBS~qrwDKCJIw#WC2uV09W;7$6BZ=Mr2inra)C{a8*w?^g~qf zGB7YO@jqwa|HS_s=!mQQ69d?kIhmLxIsJ=LQj3at7@1`m0}_+76Vp?RnL(-<`8yc+ zJAi8I`0L9UIT<*e89AMuosA5P%ybQmbdAgu3{9+zOsz~!^vn#6P0b99*wEz6tPG9x zj4cd-(k7Tvrg~=P#ulcgW@u98AQLT&ER9SJ%(=ks_`}S={|Dme39>BA%$%G6xQJ@W literal 20480 zcmeHNTWnlM8QzO8S;zMDmbz}6cDwPmNt2w;ea;*KWxLq~lf(&*D>aExtUO?iTS?_w!akhZ^ z1e#Sm9-r@@fByOY%lyajfsgH(Uu>4|JH2pnZm}$KSL6zX+=t8MTrO9@S3kbmpCTrG z?H}+x-!< zZ{OgU7|%c4KY!|2^AnTz9ND*UthsRJ$o{#b$LH>EP9AIh++Uw=)Mgsx$*CQUd&-r| z$W_YwrplF;bfvtx(os;^^5|4?aBO@$|JeD(xqDAETQaS&Z$`Wqc}= z$12!zrm?FrU7p%EQ=Yne&z^F9-_(Jb=^CDwEBkk^7+fjupPt-Xn?6|H-8fjT-958! zatgZlHl}8_tteZyXpPRcNPVF>x7a*ZTdb648uwtol|9?|fyKGSvuD=Y)W#>z?4O&z zjLmJ_p{vSqm^J{#3#pB}u=?qf51eTBK)cD<*(Rgyy)HLa$~*T>Hzs#Yd45vvDNi?c zHl`a>^~M1Z+VVTjxY@D4#d&o{V^0IVuh$OLYdabvLtFM22FA8-%^&pcJoDfQysjQO z(|qu3^VHF1=Eq{n!5MJ#skxKQZCJVGky3teY~#lKqfM`~ZAJTgA*H3;$p0cx+RFZe zP?>^VJwjmr!u-)**p9OcbBpt*PwkyQb#}4&9&xgxdFJTC`~yxlvklmF@8(6KbL1!F zGx!!hfq}q4U?4CM7zhjm1_A?tfxtjuATSUZ2n=)>*i{_JRmbwje|Pa)OHW@|e(kf% z-+zvA8qrP5KfJi~#!IayTQ5EO<)zoZw{`i+7cV{Y*q`70{O=!nWa*hFmR@{$>1$6d zz54v6&wcaG0u*h?e|-7*$Cn;|thFqLp7HJnD|$K#e*4;YIto6N_X-X#ef^C~FFe#z zprC+sKUn_i(@Rgj&{@Cq-7j?3yZ8SBSKrpXFc8ktYZleQwl_{CecmBYnfK4DZH5kBvmfkUj6E7kL*T0O@p*V`%I z&UKlIM5#o{$XLTI(|v2PIATg$Wip6PD2upJO2qOoZRxJB(Jd3EA`@HAVwKem%tlmk zt_060R|&;3$zw)M^^Q_5UoWi#1BGreo=A}h9!V}V<9s%9V)+tmNQtpTSubWZqcVNK z7N#Ptq+}Amg0Nk>Hs|F_S`Tld;`l0y`V6 zc}BZ~jI*6;HG6wc(?!DL$S^JRTGQb<7R8(j6JzYA-8of8+Hz}{IJjjcXltpUWzd|^ zIEs~_LT7ma#(0E%P1dCjfv=1-u{pf?vN6lBHoF~Kwzl$mT8bjyaBwXs=VD+jrm%6WD9c2PTNWeIu`yyj#TP{&naFY>6cgufZF{4h zN&=e5IFUTUQe!wzZQQ~%JjI02vRk`{urYGO3XwW61xZLiM1hvdsA|=1yf#T8qY@?} z%Cth9Rwv#=3=Wlo#=@}KP3>c(Bi8Nc_(NEObm}1MU;?)~ETduW?8CWJIwc_yg z?U3$HMGD4nOc5asjfr`8zBtUfgi~B0m%GEK1#yK;VEAWhxCUY^pQqS@m~i<@aow=EdUZ$Hs+1}t{wa>5A`!=+Rh_%aiMgJktDHa# z9*^D4Mq_t9=+$!4##{_?8`D)vJBY%et%WB#e6;t)e}aKTYpJSUd3p2vzGx^kZe?5@ z6IZOwg7!Ynt4@rmD(R_Ac}9>=sPyMX+wooRwhX+XKY|mbLVJ`wstYX|2}K2JXJ#27 z*H$rwi!1{n?y$;Q&N-VHfqB^^^`~$*p@}F88duff&LLL4-vVuU0Op-AcN~yG%?eD1_^;jYbe5PhNW5BHU6ugzuj_cVqeA+_)Y+om|vDzMa+X0~lbEy>7_FVC@iR>-`*QpyMD>Yp$5HxrUrn?r%q_fpS5;>uSr8sno zGs;{WE762nsm>SLr>dvI%=y~o0B$J+cy?o?4vM8vC?7n<8I~byT_1}&nx+#((1as8 zt%{kJ=kh%cETr=l9`-S^Wd1DU+d=^ z{QMd}UhT)L{CK5XdWD}7Hyw4;;)oxI{p0n19CBdEKVIh_4Ek}vkNtk^b0S4IEf$K! GQt4k#R$-X{ diff --git a/PetWashControl/PetWashControl.csproj b/PetWashControl/PetWashControl.csproj index 034a214..b1c9053 100644 --- a/PetWashControl/PetWashControl.csproj +++ b/PetWashControl/PetWashControl.csproj @@ -17,8 +17,9 @@ + + - diff --git a/PetWashControl/ViewModels/MainViewModel.cs b/PetWashControl/ViewModels/MainViewModel.cs index bb062af..068e860 100644 --- a/PetWashControl/ViewModels/MainViewModel.cs +++ b/PetWashControl/ViewModels/MainViewModel.cs @@ -53,6 +53,8 @@ public partial class MainViewModel : ObservableObject [ObservableProperty] private string _currentView = "Idle"; + private string _previousView = "Idle"; // 保存进入设置前的视图 + [ObservableProperty] private int _washProgress; @@ -192,15 +194,51 @@ public partial class MainViewModel : ObservableObject [RelayCommand] private void ShowSettings() { + // 保存当前视图状态 + _previousView = CurrentView; + CurrentView = "Settings"; ViewChanged?.Invoke("Settings"); StatusMessage = "系统设置"; - _logger.LogInfo("切换到设置界面"); + _logger.LogInfo($"切换到设置界面,之前的视图: {_previousView}"); } [RelayCommand] private void BackToIdle() { + // 如果从设置页面返回,且之前不是待机界面,则返回到之前的视图 + if (CurrentView == "Settings" && _previousView != "Idle" && _previousView != "Settings") + { + CurrentView = _previousView; + ViewChanged?.Invoke(_previousView); + + // 根据返回的视图设置相应的状态消息 + switch (_previousView) + { + case "Washing": + StatusMessage = "洗护进行中..."; + _logger.LogInfo("从设置返回到洗护界面"); + break; + case "Payment": + StatusMessage = "请选择套餐"; + _logger.LogInfo("从设置返回到支付界面"); + break; + case "QRCode": + StatusMessage = $"请扫码支付 ¥{SelectedPackage?.Price}"; + _logger.LogInfo("从设置返回到二维码支付界面"); + break; + default: + StatusMessage = "系统就绪,请点击开始"; + _logger.LogInfo("从设置返回到待机界面"); + break; + } + + // 重置之前的视图状态 + _previousView = "Idle"; + return; + } + + // 默认返回到待机界面 CurrentView = "Idle"; ViewChanged?.Invoke("Idle"); StatusMessage = "系统就绪,请点击开始"; @@ -215,6 +253,7 @@ public partial class MainViewModel : ObservableObject step.IsActive = false; } + _previousView = "Idle"; _logger.LogInfo("返回待机界面"); } diff --git a/PetWashControl/Views/MainWindow.xaml b/PetWashControl/Views/MainWindow.xaml index 7b18380..615a68a 100644 --- a/PetWashControl/Views/MainWindow.xaml +++ b/PetWashControl/Views/MainWindow.xaml @@ -665,24 +665,28 @@ HorizontalAlignment="Center" Margin="0,0,0,15"/> - + - - + - - + HorizontalAlignment="Center" + Margin="0,0,0,5"/> + + + +