diff --git a/src/view/ConfigPage.xaml.cs b/src/view/ConfigPage.xaml.cs index 7bc3f98..56dd01b 100644 --- a/src/view/ConfigPage.xaml.cs +++ b/src/view/ConfigPage.xaml.cs @@ -2,273 +2,474 @@ using guoke; using System.Windows; using System.Windows.Controls; using System.Windows.Media; -using System.Collections.Generic; -namespace WpfApp.src.view +namespace WpfApp.src.view; + +/// +/// ConfigPage.xaml 的交互逻辑 +/// +public partial class ConfigPage : Page { - /// - /// ConfigPage.xaml 的交互逻辑 - /// - public partial class ConfigPage : Page + // 等级数据字典,每个等级对应 LevelInfo + private Dictionary levelData; + private Dictionary sensorData; + + public ConfigPage() { - // 等级数据字典,每个等级对应 LevelInfo - private Dictionary levelData; - private Dictionary sensorData; + InitializeComponent(); + InitializeLevelData(); + InitializeSensorData(); - public ConfigPage() + // 注册等级标签按钮点击事件 + LevelTabUnder.Click += LevelTab_Click; + LevelTabA.Click += LevelTab_Click; + LevelTabB.Click += LevelTab_Click; + LevelTabC.Click += LevelTab_Click; + LevelTabD.Click += LevelTab_Click; + LevelTabE.Click += LevelTab_Click; + LevelTabF.Click += LevelTab_Click; + LevelTabG.Click += LevelTab_Click; + LevelTabOver.Click += LevelTab_Click; + + // 默认选中 Under + LevelTabUnder.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); + } + + // 初始化等级数据 + private void InitializeLevelData() + { + levelData = new Dictionary(); + string[] tabs = { "Under", "A", "B", "C", "D", "E", "F", "G", "Over" }; + + foreach (var tab in tabs) { - InitializeComponent(); - InitializeLevelData(); - InitializeSensorData(); - - // 注册等级标签按钮点击事件 - LevelTabUnder.Click += LevelTab_Click; - LevelTabA.Click += LevelTab_Click; - LevelTabB.Click += LevelTab_Click; - LevelTabC.Click += LevelTab_Click; - LevelTabD.Click += LevelTab_Click; - LevelTabE.Click += LevelTab_Click; - LevelTabF.Click += LevelTab_Click; - LevelTabG.Click += LevelTab_Click; - LevelTabOver.Click += LevelTab_Click; - - // 默认选中 Under - LevelTabUnder.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); - } - - // 初始化等级数据 - private void InitializeLevelData() - { - levelData = new Dictionary(); - string[] tabs = { "Under", "A", "B", "C", "D", "E", "F", "G", "Over" }; - - foreach (var tab in tabs) + // 默认数据和 Under 一样 + levelData[tab] = new LevelInfo { - // 默认数据和 Under 一样 - levelData[tab] = new LevelInfo + Low = "-0.0090", + High = "0.0090", + Mark = "标记", + Status = "NG" + }; + } + } + + + // 等级标签按钮点击事件 + private void LevelTab_Click(object sender, RoutedEventArgs e) + { + if (sender is Button btn && btn.Tag is string tabName) + { + // 保存当前显示的数据到上一个等级 + SaveCurrentLevelData(); + + // 更新标签按钮样式 + UpdateTabStyles(btn); + + // 加载选中等级的数据 + LoadLevelData(tabName); + } + } + + // 保存当前显示的等级数据 + private void SaveCurrentLevelData() + { + string currentTab = GetCurrentSelectedTab(); + if (currentTab == null) return; + + foreach (var child in LevelInfoPanel.Children) + { + if (child is Grid g) + { + foreach (var element in g.Children) { - Low = "-0.0090", - High = "0.0090", - Mark = "标记", - Status = "NG" - }; - } - } - - - // 等级标签按钮点击事件 - private void LevelTab_Click(object sender, RoutedEventArgs e) - { - if (sender is Button btn && btn.Tag is string tabName) - { - // 保存当前显示的数据到上一个等级 - SaveCurrentLevelData(); - - // 更新标签按钮样式 - UpdateTabStyles(btn); - - // 加载选中等级的数据 - LoadLevelData(tabName); - } - } - - // 保存当前显示的等级数据 - private void SaveCurrentLevelData() - { - string currentTab = GetCurrentSelectedTab(); - if (currentTab == null) return; - - foreach (var child in LevelInfoPanel.Children) - { - if (child is Grid g) - { - foreach (var element in g.Children) + if (element is TextBox tb && Grid.GetColumn(tb) == 2 && Grid.GetRow(tb) == 1) { - if (element is TextBox tb && Grid.GetColumn(tb) == 2 && Grid.GetRow(tb) == 1) - { - levelData[currentTab].Low = tb.Text; - } - if (element is Border br && Grid.GetColumn(br) == 3 && Grid.GetRow(br) == 1) - { - if (br.Child is TextBlock tblock) - levelData[currentTab].Status = tblock.Text; - } - // 如果你后续要保存 High 或 Mark,可以在这里添加 + levelData[currentTab].Low = tb.Text; } - } - } - } - - // 获取当前选中的标签名 - private string GetCurrentSelectedTab() - { - foreach (var child in ((Grid)LevelTabUnder.Parent).Children) - { - if (child is Button b && b.Background is SolidColorBrush brush) - { - if (brush.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) - return b.Tag?.ToString(); - } - } - return null; - } - - // 更新等级标签按钮样式 - private void UpdateTabStyles(Button selectedBtn) - { - foreach (var child in ((Grid)LevelTabUnder.Parent).Children) - { - if (child is Button b) - { - b.Background = (b == selectedBtn) - ? new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")) - : new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); - } - } - } - - // 加载等级数据到界面 - private void LoadLevelData(string tabName) - { - if (!levelData.ContainsKey(tabName)) return; - - var data = levelData[tabName]; - - foreach (var child in LevelInfoPanel.Children) - { - if (child is Grid g) - { - foreach (var element in g.Children) + if (element is Border br && Grid.GetColumn(br) == 3 && Grid.GetRow(br) == 1) { - if (element is TextBox tb && Grid.GetColumn(tb) == 2 && Grid.GetRow(tb) == 1) - { - tb.Text = data.Low; - } - if (element is Border br && Grid.GetColumn(br) == 3 && Grid.GetRow(br) == 1) - { - if (br.Child is TextBlock tblock) - tblock.Text = data.Status; - } - // High 或 Mark 可在此扩展 + if (br.Child is TextBlock tblock) + levelData[currentTab].Status = tblock.Text; } + // 如果你后续要保存 High 或 Mark,可以在这里添加 } } } - // 初始化传感器数据 - private void InitializeSensorData() + } + + // 获取当前选中的标签名 + private string GetCurrentSelectedTab() + { + foreach (var child in ((Grid)LevelTabUnder.Parent).Children) { - sensorData = new Dictionary - { - { 1, new SensorToleranceData { MaxTolerance = "9.00", BaseTolerance = "72.9410", MinTolerance = "-9.00" } }, - { 2, new SensorToleranceData { MaxTolerance = "8.50", BaseTolerance = "72.8500", MinTolerance = "-8.50" } }, - { 3, new SensorToleranceData { MaxTolerance = "7.80", BaseTolerance = "72.7800", MinTolerance = "-7.80" } }, - { 4, new SensorToleranceData { MaxTolerance = "6.90", BaseTolerance = "72.6900", MinTolerance = "-6.90" } } - }; + if (child is Button b && b.Background is SolidColorBrush brush) + { + if (brush.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) + return b.Tag?.ToString(); + } } - // 传感器标签页点击事件处理 - private void SensorTab_Click(object sender, RoutedEventArgs e) + return null; + } + + // 更新等级标签按钮样式 + private void UpdateTabStyles(Button selectedBtn) + { + foreach (var child in ((Grid)LevelTabUnder.Parent).Children) { - Button clickedButton = sender as Button; - if (clickedButton == null) return; - - int sensorIndex = int.Parse(clickedButton.Tag.ToString()); - - // 保存当前传感器的数据 - SaveCurrentSensorData(); - - // 更新标签页样式 - UpdateTabStyles(sensorIndex); - - // 加载选中传感器的数据 - LoadSensorData(sensorIndex); + if (child is Button b) + { + b.Background = (b == selectedBtn) + ? new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")) + : new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); + } } + } + + // 加载等级数据到界面 + private void LoadLevelData(string tabName) + { + if (!levelData.ContainsKey(tabName)) return; + + var data = levelData[tabName]; + + foreach (var child in LevelInfoPanel.Children) + { + if (child is Grid g) + { + foreach (var element in g.Children) + { + if (element is TextBox tb && Grid.GetColumn(tb) == 2 && Grid.GetRow(tb) == 1) + { + tb.Text = data.Low; + } + if (element is Border br && Grid.GetColumn(br) == 3 && Grid.GetRow(br) == 1) + { + if (br.Child is TextBlock tblock) + tblock.Text = data.Status; + } + // High 或 Mark 可在此扩展 + } + } + } + } + // 初始化传感器数据 + private void InitializeSensorData() + { + sensorData = new Dictionary + { + { 1, new SensorToleranceData { MaxTolerance = "9.00", BaseTolerance = "72.9410", MinTolerance = "-9.00" } }, + { 2, new SensorToleranceData { MaxTolerance = "8.50", BaseTolerance = "72.8500", MinTolerance = "-8.50" } }, + { 3, new SensorToleranceData { MaxTolerance = "7.80", BaseTolerance = "72.7800", MinTolerance = "-7.80" } }, + { 4, new SensorToleranceData { MaxTolerance = "6.90", BaseTolerance = "72.6900", MinTolerance = "-6.90" } } + }; + } + // 传感器标签页点击事件处理 + private void SensorTab_Click(object sender, RoutedEventArgs e) + { + Button clickedButton = sender as Button; + if (clickedButton == null) return; + + int sensorIndex = int.Parse(clickedButton.Tag.ToString()); + // 保存当前传感器的数据 - private void SaveCurrentSensorData() - { - // 获取当前选中的传感器索引 - int currentSensorIndex = GetCurrentSelectedSensorIndex(); - - if (sensorData.ContainsKey(currentSensorIndex)) - { - sensorData[currentSensorIndex].MaxTolerance = MaxToleranceTextBox.Text; - sensorData[currentSensorIndex].BaseTolerance = BaseToleranceTextBox.Text; - sensorData[currentSensorIndex].MinTolerance = MinToleranceTextBox.Text; - } - } - - - // 获取当前选中的传感器索引 - private int GetCurrentSelectedSensorIndex() - { - if (SensorTab1.Background is SolidColorBrush brush1 && brush1.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) - return 1; - if (SensorTab2.Background is SolidColorBrush brush2 && brush2.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) - return 2; - if (SensorTab3.Background is SolidColorBrush brush3 && brush3.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) - return 3; - if (SensorTab4.Background is SolidColorBrush brush4 && brush4.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) - return 4; - return 1; // 默认返回传感器1 - } + SaveCurrentSensorData(); // 更新标签页样式 - private void UpdateTabStyles(int selectedIndex) - { - // 重置所有标签页样式 - SensorTab1.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); - SensorTab2.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); - SensorTab3.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); - SensorTab4.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); - - // 设置选中标签页样式 - switch (selectedIndex) - { - case 1: - SensorTab1.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); - break; - case 2: - SensorTab2.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); - break; - case 3: - SensorTab3.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); - break; - case 4: - SensorTab4.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); - break; - } - } - - // 加载传感器数据 - private void LoadSensorData(int sensorIndex) - { - if (sensorData.ContainsKey(sensorIndex)) - { - var data = sensorData[sensorIndex]; - MaxToleranceTextBox.Text = data.MaxTolerance; - BaseToleranceTextBox.Text = data.BaseTolerance; - MinToleranceTextBox.Text = data.MinTolerance; - } - } - - + UpdateTabStyles(sensorIndex); + // 加载选中传感器的数据 + LoadSensorData(sensorIndex); } - - // 等级信息数据类 - public class LevelInfo + // 保存当前传感器的数据 + private void SaveCurrentSensorData() { - public string Low { get; set; } - public string High { get; set; } - public string Mark { get; set; } - public string Status { get; set; } + // 获取当前选中的传感器索引 + int currentSensorIndex = GetCurrentSelectedSensorIndex(); + + if (sensorData.ContainsKey(currentSensorIndex)) + { + sensorData[currentSensorIndex].MaxTolerance = MaxToleranceTextBox.Text; + sensorData[currentSensorIndex].BaseTolerance = BaseToleranceTextBox.Text; + sensorData[currentSensorIndex].MinTolerance = MinToleranceTextBox.Text; + } } - // 传感器公差数据类 - public class SensorToleranceData + + // 获取当前选中的传感器索引 + private int GetCurrentSelectedSensorIndex() { - public string MaxTolerance { get; set; } - public string BaseTolerance { get; set; } - public string MinTolerance { get; set; } + if (SensorTab1.Background is SolidColorBrush brush1 && brush1.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) + return 1; + if (SensorTab2.Background is SolidColorBrush brush2 && brush2.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) + return 2; + if (SensorTab3.Background is SolidColorBrush brush3 && brush3.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) + return 3; + if (SensorTab4.Background is SolidColorBrush brush4 && brush4.Color == ((SolidColorBrush)new BrushConverter().ConvertFrom("#E6F3FF")).Color) + return 4; + return 1; // 默认返回传感器1 } + // 更新标签页样式 + private void UpdateTabStyles(int selectedIndex) + { + // 重置所有标签页样式 + SensorTab1.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); + SensorTab2.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); + SensorTab3.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); + SensorTab4.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F0F0F0")); + + // 设置选中标签页样式 + switch (selectedIndex) + { + case 1: + SensorTab1.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); + break; + case 2: + SensorTab2.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); + break; + case 3: + SensorTab3.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); + break; + case 4: + SensorTab4.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#E6F3FF")); + break; + } + } + + // 加载传感器数据 + private void LoadSensorData(int sensorIndex) + { + if (sensorData.ContainsKey(sensorIndex)) + { + var data = sensorData[sensorIndex]; + MaxToleranceTextBox.Text = data.MaxTolerance; + BaseToleranceTextBox.Text = data.BaseTolerance; + MinToleranceTextBox.Text = data.MinTolerance; + } + } + + + } + +/// +/// 产品信息数据类 +/// +public class Product +{ + /// + /// 主键 ID + /// + public int Id { get; set; } + + /// + /// 产品名称 + /// + public string Name { get; set; } + + + /// + /// 创建时间 + /// + public DateTime CreatedTime { get; set; } + + /// + /// 更新时间 + /// + public DateTime UpdatedTime { get; set; } +} + +/// +/// 传感器选择数据类 +/// +public class SensorSelection +{ + /// + /// 主键 ID + /// + public int Id { get; set; } + + /// + /// 传感器1 名称或编号 + /// + public bool Sensor1 { get; set; } + + /// + /// 传感器2 名称或编号 + /// + public bool Sensor2 { get; set; } + + /// + /// 传感器3 名称或编号 + /// + public bool Sensor3 { get; set; } + + /// + /// 传感器4 名称或编号 + /// + public bool Sensor4 { get; set; } + + /// + /// 所属产品名称 + /// + public string ProductName { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreatedTime { get; set; } + + /// + /// 更新时间 + /// + public DateTime UpdatedTime { get; set; } +} + +/// +/// 传感器公差数据类 +/// +public class SensorToleranceData +{ + /// + /// 主键 ID + /// + public int Id { get; set; } + + /// + /// 传感器名称(如 “传感器1”) + /// + public string SensorName { get; set; } + + /// + /// 最大公差 + /// + public string MaxTolerance { get; set; } + + /// + /// 基准公差 + /// + public string BaseTolerance { get; set; } + + /// + /// 最小公差 + /// + public string MinTolerance { get; set; } + + /// + /// 所属产品名称 + /// + public string ProductName { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreatedTime { get; set; } + + /// + /// 更新时间 + /// + public DateTime UpdatedTime { get; set; } +} + +/// +/// 主传感器选择数据类 +/// +public class MainSensorSelection +{ + /// + /// 主键 ID + /// + public int Id { get; set; } + + /// + /// 数字传感器1 是否为主传感器 + /// + public bool DigitalSensor1 { get; set; } + + /// + /// 数字传感器2 是否为主传感器 + /// + public bool DigitalSensor2 { get; set; } + + /// + /// 数字传感器3 是否为主传感器 + /// + public bool DigitalSensor3 { get; set; } + + /// + /// 数字传感器4 是否为主传感器 + /// + public bool DigitalSensor4 { get; set; } + + /// + /// 所属产品名称 + /// + public string ProductName { get; set; } + + + /// + /// 创建时间 + /// + public DateTime CreatedTime { get; set; } + + /// + /// 更新时间 + /// + public DateTime UpdatedTime { get; set; } + +} + + +/// +/// 等级信息数据类 +/// +public class LevelInfo +{ +/// +/// 主键 ID +/// + public int Id { get; set; } + /// + /// 等级名称(例如:A级、B级、C级) + /// + public string Name { get; set; } + + /// + /// 等级下限值 + /// + public string Low { get; set; } + + /// + /// 等级上限值 + /// + public string High { get; set; } + + /// + /// 等级标记(例如:合格、不合格、警告等) + /// + public string Mark { get; set; } + + /// + /// 当前状态(例如:启用、停用) + /// + public string Status { get; set; } + + /// + /// 所属产品名称 + /// + public string ProductName { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreatedTime { get; set; } + + /// + /// 更新时间 + /// + public DateTime UpdatedTime { get; set; } +} + + +