From 00ab1b5282ada6ffdc78b3dd46f0ce08726a51e6 Mon Sep 17 00:00:00 2001 From: qin <a@163.com> Date: 星期四, 20 三月 2025 13:47:24 +0800 Subject: [PATCH] 优化IBox界面 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs | 139 +++++++++++++++++++++++++++------------------ 1 files changed, 83 insertions(+), 56 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs index 8907ace..cea843b 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs @@ -1,11 +1,9 @@ -锘縰sing DevExpress.Utils.MVVM; -using DevExpress.XtraBars; +锘縰sing DevExpress.XtraBars; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Repository; using DevExpress.XtraLayout.Utils; using DevExpress.XtraVerticalGrid.Events; -using Yw.Model; namespace Yw.WinFrmUI { @@ -43,10 +41,8 @@ /// 鍒嗙骇灞炴�у�兼敼鍙樹簨浠� /// </summary> public event Action<HydroVisualViewModel> GradingPropertyValueChangedEvent; - /// <summary> - /// 姘存祦鍔ㄧ敾灞炴�у�兼敼鍙樹簨浠� - /// </summary> - public event Action<HydroVisualViewModel> FlowEffectPropertyValueChangedEvent; + + /// <summary> /// 寮鸿皟杩炴帴鑺傜偣浜嬩欢 /// 绗竴涓弬鏁颁负鏈韩Code @@ -58,14 +54,19 @@ /// </summary> public event Action<HydroVisualViewModel> HydroViewEvent; - //灞炴�х姸鎬佽緟鍔╃被 - private HydroPropStatusHelper _propStatusHelper = null; + private HydroChangeHelper _changeHelper = null;//鏀瑰彉杈呭姪绫� + private HydroPropStatusHelper _propStatusHelper = null;//灞炴�х姸鎬佽緟鍔╃被 /// <summary> /// 鍒濆鍖栨暟鎹� /// </summary> - public void InitialData(HydroPropStatusHelper propStatusHelper) + public void InitialData + ( + HydroChangeHelper changeHelper, + HydroPropStatusHelper propStatusHelper + ) { + _changeHelper = changeHelper; _propStatusHelper = propStatusHelper; } @@ -224,6 +225,15 @@ if (fullTypeName == typeof(DateTime).FullName) { e.CellText = ((DateTime)e.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss"); + } + else if (fullTypeName == typeof(string[]).FullName) + { + var stringValue = (string[])e.Properties.Value; + e.CellText = stringValue?.Length.ToString(); + } + else if (fullTypeName == typeof(DictionaryPropertyAdapter).FullName) + { + e.CellText = string.Empty; } else { @@ -419,6 +429,7 @@ { var buttonEdit = new RepositoryItemButtonEdit(); buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; + buttonEdit.ButtonClick += async delegate { var vm = GetPropertyViewModel(e.Row); @@ -439,6 +450,37 @@ e.RepositoryItem = buttonEdit; } } + + #endregion + + #region 鍙傛暟 + + if (descriptor != null) + { + var parasProAttri = (HydroParasProAttribute)descriptor.Attributes[typeof(HydroParasProAttribute)]; + if (parasProAttri != null) + { + var buttonEdit = new RepositoryItemButtonEdit(); + buttonEdit.TextEditStyle = TextEditStyles.HideTextEditor; + buttonEdit.ButtonClick += delegate + { + var vm = GetPropertyViewModel(e.Row); + var dlg = new SetParasDlg(); + dlg.SetBindingData(vm.Vmo.Paras); + dlg.ReloadDataEvent += (paras) => + { + vm.Vmo.Paras = paras; + vm.Paras = new DictionaryPropertyAdapter(paras); + this.propertyGridControl1.UpdateRows(); + this.propertyGridControl1.RefreshEditor(); + this.PropertyValueChangedEvent?.Invoke(vm); + }; + dlg.ShowDialog(); + }; + e.RepositoryItem = buttonEdit; + } + } + #endregion @@ -470,10 +512,6 @@ if (vm is HydroValveViewModel valve) { - if (fieldName == nameof(HydroValveViewModel.ValveSetting)) - { - e.Row.Visible = false; - } switch (valve.Vmo.ValveType) { case Yw.Hydro.ValveType.PSV: @@ -486,11 +524,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -506,11 +540,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -526,11 +556,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -546,11 +572,7 @@ { e.Row.Visible = true; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -566,11 +588,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = true; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -586,13 +604,9 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) - { - e.Row.Visible = true; } } break; @@ -606,13 +620,9 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) - { - e.Row.Visible = false; + e.Row.Visible = true; } } break; @@ -641,9 +651,18 @@ } vm.UpdateVmoProperty(); this.PropertyValueChangedEvent?.Invoke(vm); + + var realFieldName = fieldName; var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); if (descriptor != null) { + //鐪熷疄灞炴�у悕绉� + var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)]; + if (realPropAttri != null) + { + realFieldName = realPropAttri.RealPropName; + } + var hydroMarkPropAttri = descriptor.Attributes[typeof(HydroMarkProAttribute)]; if (hydroMarkPropAttri != null) { @@ -656,13 +675,10 @@ this.GradingPropertyValueChangedEvent?.Invoke(vm); } - var hydroFlowDirectionPropAttri = descriptor.Attributes[typeof(HydroFlowDirectionProAttribute)]; - if (hydroFlowDirectionPropAttri != null) - { - this.FlowEffectPropertyValueChangedEvent?.Invoke(vm); - } this.propertyGridControl1.UpdateRows(); } + _changeHelper?.Append(vm.Vmo, eChangeType.Update); + _propStatusHelper?.UpdatePropStatus(vm.Code, realFieldName, Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃灞炴�ф帶浠朵慨鏀�"); } //Db鍖归厤 @@ -692,6 +708,9 @@ link.EndCode = tempCode; link.UpdateVmoProperty(); + _propStatusHelper?.UpdatePropStatus(link.Code, nameof(link.Vmo.StartCode), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + _propStatusHelper?.UpdatePropStatus(link.Code, nameof(link.Vmo.EndCode), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + var translation = this.SelectedObject as HydroTranslationViewModel; if (translation != null) { @@ -699,6 +718,8 @@ translation.StartDiameter = translation.EndDiameter; translation.EndDiameter = tempDiameter; translation.UpdateVmoProperty(); + _propStatusHelper?.UpdatePropStatus(translation.Code, nameof(translation.Vmo.StartDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + _propStatusHelper?.UpdatePropStatus(translation.Code, nameof(translation.Vmo.EndDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); } var pump = this.SelectedObject as HydroPumpViewModel; @@ -708,7 +729,11 @@ pump.InletDiameter = pump.OutletDiameter; pump.OutletDiameter = tempDiameter; pump.UpdateVmoProperty(); + _propStatusHelper?.UpdatePropStatus(pump.Code, nameof(pump.Vmo.InletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + _propStatusHelper?.UpdatePropStatus(pump.Code, nameof(pump.Vmo.OutletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); } + + _changeHelper?.Append(link.Vmo, eChangeType.Update); this.propertyGridControl1.UpdateRows(); } @@ -837,12 +862,14 @@ var dlg = new HydroCurveEditDlg(); dlg.ReloadDataEvent += (rhs) => { - + _changeHelper?.Append(rhs, eChangeType.Update); }; dlg.SetBindingData(curve); dlg.ShowDialog(); } + + } } -- Gitblit v1.9.3