lixiaojun
2024-09-11 ec0d0b6f8e3ac7791c736ae8aad69c4a1587cad9
WinFrmUI/HStation.WinFrmUI.Xhs.Core/01-home/02-map/MapViewProjectListContainer.cs
@@ -1,4 +1,6 @@
namespace HStation.WinFrmUI
using HStation.Vmo;
namespace HStation.WinFrmUI
{
    public partial class MapViewProjectListContainer : UserControl, IMapViewProjectListContainer
    {
@@ -10,9 +12,6 @@
        public event Action LoadCompletedEvent;
        public event Action LoadFailedEvent;
        public event Action<HandingError> HandingErrorEvent;
        public event Func<string, bool> SelectProjectEvent;
        public event Func<bool> CancelSelectProjectEvent;
        /// <summary>
        /// 交互对象
@@ -51,8 +50,6 @@
            callBackObj.LoadCompletedEvent += CallBackObj_LoadCompletedEvent;
            callBackObj.LoadFailedEvent += CallBackObj_LoadFailedEvent;
            callBackObj.HandingErrorEvent += CallBackObj_HandingErrorEvent;
            callBackObj.SelectProjectEvent += CallBackObj_SelectProjectEvent;
            callBackObj.CancelSelectProjectEvent += CallBackObj_CancelSelectProjectEvent;
            await this.webViewControl1.InitialWebBrower(MapViewProjectListUrlHelper.GetUrl(), callBackObj, true);
        }
@@ -75,44 +72,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.MapInfoStd().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>