| | |
| | | namespace HStation.WinFrmUI |
| | | using HStation.Vmo; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | | public partial class MapViewProjectListContainer : UserControl, IMapViewProjectListContainer |
| | | { |
| | |
| | | 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> |
| | | /// 交互对象 |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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> |