duheng
2024-12-24 63834af1872ab37f22a5e67b5df20a082f7a052a
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/CreateXhsSchemeInfoPage.cs
@@ -1,48 +1,92 @@
namespace HStation.WinFrmUI
using DevExpress.Utils.Svg;
namespace HStation.WinFrmUI
{
    public partial class CreateXhsSchemeInfoPage : DevExpress.XtraEditors.XtraUserControl, Yw.WinFrmUI.IWizardPage<CreateXhsSchemeViewModel>
    {
        public CreateXhsSchemeInfoPage()
        {
            InitializeComponent();
        }
        }
        /// <summary>
        /// 页面状态改变事件
        /// </summary>
        public event Action PageStateChangedEvent;
        /// <summary>
        /// 变更类型改变事件
        /// </summary>
        public event Action<List<string>> ChangeTypeChangedEvent;
        private CreateXhsSchemeViewModel _vm = null;//操作对象
        private bool _isInitialize = false;//是否初始化
        private Lazy<HStation.BLL.XhsProject> _bllProject = new(() => new HStation.BLL.XhsProject());//项目bll
        private Lazy<Yw.BLL.SysFlag> _bllFlag = new(() => new Yw.BLL.SysFlag());//标签bll
        public static Action AutoAddItem;
        public static Action DeleteItem;
        public static bool AllowImport = false;
        public async void InitialPage(ImportXhsProjectViewModel t)
        {
            if (_isInitialize)
            {
                return;
            }
            //_vm = t;
            //_isInitialize = true;
            //var allFlagList = await _bllFlag.Value.GetBySysType(HStation.Xhs.DataType.XhsProject);
            //if (allFlagList == null)
            //{
            //    return;
            //}
            //this.setFlagsEditCtrl1.SetBindingData(allFlagList.Select(x => x.Name).ToList(), null);
        }
        private bool _allow_next = false;//允许下一步
        /// <summary>
        /// 初始化
        /// </summary>
        public void InitialPage(CreateXhsSchemeViewModel t)
        public async void InitialPage(CreateXhsSchemeViewModel t)
        {
            if (_isInitialize)
            {
                return;
            }
            _vm = t;
            _isInitialize = true;
            var allFlagList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Xhs.DataType.XhsScheme);
            if (allFlagList != null&& allFlagList.Any())
            {
                this.setFlagsEditCtrl1.SetBindingData(allFlagList.Select(x => x.Name).ToList(), null);
            }
            this.xhsSchemeChangeTypeCheckedListHorizCtrl1.SetBindingData(t.HydroInfo);
            this.xhsSchemeChangeTypeCheckedListHorizCtrl1.CheckedChangedEvent += (change_type_list) =>
            {
                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)
            {
                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}";
                }
            }
        }
        //保存
        private bool Save()
        {
            throw new NotImplementedException();
            if (!_isInitialize)
            {
                return false;
            }
            this.dxErrorProvider1.ClearErrors();
            if (string.IsNullOrEmpty(this.txtName.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.txtName, "必填项");
                return 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;
        }
        /// <summary>
@@ -63,7 +107,7 @@
        {
            get
            {
                return _isInitialize;
                return _allow_next;
            }
        }
@@ -72,7 +116,10 @@
        /// </summary>
        public bool AllowCancel
        {
            get { return true; }
            get
            {
                return true;
            }
        }
        /// <summary>
@@ -80,7 +127,14 @@
        /// </summary>
        public bool AllowComplete
        {
            get { return false; }
            get
            {
                if (!_isInitialize)
                    return false;
                return !_allow_next;
            }
        }
        /// <summary>
@@ -100,27 +154,7 @@
            {
                return false;
            }
            this.dxErrorProvider1.ClearErrors();
            if (string.IsNullOrEmpty(this.txtName.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.txtName, "必填项");
                return false;
            }
            var tagName = this.txtTagNme.Text.Trim();
            if (!string.IsNullOrEmpty(tagName))
            {
                if (_bllProject.Value.IsExistTagName(tagName).Result)
                {
                    this.dxErrorProvider1.SetError(this.txtTagNme, "标记已存在");
                    return false;
                }
            }
            //_vm.Name = this.txtName.Text.Trim();
            //_vm.Customer = this.txtCustomer.Text.Trim();
            //_vm.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
            //_vm.TagName = tagName;
            //_vm.Description = this.txtDescription.Text.Trim();
            return true;
            return Save();
        }
        /// <summary>
@@ -136,9 +170,18 @@
        /// </summary>
        public bool CanComplete()
        {
            return false;
            if (!_isInitialize)
            {
                return false;
            }
            if (!Save())
                return false;
            var bol = Task.Run(async () => await CreateXhsSchemeHelper.Create(_vm)).Result;
            return bol;
        }
    }
}