From 7d17fabc46e87ea0f0896f760034f4d16a4dfed0 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 20 九月 2024 13:20:57 +0800
Subject: [PATCH] 提交修改

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs |   84 +++++++++++++++++++++++-------------------
 1 files changed, 46 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..93cce78 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,7 @@
-锘縩amespace HStation.WinFrmUI
+锘縰sing DevExpress.Mvvm.Native;
+using HStation.Vmo;
+
+namespace HStation.WinFrmUI
 {
     public partial class MapViewProjectListContainer : UserControl, IMapViewProjectListContainer
     {
@@ -8,11 +11,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 +34,7 @@
                 return _callBackObj;
             }
         }
+
         private MapViewProjectListCallBackObj _callBackObj;
 
         /// <summary>
@@ -40,6 +47,7 @@
                 return _isInitialized;
             }
         }
+
         private bool _isInitialized;
 
         /// <summary>
@@ -51,9 +59,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 +91,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 +132,5 @@
         {
             return await this.webViewControl1.EvaluateScriptAsync<bool>("cancelSelectProject()");
         }
-
-
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3