| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 | using Aitex.Core.RT.SCCore;using Caliburn.Micro;using Caliburn.Micro.Core;using MECF.Framework.Common.DataCenter;using MECF.Framework.Common.RecipeCenter;using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using FurnaceUI.Models;using FurnaceUI.Views.Parameter;using FurnaceUI.Views.Recipes;using System.Windows.Controls;using MECF.Framework.Common.OperationCenter;using Aitex.Core.Common.DeviceData;namespace FurnaceUI.Views.Editors{    public class RecipeValveViewModel : FurnaceUIViewModelBase    {        public Dictionary<string, string> ValveSets { get; set; } = new Dictionary<string, string>();        private ObservableCollection<RecipeTemplateColumnBase> _valveTemplateColumn;        public ObservableCollection<RecipeTemplateColumnBase> ValveTemplateColumn        {            get => _valveTemplateColumn;            set            {                _valveTemplateColumn = value;                CreateDictDefault();                NotifyOfPropertyChange("ValveTemplateColumn");            }        }        public Dictionary<string, ObservableCollection<RecipeTemplateColumnBase>> _recipeTemplate;        public Dictionary<string, ObservableCollection<RecipeTemplateColumnBase>> RecipeTemplate        {            get => _recipeTemplate;            set            {                _recipeTemplate = value;                ValveTemplateColumn = RecipeTemplate["Valve"];                foreach (var valve in ValveTemplateColumn)                {                    valve.IsEnable = IsEnable;                    int iCount = valve.Options.Count;                    for (int i = 0; i < iCount; i++)                    {                        if (valve.Options[i].ControlName.Contains("Continue"))                            valve.Options.RemoveAt(i);                    }                }                NotifyOfPropertyChange("RecipeTemplate");            }        }        private void CreateDictDefault()        {            foreach (var item in _valveTemplateColumn)            {                if (!ValveSets.ContainsKey(item.ControlName))                {                    ValveSets.Add(item.ControlName, "Close");                }            }        }        public bool IsSave { get; set; }        public RecipeValveViewModel()        {        }        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式        public string RecipeType { get; set; }        protected override void OnViewLoaded(object view)        {            base.OnViewLoaded(view);            LoadData();        }        private void LoadData()        {            foreach (var item in ValveSets.Keys)            {                if (ValveSets[item] == "Open")                {                    var templateColumn =ValveTemplateColumn.Where(x => x.ControlName == item).FirstOrDefault();                    if (templateColumn != null)                    {                        templateColumn.SelectedValueIndex = 1;                    }                }            }        }        public void GASValveSelectionChanged(object sender, object e)        {            var obj = (RecipeTemplateColumnBase)((ComboBox)sender).DataContext;            bool isOpen = false;            if (obj.SelectedValueIndex == 0)            {                isOpen = false;            }            else if (obj.SelectedValueIndex == 1)            {                isOpen = true;            }            InvokeClient.Instance.Service.DoOperation($"PM1.{obj.ControlName}.{AITValveOperation.GVVirtualTurnValve}", isOpen);        }        public void GASSettingSave()        {            IsSave = true;            if (_valveTemplateColumn != null)            {                foreach (var item in _valveTemplateColumn)                {                    if (ValveSets != null)                        if (ValveSets.ContainsKey(item.ControlName))                        {                            switch (item.SelectedValueIndex)                            {                                case 0:                                    ValveSets[item.ControlName] = "Close";                                    break;                                case 1:                                    ValveSets[item.ControlName] = "Open";                                    break;                                case 2:                                    ValveSets[item.ControlName] = "Continue";                                    break;                            }                        }                        else                        {                            string valveSet = "Close";                            switch (item.SelectedValueIndex)                            {                                case 0:                                    valveSet = "Close";                                    break;                                case 1:                                    valveSet = "Open";                                    break;                                case 2:                                    valveSet = "Continue";                                    break;                            }                            ValveSets.Add(item.ControlName, valveSet);                        }                }            }        }        public void TempSetSave()        {            GASSettingSave();            ((Window)GetView()).DialogResult = true;        }        public void TempSetCancel()        {            IsSave = false;            ((Window)GetView()).DialogResult = false;        }    }}
 |