From 3886a51f03ec14650e5b7127539104ad40e496da Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期三, 04 十二月 2024 20:36:12 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs |  325 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 210 insertions(+), 115 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
index f11d47a..6aaab03 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
@@ -4,6 +4,7 @@
 using DevExpress.XtraEditors.Repository;
 using DevExpress.XtraLayout.Utils;
 using DevExpress.XtraVerticalGrid.Events;
+using Yw.Model;
 
 namespace Yw.WinFrmUI
 {
@@ -14,6 +15,7 @@
         {
             InitializeComponent();
             this.layoutControl1.SetupLayoutControl();
+            SetDescriptionVisible(false);
         }
 
         /// <summary>
@@ -28,7 +30,7 @@
         /// 绗簩涓弬鏁颁负鏇茬嚎绫诲瀷
         /// 绗笁涓弬鏁颁负鏄惁璁剧疆鎴愬姛
         /// </summary>
-        public event Func<HydroVisualViewModel, string, bool> SetCurveEvent;
+        public event Func<HydroVisualViewModel, string, string, bool> SetCurveEvent;
         /// <summary>
         /// 璁剧疆妯″紡浜嬩欢
         /// 绗竴涓弬鏁颁负璁剧疆妯″紡浜嬬殑ViewModel
@@ -82,7 +84,19 @@
             set
             {
                 this.barBtnChangeLink.Visibility = value is HydroLinkViewModel ? BarItemVisibility.Always : BarItemVisibility.Never;
+                this.barBtnDb.Visibility = value == null ? BarItemVisibility.Never : BarItemVisibility.Always;
                 this.barBtnView.Visibility = value == null ? BarItemVisibility.Never : BarItemVisibility.Always;
+                if (value != null)
+                {
+                    if (value is HydroReservoirViewModel)
+                    {
+                        this.barBtnDb.Visibility = BarItemVisibility.Never;
+                    }
+                    else if (value is HydroJunctionViewModel)
+                    {
+                        this.barBtnDb.Visibility = BarItemVisibility.Never;
+                    }
+                }
                 this.propertyGridControl1.SelectedObject = value;
             }
         }
@@ -147,7 +161,6 @@
             {
                 return;
             }
-
             //灞炴�ф弿杩板櫒
             var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row);
             if (descriptor != null)
@@ -157,6 +170,12 @@
                 if (displayNameAttri != null && !string.IsNullOrEmpty(displayNameAttri.DisplayName))
                 {
                     e.Caption = displayNameAttri.DisplayName;
+                }
+                //鍥炬爣
+                var calcuProAttri = (HydroCalcuProAttribute)descriptor.Attributes[typeof(HydroCalcuProAttribute)];
+                if (calcuProAttri != null)
+                {
+
                 }
             }
 
@@ -363,124 +382,28 @@
                     {
                         return;
                     }
-                    switch (curvePropAttri.CurveType)
+                    if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.Curve, curvePropAttri.CurveType))
                     {
-                        case HydroCurve.Tank:
+                        var curveCode = e.Row.Properties.Value?.ToString();
+                        var curveInfo = vm.HydroInfo.Curves?.Find(x => x.Code == curveCode);
+                        var dlg = new SetHydroCurveDlg();
+                        dlg.SetBindingData(vm.HydroInfo, curveInfo, curvePropAttri.Curve, curvePropAttri.CurveType);
+                        dlg.ReloadDataEvent += (curveInfoRhs) =>
+                        {
+                            if (vm.HydroInfo.Curves == null)
                             {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Pump))
-                                {
-                                    XtraMessageBox.Show("姝e湪寮�鍙戜腑...");
-                                }
+                                vm.HydroInfo.Curves = new List<Model.HydroCurveInfo>();
                             }
-                            break;
-                        case HydroCurve.TankVol:
+                            if (curveInfo != null)
                             {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.TankVol))
-                                {
-                                    XtraMessageBox.Show("姝e湪寮�鍙戜腑...");
-                                }
+                                vm.HydroInfo.Curves.Remove(curveInfo);
                             }
-                            break;
-                        case HydroCurve.Pump:
-                            {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Pump))
-                                {
-                                    //缂虹渷鐨勮缃柟娉�
-                                }
-                            }
-                            break;
-                        case HydroCurve.PumpQH:
-                            {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.PumpQH))
-                                {
-                                    var pumpViewModel = vm as HydroPumpViewModel;
-                                    var curveQh = vm.HydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQH);
-                                    var dlg = new SetHydroCurveDlg();
-                                    dlg.ReloadDataEvent += (curveInfo) =>
-                                    {
-                                        if (vm.HydroInfo.Curves == null)
-                                        {
-                                            vm.HydroInfo.Curves = new List<Model.HydroCurveInfo>();
-                                        }
-                                        if (curveQh != null)
-                                        {
-                                            vm.HydroInfo.Curves.Remove(curveQh);
-                                        }
-                                        vm.HydroInfo.Curves.Add(curveInfo);
-                                        pumpViewModel.CurveQH = curveInfo.Code;
-                                        UpdateRows();
-                                    };
-                                    dlg.SetBindingData(vm.HydroInfo, curveQh, curvePropAttri.CurveType);
-                                    dlg.ShowDialog();
-                                }
-                            }
-                            break;
-                        case HydroCurve.PumpQP:
-                            {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.CurveType))
-                                {
-                                    var pumpViewModel = vm as HydroPumpViewModel;
-                                    var curveQp = vm.HydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQP);
-                                    var dlg = new SetHydroCurveDlg();
-                                    dlg.ReloadDataEvent += (curveInfo) =>
-                                    {
-                                        if (vm.HydroInfo.Curves == null)
-                                        {
-                                            vm.HydroInfo.Curves = new List<Model.HydroCurveInfo>();
-                                        }
-                                        if (curveQp != null)
-                                        {
-                                            vm.HydroInfo.Curves.Remove(curveQp);
-                                        }
-                                        vm.HydroInfo.Curves.Add(curveInfo);
-                                        pumpViewModel.CurveQP = curveInfo.Code;
-                                        UpdateRows();
-                                    };
-                                    dlg.SetBindingData(vm.HydroInfo, curveQp, curvePropAttri.CurveType);
-                                    dlg.ShowDialog();
-                                }
-                            }
-                            break;
-                        case HydroCurve.PumpQE:
-                            {
-                                var pumpViewModel = vm as HydroPumpViewModel;
-                                var curveQe = vm.HydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQE);
-                                var dlg = new SetHydroCurveDlg();
-                                dlg.ReloadDataEvent += (curveInfo) =>
-                                {
-                                    if (vm.HydroInfo.Curves == null)
-                                    {
-                                        vm.HydroInfo.Curves = new List<Model.HydroCurveInfo>();
-                                    }
-                                    if (curveQe != null)
-                                    {
-                                        vm.HydroInfo.Curves.Remove(curveQe);
-                                    }
-                                    vm.HydroInfo.Curves.Add(curveInfo);
-                                    pumpViewModel.CurveQE = curveInfo.Code;
-                                    UpdateRows();
-                                };
-                                dlg.SetBindingData(vm.HydroInfo, curveQe, curvePropAttri.CurveType);
-                                dlg.ShowDialog();
-                            }
-                            break;
-                        case HydroCurve.Valve:
-                            {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Valve))
-                                {
-                                    //缂虹渷鐨勮缃柟娉�
-                                }
-                            }
-                            break;
-                        case HydroCurve.ValveQL:
-                            {
-                                if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.CurveType))
-                                {
-                                    //缂虹渷鐨勮缃柟娉�
-                                }
-                            }
-                            break;
-                        default: break;
+                            vm.HydroInfo.Curves.Add(curveInfo);
+                            e.Row.Properties.Value = curveInfo.Code;
+                            vm.UpdateVmoProperty();
+                            UpdateRows();
+                        };
+                        dlg.ShowDialog();
                     }
                 };
                 e.RepositoryItem = buttonEdit;
@@ -570,8 +493,165 @@
                 }
             }
 
+            #endregion
+
+            #region 闃�闂�
+
+            if (vm is HydroValveViewModel valve)
+            {
+                if (fieldName == nameof(HydroValveViewModel.ValveSetting))
+                {
+                    e.Row.Visible = false;
+                }
+                switch (valve.Vmo.ValveType)
+                {
+                    case Yw.Hydro.ValveType.PSV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = true;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                        }
+                        break;
+                    case Yw.Hydro.ValveType.PRV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = true;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                        }
+                        break;
+                    case Yw.Hydro.ValveType.PBV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = true;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                        }
+                        break;
+                    case Yw.Hydro.ValveType.FCV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = true;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                        }
+                        break;
+                    case Yw.Hydro.ValveType.TCV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = true;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                        }
+                        break;
+                    case Yw.Hydro.ValveType.GPV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = true;
+                            }
+                        }
+                        break;
+                    case Yw.Hydro.ValveType.CV:
+                        {
+                            if (fieldName == nameof(HydroValveViewModel.ValvePress))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveFlow))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveOL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                            if (fieldName == nameof(HydroValveViewModel.ValveQL))
+                            {
+                                e.Row.Visible = false;
+                            }
+                        }
+                        break;
+                    default: break;
+                }
+            }
+
 
             #endregion
+
 
         }
 
@@ -610,6 +690,21 @@
                 {
                     this.FlowEffectPropertyValueChangedEvent?.Invoke(vm);
                 }
+                this.propertyGridControl1.UpdateRows();
+            }
+        }
+
+        //閫夋嫨
+        private void barBtnDb_ItemClick(object sender, ItemClickEventArgs e)
+        {
+            var vm = this.SelectedObject;
+            if (vm == null)
+            {
+                return;
+            }
+            if (this.MatchingDbEvent != null)
+            {
+
             }
         }
 

--
Gitblit v1.9.3