| | |
| | | |
| | | 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) |
| | | 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> |
| | |
| | | { |
| | | get |
| | | { |
| | | return _allow_next; |
| | | return _allowNext; |
| | | } |
| | | } |
| | | private bool _allowNext = false; |
| | | |
| | | /// <summary> |
| | | /// 允许取消 |
| | |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |