WaferRobotParameterEditViewModel.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using DocumentFormat.OpenXml.Wordprocessing;
  2. using MECF.Framework.Common.OperationCenter;
  3. using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
  4. using OpenSEMI.ClientBase;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Collections.ObjectModel;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace FurnaceUI.Views.Maintenances
  12. {
  13. public class WaferRobotParameterEditViewModel : DialogViewModel<string>
  14. {
  15. #region 页面构造函数及其重载方法
  16. protected override void OnInitialize()
  17. {
  18. base.OnInitialize();
  19. foreach (var item in TableNodeItems)
  20. {
  21. var key = $"{item.Path}.{item.Name}";
  22. ValueList.Add(new PageValue() { Path = key, CurrentValue = item.CurrentValue, Max = item.Max, Min = item.Min, Type = item.Type });
  23. OldValueList.Add(new PageValue() { Path = key, CurrentValue = item.CurrentValue, Max = item.Max, Min = item.Min, Type = item.Type });
  24. }
  25. _pName = TableNodeItems.FirstOrDefault().Path.Split('.').LastOrDefault();
  26. }
  27. #endregion
  28. #region 模型字段
  29. /// </summary>
  30. public string _pName;
  31. public string setValue;
  32. public string PName
  33. {
  34. get { return _pName; }
  35. set { _pName = value; this.NotifyOfPropertyChange(nameof(PName)); }
  36. }
  37. private bool _isModifyAll = false;
  38. public bool IsModifyAll
  39. {
  40. get { return _isModifyAll; }
  41. set { _isModifyAll = value; this.NotifyOfPropertyChange(nameof(IsModifyAll)); }
  42. }
  43. public List<ConfigItem> TableNodeItems { get; set; } = new List<ConfigItem>();
  44. public ObservableCollection<PageValue> ValueList { get; set; } = new ObservableCollection<PageValue>();
  45. public List<PageValue> OldValueList { get; set; } = new List<PageValue>();
  46. #endregion
  47. private void GetModifyValue()
  48. {
  49. IsModifyAll = true;
  50. }
  51. public void SaveBtnClick()
  52. {
  53. foreach (var item in ValueList)
  54. {
  55. if (!OldValueList.Where(a => a.Path.Equals(item.Path)).FirstOrDefault().CurrentValue.Equals(item.CurrentValue))
  56. {
  57. if (item.Path.Contains("SetValue"))
  58. {
  59. if (!IsInRange(double.Parse(item.CurrentValue),item.Min,item.Max))
  60. {
  61. DialogBox.ShowError($"The input value:{item.CurrentValue} must be between {item.Min} and {item.Max}!");
  62. return;
  63. }
  64. setValue = item.CurrentValue.PadLeft(11,'0');
  65. }
  66. InvokeClient.Instance.Service.DoOperation("System.SetConfig", item.Path, item.CurrentValue);
  67. }
  68. }
  69. IsCancel = true;
  70. TryClose(true);
  71. }
  72. private bool IsInRange(double num, double min, double max)
  73. {
  74. return (num >= min && num <= max);
  75. }
  76. public void CancelBtnClick()
  77. {
  78. IsCancel = true;
  79. TryClose(false);
  80. }
  81. }
  82. }