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 | 192 ++++++++++++++++++++++++++++------------------- 1 files changed, 114 insertions(+), 78 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 763ef30..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 @@ -2,91 +2,72 @@ 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> /// 椤甸潰鐘舵�佹敼鍙樹簨浠� /// </summary> public event Action PageStateChangedEvent; - - /// <summary> - /// 鍙樻洿绫诲瀷鏀瑰彉浜嬩欢 - /// </summary> - public event Action<List<string>> ChangeTypeChangedEvent; private CreateXhsSchemeViewModel _vm = null;//鎿嶄綔瀵硅薄 - private bool _isInitialize = false;//鏄惁鍒濆鍖� - private bool _allow_next = false;//鍏佽涓嬩竴姝� + /// <summary> /// 鍒濆鍖� /// </summary> - public async void InitialPage(CreateXhsSchemeViewModel t) - { - if (_isInitialize) + public async void InitialPage(CreateXhsSchemeViewModel vm) + { + if (vm == null) { return; } - _vm = t; - _isInitialize = true; - var allFlagList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Xhs.DataType.XhsScheme); - if (allFlagList != null&& allFlagList.Any()) + _vm = vm; + if (vm.Scheme == null) { - this.setFlagsEditCtrl1.SetBindingData(allFlagList.Select(x => x.Name).ToList(), 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.xhsSchemeChangeTypeCheckedListHorizCtrl1.SetBindingData(t.HydroInfo); - this.xhsSchemeChangeTypeCheckedListHorizCtrl1.CheckedChangedEvent += (change_type_list) => + 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); + 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) { - if (change_type_list == null || !change_type_list.Any()) - { - _allow_next = false; - } - else - { - _allow_next = true; - } - this.ChangeTypeChangedEvent?.Invoke(change_type_list); - this.PageStateChangedEvent?.Invoke(); - }; - if (t.Scheme == null) + _allowNext = false; + _allowComplete = true; + } + else { - t.Scheme = new XhsSchemeVmo(); - if (t.AllSchemeList != null && t.AllSchemeList.Count > 0) - { - var sort_code= t.AllSchemeList.Max(x => x.SortCode) + 1; - t.Scheme.SortCode = sort_code; - this.txtName.EditValue = $"鏂规{sort_code}"; - } + _allowNext = true; + _allowComplete = false; } } - //淇濆瓨 - private bool Save() + //閫夋嫨鏀瑰彉 + private void XhsSchemeChangeTypeCheckedListHorizCtrl1_CheckedChangedEvent(List<string> changeTypes) { - if (!_isInitialize) + if (changeTypes == null || changeTypes.Count < 1) { - return false; + _allowNext = false; + _allowComplete = true; } - this.dxErrorProvider1.ClearErrors(); - if (string.IsNullOrEmpty(this.txtName.Text.Trim())) + else { - this.dxErrorProvider1.SetError(this.txtName, "蹇呭~椤�"); - return false; + _allowNext = true; + _allowComplete = false; } - _vm.Scheme.Name = this.txtName.Text.Trim(); - _vm.Scheme.NO = this.txtNO.Text.Trim(); - _vm.Scheme.SiteID = _vm.ProjectSite.ID; - _vm.Scheme.Flags = this.setFlagsEditCtrl1.SelectedFlagList; - _vm.Scheme.AllowCustom = this.ckAllowCustom.Checked; - _vm.Scheme.ChangeTypes = this.xhsSchemeChangeTypeCheckedListHorizCtrl1.GetCheckedList(); - _vm.Scheme.Description = this.txtDescription.Text.Trim(); - return true; + this.PageStateChangedEvent?.Invoke(); } /// <summary> @@ -107,9 +88,10 @@ { get { - return _allow_next; + return _allowNext; } } + private bool _allowNext = false; /// <summary> /// 鍏佽鍙栨秷 @@ -129,59 +111,113 @@ { get { - if (!_isInitialize) - return false; - - return !_allow_next; + 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 Save(); + return Task.Run(() => Save()); } /// <summary> /// 鑳藉惁鍏抽棴 /// </summary> - public bool CanCancel() + public Task<bool> CanCancel() { - return true; + return Task.Run(() => true); } /// <summary> /// 鑳藉惁瀹屾垚 /// </summary> - public bool CanComplete() + public Task<bool> CanComplete() { - if (!_isInitialize) + return Task.Run(() => Save()); + } + + //楠岃瘉 + private bool Valid() + { + this.dxErrorProvider1.ClearErrors(); + 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; } - if (!Save()) - return false; - var bol = Task.Run(async () => await CreateXhsSchemeHelper.Create(_vm)).Result; - return bol; + _vm.Scheme.Name = this.txtName.Text.Trim(); + _vm.Scheme.NO = this.txtNO.Text.Trim(); + _vm.Scheme.Flags = this.setFlagsEditCtrl1.SelectedFlagList; + _vm.Scheme.AllowCustom = this.ckAllowCustom.Checked; + _vm.Scheme.ChangeTypes = this.xhsSchemeChangeTypeCheckedListHorizCtrl1.GetCheckedList(); + _vm.Scheme.Description = this.txtDescription.Text.Trim(); + InitialVisualViewModelList(); + return true; + } + + //鍒濆鍖栧彲瑙佽鍥惧垪琛� + private void InitialVisualViewModelList() + { + 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); + } } - + + + + + + + + + } } \ No newline at end of file -- Gitblit v1.9.3