From a01861a95ede48fa4979a47b24f21616e362e534 Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期二, 19 十一月 2024 16:29:46 +0800 Subject: [PATCH] 用水当量模块 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs | 83 ++++++++++++++++++++++------------------- 1 files changed, 45 insertions(+), 38 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs index 8f143ef..b347ada 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs @@ -1,4 +1,6 @@ -锘縩amespace HStation.WinFrmUI +锘縰sing DevExpress.Mvvm.Native; + +namespace HStation.WinFrmUI { public partial class MapViewProjectListContainer : UserControl, IMapViewProjectListContainer { @@ -8,11 +10,14 @@ } public event Action LoadCompletedEvent; - public event Action LoadFailedEvent; - public event Action<HandingError> HandingErrorEvent; - public event Func<string, bool> SelectProjectEvent; - public event Func<bool> CancelSelectProjectEvent; + public event Action LoadFailedEvent; + + public event Action<HandingError> HandingErrorEvent; + + public event Action<string> JumpSimulationEvent; + + public event Action<long> JumpDirectEvent; /// <summary> /// 浜や簰瀵硅薄 @@ -28,6 +33,7 @@ return _callBackObj; } } + private MapViewProjectListCallBackObj _callBackObj; /// <summary> @@ -40,6 +46,7 @@ return _isInitialized; } } + private bool _isInitialized; /// <summary> @@ -51,9 +58,17 @@ callBackObj.LoadCompletedEvent += CallBackObj_LoadCompletedEvent; callBackObj.LoadFailedEvent += CallBackObj_LoadFailedEvent; callBackObj.HandingErrorEvent += CallBackObj_HandingErrorEvent; - callBackObj.SelectProjectEvent += CallBackObj_SelectProjectEvent; - callBackObj.CancelSelectProjectEvent += CallBackObj_CancelSelectProjectEvent; + callBackObj.JumpSimulationEvent += CallBackObj_JumpSimulationEvent; await this.webViewControl1.InitialWebBrower(MapViewProjectListUrlHelper.GetUrl(), callBackObj, true); + } + + //璺宠浆鏂规 + private void CallBackObj_JumpSimulationEvent(string obj) + { + if (long.TryParse(obj, out long PrjID)) + { + JumpDirectEvent.Invoke(PrjID); + } } //鍔犺浇瀹屾垚 @@ -75,44 +90,38 @@ this.HandingErrorEvent?.Invoke(obj); } - //閫夋嫨椤圭洰 - private bool CallBackObj_SelectProjectEvent(string arg) - { - if (string.IsNullOrEmpty(arg)) - { - return false; - } - if (this.SelectProjectEvent == null) - { - return true; - } - return this.SelectProjectEvent.Invoke(arg); - } - - //鍙栨秷閫夋嫨椤圭洰 - private bool CallBackObj_CancelSelectProjectEvent() - { - if (this.CancelSelectProjectEvent == null) - { - return true; - } - return this.CancelSelectProjectEvent.Invoke(); - } - /// <summary> /// 璁剧疆椤圭洰鍒楄〃 /// </summary> - public async Task<bool> SetProjectList(List<MapProjectViewModel> allProjectList) + public async Task<bool> SetProjectList(List<XhsProjectVmo> allProjectList) { - return await this.webViewControl1.EvaluateScriptAsync<bool>("setProjectList", allProjectList); + if (!_isInitialized) + { + return false; + } + var allProjectIds = allProjectList?.Select(x => x.ID).Distinct().ToList(); + var allMapInfoList = await new Yw.BLL.MapInfo().GetByObjectTypeAndObjectIdsOfKindPurpose + (HStation.Xhs.DataType.XhsProject, allProjectIds, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + var vmList = new List<MapProjectViewModel>(); + if (allMapInfoList != null && allMapInfoList.Count > 0) + { + foreach (var mapInfo in allMapInfoList) + { + var project = allProjectList.Find(x => x.ID == mapInfo.ObjectID); + var vm = new MapProjectViewModel(project, mapInfo); + vmList.Add(vm); + } + } + + return await this.webViewControl1.EvaluateScriptAsync<bool>("setProjectList", vmList); } /// <summary> /// 閫夋嫨椤圭洰 /// </summary> - public async Task<bool> SelectProject(string projectId) + public async Task<bool> SelectProject(long projectId) { - return await this.webViewControl1.EvaluateScriptAsync<bool>("selectProject", projectId); + return await this.webViewControl1.EvaluateScriptAsync<bool>("selectProject", projectId.ToString()); } /// <summary> @@ -122,7 +131,5 @@ { return await this.webViewControl1.EvaluateScriptAsync<bool>("cancelSelectProject()"); } - - } -} +} \ No newline at end of file -- Gitblit v1.9.3