From 9aa8106d88fc3070498493e2819922f7ac31746e Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期三, 09 四月 2025 15:09:05 +0800 Subject: [PATCH] 增加BIMFACE水流动画效果 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 275 +++++++++++++++++++++++++----------------------------- 1 files changed, 126 insertions(+), 149 deletions(-) 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 93ed623..a86a496 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 @@ -2,10 +2,11 @@ using DevExpress.Mvvm.Native; using DevExpress.Pdf.Native; using Mapster; -using Yw.EPAnet; +using Yw.Epanet; using Yw.Hydro; using Yw.Model; using Yw.Vmo; +using Yw.WinFrmUI.Bimface; namespace HStation.WinFrmUI { @@ -115,7 +116,7 @@ { base.InitialDataSource(); ShowBimfaceCtrl(); - ShowQ3dCtrl(); + ShowL3d2Ctrl(); ShowPropertyCtrl(); InitialSvgImages(); } @@ -124,8 +125,7 @@ private void InitialSvgImages() { //鐩戞祴 - this.barBtnDockingMonitor.ImageOptions.SvgImage = HydroMonitorSvgImageHelper.Docking; - this.barBtnAnalyseMonitor.ImageOptions.SvgImage = HydroMonitorSvgImageHelper.Analyse; + this.barBtnSetMonitorList.ImageOptions.SvgImage = HydroMonitorSvgImageHelper.Docking; //姘村簱 this.barBtnSetReservoirList.ImageOptions.SvgImage = AssetsMainSvgImageHelper.Tank; @@ -366,42 +366,42 @@ #endregion BIM鎺т欢 - #region Q3d鎺т欢 + #region L3d2鎺т欢 - //Q3d 鎺т欢 - private XhsProjectSimulationQ3dCtrl _q3dCtrl = null; + //L3d2鎺т欢 + private XhsProjectSimulationL3d2Ctrl _l3d2ctrl = null; - //鑾峰彇 Q3d 鎺т欢 - private XhsProjectSimulationQ3dCtrl GetQ3dCtrl() + //鑾峰彇L3d2鎺т欢 + private XhsProjectSimulationL3d2Ctrl GetL3d2Ctrl() { if (_hydroInfo == null) { return default; } - if (_q3dCtrl == null) + if (_l3d2ctrl == null) { - _q3dCtrl = new XhsProjectSimulationQ3dCtrl(); - _q3dCtrl.Dock = DockStyle.Fill; - _q3dCtrl.InitialData(() => _hydroInfo); - _q3dCtrl.SelectedPartersChangedEvent += (codes) => + _l3d2ctrl = new XhsProjectSimulationL3d2Ctrl(); + _l3d2ctrl.Dock = DockStyle.Fill; + _l3d2ctrl.InitialData(hydroInfoFunc: () => _hydroInfo); + _l3d2ctrl.SelectedPartersChangedEvent += (codes) => { var visualListHelper = GetVisualListHelper(); var visuals = visualListHelper.GetVisualList(codes); SelectVisual(visuals?.LastOrDefault(), eSimulationVisualSource.Q3d); }; } - return _q3dCtrl; + return _l3d2ctrl; } - //鏄剧ず Q3d 鎺т欢 - private void ShowQ3dCtrl() + //鏄剧ずL3d2鎺т欢 + private void ShowL3d2Ctrl() { - var q3dCtrl = GetQ3dCtrl(); + var l3d2Ctrl = GetL3d2Ctrl(); this.tabPageQ3d.Controls.Clear(); - this.tabPageQ3d.Controls.Add(q3dCtrl); + this.tabPageQ3d.Controls.Add(l3d2Ctrl); } - #endregion Q3d鎺т欢 + #endregion #region 灞炴�ф帶浠� @@ -489,6 +489,13 @@ var gradingHelper = await GetGradingHelper(); gradingHelper.Set(visual); }; + _propertyCtrl.FlowDirectionPropertyValueChangedEvent += async (visual) => + { + //娴佸悜灞炴�у彂鐢熸敼鍙� + //鍒ゆ柇褰撳墠鏄惁鏈夋祦鍚戝睍绀猴紝鑻ユ湁鍒欐洿鏂版祦鍚戯紝鏈�濂芥槸鏇存柊鍗曚釜娴佸悜 + var flowDirectionHelper = await GetFlowEffectHelper(); + flowDirectionHelper.Set(visual); + }; } return _propertyCtrl; } @@ -513,7 +520,7 @@ } //鏄剧ず灞炴�ф帶浠� - private async void ShowPropertyCtrl() + private async Task ShowPropertyCtrl() { if (IsPropertyCtrlVisible) { @@ -528,9 +535,9 @@ } //璁剧疆灞炴�ф帶浠� - private void SetPropertyCtrl(HydroVisualInfo visual) + private async void SetPropertyCtrl(HydroVisualInfo visual) { - ShowPropertyCtrl(); + await ShowPropertyCtrl(); var visualVmListHelper = GetVisualVmListHelper(); var vm = visualVmListHelper.GetVisual(visual); _propertyCtrl.SelectedObject = vm; @@ -543,7 +550,7 @@ _propertyCtrl?.UpdateRows(); } - #endregion 灞炴�ф帶浠� + #endregion #region 閫夋嫨鏋勪欢 @@ -559,16 +566,14 @@ case eSimulationVisualSource.None: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; case eSimulationVisualSource.Bimface: { - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -576,8 +581,7 @@ case eSimulationVisualSource.Q3d: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -585,16 +589,14 @@ case eSimulationVisualSource.Property: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; } break; case eSimulationVisualSource.List: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -602,8 +604,7 @@ case eSimulationVisualSource.Set: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -611,8 +612,7 @@ case eSimulationVisualSource.Search: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -620,8 +620,7 @@ case eSimulationVisualSource.Monitor: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -629,8 +628,7 @@ case eSimulationVisualSource.Check: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -638,8 +636,7 @@ case eSimulationVisualSource.Calcu: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -647,8 +644,7 @@ case eSimulationVisualSource.Warning: { _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code); - this.barBtnDockingMonitor.Enabled = visual != null; - this.barBtnAnalyseMonitor.Enabled = visual != null; + this.barBtnSetMonitorList.Enabled = visual != null; SetPropertyCtrl(visual); } break; @@ -1773,7 +1769,42 @@ markHelper.Set(); } - #endregion 妯″瀷鏍囨敞 + #endregion + + #region 姘存祦鍔ㄧ敾 + + + //姘村姏鍔ㄧ敾杈呭姪绫� + private SimulationFlowEffectHelper _flowEffectHelper = null; + + //鑾峰彇姘存祦鍔ㄧ敾杈呭姪绫� + private async Task<SimulationFlowEffectHelper> GetFlowEffectHelper() + { + if (_flowEffectHelper == null) + { + var visualListHelper = GetVisualListHelper(); + var calcuResultHelper = GetCalcuResultHelper(); + var bimfaceCtrl = await GetBimfaceCtrl(); + _flowEffectHelper = new SimulationFlowEffectHelper(visualListHelper, calcuResultHelper, bimfaceCtrl); + } + return _flowEffectHelper; + } + + + //姘存祦鍔ㄧ敾鏄惁鍙 + private async void barCkFlowEffect_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (this.barCkFlowEffect.Checked) + { + this.barCkGrading.Checked = false; + } + var flowEffectHelper = await GetFlowEffectHelper(); + flowEffectHelper.Visible = this.barCkFlowEffect.Checked; + flowEffectHelper.Set(); + + } + + #endregion #region 棰滆壊鍒嗙骇 @@ -1850,6 +1881,10 @@ //棰滆壊鍒嗙骇灞曠ず private async void barCkGrading_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { + if (this.barCkGrading.Checked) + { + this.barCkFlowEffect.Checked = false; + } var gradingHelper = await GetGradingHelper(); gradingHelper.Visible = this.barCkGrading.Checked; gradingHelper.Set(); @@ -1907,21 +1942,7 @@ return await helper.GetAll(); } - //鑾峰彇鐩戞祴瀵规帴鍒楄〃 - private async Task<List<HydroMonitorVmo>> GetMonitorDockingList() - { - var helper = GetMonitorHelper(); - return await helper.GetDockingList(); - } - - //鑾峰彇鐩戞祴鍒嗘瀽鍒楄〃 - private async Task<List<HydroMonitorVmo>> GetMonitorAnalyseList() - { - var helper = GetMonitorHelper(); - return await helper.GetAnalyseList(); - } - - #endregion 鐩戞祴鐐� + #endregion #region 鐩戞祴鍊� @@ -1935,8 +1956,7 @@ { var visualListHelper = GetVisualListHelper(); var monitorHelper = GetMonitorHelper(); - var calcuResultHelper = GetCalcuResultHelper(); - _monitorValueHelper = new SimulationMonitorValueHelper(visualListHelper, monitorHelper, calcuResultHelper); + _monitorValueHelper = new SimulationMonitorValueHelper(visualListHelper, monitorHelper); } return _monitorValueHelper; } @@ -1948,21 +1968,7 @@ return await helper.GetAll(); } - //鑾峰彇鐩戞祴瀵规帴鍊煎垪琛� - private async Task<List<HydroMonitorValueViewModel>> GetMonitorDockingValueList() - { - var helper = GetMonitorValueHelper(); - return await helper.GetDockingList(); - } - - //鑾峰彇鐩戞祴鍒嗘瀽鍊煎垪琛� - private async Task<List<HydroMonitorValueViewModel>> GetMonitorAnalyseValueList() - { - var helper = GetMonitorValueHelper(); - return await helper.GetAnalyseList(); - } - - //閲嶇疆 + //閲嶇疆鐩戞祴鍊� private void ResetMonitorValue() { var allWorkingList = GetWorkingList(); @@ -1974,12 +1980,12 @@ } } - #endregion 鐩戞祴鍊� + #endregion - #region 浼犳劅鍣ㄦ祴鐐� + #region 璁剧疆娴嬬偣 - //璁剧疆鍙鏋勪欢瀵规帴娴嬬偣鍒楄〃 - private async void SetMonitorDockingList(HydroVisualInfo visual) + //璁剧疆娴嬬偣鍒楄〃 + private async void SetMonitorList(HydroVisualInfo visual) { if (_hydroInfo == null) { @@ -1993,33 +1999,33 @@ var allMonitorList = await monitorHelper.GetAll(); var monitorValueHelper = GetMonitorValueHelper(); var allMonitorValueList = await monitorValueHelper.GetAll(); - var calcuResult = GetCalcuResult(); - var dlg = new SetHydroMonitorDockingListDlg(); + var dlg = new SetHydroMonitorListDlg(); dlg.ReloadDataEvent += async (list) => { var monitorList = list?.Select(x => x.Vmo).ToList(); - await monitorHelper.Update(visual.Code, eSourceType.Docking, monitorList); - await monitorValueHelper.Update(visual.Code, eSourceType.Docking, list); + await monitorHelper.Update(visual.Code, monitorList); + await monitorValueHelper.Update(visual.Code, list); var monitorMarkerHelper = await GetMonitorMarkerHelper(); monitorMarkerHelper.Set(); }; - dlg.SetBindingData(_hydroInfo, visual, allMonitorList, allMonitorValueList, calcuResult); + dlg.SetBindingData(_hydroInfo, visual, allMonitorList, allMonitorValueList); dlg.ShowDialog(); } - //璁剧疆浼犳劅鍣ㄦ祴鐐� - private void barBtnDockingMonitor_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //璁剧疆娴嬬偣鍒楄〃 + private void barBtnSetMonitorList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (_visual == null) { + TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); return; } - SetMonitorDockingList(_visual); + SetMonitorList(_visual); } - #endregion 浼犳劅鍣ㄦ祴鐐� + #endregion - #region 浼犳劅鍣ㄦ祴鍊� + #region 璁剧疆娴嬪�� //鐩戞祴鍊煎垪琛ㄦ帶浠� private HydroMonitorValueListCtrl _monitorValueListCtrl = null; @@ -2059,8 +2065,8 @@ } } - //鏄剧ず鐩戞祴瀵规帴鍊煎垪琛ㄦ帶浠� - private async void ShowMonitorDockingValueListCtrl() + //鏄剧ず鐩戞祴鍊煎垪琛ㄦ帶浠� + private async void ShowMonitorValueListCtrl() { var monitorValueListCtrl = GetMonitorValueListCtrl(); if (!IsMonitorValueListCtrlVisible) @@ -2068,60 +2074,20 @@ this.controlContainerBottom.Controls.Clear(); this.controlContainerBottom.Controls.Add(monitorValueListCtrl); this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "浼犳劅鍣ㄦ祴鍊�"; + this.docPnlBottom.Text = "璁剧疆娴嬪��"; this.docPnlBottom.Height = 350; } - var allValueList = await GetMonitorDockingValueList(); - var calcuResult = GetCalcuResult(); + var allValueList = await GetMonitorValueList(); monitorValueListCtrl.SetBindingData(allValueList); } - //璁剧疆浼犳劅鍣ㄦ祴鍊� - private void barBtnDockingMonitorValue_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + //璁剧疆娴嬪�� + private void barBtnSetMonitorValueList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - ShowMonitorDockingValueListCtrl(); + ShowMonitorValueListCtrl(); } - #endregion 浼犳劅鍣ㄦ祴鍊� - - #region 鍒嗘瀽娴嬬偣 - - //璁剧疆鍙鏋勪欢鍒嗘瀽娴嬬偣鍒楄〃 - private async void SetMonitorAnalyseList(HydroVisualInfo visual) - { - if (_hydroInfo == null) - { - return; - } - if (visual == null) - { - return; - } - var monitorHelper = GetMonitorHelper(); - var allMonitorList = await monitorHelper.GetAnalyseList(); - var dlg = new SetHydroMonitorAnalyseListDlg(); - dlg.ReloadDataEvent += async (list) => - { - await monitorHelper.Update(visual.Code, eSourceType.Analyse, list); - //var monitorMarkerHelper = await GetMonitorMarkerHelper(); - //monitorMarkerHelper.Update(visual.Code, monitorList); - //monitorMarkerHelper.Set(); - }; - dlg.SetBindingData(_hydroInfo, visual, allMonitorList); - dlg.ShowDialog(); - } - - //璁剧疆鍒嗘瀽娴嬬偣 - private void barBtnAnalyseMonitor_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - if (_visual == null) - { - return; - } - SetMonitorAnalyseList(_visual); - } - - #endregion 鍒嗘瀽娴嬬偣 + #endregion #region 娴嬬偣鏍囪 @@ -2148,7 +2114,7 @@ monitorMarkerHelper.Set(); } - #endregion 娴嬬偣鏍囪 + #endregion #region 妯″瀷妫�鏌� @@ -2644,7 +2610,7 @@ WaitFormHelper.ShowWaitForm(this, "姝e湪璁$畻鍒嗘瀽涓紝璇风◢鍊�..."); await Task.Delay(3000); - var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); + var calcuResult = _hydroInfo.Calcu(isHead, allEvaluationList); WaitFormHelper.HideWaitForm(); workingHelper.InitialData(hydroInfo, working, checkResult, calcuResult); if (calcuResult.Succeed) @@ -2793,7 +2759,7 @@ foreach (var working in allWorkingList) { baseHydroInfoRhs.UpdateWorkingInfo(working.WorkingInfo); - var calcuResult = baseHydroInfoRhs.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, _calcuPressModeIsHead, allEvaluationList); + var calcuResult = baseHydroInfoRhs.Calcu(_calcuPressModeIsHead, allEvaluationList); var printWorking = new SimulationPrintWorkingViewModel(working); vm.WorkingList.Add(printWorking); @@ -2824,7 +2790,7 @@ foreach (var working in allWorkingList) { hydroInfoRhs.UpdateWorkingInfo(working.WorkingInfo); - var calcuResult = hydroInfoRhs.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, _calcuPressModeIsHead, allEvaluationList); + var calcuResult = hydroInfoRhs.Calcu(_calcuPressModeIsHead, allEvaluationList); var printWorking = new SimulationPrintWorkingViewModel(working); vm.Scheme.WorkingList.Add(printWorking); @@ -3126,7 +3092,7 @@ this.docPnlBottom.Height = 350; } - var allMonitorList = await GetMonitorAnalyseList(); + var allMonitorList = await GetMonitorList(); var isHead = _calcuPressModeIsHead; var allEvaluationList = await GetEvaluationList(); @@ -3147,7 +3113,7 @@ ShowMonitorAnalyListCtrl(); } - #endregion 鐩戞祴鍒嗘瀽 + #endregion #region 宸ュ喌鍒嗘瀽 @@ -3200,10 +3166,11 @@ { return; } - var allMonitorList = await GetMonitorDockingList(); + + var allMonitorList = await GetMonitorList(); if (allMonitorList == null || allMonitorList.Count < 1) { - TipFormHelper.ShowWarn("璇烽厤缃紶鎰熷櫒娴嬬偣鍚庨噸璇曪紒"); + TipFormHelper.ShowWarn("璇疯缃洃娴嬬偣鍚庨噸璇曪紒"); return; } @@ -3213,6 +3180,14 @@ var workingList = GetCheckedWorkingList(); if (workingList == null || workingList.Count < 1) { + var allMonitorValueList = await GetMonitorValueList(); + allMonitorValueList = allMonitorValueList?.Where(x => x.PropValue.HasValue).ToList(); + if (allMonitorValueList == null || allMonitorValueList.Count < 1) + { + TipFormHelper.ShowWarn("璇疯缃洃娴嬪�煎悗锛岄噸鏂拌绠楋紒"); + return; + } + var workingHelper = GetWorkingHelper(); if (!workingHelper.Initialized) { @@ -3538,5 +3513,7 @@ } #endregion 鏂规绠$悊 + + } } \ No newline at end of file -- Gitblit v1.9.3