From 9be9ba4e159969fb5e32648c2c34e912ccc3ae6d Mon Sep 17 00:00:00 2001 From: duheng <2286773002@qq.com> Date: 星期五, 28 三月 2025 14:22:42 +0800 Subject: [PATCH] 优化细节问题 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs | 447 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 398 insertions(+), 49 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs index 631376a..39fd51a 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs @@ -1,4 +1,5 @@ 锘縰sing DevExpress.Utils; +using DevExpress.XtraTreeList; namespace HStation.WinFrmUI { @@ -8,63 +9,403 @@ { InitializeComponent(); this.treeList1.InitialMultiColSettings(); + this.treeList1.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Default; this.PageTitle.Caption = "椤圭洰绠$悊"; - this.PageTitle.HeaderSvgImage = this.svgImg32[0]; + this.PageTitle.HeaderSvgImage = XhsMainSvgImageHelper.Project; this.PageTitle.SvgImageSize = new Size(24, 24); + this.Load += XhsProjectMgrPage_Load; } - private List<XhsProjectMgrViewModel> _allProjectList = null; + private void XhsProjectMgrPage_Load(object sender, EventArgs e) + { + repositoryItemImageComboBox1.Items.AddEnum(typeof(eXhsProjectStatus)); + repositoryItemImageComboBox1.Items[0].ImageIndex = 0; + repositoryItemImageComboBox1.Items[1].ImageIndex = 1; + repositoryItemImageComboBox1.Items[2].ImageIndex = 2; + repositoryItemImageComboBox1.Items[3].ImageIndex = 3; + repositoryItemImageComboBox1.Items[4].ImageIndex = 4; + repositoryItemImageComboBox1.Items[5].ImageIndex = 5; + repositoryItemImageComboBox1.Items[6].ImageIndex = 6; + repositoryItemImageComboBox1.Items[7].ImageIndex = 7; + repositoryItemImageComboBox1.Items[8].ImageIndex = 8; + } - private BLL.XhsProject _Bll = null; + private List<XhsProjectMgrViewModel> _allBindingList = null; /// <summary> /// 鍒濆鍖栨暟鎹簮 /// </summary> - public override async void InitialDataSource() + public override void InitialDataSource() { base.InitialDataSource(); - _Bll = new BLL.XhsProject(); - var allProjectList = await _Bll.GetAll(); - _allProjectList = new List<XhsProjectMgrViewModel>(); + this.barBtnViewBimface.ImageOptions.SvgImage = Yw.WinFrmUI.BimfaceMainSvgImageHelper.Bimface; + this.barBtnViewHydro.ImageOptions.SvgImage = Yw.WinFrmUI.HydroMainSvgImageHelper.Hydro; + this.barBtnSetMap.ImageOptions.SvgImage = XhsMainSvgImageHelper.Map; + InitialData(); + } + + //鍒濆鍖栨暟鎹� + private async void InitialData() + { + var overlay = this.ShowOverlay(); + _allBindingList = new List<XhsProjectMgrViewModel>(); + var allProjectList = await BLLFactory<HStation.BLL.XhsProjectExtensions>.Instance.GetAll(); if (allProjectList != null && allProjectList.Count > 0) { foreach (var project in allProjectList) { - var vm = new XhsProjectMgrViewModel(project); - _allProjectList.Add(vm); + var mapInfo = await BLLFactory<Yw.BLL.MapInfo>.Instance + .Get(HStation.Xhs.DataType.XhsProject, project.ID, Yw.Map.Kind.Gaodei, Yw.Map.Purpose.Location); + Yw.Vmo.BimfaceFileVmo bimfaceFile = null; + var projectSite = project.SiteList?.FirstOrDefault(); + if (projectSite != null) + { + var bimfaceFileRelation = await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); ; + if (bimfaceFileRelation != null) + { + bimfaceFile = await BLLFactory<Yw.BLL.BimfaceFile>.Instance + .GetByID(bimfaceFileRelation.BimfaceFileID); + } + } + var vm = new XhsProjectMgrViewModel(project, mapInfo, bimfaceFile); + _allBindingList.Add(vm); } } - this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList; + this.xhsProjectMgrViewModelBindingSource.DataSource = _allBindingList; + this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); + overlay.Close(); } - //鍙戝竷 - private void barBtnPublish_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + /// <summary> + /// 鍒锋柊鏁版嵁 + /// </summary> + public override void RefreshData() { + base.RefreshData(); + InitialData(); } - //鏌ョ湅bimface妯″瀷 - private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + #region 褰撳墠 + + //鑾峰彇褰撳墠 + private XhsProjectMgrViewModel GetCurrentViewModel() + { + if (_allBindingList == null) + { + TipFormHelper.ShowError("鏁版嵁鍒濆鍖栭敊璇紒"); + return null; + } + if (_allBindingList.Count < 1) + { + TipFormHelper.ShowWarn("鏃犳暟鎹紒"); + return null; + } + var vm = this.treeList1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨鏁版嵁琛岋紒"); + return null; + } + return vm; + } + + #endregion + + #region 鍩虹鎿嶄綔 + + //瀵煎叆椤圭洰 + private void barBtnImport_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + if (_allBindingList == null) + { + TipFormHelper.ShowError("鏁版嵁鍒濆鍖栧け璐ワ紒"); + return; + } + var dlg = new ImportXhsProjectDlg(); + dlg.SetBindingData(); + if (dlg.ShowDialog() == DialogResult.OK) + { + var viewModel = dlg.ViewModel; + var vm = new XhsProjectMgrViewModel(viewModel.Project, viewModel.MapInfo, viewModel.BimfaceFile); + _allBindingList.Add(vm); + this.treeList1.RefreshDataSource(); + } + } + + //涓婁紶妯″瀷 + private void barBtnUploadBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var vm = GetCurrentViewModel(); if (vm == null) { return; } + if (vm.BimfaceFile != null) + { + TipFormHelper.ShowWarn("妯″瀷宸蹭笂浼狅紝涓嶈兘閲嶅涓婁紶锛�"); + return; + } + var dlg = new ImportXhsProjectDlg(); + dlg.SetBindingData(vm.Project, vm.MapInfo); + if (dlg.ShowDialog() == DialogResult.OK) + { + var viewModel = dlg.ViewModel; + var project = viewModel.Project; + if (project == null) + { + return; + } + if (project.ID < 1) + { + return; + } + var mapInfo = viewModel.MapInfo; + if (mapInfo != null) + { + if (mapInfo.ID < 1) + { + mapInfo = null; + } + } + var bimfaceFile = viewModel.BimfaceFile; + if (bimfaceFile != null) + { + if (bimfaceFile.ID < 1) + { + bimfaceFile = null; + } + } + vm.Reset(project, mapInfo, bimfaceFile); + this.treeList1.RefreshDataSource(); + } + } + + //缂栬緫 + private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + var dlg = new EditXhsProjectDlg(); + dlg.ReloadDataEvent += (project) => + { + vm.Reset(project, vm.MapInfo, vm.BimfaceFile); + this.treeList1.RefreshNode(this.treeList1.FocusedNode); + }; + dlg.SetBindingData(vm.Project); + dlg.ShowDialog(); + } + + //鍒犻櫎 + private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = this.treeList1.GetCurrentViewModel(_allBindingList); + if (vm == null) + { + TipFormHelper.ShowWarn("璇烽�夋嫨椤圭洰锛�"); + return; + } + var result = XtraMessageBox.Show("鏄惁纭鍒犻櫎姝ら」鐩紵", "璇㈤棶", MessageBoxButtons.YesNo) == DialogResult.Yes; + if (!result) + { + return; + } + if (vm.Project.SiteList != null && vm.Project.SiteList.Count > 0) + { + foreach (var projectSite in vm.Project.SiteList) + { + var allSchemeList = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetBySiteID(projectSite.ID); + if (allSchemeList != null && allSchemeList.Count > 0) + { + foreach (var scheme in allSchemeList) + { + var schemeRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsScheme, scheme.ID, HStation.Xhs.Purpose.Simulation); + if (schemeRelation != null) + { + if (!await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.DeleteByID(schemeRelation.ModelID)) + { + TipFormHelper.ShowError("椤圭洰鏂规妯″瀷鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + if (!await BLLFactory<HStation.BLL.XhsScheme>.Instance.DeleteByID(scheme.ID)) + { + TipFormHelper.ShowError("椤圭洰鏂规鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + } + var bimfaceFileRelation = await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); + if (bimfaceFileRelation != null) + { + if (!await BLLFactory<Yw.BLL.BimfaceFileRelation>.Instance.DeleteAllByID(bimfaceFileRelation.ID)) + { + TipFormHelper.ShowError("椤圭洰涓夌淮妯″瀷鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + var hydroRelation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance + .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, HStation.Xhs.Purpose.Simulation); + if (hydroRelation != null) + { + if (!await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.DeleteByID(hydroRelation.ModelID)) + { + TipFormHelper.ShowError("椤圭洰妯″瀷鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + if (!await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.DeleteByID(projectSite.ID)) + { + TipFormHelper.ShowError("椤圭洰绔欏垹闄ゅけ璐ワ紝璇烽噸璇曪紒"); + return; + } + } + } + + if (vm.MapInfo != null) + { + if (!await BLLFactory<Yw.BLL.MapInfo>.Instance.DeleteByObjectTypeAndObjectID(HStation.Xhs.DataType.XhsProject, vm.Project.ID)) + { + TipFormHelper.ShowError("椤圭洰鍦板浘浣嶇疆鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + } + + var bol = await BLLFactory<HStation.BLL.XhsProject>.Instance.DeleteByID(vm.Project.ID); + if (!bol) + { + TipFormHelper.ShowError("椤圭洰鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); + return; + } + + _allBindingList.Remove(vm); + this.xhsProjectMgrViewModelBindingSource.ResetBindings(false); + TipFormHelper.ShowSucceed("椤圭洰鍒犻櫎鎴愬姛锛�"); + } + + //鍦板浘 + private void barBtnSetMap_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + var dlg = new SetXhsProjectMapDlg(); + dlg.ReloadDataEvent += (project, mapInfo) => + { + vm.Reset(project, mapInfo, vm.BimfaceFile); + this.treeList1.RefreshNode(this.treeList1.FocusedNode); + }; + dlg.SetBindingData(vm.Project, vm.MapInfo); + dlg.ShowDialog(); + } + + //璇︾粏淇℃伅 + private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + var dlg = new ViewXhsProjectDlg(); + dlg.SetBindingData(vm.Project); + dlg.ShowDialog(); + } + + #endregion + + #region 妯″瀷 + + //鏌ョ湅bimface妯″瀷 + private void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (vm.BimfaceFile == null) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.UploadSucceed) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.ConvertSucceed) + { + TipFormHelper.ShowWarn("妯″瀷姝e湪杞婚噺鍖栵紝璇风◢鍚庨噸璇曪紒"); + return; + } + var guid = new PageGuid() { - Modular = Yw.WinFrmUI.PageModular.Bimface, + Modular = XhsFunctionHelper.Modular, MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, - Function = Yw.WinFrmUI.PageFunction.ViewBimface3d, + Function = XhsFunctionHelper.ProjectBimfaceView, TagName = $"{vm.ID}" }; if (!IsExistPage(guid, true)) { - var page = new ViewXhsProjectBimfacePage(); - await page.SetBindingData(vm.ID); + var page = new XhsProjectBimfaceViewPage(); + page.SetBindingData(vm.Project); CreatePage(page, guid); } } + + //鏌ョ湅姘村姏妯″瀷 + private void barBtnViewHydro_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var vm = GetCurrentViewModel(); + if (vm == null) + { + return; + } + if (vm.BimfaceFile == null) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.UploadSucceed) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.ConvertSucceed) + { + TipFormHelper.ShowWarn("妯″瀷姝e湪杞婚噺鍖栵紝璇风◢鍚庨噸璇曪紒"); + return; + } + + var guid = new PageGuid() + { + Modular = XhsFunctionHelper.Modular, + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = XhsFunctionHelper.ProjectQ3dView, + TagName = $"{vm.ID}" + }; + + if (!IsExistPage(guid, true)) + { + var page = new XhsProjectQ3dViewPage(); + page.SetBindingData(vm.Project); + CreatePage(page, guid); + } + } + + #endregion + + #region 鏇村鎿嶄綔 //鍏ㄩ儴灞曞紑 private void barBtnExpandAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) @@ -98,50 +439,58 @@ this.RefreshData(); } - #region 褰撳墠 + #endregion - //鑾峰彇褰撳墠 - private XhsProjectMgrViewModel GetCurrentViewModel() + #region 鏍戜簨浠� + + //妯℃嫙 + private void treeList1_RowCellClick(object sender, RowCellClickEventArgs e) { - if (_allProjectList == null) + if (e.Column != this.colSimulation) { - Yw.WinFrmUI.MessageBoxHelper.ShowError("鏁版嵁鍒濆鍖栭敊璇紒"); - return null; + return; } - if (_allProjectList == null) - { - Yw.WinFrmUI.MessageBoxHelper.ShowInfo("鏃犳暟鎹�"); - return null; - } - var vm = this.treeList1.GetCurrentViewModel(_allProjectList); + var vm = GetCurrentViewModel(); if (vm == null) { - Yw.WinFrmUI.MessageBoxHelper.ShowInfo("璇烽�夋嫨鏁版嵁琛�!"); - return null; + return; } - return vm; + if (vm.BimfaceFile == null) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.UploadSucceed) + { + TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣滐紒"); + return; + } + if (vm.ModelStatus < eXhsProjectStatus.ConvertSucceed) + { + TipFormHelper.ShowWarn("妯″瀷姝e湪杞婚噺鍖栵紝璇风◢鍚庨噸璇曪紒"); + return; + } + var guid = new PageGuid() + { + Modular = XhsFunctionHelper.Modular, + MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab, + Function = XhsFunctionHelper.ProjectSimulation, + TagName = $"{vm.ID}" + }; + + if (!IsExistPage(guid, true)) + { + var page = new XhsProjectSimulationMgrPage(); + page.SetBindingData(vm.Project); + CreatePage(page, guid); + } } - #endregion 褰撳墠 + #endregion - #region 鍩虹鎿嶄綔 - //娣诲姞 - private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - - } - //缂栬緫 - private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - } - //鍒犻櫎 - private void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) - { - } - #endregion 鍩虹鎿嶄綔 } } \ No newline at end of file -- Gitblit v1.9.3