diff --git a/Model/Extension/CommonExtension.cs b/Model/Extension/CommonExtension.cs index 7fde3c8..160d8b5 100644 --- a/Model/Extension/CommonExtension.cs +++ b/Model/Extension/CommonExtension.cs @@ -1,3 +1,6 @@ +using System.Globalization; +using Newtonsoft.Json.Linq; + namespace SparkClient.Model.Extension; public static class CommonExtension @@ -30,4 +33,34 @@ public static class CommonExtension return Helper.Common.GenerateMd5Hash(str); } } + + public static JToken ConvertJTokenValue(this string value) + { + // 处理布尔类型(不区分大小写) + if (string.Equals(value, "true", StringComparison.OrdinalIgnoreCase)) + return new JValue(true); + if (string.Equals(value, "false", StringComparison.OrdinalIgnoreCase)) + return new JValue(false); + + // 处理数值类型 + if (double.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out double numericValue)) + { + // 判断是否为整数 + if (numericValue == Math.Truncate(numericValue)) + { + // 在int范围内转换为整型 + if (numericValue >= int.MinValue && numericValue <= int.MaxValue) + return new JValue((int)numericValue); + + // 超出int范围使用long类型 + return new JValue((long)numericValue); + } + + // 保留小数部分 + return new JValue(numericValue); + } + + // 默认处理为字符串 + return new JValue(value); + } } \ No newline at end of file diff --git a/ViewModel/Configuration/AlgorithmConfigVM.cs b/ViewModel/Configuration/AlgorithmConfigVM.cs index 2a54557..4ad7641 100644 --- a/ViewModel/Configuration/AlgorithmConfigVM.cs +++ b/ViewModel/Configuration/AlgorithmConfigVM.cs @@ -152,11 +152,11 @@ public class AlgorithmConfigVM : BaseViewModel currentNode = currentNode[currentKey]; } var finalKey = keys[keys.Length - 1]; - currentNode[finalKey] = value; + currentNode[finalKey] = value.ConvertJTokenValue(); } else { - jsonAlgorithm[jsonKey] = value; + jsonAlgorithm[jsonKey] = value.ConvertJTokenValue(); } } } diff --git a/ViewModel/Grading/GradingLoadingVM.cs b/ViewModel/Grading/GradingLoadingVM.cs index 3563839..24ce01a 100644 --- a/ViewModel/Grading/GradingLoadingVM.cs +++ b/ViewModel/Grading/GradingLoadingVM.cs @@ -242,8 +242,8 @@ public class GradingLoadingVM : BaseViewModel,IDisposable //算法配置参数,初始化算法配置数据并获取 AlgorithmConfigJson var _algorithmConfigVM = new AlgorithmConfigVM(); _algorithmConfigVM.InitAlgorithmData(_diamnondType); - string algo_config = _algorithmConfigVM.AlgorithmConfigJson; - + // string algo_config = _algorithmConfigVM.AlgorithmConfigJson; + string algo_config = _algorithmConfigVM.GetAlgorithmConfig(_diamnondType); string imageFileBasePath = string.Empty; //图片根目录 if (type == 1) diff --git a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs index 5a4caec..eaad048 100644 --- a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs +++ b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs @@ -2394,7 +2394,7 @@ public class ViewportHelperPro // case "CROWN HEIGHT": // case "PAV DEPTH": v *= 100; - return hasUnit ? $"{Math.Round(v, 2, MidpointRounding.AwayFromZero).ToString("F1")}%" : Math.Round(v, 2, MidpointRounding.AwayFromZero).ToString("F1"); + return hasUnit ? $"{Math.Truncate(v * 10) / 10}%" : $"{Math.Truncate(v * 10) / 10}"; default: v = Math.Floor(v * 1000) / 1000; return hasUnit ? $"{(v*100).ToString("F1")}%" : (v*100).ToString("F1");