From f4b2cfff2dc9fd23029c4cd36c557fb7f344cb0c Mon Sep 17 00:00:00 2001 From: tongg Date: Tue, 13 May 2025 07:52:22 +0800 Subject: [PATCH] fix: Auto Save CSV --- Model/Helper/ClientHotKeyManager.cs | 3 ++- ViewModel/BaseWindow/BaseControlVM.cs | 5 +++-- ViewModel/Grading/GradingResultVM.cs | 27 ++++++++++++++++++++++++--- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Model/Helper/ClientHotKeyManager.cs b/Model/Helper/ClientHotKeyManager.cs index 80e6596..e5d12a2 100644 --- a/Model/Helper/ClientHotKeyManager.cs +++ b/Model/Helper/ClientHotKeyManager.cs @@ -50,7 +50,8 @@ public sealed class ClientHotKeyManager } else { - throw new InvalidOperationException($"HotKey {hotKey} already registered!"); + Logger.Info($"快捷键注册跳过: [ Key = {hotKey.Key.GetName()}, Modifiers = {hotKey.Modifiers.ToSafeAbundantString()}, Handler = {handler.Method.Name}, From = {registrant.GetType().Name}]"); + return; } } diff --git a/ViewModel/BaseWindow/BaseControlVM.cs b/ViewModel/BaseWindow/BaseControlVM.cs index 3432b84..f488702 100644 --- a/ViewModel/BaseWindow/BaseControlVM.cs +++ b/ViewModel/BaseWindow/BaseControlVM.cs @@ -150,12 +150,13 @@ public class BaseControlVM : BaseViewModel [Log] public async void CloseVM(object parameter) { - if(Content is GradingResultVM) + if(Content is GradingResultVM resultVM) { WindowManager.PreviousVM(); WindowManager.mainViewModel.Content = WindowManager.PreviousVM(); await SOCClientService.Service.OpenPump(false); - + if(resultVM._isSaveCsv == false) + resultVM.SaveToCsv(); try { ClientHotKeyManager.Instance.Unregister(ClientHotKeys.QuickAnewDetectHotKey); diff --git a/ViewModel/Grading/GradingResultVM.cs b/ViewModel/Grading/GradingResultVM.cs index f63a43b..0e22126 100644 --- a/ViewModel/Grading/GradingResultVM.cs +++ b/ViewModel/Grading/GradingResultVM.cs @@ -32,6 +32,7 @@ using Brush = System.Drawing.Brush; using Brushes = System.Drawing.Brushes; using SparkClient.Model.Attributes; using SparkClient.Model.Common; +using SparkClient.Model.Extension; using SparkDotNetCore.DiamondScanner.Entity.Child; using Exception = System.Exception; @@ -63,6 +64,8 @@ public class GradingResultVM : BaseViewModel private string _ds; private RowDetail _selRowDataDetail; private bool _isEnabled; + + public bool _isSaveCsv = false; /// /// 保存按钮状态 /// @@ -110,10 +113,20 @@ public class GradingResultVM : BaseViewModel /// 切工等级(整体 画面上部显示) /// public string CutLevelTotal { get { return _cutLevelTotal; } set { _cutLevelTotal = value; OnPropertyChanged(nameof(CutLevelTotal)); } } + /// /// 对称性等级(整体 画面上部显示) /// - public string SymLevelTotal { get { return _symLevelTotal; } set { _symLevelTotal = value; OnPropertyChanged(nameof(SymLevelTotal)); } } + public string SymLevelTotal + { + get { return _symLevelTotal; } + set + { + _symLevelTotal = value; + OnPropertyChanged(nameof(SymLevelTotal)); + if (!value.IsNullOrEmpty()) SaveToCsv(); + } + } /// /// 下拉列表DS /// @@ -265,6 +278,7 @@ public class GradingResultVM : BaseViewModel string data = JsonConvert.SerializeObject(result); ViewportData = new ViewportData(result.DiamondCode, data,colorConfigEntity); ViewportData.LoadData(); + } [Log] private void InitDSlist() @@ -277,10 +291,15 @@ public class GradingResultVM : BaseViewModel DSList.Rows.Add("refer", "refer"); } [Log] - private void SaveToCsv() + public void SaveToCsv() { try { + if (_isSaveCsv) + { + return; + } + string strBaseUrl = AppDomain.CurrentDomain.BaseDirectory; string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "csv", "histroy.csv"); var info = algorithmResult.Measurements; @@ -300,7 +319,7 @@ public class GradingResultVM : BaseViewModel $"{FormatDouble_A2(info.GIRDLE)}%," + $"{calGirdleName(info)}," + $"," + - $"," + + $"{GetGradeEnName(GetGradeOrder(SymLevelTotal))}," + $"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}"; if (File.Exists(filePath)) { @@ -321,6 +340,8 @@ public class GradingResultVM : BaseViewModel writer.WriteLine(line); } } + + _isSaveCsv = true; } catch (Exception ex) {