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