lixiaojun
2025-01-03 d672ca82c49f01dae2c5c955202b5857ef680a71
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs
@@ -2,11 +2,13 @@
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>
@@ -14,79 +16,58 @@
        /// </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)
        public async void InitialPage(CreateXhsSchemeViewModel vm)
        { 
            if (_isInitialize)
            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;
                _allowNext = false;
                _allowComplete = true;
                }
                else
                {
                    _allow_next = true;
                }
                this.ChangeTypeChangedEvent?.Invoke(change_type_list);
                this.PageStateChangedEvent?.Invoke();
            };
            if (t.Scheme == null)
            {
                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,57 +111,111 @@
        {
            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);
            }
        }