From f7d479db638f3d9e3aeb05ec82dc2818f14bf903 Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期一, 24 三月 2025 17:25:20 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 Desktop/PBS.Desktop/MainForm.cs |  404 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 370 insertions(+), 34 deletions(-)

diff --git a/Desktop/PBS.Desktop/MainForm.cs b/Desktop/PBS.Desktop/MainForm.cs
index b3b8240..7edc0d0 100644
--- a/Desktop/PBS.Desktop/MainForm.cs
+++ b/Desktop/PBS.Desktop/MainForm.cs
@@ -1,4 +1,3 @@
-using DevExpress.CodeParser.VB.Preprocessor;
 using DevExpress.Utils.Svg;
 using DevExpress.XtraBars.Docking;
 using DevExpress.XtraBars.Docking2010.Views;
@@ -6,22 +5,18 @@
 using DevExpress.XtraBars.Navigation;
 using DevExpress.XtraBars.Ribbon;
 using DevExpress.XtraEditors;
-using DevExpress.XtraSpreadsheet.Model;
 using DevExpress.XtraTab;
 using HStation.WinFrmUI;
 using HStation.WinFrmUI.Assets;
 using HStation.WinFrmUI.Basic;
 using HStation.WinFrmUI.Dict;
 using IBox.WinFrmUI;
-using NPOI.SS.Formula.Functions;
 using PBS.WinFrmUI;
+using PBS.WinFrmUI.Box;
 using PBS.WinFrmUI.DataAnalysis;
 using PBS.WinFrmUI.Hydro;
-using PBS.WinFrmUI.WE;
-using System.IO;
 using Yw.WinFrmUI;
 using Yw.WinFrmUI.Page;
-using PBS.Vmo;
 
 namespace PBS.Desktop
 {
@@ -165,6 +160,7 @@
             {
                 pguid = this.tabbedView1.ActiveDocument.Tag as PageGuid;
             }
+
             SelectModular(tag, pguid);
         }
 
@@ -189,8 +185,13 @@
             //if (!IsExistPage(guid, true))
             //{
             //}
-
-            SelectModular("BasicData");
+            var pageGuid = new PageGuid()
+            {
+                Modular = "Home",
+                MoudingType = eMoudingType.Tab,
+                Function = "MapInfo",
+            };
+            SelectModular("Home", pageGuid);
         }
 
         //界面正在退出时确认
@@ -542,27 +543,6 @@
                     }
                 }
 
-                //智能硬件
-                if (modular == "SmartHardware")
-                {
-                    var guid = new PageGuid()
-                    {
-                        Modular = "SmartHardware",
-                        MoudingType = eMoudingType.Tab,
-                        Function = "IBox",
-                    };
-                        if (!IsExistPage(guid, true))
-                        {
-                            var ibox = IBoxDataHelper.GetData();
-                            var page = new IBoxForm(ibox);
-                            page.PageGuid = guid;
-                            page.PageTitle.Caption = "智能硬件";
-                            page.PageTitle.HeaderSvgImage = svgImgItem32[4];
-                            page.PageTitle.SvgImageSize = new Size(18, 18);
-                            CreatePage(page, guid);
-                        }
-                }
-
                 //初始功能列表
                 this.accordionControlFunction.Elements.Clear();
                 var list = GetAccordionElementList(modular);
@@ -572,6 +552,14 @@
                     {
                         var accEle = GetAccordionControlElement(element);
                         this.accordionControlFunction.Elements.Add(accEle);
+                    }
+
+                    foreach (var element in list)
+                    {
+                        if (element.IsNormallyOpen && !IsExistPage(element.PageGuid, false))
+                        {
+                            element.Click.Invoke();
+                        }
                     }
                 }
                 _sel_modular = modular;
@@ -601,6 +589,11 @@
             dev_ele.Tag = ele;
             dev_ele.Style = DevExpress.XtraBars.Navigation.ElementStyle.Item;
             dev_ele.Click += delegate { ele.Click?.Invoke(); };
+            dev_ele.Enabled = ele.Enable;
+            ele.EnableChangedEvent += (bol) =>
+            {
+                dev_ele.Enabled = bol;
+            };
             if (ele.Elements != null && ele.Elements.Count > 0)
             {
                 dev_ele.Style = DevExpress.XtraBars.Navigation.ElementStyle.Group;
@@ -629,6 +622,10 @@
                         ctrl_ele.OwnerElement.Expanded = true;
                         this.accordionControlFunction.Refresh();
                     }
+                    //if (!IsExistPage(pguid, true))
+                    //{
+                    //    ele.Click.Invoke();
+                    //}
                     return true;
                 }
                 else
@@ -645,6 +642,8 @@
 
             return false;
         }
+
+        private bool _ibox_status = false;
 
         //获取
         private List<AccordionElement> GetAccordionElementList(string modular)
@@ -1287,6 +1286,23 @@
                                 CreatePage(page,guid);
                             }
                         }),
+                        Get("电费配置",new PageGuid()
+                        {
+                            Modular = "BasicData",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "ElecPriceMgr",
+                        }, svgImgItem32[12], new Size(18, 18), (caption,guid,svg,size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page=new  ElecPriceMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page,guid);
+                            }
+                        }),
                      }
                         };
 
@@ -1430,33 +1446,51 @@
                         {
                             Modular = "ModelManage",
                             MoudingType = eMoudingType.Tab,
-                            Function = " ",
+                            Function = "ModelTemplate",
                         }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                         {
                             if (!IsExistPage(guid, true))
                             {
+                                var page = new ModelTemplatePage();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
                             }
                         });
                         var rapidModeling = Get("快速建模", new PageGuid()
                         {
                             Modular = "ModelManage",
                             MoudingType = eMoudingType.Tab,
-                            Function = " ",
+                            Function = "QuickModeling",
                         }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                         {
                             if (!IsExistPage(guid, true))
                             {
+                                var page = new QuickModelingPage();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
                             }
                         });
                         var modelEdit = Get("模型编辑", new PageGuid()
                         {
                             Modular = "ModelManage",
                             MoudingType = eMoudingType.Tab,
-                            Function = " ",
+                            Function = "ModelEdit",
                         }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                         {
                             if (!IsExistPage(guid, true))
                             {
+                                var page = new ModelEditPage();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid); 
                             }
                         });
                         list.Add(hydraulicScenario);
@@ -1515,6 +1549,23 @@
 
                 case "DataAnalysis":
                     {
+                        var analysis = Get("能耗分析", new PageGuid()
+                        {
+                            Modular = "DataAnalysis",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "EnergyAnalysis",
+                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new EnergyAnalysis();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        });
                         var analysis1 = Get("流量压力比对分析", new PageGuid()
                         {
                             Modular = "DataAnalysis",
@@ -1550,9 +1601,293 @@
                                 CreatePage(page, guid);
                             }
                         });
-
+                        list.Add(analysis);
                         list.Add(analysis1);
                         list.Add(analysis2);
+                    }
+                    break;
+
+                case "SmartHardware":
+                    {
+                        // 创建一个列表来存储所有需要操作的 AccordionElement 对象
+                        List<AccordionElement> allAccordionElements = new List<AccordionElement>();
+                        AccordionElement accordionElement_Facility = new();
+                        accordionElement_Facility = Get("选择设施", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "FlowPressAnalysis",
+                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            var dlg = new PBS.WinFrmUI.Box.ChoiceFacilityDlg();
+                            dlg.SetDataSource();
+                            dlg.VisibleChanged += (bol) =>
+                            {
+                                accordionElement_Facility.Enable = bol;
+                                foreach (var item in allAccordionElements)
+                                {
+                                    foreach (var ele in item.Elements)
+                                    {
+                                        ele.Enable = true;
+                                        _ibox_status = true;
+                                    }
+                                }
+                            };
+                            dlg.ShowDialog();
+                        });
+                        AccordionElement accordionElement_IboxInfo = new();
+                        accordionElement_IboxInfo = Get("硬件详情", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "IBoxInfo",
+                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new IBoxInfoMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }, true);
+
+                        var accordionElement_Monitor = new AccordionElement()
+                        {
+                            Id = "monitor",
+                            Caption = "监测分析",
+                            SvgImage = svgImgGroup32[0],
+                            SvgImageSize = new Size(24, 24),
+                            AllowGlyphSkinning = true,
+                            Elements = new List<AccordionElement>()
+                    {
+                          Get("实时监测", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "MonitorMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new MonitorMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),
+                          Get("能耗分析", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "AnalysisMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                               var page = new AnalysisMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        })
+                    }
+                        };
+                        allAccordionElements.Add(accordionElement_Monitor);
+                        var accordionElement_DataManagement = new AccordionElement()
+                        {
+                            Id = "management",
+                            Caption = "数据管理",
+                            SvgImage = svgImgGroup32[0],
+                            SvgImageSize = new Size(24, 24),
+                            AllowGlyphSkinning = true,
+                            Elements = new List<AccordionElement>()
+                    {
+                          Get("协议配置", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "ProtocolMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new ProtocolMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),
+                          Get("监测配置", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "MonitorConfigurationMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new MonitorConfigurationMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),
+                         Get("数据处理", new PageGuid()
+                        {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "DataFilterMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new DataFilter();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),
+                          Get("参数配置", new PageGuid()
+                            {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "ParameterMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new ParameterMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),/*Get("智控数据", new PageGuid()
+                            {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "IntelligentControlData",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                            }
+                        }),Get("数据下发", new PageGuid()
+                            {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "DataDeliveryMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new DataDeliveryMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),Get("服务升级", new PageGuid()
+                            {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "ServiceUpgradeMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                            }
+                        })*/
+                             Get("基础信息", new PageGuid()
+                            {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "BasicInfoMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new BasicInfoMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),Get("日志管理", new PageGuid()
+                            {
+                            Modular = "SmartHardware",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "LogManagentMgr",
+                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new LogManagentMgr();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }),
+                    }
+                        };
+                        allAccordionElements.Add(accordionElement_DataManagement);
+                        if (!_ibox_status)
+                        {
+                            foreach (var item in allAccordionElements)
+                            {
+                                foreach (var ele in item.Elements)
+                                {
+                                    ele.Enable = false;
+                                }
+                            }
+                        }
+                        list.Add(accordionElement_Facility);
+                        list.Add(accordionElement_IboxInfo);
+                        list.Add(accordionElement_Monitor);
+                        list.Add(accordionElement_DataManagement);
+                    }
+
+                    break;
+
+                case "Home":
+                    {
+                        AccordionElement accordionElement_Home = new();
+                        accordionElement_Home = Get("地图信息", new PageGuid()
+                        {
+                            Modular = "Home",
+                            MoudingType = eMoudingType.Tab,
+                            Function = "MapInfo",
+                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
+                        {
+                            if (!IsExistPage(guid, true))
+                            {
+                                var page = new HomePbsProjectPage();
+                                page.PageGuid = guid;
+                                page.PageTitle.Caption = caption;
+                                page.PageTitle.HeaderSvgImage = svg;
+                                page.PageTitle.SvgImageSize = size;
+                                CreatePage(page, guid);
+                            }
+                        }, true);
+                        list.Add(accordionElement_Home);
                     }
                     break;
 
@@ -1563,7 +1898,7 @@
             return list;
         }
 
-        private AccordionElement Get(string caption, PageGuid guid, SvgImage svg_img, Size size, Action<string, PageGuid, SvgImage, Size> action, bool glyph_skinning = true)
+        private AccordionElement Get(string caption, PageGuid guid, SvgImage svg_img, Size size, Action<string, PageGuid, SvgImage, Size> action, bool is_normally_open = false, bool glyph_skinning = true)
         {
             var ele = new AccordionElement();
             if (guid == null)
@@ -1580,6 +1915,7 @@
             ele.SvgImage = svg_img;
             ele.SvgImageSize = size;
             ele.AllowGlyphSkinning = glyph_skinning;
+            ele.IsNormallyOpen = is_normally_open;
             return ele;
         }
 

--
Gitblit v1.9.3