master
sunhonglei 5 months ago
parent 87e63b5dda
commit 681bc64930
  1. 2
      Language/zh_CN.xaml
  2. 10
      ViewModel/Configuration/AlgorithmConfigVM.cs
  3. 37
      ViewModel/Configuration/CutConfigVM.cs
  4. 92
      ViewModel/Configuration/LevelConfigVM.cs
  5. 22
      ViewModel/Configuration/SettingBaseVM.cs
  6. 3
      ViewModel/Dialog/StartDialogVM.cs
  7. 8
      ViewModel/Grading/DiamondSelectVM.cs
  8. 54
      ViewModel/Grading/GradingResultVM.cs
  9. 2
      Views/Configuration/LevelConfigPage.xaml

@ -198,5 +198,5 @@
<sys:String x:Key="CUDANoInstall">CUDA未安装,程序执行中可能会出错</sys:String> <sys:String x:Key="CUDANoInstall">CUDA未安装,程序执行中可能会出错</sys:String>
<sys:String x:Key="MSVCRuntimeNoInstall">MSVC Runtime未安装,程序执行中可能会出错</sys:String> <sys:String x:Key="MSVCRuntimeNoInstall">MSVC Runtime未安装,程序执行中可能会出错</sys:String>
<sys:String x:Key="FilePathNotExists">文件路径不存在</sys:String> <sys:String x:Key="FilePathNotExists">文件路径不存在</sys:String>
<sys:String x:Key="LevelConfigFormatError">定级配置文件格式不正</sys:String>
</ResourceDictionary> </ResourceDictionary>

@ -38,6 +38,8 @@ public class AlgorithmConfigVM : BaseViewModel
/// </summary> /// </summary>
/// <param name="param"></param> /// <param name="param"></param>
public void InitAlgorithmData(object param) public void InitAlgorithmData(object param)
{
try
{ {
AlgorithmConfigJson = "{}"; AlgorithmConfigJson = "{}";
string sql = @"SELECT JSON as json FROM ALGORITHM_CONFIG ORDER BY JSON_ORDER"; string sql = @"SELECT JSON as json FROM ALGORITHM_CONFIG ORDER BY JSON_ORDER";
@ -55,6 +57,12 @@ public class AlgorithmConfigVM : BaseViewModel
AlgorithmConfigJson = JToken.Parse(sb.ToString()).ToString(); AlgorithmConfigJson = JToken.Parse(sb.ToString()).ToString();
} }
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary> /// <summary>
@ -118,7 +126,7 @@ public class AlgorithmConfigVM : BaseViewModel
catch (Exception ex) catch (Exception ex)
{ {
Growl.Error(MultilingualHelper.getString("SaveFail")); Growl.Error(MultilingualHelper.getString("SaveFail"));
Logger.Error(ex); Logger.Error($"全局异常捕获:{ex.Message}",ex);
} }
} }
private void IsEnabledByRole (){ private void IsEnabledByRole (){

@ -8,11 +8,13 @@ using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Microsoft.Data.Sqlite; using Microsoft.Data.Sqlite;
using SparkClient.ViewModel.Configuration.SettingsPages; using SparkClient.ViewModel.Configuration.SettingsPages;
using log4net;
using MessageBox = SparkClient.Views.Dialog.MessageBox;
namespace SparkClient.ViewModel.Configuration; namespace SparkClient.ViewModel.Configuration;
public class CutConfigVM: BaseViewModel public class CutConfigVM: BaseViewModel
{ {
private static readonly ILog Logger = LogManager.GetLogger(typeof(CutConfigVM));
public ICommand AddRowsCommand { get; } public ICommand AddRowsCommand { get; }
public ICommand SaveCutConfigDataCommand { get; } public ICommand SaveCutConfigDataCommand { get; }
public ICommand DelCutRowCommand { get; } public ICommand DelCutRowCommand { get; }
@ -23,7 +25,10 @@ public class CutConfigVM: BaseViewModel
public DataTable CutterInfos { get { return _cutterInfos; } set { _cutterInfos = value; OnPropertyChanged("CutterInfos"); } } public DataTable CutterInfos { get { return _cutterInfos; } set { _cutterInfos = value; OnPropertyChanged("CutterInfos"); } }
private int RowNo = 0; private int RowNo = 0;
public CutConfigVM() public CutConfigVM()
{
try
{ {
AddRowsCommand = new RelayCommand(AddRows); AddRowsCommand = new RelayCommand(AddRows);
@ -35,6 +40,12 @@ public class CutConfigVM: BaseViewModel
this.InitCutConfigData(null); this.InitCutConfigData(null);
IsEnabledByRole(); IsEnabledByRole();
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary> /// <summary>
@ -42,6 +53,8 @@ public class CutConfigVM: BaseViewModel
/// </summary> /// </summary>
/// <param name="param"></param> /// <param name="param"></param>
public void InitCutConfigData(object param) public void InitCutConfigData(object param)
{
try
{ {
string sql = @"SELECT ITEM_NAME as ItemName , KEY AS Key, VALUE AS Value, GUID FROM CUTTER_CONFIG"; string sql = @"SELECT ITEM_NAME as ItemName , KEY AS Key, VALUE AS Value, GUID FROM CUTTER_CONFIG";
DataTable dataTable = DataBaseHelper.ExecuteQuery(sql); DataTable dataTable = DataBaseHelper.ExecuteQuery(sql);
@ -54,21 +67,37 @@ public class CutConfigVM: BaseViewModel
CutterInfos = dataTable; CutterInfos = dataTable;
} }
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary> /// <summary>
/// 添加行 /// 添加行
/// </summary> /// </summary>
/// <param name="row">行数</param> /// <param name="row">行数</param>
public void AddRows(object row) public void AddRows(object row)
{
try
{ {
CutterInfos.Rows.Add("", "", "",Guid.NewGuid(), RowNo++); CutterInfos.Rows.Add("", "", "",Guid.NewGuid(), RowNo++);
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary> /// <summary>
/// 保存数据 /// 保存数据
/// </summary> /// </summary>
/// <param name="param"></param> /// <param name="param"></param>
public void SaveCutConfigData(object param) public void SaveCutConfigData(object param)
{
try
{ {
int count = CutterInfos.AsEnumerable().Where(r => r["Key"].ToString() != "").GroupBy(r => new { key = r.Field<string>("Key") }).Count(); int count = CutterInfos.AsEnumerable().Where(r => r["Key"].ToString() != "").GroupBy(r => new { key = r.Field<string>("Key") }).Count();
if (count < CutterInfos.AsEnumerable().Where(r => r["Key"].ToString() != "").Count()) if (count < CutterInfos.AsEnumerable().Where(r => r["Key"].ToString() != "").Count())
@ -145,6 +174,12 @@ public class CutConfigVM: BaseViewModel
Growl.Error("保存失败"); Growl.Error("保存失败");
} }
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
private void IsEnabledByRole() private void IsEnabledByRole()
{ {
string PERMISSIONS = Settings.SelectValueById("PERMISSIONS"); string PERMISSIONS = Settings.SelectValueById("PERMISSIONS");

@ -16,7 +16,7 @@ namespace SparkClient.ViewModel.Configuration;
public class LevelConfigVM : BaseViewModel public class LevelConfigVM : BaseViewModel
{ {
private static readonly ILog Logger = LogManager.GetLogger(typeof(GradingResultVM)); private static readonly ILog Logger = LogManager.GetLogger(typeof(LevelConfigVM));
public ICommand ChangeShapeModelCommand { get; } public ICommand ChangeShapeModelCommand { get; }
public ICommand ChangeInstituteModelCommand { get; } public ICommand ChangeInstituteModelCommand { get; }
public ICommand LoadLevelConfigCommand { get; } public ICommand LoadLevelConfigCommand { get; }
@ -53,6 +53,8 @@ public class LevelConfigVM : BaseViewModel
private string GRADE_NAME = MultilingualHelper.getString("GRADE_NAME"); private string GRADE_NAME = MultilingualHelper.getString("GRADE_NAME");
private string STANDARD_NAME = MultilingualHelper.getString("STANDARD_NAME"); private string STANDARD_NAME = MultilingualHelper.getString("STANDARD_NAME");
public LevelConfigVM(DataGrid dataGrid) public LevelConfigVM(DataGrid dataGrid)
{
try
{ {
if (dataGrid == null) return; if (dataGrid == null) return;
this.dataGrid = dataGrid; this.dataGrid = dataGrid;
@ -65,12 +67,20 @@ public class LevelConfigVM : BaseViewModel
InitData(); InitData();
IsUpdateButtonEnabled = false; IsUpdateButtonEnabled = false;
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary> /// <summary>
/// 加载顶级配置的数据 /// 加载顶级配置的数据
/// </summary> /// </summary>
/// <param name="param"></param> /// <param name="param"></param>
public void InitLevelConfig(object param) public void InitLevelConfig(object param)
{
try
{ {
Save_successful_message = MultilingualHelper.getString("Save_successful_message"); Save_successful_message = MultilingualHelper.getString("Save_successful_message");
save_fail_message = MultilingualHelper.getString("save_fail_message"); save_fail_message = MultilingualHelper.getString("save_fail_message");
@ -79,6 +89,15 @@ public class LevelConfigVM : BaseViewModel
GRADE_NAME = MultilingualHelper.getString("GRADE_NAME"); GRADE_NAME = MultilingualHelper.getString("GRADE_NAME");
STANDARD_NAME = MultilingualHelper.getString("STANDARD_NAME"); STANDARD_NAME = MultilingualHelper.getString("STANDARD_NAME");
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary>
/// 初始化数据(形状列表检索)
/// </summary>
private void InitData() private void InitData()
{ {
dataGrid.Columns.Clear(); dataGrid.Columns.Clear();
@ -89,13 +108,20 @@ public class LevelConfigVM : BaseViewModel
ShapeId = Shapes.AsEnumerable().FirstOrDefault()["SHAPE_ID"].ToString(); ShapeId = Shapes.AsEnumerable().FirstOrDefault()["SHAPE_ID"].ToString();
} }
} }
/// <summary>
/// 初始化数据(规则列表检索)
/// </summary>
private string setInstitutes(string id) private string setInstitutes(string id)
{ {
string insituteSql = $"SELECT RULE_ID,RULE_NAME,RULE_EN_NAME FROM RULE WHERE RULE_ID NOT LIKE '%_TA_%';"; string insituteSql = $"SELECT RULE_ID,RULE_NAME,RULE_EN_NAME FROM RULE WHERE RULE_ID NOT LIKE '%_TA_%';";
Institutes = DataBaseHelper.ExecuteQuery(insituteSql); Institutes = DataBaseHelper.ExecuteQuery(insituteSql);
return Institutes.AsEnumerable().FirstOrDefault()["RULE_ID"].ToString(); return Institutes.AsEnumerable().FirstOrDefault()["RULE_ID"].ToString();
} }
/// <summary>
/// 页面数据初始化(检索)
/// </summary>
/// <param name="shapeId"></param>
/// <param name="ruleId"></param>
private void setDataGrid(string shapeId, string ruleId) private void setDataGrid(string shapeId, string ruleId)
{ {
string gradeSql = $"SELECT GRADE_NAME,GRADE_EN_NAME,GRADE_ORDER FROM GRADE WHERE SHAPE_ID = '{shapeId}' AND RULE_ID LIKE '{ruleId}%' GROUP BY GRADE_NAME,GRADE_EN_NAME,GRADE_ORDER ORDER BY GRADE_ORDER;"; string gradeSql = $"SELECT GRADE_NAME,GRADE_EN_NAME,GRADE_ORDER FROM GRADE WHERE SHAPE_ID = '{shapeId}' AND RULE_ID LIKE '{ruleId}%' GROUP BY GRADE_NAME,GRADE_EN_NAME,GRADE_ORDER ORDER BY GRADE_ORDER;";
@ -105,23 +131,32 @@ public class LevelConfigVM : BaseViewModel
DataTable rowInfos = DataBaseHelper.ExecuteQuery(standardSql); DataTable rowInfos = DataBaseHelper.ExecuteQuery(standardSql);
setStandardList(columnInfos, rowInfos); setStandardList(columnInfos, rowInfos);
} }
/// <summary>
/// 页面数据初始化(页面值设定)
/// </summary>
/// <param name="gradeList"></param>
/// <param name="standardList"></param>
private void setStandardList(DataTable gradeList, DataTable standardList) private void setStandardList(DataTable gradeList, DataTable standardList)
{ {
try try
{ {
// 定义单元格样式
Style cellStyle = new Style(typeof(TextBlock)); Style cellStyle = new Style(typeof(TextBlock));
Setter setSellStyle = new Setter(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Center); Setter setSellStyle = new Setter(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Center);
cellStyle.Setters.Add(setSellStyle); cellStyle.Setters.Add(setSellStyle);
Setter setSellStyle1 = new Setter(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); Setter setSellStyle1 = new Setter(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center);
cellStyle.Setters.Add(setSellStyle1); cellStyle.Setters.Add(setSellStyle1);
// 清空datagrid中的数据
dataGrid.Columns.Clear(); dataGrid.Columns.Clear();
if (gradeList != null) if (gradeList != null)
{ {
StandardList = new DataTable(); StandardList = new DataTable();
List<DataColumn> columns = new List<DataColumn>(); List<DataColumn> columns = new List<DataColumn>();
// 循环等级列表,设定datagrid中的列
foreach (DataRow columnInfo in gradeList.Rows) foreach (DataRow columnInfo in gradeList.Rows)
{ {
// 最高等的情况列放置于中间
if ("1".Equals(columnInfo["GRADE_ORDER"].ToString())) if ("1".Equals(columnInfo["GRADE_ORDER"].ToString()))
{ {
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString())); columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString()));
@ -129,6 +164,7 @@ public class LevelConfigVM : BaseViewModel
//this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString()),ElementStyle = cellStyle }); //this.dataGrid.Columns.Add(new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString()),ElementStyle = cellStyle });
this.dataGrid.Columns.Add(GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", columnInfo["GRADE_EN_NAME"].ToString() ?? "")); this.dataGrid.Columns.Add(GetDataGridColumn(columnInfo[GRADE_NAME].ToString() ?? "", columnInfo["GRADE_EN_NAME"].ToString() ?? ""));
} }
// 最高等级以外情况的列放置于两侧
else else
{ {
//this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN"), ElementStyle = cellStyle }); //this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = columnInfo[GRADE_NAME].ToString(), Binding = new Binding(columnInfo["GRADE_EN_NAME"].ToString() + "_MIN"), ElementStyle = cellStyle });
@ -141,15 +177,18 @@ public class LevelConfigVM : BaseViewModel
columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX" + "_" + 1)); columns.Add(new DataColumn(columnInfo["GRADE_EN_NAME"].ToString() + "_MAX" + "_" + 1));
} }
} }
// 在最左侧放置测试项目列
columns.Insert(0, new DataColumn("title")); columns.Insert(0, new DataColumn("title"));
this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = grade_config_left_top, Binding = new Binding("title"), ElementStyle = cellStyle }); this.dataGrid.Columns.Insert(0, new DataGridTextColumn() { Header = grade_config_left_top, Binding = new Binding("title"), ElementStyle = cellStyle });
StandardList.Columns.AddRange(columns.ToArray()); StandardList.Columns.AddRange(columns.ToArray());
// 以标准名分组表示每一行
if (standardList != null) if (standardList != null)
{ {
// 以规则id分组(国标时会有多中规则id的情况)
var standardRules = standardList.AsEnumerable().GroupBy(r => r["RULE_ID"].ToString()); var standardRules = standardList.AsEnumerable().GroupBy(r => r["RULE_ID"].ToString());
foreach (var ruleStandardList in standardRules) foreach (var ruleStandardList in standardRules)
{ {
// 以测试项目名分组表示每一行
var standards = ruleStandardList.AsEnumerable().GroupBy(r => r[STANDARD_NAME].ToString()); var standards = ruleStandardList.AsEnumerable().GroupBy(r => r[STANDARD_NAME].ToString());
foreach (var standard in standards) foreach (var standard in standards)
{ {
@ -159,6 +198,7 @@ public class LevelConfigVM : BaseViewModel
// 每一行单元格内数据 // 每一行单元格内数据
var row = standard.Where(s => s["GRADE_ORDER"].ToString() == columnInfo["GRADE_ORDER"].ToString()).FirstOrDefault(); var row = standard.Where(s => s["GRADE_ORDER"].ToString() == columnInfo["GRADE_ORDER"].ToString()).FirstOrDefault();
string value = ""; string value = "";
// 国标时有空场合,为空时做以下处理
if (row == null) if (row == null)
{ {
if ("1".Equals(columnInfo["GRADE_ORDER"].ToString())) if ("1".Equals(columnInfo["GRADE_ORDER"].ToString()))
@ -175,10 +215,14 @@ public class LevelConfigVM : BaseViewModel
} }
continue; continue;
} }
// 把获取的数据按照定级排序放置与单元格中
// 最高等级放中间,其他的依次往两侧排列
// 最高等级
if ("1".Equals(row["GRADE_ORDER"].ToString())) if ("1".Equals(row["GRADE_ORDER"].ToString()))
{ {
string Min = row["STANDARD_MIN"].ToString(); string Min = row["STANDARD_MIN"].ToString();
string Max = row["STANDARD_MAX"].ToString(); string Max = row["STANDARD_MAX"].ToString();
// 最大值并且最小值不为空时 以最小值-最大值显示
if (!string.IsNullOrEmpty(Min) && !string.IsNullOrEmpty(Max)) if (!string.IsNullOrEmpty(Min) && !string.IsNullOrEmpty(Max))
{ {
value = getFix(row, "MIN_PREFIX") + value = getFix(row, "MIN_PREFIX") +
@ -187,6 +231,7 @@ public class LevelConfigVM : BaseViewModel
+ getFix(row, "MIN_SUFFIX") + getFix(row, "MIN_SUFFIX")
; ;
} }
// 最小值不为空,最大值为空时 显示最小值
else if (!string.IsNullOrEmpty(Min)) else if (!string.IsNullOrEmpty(Min))
{ {
value = getFix(row, "MIN_PREFIX") + value = getFix(row, "MIN_PREFIX") +
@ -194,6 +239,7 @@ public class LevelConfigVM : BaseViewModel
+ getFix(row, "MIN_SUFFIX") + getFix(row, "MIN_SUFFIX")
; ;
} }
// 最大值不为空,最小值为空时 显示最大值
else if (!string.IsNullOrEmpty(Max)) else if (!string.IsNullOrEmpty(Max))
{ {
value = getFix(row, "MIN_PREFIX") + value = getFix(row, "MIN_PREFIX") +
@ -201,7 +247,7 @@ public class LevelConfigVM : BaseViewModel
+ getFix(row, "MIN_SUFFIX") + getFix(row, "MIN_SUFFIX")
; ;
} }
// 有换行符时 分两行显示
var arr = value.Split("\r\n", 2); var arr = value.Split("\r\n", 2);
rowInfo.Add(arr[0]); rowInfo.Add(arr[0]);
if (arr.Length > 1) if (arr.Length > 1)
@ -213,6 +259,7 @@ public class LevelConfigVM : BaseViewModel
rowInfo.Add(""); rowInfo.Add("");
} }
} }
// 其他等级 依次放两边
else else
{ {
// 每一行单元格内数据 // 每一行单元格内数据
@ -290,6 +337,8 @@ public class LevelConfigVM : BaseViewModel
if (ruleId != null && !string.IsNullOrEmpty(ruleId)) if (ruleId != null && !string.IsNullOrEmpty(ruleId))
{ {
string ta = ruleId.Substring(ruleId.Length - 2); string ta = ruleId.Substring(ruleId.Length - 2);
// 国标场合 按照规则id中涵盖信息不同 对测试项目有不同描述
if (ruleId.StartsWith("GB")) if (ruleId.StartsWith("GB"))
{ {
if ("49".Equals(ta)) if ("49".Equals(ta))
@ -321,6 +370,13 @@ public class LevelConfigVM : BaseViewModel
Logger.Error($"全局异常捕获:{ex.Message}", ex); Logger.Error($"全局异常捕获:{ex.Message}", ex);
} }
} }
/// <summary>
/// 设置单元格内部元素(现在单元格内部元素为两个textblock)
/// </summary>
/// <param name="Header"></param>
/// <param name="Binding"></param>
/// <param name="lineCount"></param>
/// <returns></returns>
private DataGridColumn GetDataGridColumn(string Header,string Binding,int lineCount = 2) private DataGridColumn GetDataGridColumn(string Header,string Binding,int lineCount = 2)
{ {
//Style cellStyle = new Style(typeof(TextBlock)); //Style cellStyle = new Style(typeof(TextBlock));
@ -463,7 +519,7 @@ public class LevelConfigVM : BaseViewModel
catch (Exception ex) { catch (Exception ex) {
DataBaseHelper.rollback(); DataBaseHelper.rollback();
Logger.Error($"全局异常捕获:{ex.Message}", ex); Logger.Error($"全局异常捕获:{ex.Message}", ex);
Growl.Error(save_fail_message); new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
} }
} }
/// <summary> /// <summary>
@ -483,9 +539,7 @@ public class LevelConfigVM : BaseViewModel
{ {
try try
{ {
InstitutesEnabled = false;
ShapesEnabled = false;
IsUpdateButtonEnabled = true;
Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog(); Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog();
openFileDialog.Filter = "Text files (*.enc)|*.enc|All files (*.*)|*.*"; openFileDialog.Filter = "Text files (*.enc)|*.enc|All files (*.*)|*.*";
jsonEntity = null; jsonEntity = null;
@ -494,10 +548,19 @@ public class LevelConfigVM : BaseViewModel
string filename = openFileDialog.FileName; string filename = openFileDialog.FileName;
string content = ""; string content = "";
if (File.Exists(filename)) if (File.Exists(filename))
{
try
{ {
content = AESHelper.DecryptFile(filename, "000000"); content = AESHelper.DecryptFile(filename, "000000");
jsonEntity = JsonConvert.DeserializeObject<JsonEntity>(content); jsonEntity = JsonConvert.DeserializeObject<JsonEntity>(content);
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("LevelConfigFormatError")}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
return;
}
}
} }
else else
{ {
@ -549,6 +612,17 @@ public class LevelConfigVM : BaseViewModel
string standardInfosJson = JsonConvert.SerializeObject(jsonEntity.standardInfos); string standardInfosJson = JsonConvert.SerializeObject(jsonEntity.standardInfos);
DataTable standardInfos = Common.JsonToDataTable(standardInfosJson); DataTable standardInfos = Common.JsonToDataTable(standardInfosJson);
setStandardList(gradeInfos, standardInfos); setStandardList(gradeInfos, standardInfos);
InstitutesEnabled = false;
ShapesEnabled = false;
IsUpdateButtonEnabled = true;
}
else
{
new MessageBox().Show($"{MultilingualHelper.getString("LevelConfigFormatError")}");
InstitutesEnabled = true;
ShapesEnabled = true;
IsUpdateButtonEnabled = false;
return;
} }
} }
catch (Exception ex) catch (Exception ex)

@ -1,29 +1,49 @@
using log4net;
using SparkClient.Model.Helper;
using SparkClient.ViewModel.BaseWindow; using SparkClient.ViewModel.BaseWindow;
using SparkClient.ViewModel.Configuration.SettingsPages; using SparkClient.ViewModel.Configuration.SettingsPages;
using System.Windows.Input; using System.Windows.Input;
using MessageBox = SparkClient.Views.Dialog.MessageBox;
namespace SparkClient.ViewModel.Configuration; namespace SparkClient.ViewModel.Configuration;
public class SettingBaseVM : BaseViewModel public class SettingBaseVM : BaseViewModel
{ {
private static readonly ILog Logger = LogManager.GetLogger(typeof(SettingBaseVM));
public SettingsVM CustomSetContent { get; } public SettingsVM CustomSetContent { get; }
public ModelColorSetPageVM ModelColorSetContent { get; } public ModelColorSetPageVM ModelColorSetContent { get; }
public ICommand SaveCommand { get; } public ICommand SaveCommand { get; }
public SettingBaseVM() public SettingBaseVM()
{
try
{ {
CustomSetContent = new SettingsVM(); CustomSetContent = new SettingsVM();
ModelColorSetContent = new ModelColorSetPageVM(); ModelColorSetContent = new ModelColorSetPageVM();
SaveCommand = new RelayCommand(Save); SaveCommand = new RelayCommand(Save);
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
public void Save(object param) public void Save(object param)
{ {
if(CustomSetContent.SaveUpdate(param)&& try
{
if (CustomSetContent.SaveUpdate(param)&&
ModelColorSetContent.SaveUpdate(param)) ModelColorSetContent.SaveUpdate(param))
{ {
WindowManager.mainViewModel.Content = WindowManager.PreviousVM(); WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
} }
} }
catch (Exception ex)
{
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}");
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
} }

@ -11,6 +11,9 @@ using System.Windows.Input;
namespace SparkClient.ViewModel.Dialog namespace SparkClient.ViewModel.Dialog
{ {
/// <summary>
/// 开始检测dialog 已作废
/// </summary>
internal class StartDialogVM : BaseViewModel internal class StartDialogVM : BaseViewModel
{ {
public ICommand SkipCommand { get; } public ICommand SkipCommand { get; }

@ -24,6 +24,9 @@ using MessageBox = SparkClient.Views.Dialog.MessageBox;
namespace SparkClient.ViewModel.Grading; namespace SparkClient.ViewModel.Grading;
/// <summary>
/// 钻石选择画面VM
/// </summary>
public class DiamondSelectVM : BaseViewModel public class DiamondSelectVM : BaseViewModel
{ {
@ -68,8 +71,13 @@ public class DiamondSelectVM : BaseViewModel
Buttons = tempButtons; Buttons = tempButtons;
} }
/// <summary>
/// 画面按钮添加
/// </summary>
/// <returns></returns>
private List<ButtonInfo> GetButtonInfos() private List<ButtonInfo> GetButtonInfos()
{ {
List<ButtonInfo> buttonInfos = new List<ButtonInfo>(); List<ButtonInfo> buttonInfos = new List<ButtonInfo>();
buttonInfos.Add(new ButtonInfo() { Type = "round", IsEnabled = true, ImageName = "round.png", ButtonName = MultilingualHelper.getString("圆形") }); buttonInfos.Add(new ButtonInfo() { Type = "round", IsEnabled = true, ImageName = "round.png", ButtonName = MultilingualHelper.getString("圆形") });
buttonInfos.Add(new ButtonInfo() { Type = "Hexagon", IsEnabled = false, ImageName = "Hexagon.png", ButtonName = MultilingualHelper.getString("六边形") }); buttonInfos.Add(new ButtonInfo() { Type = "Hexagon", IsEnabled = false, ImageName = "Hexagon.png", ButtonName = MultilingualHelper.getString("六边形") });

@ -25,10 +25,15 @@ using log4net;
using SparkClient.ViewModel.Configuration; using SparkClient.ViewModel.Configuration;
namespace SparkClient.ViewModel.Grading; namespace SparkClient.ViewModel.Grading;
/// <summary>
/// 检测结果画面VM
/// </summary>
public class GradingResultVM : BaseViewModel public class GradingResultVM : BaseViewModel
{ {
private static readonly ILog Logger = LogManager.GetLogger(typeof(GradingResultVM)); private static readonly ILog Logger = LogManager.GetLogger(typeof(GradingResultVM));
/// <summary>
/// 钻石编码
/// </summary>
private string DiamondCode { get; set; } private string DiamondCode { get; set; }
private List<DataInfo> _dtResults; private List<DataInfo> _dtResults;
// ViewportData // ViewportData
@ -46,23 +51,68 @@ public class GradingResultVM : BaseViewModel
private string _ds; private string _ds;
private RowDetail _selRowDataDetail; private RowDetail _selRowDataDetail;
private bool _isEnabled; private bool _isEnabled;
/// <summary>
/// 保存按钮状态
/// </summary>
public bool isSaved = false; public bool isSaved = false;
public ICommand SaveFileCommand { get; } public ICommand SaveFileCommand { get; }
public ICommand SaveAsCommand { get; } public ICommand SaveAsCommand { get; }
/// <summary>
/// 左侧计算结果展示数据
/// </summary>
public List<DataInfo> DtResults { get { return _dtResults; } set { _dtResults = value; OnPropertyChanged(nameof(DtResults)); } } public List<DataInfo> DtResults { get { return _dtResults; } set { _dtResults = value; OnPropertyChanged(nameof(DtResults)); } }
/// <summary>
/// 右侧钻石3D模型展示控件
/// </summary>
public ViewportData ViewportData { get { return _viewportData; } set { _viewportData = value; OnPropertyChanged(nameof(ViewportData)); } } public ViewportData ViewportData { get { return _viewportData; } set { _viewportData = value; OnPropertyChanged(nameof(ViewportData)); } }
/// <summary>
/// 画面上方定级标准
/// </summary>
public string Standard { get { return _standard; } set { _standard = value; OnPropertyChanged(nameof(Standard)); } } public string Standard { get { return _standard; } set { _standard = value; OnPropertyChanged(nameof(Standard)); } }
/// <summary>
/// 形状
/// </summary>
public string Shape { get { return _shape; } set { _shape = value; OnPropertyChanged(nameof(Shape)); } } public string Shape { get { return _shape; } set { _shape = value; OnPropertyChanged(nameof(Shape)); } }
/// <summary>
/// 冠面类型
/// </summary>
public string CrownType { get { return _crownType; } set { _crownType = value; OnPropertyChanged(nameof(CrownType)); } } public string CrownType { get { return _crownType; } set { _crownType = value; OnPropertyChanged(nameof(CrownType)); } }
/// <summary>
/// 亭面类型
/// </summary>
public string PavType { get { return _pavType; } set { _pavType = value; OnPropertyChanged(nameof(PavType)); } } public string PavType { get { return _pavType; } set { _pavType = value; OnPropertyChanged(nameof(PavType)); } }
/// <summary>
/// 画面明细展示数据
/// </summary>
public RowDetail SelRowDataDetail { get { return _selRowDataDetail; } set { _selRowDataDetail = value; OnPropertyChanged(nameof(SelRowDataDetail)); } } public RowDetail SelRowDataDetail { get { return _selRowDataDetail; } set { _selRowDataDetail = value; OnPropertyChanged(nameof(SelRowDataDetail)); } }
/// <summary>
/// 重量
/// </summary>
public string Wight { get { return _wight; } set { _wight = value; OnPropertyChanged(nameof(Wight)); } } public string Wight { get { return _wight; } set { _wight = value; OnPropertyChanged(nameof(Wight)); } }
/// <summary>
/// 切工等级(整体 画面上部显示)
/// </summary>
public string CutLevelTotal { get { return _cutLevelTotal; } set { _cutLevelTotal = value; OnPropertyChanged(nameof(CutLevelTotal)); } } public string CutLevelTotal { get { return _cutLevelTotal; } set { _cutLevelTotal = value; OnPropertyChanged(nameof(CutLevelTotal)); } }
/// <summary>
/// 对称性等级(整体 画面上部显示)
/// </summary>
public string SymLevelTotal { get { return _symLevelTotal; } set { _symLevelTotal = value; OnPropertyChanged(nameof(SymLevelTotal)); } } public string SymLevelTotal { get { return _symLevelTotal; } set { _symLevelTotal = value; OnPropertyChanged(nameof(SymLevelTotal)); } }
/// <summary>
/// 下拉列表DS
/// </summary>
public DataTable DSList { get { return _dsList; } set { _dsList = value; OnPropertyChanged(nameof(DSList)); } } public DataTable DSList { get { return _dsList; } set { _dsList = value; OnPropertyChanged(nameof(DSList)); } }
/// <summary>
/// 下拉列表DS 选择的值
/// </summary>
public string DS { get { return _ds; } set { _ds = value; OnPropertyChanged(nameof(DS)); } } public string DS { get { return _ds; } set { _ds = value; OnPropertyChanged(nameof(DS)); } }
/// <summary>
/// 定级下拉列表
/// </summary>
public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } } public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } }
/// <summary>
/// 活性
/// </summary>
public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } } public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } }
private readonly static string digitsFormat = "f1"; private readonly static string digitsFormat = "f1";

@ -170,7 +170,7 @@
<!-- </DataGrid.RowStyle> --> <!-- </DataGrid.RowStyle> -->
<!-- </DataGrid> --> <!-- </DataGrid> -->
<DataGrid Style="{StaticResource CustomDataGridStyle}" <DataGrid Style="{StaticResource CustomDataGridStyle}"
ItemsSource="{Binding StandardList}" x:Name="DataGrid1" CanUserSortColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False"> ItemsSource="{Binding StandardList}" x:Name="DataGrid1" CanUserSortColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserReorderColumns="False">
<!-- 自定义列示例(AutoGenerateColumns=false 时需要手动定义) --> <!-- 自定义列示例(AutoGenerateColumns=false 时需要手动定义) -->
<!-- <DataGrid.Columns> --> <!-- <DataGrid.Columns> -->
<!-- <DataGridTextColumn Header="列一" Binding="{Binding Prop1}" /> --> <!-- <DataGridTextColumn Header="列一" Binding="{Binding Prop1}" /> -->

Loading…
Cancel
Save