From f373ad1f566c9c8679547f4205d86eb6e0836d59 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期一, 06 一月 2025 17:22:13 +0800
Subject: [PATCH] 修改保存逻辑

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs |  169 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 129 insertions(+), 40 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs
index e01951c..5999d11 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs
@@ -1,10 +1,14 @@
-锘縩amespace HStation.WinFrmUI
+锘縰sing DevExpress.Utils.Svg;
+
+namespace HStation.WinFrmUI
 {
-    public partial class CreateXhsSchemeInfoPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPage<CreateXhsSchemeViewModel>
+    public partial class CreateXhsSchemeInfoPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPageAsync<CreateXhsSchemeViewModel>
     {
         public CreateXhsSchemeInfoPage()
         {
             InitializeComponent();
+            this.layoutControl1.SetupLayoutControl();
+            this.xhsSchemeChangeTypeCheckedListHorizCtrl1.CheckedChangedEvent += XhsSchemeChangeTypeCheckedListHorizCtrl1_CheckedChangedEvent;
         }
 
         /// <summary>
@@ -13,34 +17,57 @@
         public event Action PageStateChangedEvent;
 
         private CreateXhsSchemeViewModel _vm = null;//鎿嶄綔瀵硅薄
-        private bool _isInitialize = false;//鏄惁鍒濆鍖�
+
 
         /// <summary>
         /// 鍒濆鍖�
         /// </summary>
-        public async void InitialPage(CreateXhsSchemeViewModel t)
+        public async void InitialPage(CreateXhsSchemeViewModel vm)
         {
-            if (_isInitialize)
+            if (vm == null)
             {
                 return;
             }
-            _vm = t;
-            _isInitialize = true;
+            _vm = vm;
+            if (vm.Scheme == null)
+            {
+                vm.Scheme = new XhsSchemeVmo() { SiteID = vm.ProjectSite.ID };
+                vm.Scheme.Name = Yw.Untity.UniqueHelper.CreateFromFirst("鏂规", vm.AllSchemeList?.Select(x => x.Name).Distinct().ToList());
+                vm.Scheme.SortCode = vm.AllSchemeList == null || vm.AllSchemeList.Count < 1 ? 1 : vm.AllSchemeList.Max(x => x.SortCode) + 1;
+            }
+            this.txtName.EditValue = vm.Scheme.Name;
+            this.txtNO.EditValue = vm.Scheme.NO;
             var allFlagList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Xhs.DataType.XhsScheme);
-            if (allFlagList == null)
+            this.setFlagsEditCtrl1.SetBindingData(allFlagList?.Select(x => x.Name).ToList(), vm.Scheme.Flags);
+            this.ckAllowCustom.Checked = vm.Scheme.AllowCustom;
+            this.txtDescription.EditValue = vm.Scheme.Description;
+            this.xhsSchemeChangeTypeCheckedListHorizCtrl1.SetBindingData(vm.HydroInfo, vm.Scheme.ChangeTypes);
+            if (vm.Scheme.ChangeTypes == null || vm.Scheme.ChangeTypes.Count < 1)
             {
-                return;
+                _allowNext = false;
+                _allowComplete = true;
             }
-            this.setFlagsEditCtrl1.SetBindingData(allFlagList.Select(x => x.Name).ToList(), null);
-            this.xhsSchemeChangeTypeCheckedListHorizCtrl1.SetBindingData(t.HydroInfo);
-            if (t.Scheme == null)
+            else
             {
-                t.Scheme = new XhsSchemeVmo();
-                if (t.AllSchemeList != null && t.AllSchemeList.Count > 0)
-                {
-                    t.Scheme.SortCode = t.AllSchemeList.Max(x => x.SortCode) + 1;
-                }
+                _allowNext = true;
+                _allowComplete = false;
             }
+        }
+
+        //閫夋嫨鏀瑰彉
+        private void XhsSchemeChangeTypeCheckedListHorizCtrl1_CheckedChangedEvent(List<string> changeTypes)
+        {
+            if (changeTypes == null || changeTypes.Count < 1)
+            {
+                _allowNext = false;
+                _allowComplete = true;
+            }
+            else
+            {
+                _allowNext = true;
+                _allowComplete = false;
+            }
+            this.PageStateChangedEvent?.Invoke();
         }
 
         /// <summary>
@@ -61,16 +88,20 @@
         {
             get
             {
-                return _isInitialize;
+                return _allowNext;
             }
         }
+        private bool _allowNext = false;
 
         /// <summary>
         /// 鍏佽鍙栨秷
         /// </summary>
         public bool AllowCancel
         {
-            get { return true; }
+            get
+            {
+                return true;
+            }
         }
 
         /// <summary>
@@ -78,30 +109,65 @@
         /// </summary>
         public bool AllowComplete
         {
-            get { return false; }
+            get
+            {
+                return _allowComplete;
+            }
         }
+        private bool _allowComplete = true;
 
         /// <summary>
         /// 鑳藉惁涓婁竴姝�
         /// </summary>
-        public bool CanPrev()
+        public Task<bool> CanPrev()
         {
-            return false;
+            return Task.Run(() => false);
         }
 
         /// <summary>
         /// 鑳藉惁涓嬩竴姝�
         /// </summary>
-        public bool CanNext()
+        public Task<bool> CanNext()
         {
-            if (!_isInitialize)
-            {
-                return false;
-            }
+            return Task.Run(() => Save());
+        }
+
+        /// <summary>
+        /// 鑳藉惁鍏抽棴
+        /// </summary>
+        public Task<bool> CanCancel()
+        {
+            return Task.Run(() => true);
+        }
+
+        /// <summary>
+        /// 鑳藉惁瀹屾垚
+        /// </summary>
+        public Task<bool> CanComplete()
+        {
+            return Task.Run(() => Save());
+        }
+
+        //楠岃瘉
+        private bool Valid()
+        {
             this.dxErrorProvider1.ClearErrors();
-            if (string.IsNullOrEmpty(this.txtName.Text.Trim()))
+            var name = this.txtName.Text.Trim();
+            if (string.IsNullOrEmpty(name))
             {
                 this.dxErrorProvider1.SetError(this.txtName, "蹇呭~椤�");
+                return false;
+            }
+
+
+            return true;
+        }
+
+        //淇濆瓨
+        private bool Save()
+        {
+            if (!Valid())
+            {
                 return false;
             }
             _vm.Scheme.Name = this.txtName.Text.Trim();
@@ -110,24 +176,47 @@
             _vm.Scheme.AllowCustom = this.ckAllowCustom.Checked;
             _vm.Scheme.ChangeTypes = this.xhsSchemeChangeTypeCheckedListHorizCtrl1.GetCheckedList();
             _vm.Scheme.Description = this.txtDescription.Text.Trim();
+            InitialVisualViewModelList();
             return true;
         }
 
-        /// <summary>
-        /// 鑳藉惁鍏抽棴
-        /// </summary>
-        public bool CanCancel()
+        //鍒濆鍖栧彲瑙佽鍥惧垪琛�
+        private void InitialVisualViewModelList()
         {
-            return true;
+            if (_vm == null)
+            {
+                return;
+            }
+            if (_vm.HydroInfo == null)
+            {
+                return;
+            }
+            if (_vm.AllVisualViewModelList != null)
+            {
+                return;
+            }
+            if (_vm.Scheme.ChangeTypes == null || _vm.Scheme.ChangeTypes.Count < 1)
+            {
+                return;
+            }
+            _vm.AllVisualViewModelList = new List<HydroVisualViewModel>();
+            var allVisualList = _vm.HydroInfo.GetAllVisuals();
+            foreach (var visual in allVisualList)
+            {
+                var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visual, _vm.HydroInfo);
+                _vm.AllVisualViewModelList.Add(vm);
+            }
         }
 
-        /// <summary>
-        /// 鑳藉惁瀹屾垚
-        /// </summary>
-        public bool CanComplete()
-        {
-            return false;
-        }
+
+
+
+
+
+
+
+
+
 
 
     }

--
Gitblit v1.9.3