From 046df0f7526575cfb8b4b8c045d864c498b5a46c Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期五, 06 十二月 2024 17:06:46 +0800
Subject: [PATCH] 项目Service优化,可见视图列表优化

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs                         |   71 ++++++++++----
 BLL/HStation.BLL.Xhs.Core/03-localclient/01-project/XhsProjectExtensions.cs                                     |    2 
 Dto/HStation.Dto.Xhs.Core/01-project/01-project/UpdateXhsProjectInput.cs                                        |    0 
 Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectDto.cs                                                |    0 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs                 |    8 +
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/04-junction/HydroJunctionListCtrl.cs                                  |    5 
 BLL/HStation.BLL.Xhs.Core/00-core/Mapper.cs                                                                     |    5 -
 Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectStdDto.cs                                             |    1 
 /dev/null                                                                                                       |   31 ------
 Dto/HStation.Dto.Xhs.Core/02-project-site/AddXhsProjectSiteInput.cs                                             |    2 
 Application/HStation.Application.Xhs.Core/01-project/XhsProject_ExtensionsController.cs                         |    2 
 Application/HStation.Application.Xhs.Core/00-core/Mapper.cs                                                     |    5 -
 Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectExtensionsInput.cs                              |    2 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/02-label/SimulationCalcuResultLabelHelper.cs |    4 
 BLL/HStation.BLL.Xhs.Core/04-bll/01-project/XhsProjectExtensions_Instance.cs                                    |   17 ---
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/15-translation/HydroTranslationListCtrl.cs                            |   10 +
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs                                |   82 ++++++++++++++++
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs                                          |    1 
 Dto/HStation.Dto.Xhs.Core/01-project/01-project/AddXhsProjectInput.cs                                           |    0 
 WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/07-threelink/HydroThreelinkListCtrl.cs                                |    9 +
 20 files changed, 161 insertions(+), 96 deletions(-)

diff --git a/Application/HStation.Application.Xhs.Core/00-core/Mapper.cs b/Application/HStation.Application.Xhs.Core/00-core/Mapper.cs
index 92a4938..1d5a771 100644
--- a/Application/HStation.Application.Xhs.Core/00-core/Mapper.cs
+++ b/Application/HStation.Application.Xhs.Core/00-core/Mapper.cs
@@ -45,11 +45,6 @@
                 .Map(dest => dest.Flags, src => src.Flags)
                 .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
 
-            config.ForType<AddXhsProjectSiteExtensionsInput, Model.XhsProjectSite>()
-               .Map(dest => dest.Paras, src => src.Paras)
-               .Map(dest => dest.Flags, src => src.Flags)
-               .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
-
             config.ForType<UpdateXhsProjectSiteInput, Model.XhsProjectSite>()
               .Map(dest => dest.Paras, src => src.Paras)
               .Map(dest => dest.Flags, src => src.Flags);
diff --git a/Application/HStation.Application.Xhs.Core/01-project/XhsProject_ExtensionsController.cs b/Application/HStation.Application.Xhs.Core/01-project/XhsProject_ExtensionsController.cs
index 1a5fdc9..a4892a1 100644
--- a/Application/HStation.Application.Xhs.Core/01-project/XhsProject_ExtensionsController.cs
+++ b/Application/HStation.Application.Xhs.Core/01-project/XhsProject_ExtensionsController.cs
@@ -102,7 +102,7 @@
             var project = input.Adapt<AddXhsProjectInput, Model.XhsProject>();
             project.SortCode = _service.GetMaxSortCode(0) + 1;
 
-            var siteList = input.SiteList?.Select(x => x.Adapt<AddXhsProjectSiteExtensionsInput, Model.XhsProjectSite>()).ToList();
+            var siteList = input.SiteList?.Select(x => x.Adapt<AddXhsProjectSiteInput, Model.XhsProjectSite>()).ToList();
             var id = _service.InsertEx(project, siteList);
             return id;
         }
diff --git a/BLL/HStation.BLL.Xhs.Core/00-core/Mapper.cs b/BLL/HStation.BLL.Xhs.Core/00-core/Mapper.cs
index 62c9efd..3de1449 100644
--- a/BLL/HStation.BLL.Xhs.Core/00-core/Mapper.cs
+++ b/BLL/HStation.BLL.Xhs.Core/00-core/Mapper.cs
@@ -42,11 +42,6 @@
                 .Map(dest => dest.Flags, src => src.Flags)
                 .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
 
-            config.ForType<AddXhsProjectSiteExtensionsInput, Model.XhsProjectSite>()
-               .Map(dest => dest.Paras, src => src.Paras)
-               .Map(dest => dest.Flags, src => src.Flags)
-               .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
-
             config.ForType<UpdateXhsProjectSiteInput, Model.XhsProjectSite>()
               .Map(dest => dest.Paras, src => src.Paras)
               .Map(dest => dest.Flags, src => src.Flags);
diff --git a/BLL/HStation.BLL.Xhs.Core/03-localclient/01-project/XhsProjectExtensions.cs b/BLL/HStation.BLL.Xhs.Core/03-localclient/01-project/XhsProjectExtensions.cs
index 8942764..d4d066d 100644
--- a/BLL/HStation.BLL.Xhs.Core/03-localclient/01-project/XhsProjectExtensions.cs
+++ b/BLL/HStation.BLL.Xhs.Core/03-localclient/01-project/XhsProjectExtensions.cs
@@ -163,7 +163,7 @@
                 var project = input.Adapt<AddXhsProjectInput, Model.XhsProject>();
                 project.SortCode = _service.GetMaxSortCode(0) + 1;
 
-                var siteList = input.SiteList?.Select(x => x.Adapt<AddXhsProjectSiteExtensionsInput, Model.XhsProjectSite>()).ToList();
+                var siteList = input.SiteList?.Select(x => x.Adapt<AddXhsProjectSiteInput, Model.XhsProjectSite>()).ToList();
                 var id = _service.InsertEx(project, siteList);
                 return id;
             });
diff --git a/BLL/HStation.BLL.Xhs.Core/04-bll/01-project/XhsProjectExtensions_Instance.cs b/BLL/HStation.BLL.Xhs.Core/04-bll/01-project/XhsProjectExtensions_Instance.cs
index 1b6a448..76ddb31 100644
--- a/BLL/HStation.BLL.Xhs.Core/04-bll/01-project/XhsProjectExtensions_Instance.cs
+++ b/BLL/HStation.BLL.Xhs.Core/04-bll/01-project/XhsProjectExtensions_Instance.cs
@@ -38,7 +38,7 @@
                 return default;
             }
             var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.XhsProjectExtensionsVmo, HStation.Dto.AddXhsProjectExtensionsInput>()
-            .ForMember(d => d.SiteList, opt => opt.MapFrom(src => Vmo2AddDtos(src.SiteList)))
+            .ForMember(d => d.SiteList, opt => opt.MapFrom(src => XhsProjectSite.Vmo2AddDtos(src.SiteList)))
             ).CreateMapper();
             var dto = mapper.Map<HStation.Vmo.XhsProjectExtensionsVmo, HStation.Dto.AddXhsProjectExtensionsInput>(vmo);
             return dto;
@@ -52,22 +52,9 @@
                 return default;
             }
             var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.XhsProjectExtensionsVmo, HStation.Dto.AddXhsProjectExtensionsInput>()
-            .ForMember(d => d.SiteList, opt => opt.MapFrom(src => Vmo2AddDtos(src.SiteList)))
+            .ForMember(d => d.SiteList, opt => opt.MapFrom(src => XhsProjectSite.Vmo2AddDtos(src.SiteList)))
             ).CreateMapper();
             var dtoList = mapper.Map<List<HStation.Vmo.XhsProjectExtensionsVmo>, List<HStation.Dto.AddXhsProjectExtensionsInput>>(vmoList);
-            return dtoList;
-        }
-
-        //vmo to add dtos
-        internal static List<HStation.Dto.AddXhsProjectSiteExtensionsInput> Vmo2AddDtos(List<HStation.Vmo.XhsProjectSiteVmo> vmoList)
-        {
-            if (vmoList == null || vmoList.Count < 1)
-            {
-                return default;
-            }
-            var mapper = new MapperConfiguration(cfg => cfg.CreateMap<HStation.Vmo.XhsProjectSiteVmo, HStation.Dto.AddXhsProjectSiteExtensionsInput>()
-            ).CreateMapper();
-            var dtoList = mapper.Map<List<HStation.Vmo.XhsProjectSiteVmo>, List<HStation.Dto.AddXhsProjectSiteExtensionsInput>>(vmoList);
             return dtoList;
         }
 
diff --git a/Dto/HStation.Dto.Xhs.Core/01-project/01-normal/AddXhsProjectInput.cs b/Dto/HStation.Dto.Xhs.Core/01-project/01-project/AddXhsProjectInput.cs
similarity index 100%
rename from Dto/HStation.Dto.Xhs.Core/01-project/01-normal/AddXhsProjectInput.cs
rename to Dto/HStation.Dto.Xhs.Core/01-project/01-project/AddXhsProjectInput.cs
diff --git a/Dto/HStation.Dto.Xhs.Core/01-project/01-normal/UpdateXhsProjectInput.cs b/Dto/HStation.Dto.Xhs.Core/01-project/01-project/UpdateXhsProjectInput.cs
similarity index 100%
rename from Dto/HStation.Dto.Xhs.Core/01-project/01-normal/UpdateXhsProjectInput.cs
rename to Dto/HStation.Dto.Xhs.Core/01-project/01-project/UpdateXhsProjectInput.cs
diff --git a/Dto/HStation.Dto.Xhs.Core/01-project/01-normal/XhsProjectDto.cs b/Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectDto.cs
similarity index 100%
rename from Dto/HStation.Dto.Xhs.Core/01-project/01-normal/XhsProjectDto.cs
rename to Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectDto.cs
diff --git a/Dto/HStation.Dto.Xhs.Core/01-project/01-normal/XhsProjectStdDto.cs b/Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectStdDto.cs
similarity index 99%
rename from Dto/HStation.Dto.Xhs.Core/01-project/01-normal/XhsProjectStdDto.cs
rename to Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectStdDto.cs
index 7947e02..e806ea4 100644
--- a/Dto/HStation.Dto.Xhs.Core/01-project/01-normal/XhsProjectStdDto.cs
+++ b/Dto/HStation.Dto.Xhs.Core/01-project/01-project/XhsProjectStdDto.cs
@@ -48,7 +48,6 @@
         /// </summary>
         public string Name { get; set; }
 
-
         /// <summary>
         /// 璇︾粏鍦板潃
         /// </summary>
diff --git a/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectExtensionsInput.cs b/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectExtensionsInput.cs
index 65bd3e0..7030715 100644
--- a/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectExtensionsInput.cs
+++ b/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectExtensionsInput.cs
@@ -8,6 +8,6 @@
         /// <summary>
         /// 绔欑偣鍒楄〃
         /// </summary>
-        public List<AddXhsProjectSiteExtensionsInput> SiteList { get; set; }
+        public List<AddXhsProjectSiteInput> SiteList { get; set; }
     }
 }
diff --git a/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectSiteExtensionsInput.cs b/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectSiteExtensionsInput.cs
deleted file mode 100644
index 2b7d254..0000000
--- a/Dto/HStation.Dto.Xhs.Core/01-project/02-extensions/AddXhsProjectSiteExtensionsInput.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-锘縩amespace HStation.Dto
-{
-    /// <summary>
-    /// 
-    /// </summary>
-    public class AddXhsProjectSiteExtensionsInput
-    {
-
-        /// <summary>
-        /// 鍚嶇О
-        /// </summary>
-        [Required]
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 鍙傛暟
-        /// </summary>
-        public Dictionary<string, string> Paras { get; set; }
-
-        /// <summary>
-        /// 鏍囩
-        /// </summary>
-        public List<string> Flags { get; set; }
-
-        /// <summary>
-        /// 璇存槑
-        /// </summary>
-        public string Description { get; set; }
-
-    }
-}
diff --git a/Dto/HStation.Dto.Xhs.Core/02-project-site/AddXhsProjectSiteInput.cs b/Dto/HStation.Dto.Xhs.Core/02-project-site/AddXhsProjectSiteInput.cs
index 543f0d9..74f111d 100644
--- a/Dto/HStation.Dto.Xhs.Core/02-project-site/AddXhsProjectSiteInput.cs
+++ b/Dto/HStation.Dto.Xhs.Core/02-project-site/AddXhsProjectSiteInput.cs
@@ -3,11 +3,9 @@
     public class AddXhsProjectSiteInput
     {
 
-
         /// <summary>
         /// 椤圭洰id
         /// </summary>
-        [Required, Range(1, long.MaxValue, ErrorMessage = "ProjectID 蹇呴』澶т簬0")]
         public long ProjectID { get; set; }
 
         /// <summary>
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/02-label/SimulationCalcuResultLabelHelper.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/02-label/SimulationCalcuResultLabelHelper.cs
index 83ec023..78d9020 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/02-label/SimulationCalcuResultLabelHelper.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/03-calcu/02-label/SimulationCalcuResultLabelHelper.cs
@@ -43,11 +43,11 @@
                 var labels = GetLabels();
                 if (labels != null && labels.Count > 0)
                 {
-                    _views.ForEach(x => x.SetLogicCalcuCustomLabels(labels));
+                    _views.ForEach(async x => await x.SetLogicCalcuCustomLabels(labels));
                     return;
                 }
             }
-            _views.ForEach(x => x.ClearLogicCalcuCustomLabels());
+            _views.ForEach(async x => await x.ClearLogicCalcuCustomLabels());
         }
 
         //鑾峰彇璁$畻鏍囩
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs
index d8ead32..c4a57c5 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs
@@ -474,6 +474,7 @@
             elementWorking.HeaderControl = ckEdit;
             elementWorking.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
             elementWorking.Text = working.Name;
+            elementWorking.Hint = working.Description;
             elementWorking.Tag = working;
             elementWorking.Click += async (sender, e) =>
             {
@@ -485,6 +486,7 @@
 
         /// <summary>
         /// 鏇存柊鏂规宸ュ喌
+        /// 鏇存柊锛屼細瑙﹀彂鏇存柊浜嬩欢
         /// </summary>
         public void UpdateSchemeWorking(XhsSchemeVmo scheme, Yw.Vmo.HydroWorkingVmo working)
         {
@@ -504,31 +506,21 @@
             {
                 return;
             }
-            var elementScheme = this.elementSchemeList.Elements.FirstOrDefault(x => x.Tag is XhsSchemeVmo && (x.Tag as XhsSchemeVmo).ID == scheme.ID);
+            var elementScheme = this.elementSchemeList.Elements.FirstOrDefault(x => (x.Tag is XhsSchemeVmo) && (x.Tag as XhsSchemeVmo).ID == scheme.ID);
             if (elementScheme == null)
             {
                 return;
             }
-            elementScheme.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group;
-            var ckEdit = new CheckEdit();
-            ckEdit.Properties.AutoWidth = true;
-            ckEdit.Properties.Caption = string.Empty;
-            ckEdit.CheckedChanged += (sender, e) =>
+            var element = elementScheme.Elements.
+                Where(x => (x.Tag is HydroWorkingVmo) && (x.Tag as HydroWorkingVmo).ID == working.ID).FirstOrDefault();
+            if (element == null)
             {
-                this.ProjectSiteSchemeWorkingCheckedEvent?.Invoke(scheme, working, ckEdit.Checked);
-            };
-            this.accordionControl1.Controls.Add(ckEdit);
-            var elementWorking = new DevExpress.XtraBars.Navigation.AccordionControlElement();
-            elementWorking.HeaderControl = ckEdit;
-            elementWorking.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
-            elementWorking.Text = working.Name;
-            elementWorking.Tag = working;
-            elementWorking.Click += async (sender, e) =>
-            {
-                var hydroInfo = await GetSchemeHydroInfo(scheme, true);
-                this.ShowProjectSiteSchemeWorkingEvent?.Invoke(_project, _projectSite, scheme, hydroInfo, working, this.svgImg32[4]);
-            };
-            elementScheme.Elements.Add(elementWorking);
+                return;
+            }
+            element.Tag = working;
+            element.Text = working.Name;
+            element.Hint = working.Description;
+            this.ProjectSiteSchemeWorkingUpdateEvent?.Invoke(scheme, working);
         }
 
         /// <summary>
@@ -536,9 +528,46 @@
         /// </summary>
         public void RemoveSchemeWorking(XhsSchemeVmo scheme, Yw.Vmo.HydroWorkingVmo working)
         {
-
+            if (_project == null)
+            {
+                return;
+            }
+            if (_projectSite == null)
+            {
+                return;
+            }
+            if (scheme == null)
+            {
+                return;
+            }
+            if (working == null)
+            {
+                return;
+            }
+            var elementScheme = this.elementSchemeList.Elements.FirstOrDefault(x => (x.Tag is XhsSchemeVmo) && (x.Tag as XhsSchemeVmo).ID == scheme.ID);
+            if (elementScheme == null)
+            {
+                return;
+            }
+            var element = elementScheme.Elements.
+                Where(x => (x.Tag is HydroWorkingVmo) && (x.Tag as HydroWorkingVmo).ID == working.ID).FirstOrDefault();
+            if (element == null)
+            {
+                return;
+            }
+            if (element.HeaderControl != null)
+            {
+                this.accordionControl1.Controls.Remove(element.HeaderControl);
+            }
+            elementScheme.Elements.Remove(element);
+            if (elementScheme.Elements.Count < 1)
+            {
+                elementScheme.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
+            }
+            this.ProjectSiteSchemeWorkingRemoveEvent?.Invoke(scheme, working);
         }
 
+
         #endregion
 
 
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
index 764e48f..787d97b 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -278,6 +278,7 @@
             var visualVmListHelper = GetVisualVmListHelper();
             var vm = visualVmListHelper.GetVisual(visual);
             _propertyCtrl.SelectedObject = vm;
+            _propertyCtrl.UpdateRows();
         }
 
         //鏇存柊灞炴�ф帶浠�
@@ -2144,6 +2145,13 @@
 
                 #endregion
 
+                #region 棰滆壊鍒嗙骇
+
+                var gradingHelper = await GetGradingHelper();
+                gradingHelper.Set();
+
+                #endregion
+
                 #region 璁$畻鏍囩
 
                 var calcuResultLabelHelper = await GetCalcuResultLabelHelper();
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs
index 3ae706b..37f5caf 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/XhsProjectSimulationMgrPage.cs
@@ -24,11 +24,13 @@
             this.simulationFunctionMgrCtrl1.CreateProjectSiteSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_CreateProjectSiteSchemeEvent;
             this.simulationFunctionMgrCtrl1.ShowProjectSiteSchemeEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSchemeEvent;
             this.simulationFunctionMgrCtrl1.ShowProjectSiteSchemeWorkingEvent += XhsProjectSimulationFunctionMgrCtrl1_ShowProjectSiteSchemeWorkingEvent;
+            this.simulationFunctionMgrCtrl1.ProjectSiteSchemeWorkingCheckedEvent += SimulationFunctionMgrCtrl1_ProjectSiteSchemeWorkingCheckedEvent;
+            this.simulationFunctionMgrCtrl1.ProjectSiteSchemeWorkingUpdateEvent += SimulationFunctionMgrCtrl1_ProjectSiteSchemeWorkingUpdateEvent;
+            this.simulationFunctionMgrCtrl1.ProjectSiteSchemeWorkingRemoveEvent += SimulationFunctionMgrCtrl1_ProjectSiteSchemeWorkingRemoveEvent;
         }
 
         private XhsProjectVmo _project = null;//椤圭洰
         private object _locker = new object();//閿佸畾瀵硅薄
-
 
         /// <summary>
         /// 鍒濆鍖栨暟鎹簮
@@ -278,12 +280,90 @@
                 {
                     var page = new XhsProjectSimulationWorkingPage();
                     page.PageTitle.HeaderSvgImage = svgImage;
+                    page.UpdateWorkingEvent += (rhs) =>
+                    {
+                        this.simulationFunctionMgrCtrl1.UpdateSchemeWorking(scheme, rhs);
+                    };
+                    page.RemoveWorkingEvent += (rhs) =>
+                    {
+                        this.simulationFunctionMgrCtrl1.RemoveSchemeWorking(scheme, rhs);
+                    };
                     page.SetBindingData(project, projectSite, scheme, hydroInfo, working);
                     CreatePage(page, guid);
                 }
             }
         }
 
+        //椤圭洰绔欐柟妗堝伐鍐甸�夋嫨鏀瑰彉浜嬩欢
+        private void SimulationFunctionMgrCtrl1_ProjectSiteSchemeWorkingCheckedEvent(XhsSchemeVmo scheme, HydroWorkingVmo working, bool hasChecked)
+        {
+            var guid = new PageGuid()
+            {
+                Modular = this.PageGuid.Modular,
+                MoudingType = eMoudingType.Tab,
+                Function = SimulationFunctionHelper.Scheme,
+                TagName = scheme.ID.ToString()
+            };
+            var page = FindPage(guid);
+            if (page == null)
+            {
+                return;
+            }
+            var ctrl = page as XhsProjectSimulationSchemePage;
+            if (ctrl == null)
+            {
+                return;
+            }
+            ctrl.UpdateWorkingCheckedList(working, hasChecked);
+        }
+
+        //椤圭洰绔欐柟妗堝伐鍐垫洿鏂颁簨浠�
+        private void SimulationFunctionMgrCtrl1_ProjectSiteSchemeWorkingUpdateEvent(XhsSchemeVmo scheme, HydroWorkingVmo working)
+        {
+            var guid = new PageGuid()
+            {
+                Modular = this.PageGuid.Modular,
+                MoudingType = eMoudingType.Tab,
+                Function = SimulationFunctionHelper.Scheme,
+                TagName = scheme.ID.ToString()
+            };
+            var page = FindPage(guid);
+            if (page == null)
+            {
+                return;
+            }
+            var ctrl = page as XhsProjectSimulationSchemePage;
+            if (ctrl == null)
+            {
+                return;
+            }
+
+        }
+
+        //椤圭洰绔欐柟妗堝伐鍐电Щ闄や簨浠�
+        private void SimulationFunctionMgrCtrl1_ProjectSiteSchemeWorkingRemoveEvent(XhsSchemeVmo scheme, HydroWorkingVmo working)
+        {
+            var guid = new PageGuid()
+            {
+                Modular = this.PageGuid.Modular,
+                MoudingType = eMoudingType.Tab,
+                Function = SimulationFunctionHelper.Scheme,
+                TagName = scheme.ID.ToString()
+            };
+            var page = FindPage(guid);
+            if (page == null)
+            {
+                return;
+            }
+            var ctrl = page as XhsProjectSimulationSchemePage;
+            if (ctrl == null)
+            {
+                return;
+            }
+
+        }
+
+
         #endregion
 
         #region TabbedView 鐩稿叧浜嬩欢澶勭悊绋嬪簭
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
index 4aea13c..ba185b6 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs
@@ -85,6 +85,7 @@
                     }
                 }
                 this.propertyGridControl1.SelectedObject = value;
+                this.propertyGridControl1.UpdateRows();
             }
         }
 
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/04-junction/HydroJunctionListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/04-junction/HydroJunctionListCtrl.cs
index 0612c5b..2b95d36 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/04-junction/HydroJunctionListCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/04-junction/HydroJunctionListCtrl.cs
@@ -297,11 +297,12 @@
             this.colModelType.Visible = true;
             this.colElev.Visible = false;
             this.colMinorLoss.Visible = false;
-            this.colCalcuPress.Visible = false;
-            this.colCalcuHead.Visible = false;
             this.colHasDb.Visible = false;
             this.colFlags.Visible = true;
             this.colDescription.Visible = true;
+            this.colCalcuDemand.Visible = false;
+            this.colCalcuHead.Visible = false;
+            this.colCalcuPress.Visible = false;
             this.colSet.Visible = false;
         }
 
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/07-threelink/HydroThreelinkListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/07-threelink/HydroThreelinkListCtrl.cs
index b5378e1..474fa93 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/07-threelink/HydroThreelinkListCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/07-threelink/HydroThreelinkListCtrl.cs
@@ -316,15 +316,16 @@
             this.colModelType.Visible = true;
             this.colMaterial.Visible = true;
             this.colCaliber.Visible = true;
-            this.colRunningThroughLoss.Visible = false;
-            this.colBranchThroughLoss.Visible = false;
             this.colElev.Visible = false;
             this.colMinorLoss.Visible = false;
-            this.colCalcuPress.Visible = false;
-            this.colCalcuHead.Visible = false;
+            this.colRunningThroughLoss.Visible = false;
+            this.colBranchThroughLoss.Visible = false;
             this.colHasDb.Visible = false;
             this.colFlags.Visible = true;
             this.colDescription.Visible = true;
+            this.colCalcuDemand.Visible = false;
+            this.colCalcuHead.Visible = false;
+            this.colCalcuPress.Visible = false;
             this.colSet.Visible = false;
         }
 
diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/15-translation/HydroTranslationListCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/15-translation/HydroTranslationListCtrl.cs
index 6bdf497..42d741f 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/15-translation/HydroTranslationListCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/06-visual/15-translation/HydroTranslationListCtrl.cs
@@ -298,15 +298,17 @@
             this.colModelType.Visible = true;
             this.colMaterial.Visible = true;
             this.colDiameter.Visible = true;
-            this.colLength.Visible = false;
+            this.colLength.Visible = true;
             this.colRoughness.Visible = false;
             this.colMinorLoss.Visible = false;
-            this.colCalcuFlow.Visible = false;
-            this.colCalcuVelocity.Visible = false;
-            this.colCalcuHeadLoss.Visible = false;
             this.colHasDb.Visible = false;
             this.colFlags.Visible = true;
             this.colDescription.Visible = true;
+            this.colCalcuFrictionLoss.Visible = false;
+            this.colCalcuMinorLoss.Visible = false;
+            this.colCalcuHeadLoss.Visible = false;
+            this.colCalcuVelocity.Visible = false;
+            this.colCalcuFlow.Visible = false;
             this.colSet.Visible = false;
         }
 

--
Gitblit v1.9.3