ningshuxia
2025-03-28 b6a00e2fddcf2343b981c30be670aa00b87699dc
Desktop/PBS.Desktop/MainForm.cs
@@ -10,17 +10,12 @@
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 Yw.WinFrmUI;
using Yw.WinFrmUI.Page;
using PBS.Vmo;
using PBS.WinFrmUI.Box;
using MathNet.Numerics.LinearAlgebra.Factorization;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;
namespace PBS.Desktop
{
@@ -164,6 +159,7 @@
            {
                pguid = this.tabbedView1.ActiveDocument.Tag as PageGuid;
            }
            SelectModular(tag, pguid);
        }
@@ -174,16 +170,6 @@
        //界面记载事件
        private void MainForm_Load(object sender, EventArgs e)
        {
            var homeGuid = new PageGuid();
            var HomePage = new HomeXhsProjectPage();
            HomePage.PageGuid = homeGuid;
            HomePage.PageTitle.Caption = "首页";
            // HomePage.PageTitle.HeaderSvgImage = svg;
            //    HomePage.PageTitle.SvgImageSize = size;
            if (!IsExistPage(homeGuid, true))
            {
                CreatePage(HomePage, homeGuid);
            }
        }
        //界面显示事件
@@ -198,8 +184,13 @@
            //if (!IsExistPage(guid, true))
            //{
            //}
            SelectModular("Home");
            var pageGuid = new PageGuid()
            {
                Modular = "Home",
                MoudingType = eMoudingType.Tab,
                Function = "MapInfo",
            };
            SelectModular("Home", pageGuid);
        }
        //界面正在退出时确认
@@ -554,13 +545,20 @@
                //初始功能列表
                this.accordionControlFunction.Elements.Clear();
                var list = GetAccordionElementList(modular);
                this.accordionControlFunction.Elements.Clear();
                if (list != null && list.Count > 0)
                {
                    foreach (var element in list)
                    {
                        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;
@@ -639,6 +637,8 @@
            return false;
        }
        private bool _ibox_status = false;
        //获取
        private List<AccordionElement> GetAccordionElementList(string modular)
@@ -1281,6 +1281,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);
                            }
                        }),
                     }
                        };
@@ -1452,18 +1469,23 @@
                                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);
@@ -1492,6 +1514,23 @@
                                CreatePage(page, guid);
                            }
                        });
                        //var simulationDrill = Get("模拟调度", new PageGuid()
                        //{
                        //    Modular = "WaterSupplyAnalysis",
                        //    MoudingType = eMoudingType.Tab,
                        //    Function = "SimulationSchedule",
                        //}, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        //{
                        //    if (!IsExistPage(guid, true))
                        //    {
                        //        var page = new SimulationSchedulePage();
                        //        page.PageGuid = guid;
                        //        page.PageTitle.Caption = caption;
                        //        page.PageTitle.HeaderSvgImage = svg;
                        //        page.PageTitle.SvgImageSize = size;
                        //        CreatePage(page, guid);
                        //    }
                        //});
                        var forecastWater = Get("水量预测", new PageGuid()
                        {
                            Modular = "WaterSupplyAnalysis",
@@ -1522,6 +1561,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",
@@ -1557,7 +1613,7 @@
                                CreatePage(page, guid);
                            }
                        });
                        list.Add(analysis);
                        list.Add(analysis1);
                        list.Add(analysis2);
                    }
@@ -1565,17 +1621,6 @@
                case "SmartHardware":
                    {
                        var guid = new PageGuid();
                        guid.Modular = "SmartHardware";
                        if (!IsExistPage(guid, true))
                        {
                            var page = new IBoxHomeMgr();
                            page.PageGuid = guid;
                            page.PageTitle.Caption = "硬件详情";
                            // page.PageTitle.HeaderSvgImage = svg;
                            //    page.PageTitle.SvgImageSize = size;
                            CreatePage(page, guid);
                        }
                        // 创建一个列表来存储所有需要操作的 AccordionElement 对象
                        List<AccordionElement> allAccordionElements = new List<AccordionElement>();
                        AccordionElement accordionElement_Facility = new();
@@ -1584,7 +1629,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "FlowPressAnalysis",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            var dlg = new PBS.WinFrmUI.Box.ChoiceFacilityDlg();
                            dlg.SetDataSource();
@@ -1596,17 +1641,36 @@
                                    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",
                        }, svgImageIBox[10], 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],
                            SvgImage = svgImageIBox[4],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>()
@@ -1616,7 +1680,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "MonitorMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[3], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1633,7 +1697,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "AnalysisMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[1], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1652,7 +1716,7 @@
                        {
                            Id = "management",
                            Caption = "数据管理",
                            SvgImage = svgImgGroup32[0],
                            SvgImage = svgImageIBox[9],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>()
@@ -1662,7 +1726,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "ProtocolMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[11], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1679,7 +1743,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "MonitorConfigurationMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[5], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1696,11 +1760,11 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "DataFilterMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        },svgImageIBox[8], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                                var page = new IBoxFormDataFilter();
                                var page = new DataFilter();
                                page.PageGuid = guid;
                                page.PageTitle.Caption = caption;
                                page.PageTitle.HeaderSvgImage = svg;
@@ -1713,7 +1777,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "ParameterMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[0], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1722,7 +1786,6 @@
                                page.PageTitle.Caption = caption;
                                page.PageTitle.HeaderSvgImage = svg;
                                page.PageTitle.SvgImageSize = size;
                                CreatePage(page, guid);
                            }
                        }),/*Get("智控数据", new PageGuid()
@@ -1767,7 +1830,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "BasicInfoMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[2], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1783,7 +1846,7 @@
                            Modular = "SmartHardware",
                            MoudingType = eMoudingType.Tab,
                            Function = "LogManagentMgr",
                        }, svgImgItem32[2], new Size(18, 18), (caption, guid, svg, size) =>
                        }, svgImageIBox[6], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
@@ -1798,14 +1861,18 @@
                    }
                        };
                        allAccordionElements.Add(accordionElement_DataManagement);
                        foreach (var item in allAccordionElements)
                        if (!_ibox_status)
                        {
                            foreach (var ele in item.Elements)
                            foreach (var item in allAccordionElements)
                            {
                                ele.Enable = false;
                                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);
                    }
@@ -1814,16 +1881,25 @@
                case "Home":
                    {
                        var homeGuid = new PageGuid();
                        var HomePage = new HomeXhsProjectPage();
                        HomePage.PageGuid = homeGuid;
                        HomePage.PageTitle.Caption = "首页";
                        // HomePage.PageTitle.HeaderSvgImage = svg;
                        //    HomePage.PageTitle.SvgImageSize = size;
                        if (!IsExistPage(homeGuid, true))
                        AccordionElement accordionElement_Home = new();
                        accordionElement_Home = Get("地图信息", new PageGuid()
                        {
                            CreatePage(HomePage, homeGuid);
                        }
                            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;
@@ -1834,7 +1910,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)
@@ -1851,6 +1927,7 @@
            ele.SvgImage = svg_img;
            ele.SvgImageSize = size;
            ele.AllowGlyphSkinning = glyph_skinning;
            ele.IsNormallyOpen = is_normally_open;
            return ele;
        }