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