diff --git a/BetterGenshinImpact/Model/KeyMouseScriptItem.cs b/BetterGenshinImpact/Model/KeyMouseScriptItem.cs index 0b63f57d..56b5889d 100644 --- a/BetterGenshinImpact/Model/KeyMouseScriptItem.cs +++ b/BetterGenshinImpact/Model/KeyMouseScriptItem.cs @@ -63,6 +63,9 @@ public partial class KeyMouseScriptItem : ObservableObject private DateTime _lastProgressUpdateTime = DateTime.Now; private long _lastUploadedSize = 0; + [ObservableProperty] + private bool _isPartiallyUploaded; + private string FormatSpeed(double bytesPerSecond) { if (bytesPerSecond >= 1024 * 1024) // MB/s @@ -99,8 +102,9 @@ public partial class KeyMouseScriptItem : ObservableObject var collection = DbLiteService.Instance.UserDb.GetCollection("FileUploads"); var files = Directory.GetFiles(Path, "*.*", SearchOption.AllDirectories); - // 检查是否所有文件都已上传成功 + var hasUploadedFiles = false; var allFilesUploaded = true; + foreach (var file in files) { try @@ -108,25 +112,31 @@ public partial class KeyMouseScriptItem : ObservableObject var remotePath = GetRemotePath(file); var fileUploadItem = collection.FindById(remotePath); - if (fileUploadItem == null || fileUploadItem.Status != UploadStatus.UploadSuccess.ToString()) + if (fileUploadItem?.Status == UploadStatus.UploadSuccess.ToString()) + { + hasUploadedFiles = true; + } + else { allFilesUploaded = false; - break; } } catch (InvalidOperationException) { IsUploadSuccess = false; + IsPartiallyUploaded = false; return; } } IsUploadSuccess = allFilesUploaded; + IsPartiallyUploaded = !allFilesUploaded && hasUploadedFiles; } catch (Exception ex) { _logger.LogError(ex, "检查上传状态出错"); IsUploadSuccess = false; + IsPartiallyUploaded = false; } } @@ -287,6 +297,18 @@ public partial class KeyMouseScriptItem : ObservableObject [RelayCommand] private async Task DeleteUploadedFiles() { + + try + { + // 提前验证用户信息,避免开始上传后才发现问题 + _ = GetRemotePath(Path); + } + catch (InvalidOperationException) + { + await MessageBox.ErrorAsync("请先设置用户名和UID"); + return; + } + try { var dirName = new DirectoryInfo(Path).Name; diff --git a/BetterGenshinImpact/View/Pages/HomePage.xaml b/BetterGenshinImpact/View/Pages/HomePage.xaml index c517433e..39d544e0 100644 --- a/BetterGenshinImpact/View/Pages/HomePage.xaml +++ b/BetterGenshinImpact/View/Pages/HomePage.xaml @@ -436,7 +436,7 @@ - @@ -506,7 +506,7 @@ Text="{Binding Config.CommonConfig.Uid, Mode=TwoWay}" /> - + --> diff --git a/BetterGenshinImpact/View/Pages/KeyMouseRecordPage.xaml b/BetterGenshinImpact/View/Pages/KeyMouseRecordPage.xaml index ee136fa9..a638fb7c 100644 --- a/BetterGenshinImpact/View/Pages/KeyMouseRecordPage.xaml +++ b/BetterGenshinImpact/View/Pages/KeyMouseRecordPage.xaml @@ -30,21 +30,54 @@ + - - - 建议在游戏内使用快捷键进行录制, - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + @@ -76,11 +109,11 @@ IsChecked="{Binding Config.RecordConfig.PaimonSwitchEnabled, Mode=TwoWay}" /> - - + @@ -91,7 +124,7 @@ - + Margin="5,0,0,0"> + + + +