From 6c88a90d2330a27c0052a22538f6ebd6200faae7 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期三, 21 八月 2024 18:02:15 +0800
Subject: [PATCH] 完善主界面

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/03-mgr/XhsProjectMgrPage.cs |  221 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 207 insertions(+), 14 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 29e0e0b..7099e1d 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,5 +1,8 @@
-锘縰sing DevExpress.Utils;
-using NetTaste;
+锘縰sing DevExpress.CodeParser;
+using DevExpress.Utils;
+using DevExpress.XtraTreeList;
+using HStation.WinFrmUI.Xhs;
+using System.Data;
 
 namespace HStation.WinFrmUI
 {
@@ -10,9 +13,13 @@
             InitializeComponent();
             this.treeList1.InitialMultiColSettings();
             this.PageTitle.Caption = "椤圭洰绠$悊";
+            this.PageTitle.HeaderSvgImage = this.svgImg32[0];
+            this.PageTitle.SvgImageSize = new Size(24, 24);
         }
 
         private List<XhsProjectMgrViewModel> _allProjectList = null;
+
+        private BLL.XhsProjectExtensions _bll = null;
 
         /// <summary>
         /// 鍒濆鍖栨暟鎹簮
@@ -20,40 +27,69 @@
         public override async void InitialDataSource()
         {
             base.InitialDataSource();
+            this.SetBindingData();
+        }
 
-            var allProjectList = await new BLL.XhsProject().GetAll();
+        private async void SetBindingData()
+        {
+            _bll = new BLL.XhsProjectExtensions();
+            var allProjectList = await _bll.GetAll();
             _allProjectList = new List<XhsProjectMgrViewModel>();
             if (allProjectList != null && allProjectList.Count > 0)
             {
                 foreach (var project in allProjectList)
                 {
-                    var vm = new XhsProjectMgrViewModel(project);
-                    _allProjectList.Add(vm);
+                    if (await IsHaveBimFace(project.ID))
+                    {
+                        var vm = new XhsProjectMgrViewModel(project, true);
+                        _allProjectList.Add(vm);
+                    }
+                    else
+                    {
+                        var vm = new XhsProjectMgrViewModel(project, false);
+                        _allProjectList.Add(vm);
+                    }
                 }
             }
             this.xhsProjectMgrViewModelBindingSource.DataSource = _allProjectList;
         }
 
-        //鍙戝竷
-        private void barBtnPublish_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        //鏌ユ壘椤圭洰鏄惁瀛樺湪妯″瀷
+        private async Task<bool> IsHaveBimFace(long ProjectID)
         {
-
+            var projectSite = await new BLL.XhsProjectSiteStd().GetDefaultByProjectID(ProjectID);
+            if (projectSite == null)
+            {
+                return false;
+            }
+            var relation = await new Yw.BLL.BimfaceFileRelationStd()
+               .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, projectSite.ID, Yw.Bimface.Purpose.Simulation);
+            if (relation == null)
+            {
+                return false;
+            }
+            var bimfaceFile = await new Yw.BLL.BimfaceFileStd().GetByID(relation.BimfaceFileID);
+            if (bimfaceFile == null)
+            {
+                return false;
+            }
+            return true;
         }
 
         //鏌ョ湅bimface妯″瀷
         private async void barBtnViewBimface_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            var vm = this.treeList1.GetCurrentViewModel(_allProjectList);
+            var vm = GetCurrentViewModel();
             if (vm == null)
             {
                 return;
             }
             var guid = new PageGuid()
             {
-                Modular = "Bimface",
+                Modular = Yw.WinFrmUI.PageModular.Bimface,
                 MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
-                Function = "BimfaceView",
-                TagName = vm.ID.ToString()
+                Function = Yw.WinFrmUI.PageFunction.ViewBimface3d,
+                TagName = $"{vm.ID}"
             };
 
             if (!IsExistPage(guid, true))
@@ -93,7 +129,164 @@
         //鍒锋柊
         private void barBtnRefresh_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
         {
-            this.RefreshData();
+            this.SetBindingData();
+        }
+
+        #region 褰撳墠
+
+        //鑾峰彇褰撳墠
+        private XhsProjectMgrViewModel GetCurrentViewModel()
+        {
+            if (_allProjectList == null)
+            {
+                Yw.WinFrmUI.MessageBoxHelper.ShowError("鏁版嵁鍒濆鍖栭敊璇紒");
+                return null;
+            }
+            if (_allProjectList == null)
+            {
+                Yw.WinFrmUI.MessageBoxHelper.ShowInfo("鏃犳暟鎹�");
+                return null;
+            }
+            var vm = this.treeList1.GetCurrentViewModel(_allProjectList);
+            if (vm == null)
+            {
+                Yw.WinFrmUI.MessageBoxHelper.ShowInfo("璇烽�夋嫨鏁版嵁琛�!");
+                return null;
+            }
+            return vm;
+        }
+
+        #endregion 褰撳墠
+
+        #region 鍩虹鎿嶄綔
+
+        //娣诲姞
+        private void barBtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var dlg = new AddProjectDlg();
+            dlg.ReloadDataEvent += async (rhs, mapinfo) =>
+            {
+                var bll = new BLL.XhsProjectExtensions();
+                var id = await bll.Insert(rhs);
+                if (id > 0)
+                {
+                    rhs.ID = id;
+                    var vmo = await _bll.GetByID(id);
+                    _allProjectList.Add(new XhsProjectMgrViewModel(vmo, false));
+                    this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                    if (mapinfo != null)
+                    {
+                        mapinfo.ObjectID = id;
+                        mapinfo.ObjectName = rhs.Name;
+                        var mapinfoid = await new Yw.BLL.MapInfo().Insert(mapinfo);
+                        if (mapinfoid < 0)
+                        {
+                            TipFormHelper.ShowError("鍦板浘淇℃伅娣诲姞閿欒");
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            };
+            dlg.ShowDialog();
+        }
+
+        //缂栬緫
+        private void barBtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = this.GetCurrentViewModel();
+            var dlg = new EditProjectDlg();
+            dlg.SetBindingData(currentVm.ID);
+            dlg.ReloadDataEvent += async (rhs, mapinfo) =>
+            {
+                if (await _bll.Update(rhs))
+                {
+                    currentVm.Reset(rhs);
+                    this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                    if (mapinfo != null)
+                    {
+                        //  mapinfo.ObjectID = id;
+                        mapinfo.ObjectName = rhs.Name;
+                        var bol = await new Yw.BLL.MapInfo().Update(mapinfo);
+                        if (!bol)
+                        {
+                            TipFormHelper.ShowError("鍦板浘淇℃伅缂栬緫閿欒");
+                        }
+                    }
+                    return true;
+                }
+                return false;
+            };
+            dlg.ShowDialog();
+        }
+
+        //鍒犻櫎
+        private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            var currentVm = GetCurrentViewModel();
+            if (currentVm == null)
+            {
+                MessageBoxHelper.ShowWarning("璇烽�夋嫨鏁版嵁琛岋紒");
+                return;
+            }
+            if (MessageBoxHelper.IsClickOk($"纭鍒犻櫎鏁版嵁琛�?", "鎻愮ず"))
+                return;
+            var groupresult = await _bll.DeleteByID(currentVm.ID);
+            if (groupresult)
+            {
+                _allProjectList.Remove(currentVm);
+                this.xhsProjectMgrViewModelBindingSource.ResetBindings(false);
+                TipFormHelper.ShowSucceed("鍒犻櫎鎴愬姛!");
+            }
+            else
+            {
+                TipFormHelper.ShowSucceed("鍒犻櫎澶辫触!");
+                return;
+            }
+        }
+
+        //璇︾粏淇℃伅
+        private void barBtnInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+        }
+
+        #endregion 鍩虹鎿嶄綔
+
+        private void treeList1_CustomDrawRow(object sender, DevExpress.XtraTreeList.CustomDrawRowEventArgs e)
+        {
+            var a = repositoryItemButtonEdit1.ReadOnly = true;
+        }
+
+        private async void treeList1_RowCellClick(object sender, RowCellClickEventArgs e)
+        {
+            if (_allProjectList == null || _allProjectList.Count < 1)
+                return;
+            var vm = GetCurrentViewModel();
+            if (vm == null)
+            {
+                return;
+            }
+            if (e.Column != this.ColViewBimface)
+                return;
+            if (!vm.IsHaveBimface)
+            {
+                TipFormHelper.ShowWarn("璇峰厛涓婁紶鏂囦欢鍐嶈繘琛屾搷浣�!");
+                return;
+            }
+            var guid = new PageGuid()
+            {
+                Modular = Yw.WinFrmUI.PageModular.Bimface,
+                MoudingType = Yw.WinFrmUI.Page.eMoudingType.Tab,
+                Function = Yw.WinFrmUI.PageFunction.ViewBimface3d,
+                TagName = $"{vm.ID}"
+            };
+
+            if (!IsExistPage(guid, true))
+            {
+                var page = new ViewXhsProjectBimfacePage();
+                await page.SetBindingData(vm.ID);
+                CreatePage(page, guid);
+            }
         }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3