ningshuxia
2025-03-24 f7d479db638f3d9e3aeb05ec82dc2818f14bf903
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,15 +5,16 @@
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 NPOI.SS.Formula.Functions;
using IBox.WinFrmUI;
using PBS.WinFrmUI;
using PBS.WinFrmUI.WE;
using System.IO;
using PBS.WinFrmUI.Box;
using PBS.WinFrmUI.DataAnalysis;
using PBS.WinFrmUI.Hydro;
using Yw.WinFrmUI;
using Yw.WinFrmUI.Page;
@@ -160,6 +160,7 @@
            {
                pguid = this.tabbedView1.ActiveDocument.Tag as PageGuid;
            }
            SelectModular(tag, pguid);
        }
@@ -184,8 +185,13 @@
            //if (!IsExistPage(guid, true))
            //{
            //}
            SelectModular("BasicData");
            var pageGuid = new PageGuid()
            {
                Modular = "Home",
                MoudingType = eMoudingType.Tab,
                Function = "MapInfo",
            };
            SelectModular("Home", pageGuid);
        }
        //界面正在退出时确认
@@ -547,6 +553,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;
            }
@@ -575,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;
@@ -603,6 +622,10 @@
                        ctrl_ele.OwnerElement.Expanded = true;
                        this.accordionControlFunction.Refresh();
                    }
                    //if (!IsExistPage(pguid, true))
                    //{
                    //    ele.Click.Invoke();
                    //}
                    return true;
                }
                else
@@ -620,20 +643,24 @@
            return false;
        }
        private bool _ibox_status = false;
        //获取
        private List<AccordionElement> GetAccordionElementList(string modular)
        {
            var list = new List<AccordionElement>();
            if (modular == "BasicData")
            switch (modular)
            {
                var place_mgr_ele = new AccordionElement()
                {
                    Id = "place",
                    Caption = "场所管理",
                    SvgImage = svgImgGroup32[0],
                    SvgImageSize = new Size(24, 24),
                    AllowGlyphSkinning = true,
                    Elements = new List<AccordionElement>()
                case "BasicData":
                    {
                        var place_mgr_ele = new AccordionElement()
                        {
                            Id = "place",
                            Caption = "场所管理",
                            SvgImage = svgImgGroup32[0],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>()
                    {
                        Get("行政区域",new PageGuid()
                        {
@@ -644,7 +671,7 @@
                        {
                            if (!IsExistPage(guid, true))
                            {
                                var page = new PlaceMgrPage();
                                var page = new DivisionMainPage();
                                page.PageGuid = guid;
                                page.PageTitle.Caption = caption;
                                page.PageTitle.HeaderSvgImage = svg;
@@ -678,7 +705,7 @@
                        {
                            if (!IsExistPage(guid, true))
                            {
                                var page = new DocumentPage();
                                var page = new FacilityMgrPage();
                                page.PageGuid = guid;
                                page.PageTitle.Caption = caption;
                                page.PageTitle.HeaderSvgImage = svg;
@@ -687,16 +714,16 @@
                            }
                        })
                    }
                };
                        };
                var we_mgr_ele = new AccordionElement()
                {
                    Id = "we",
                    Caption = "当量管理",
                    SvgImage = svgImgGroup32[1],
                    SvgImageSize = new Size(24, 24),
                    AllowGlyphSkinning = true,
                    Elements = new List<AccordionElement>() {
                        var we_mgr_ele = new AccordionElement()
                        {
                            Id = "we",
                            Caption = "当量管理",
                            SvgImage = svgImgGroup32[1],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>() {
                        Get("用水器具",new PageGuid()
                        {
                            Modular = "BasicData",
@@ -732,17 +759,17 @@
                            }
                        })
                    }
                };
                        };
                var coupling = Get("连接件", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "AssetsCouplingMgr",
                }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                coupling.Elements = new List<AccordionElement>()
                        var coupling = Get("连接件", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "AssetsCouplingMgr",
                        }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        coupling.Elements = new List<AccordionElement>()
                {
                     Get("闷头",new PageGuid()
                        {
@@ -814,15 +841,15 @@
                        }),
                 };
                var emitter = Get("扩散器", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "AssetsEmitterMgr",
                }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                emitter.Elements = new List<AccordionElement>()
                        var emitter = Get("扩散器", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "AssetsEmitterMgr",
                        }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        emitter.Elements = new List<AccordionElement>()
                {
                    Get("喷头",new PageGuid()
                        {
@@ -877,15 +904,15 @@
                        }),
                 };
                var Instrument = Get("设施仪表", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "AssetsInstrumentMgr",
                }, svgImgItem32[22], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                Instrument.Elements = new List<AccordionElement>()
                        var Instrument = Get("设施仪表", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "AssetsInstrumentMgr",
                        }, svgImgItem32[22], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        Instrument.Elements = new List<AccordionElement>()
                {
                    Get("水表",new PageGuid()
                        {
@@ -940,15 +967,15 @@
                        }),
                 };
                var Resistance = Get("阻件", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "AssetsResistanceMgr",
                }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                Resistance.Elements = new List<AccordionElement>()
                        var Resistance = Get("阻件", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "AssetsResistanceMgr",
                        }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        Resistance.Elements = new List<AccordionElement>()
                {
                    Get("换热器",new PageGuid()
                        {
@@ -986,17 +1013,17 @@
                        }),
                 };
                #region 供水水源
                        #region 供水水源
                var waterSupplySource = Get("供水水源", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "waterSupplySource",
                }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                waterSupplySource.Elements = new List<AccordionElement>()
                        var waterSupplySource = Get("供水水源", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "waterSupplySource",
                        }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        waterSupplySource.Elements = new List<AccordionElement>()
                {
                    Get("水池", new PageGuid()
                {
@@ -1017,19 +1044,19 @@
                }),
              };
                #endregion 供水水源
                        #endregion 供水水源
                #region 供水装置
                        #region 供水装置
                var waterSupply = Get("供水装置", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "waterSupply",
                }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                waterSupply.Elements = new List<AccordionElement>()
                        var waterSupply = Get("供水装置", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "waterSupply",
                        }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        waterSupply.Elements = new List<AccordionElement>()
                {
                                        Get("水泵管理", new PageGuid()
                    {
@@ -1052,26 +1079,32 @@
                    {
                        Modular = "BasicData",
                        MoudingType = eMoudingType.Tab,
                        Function = "AssetsKitMgr",
                        Function = "AssetsPackageMgr",
                    }, svgImgItem32[8], new Size(18, 18), (caption, guid, svg, size) =>
                    {
                        if (!IsExistPage(guid, true))
                        {
                            var page = new PackageManageMainPage();
                            page.PageGuid = guid;
                            page.PageTitle.Caption = caption;
                            page.PageTitle.HeaderSvgImage = svg;
                            page.PageTitle.SvgImageSize = size;
                            CreatePage(page, guid);
                        }
                    })
                };
                #endregion 供水装置
                        #endregion 供水装置
                var FacilityNetwork = Get("设施管网", new PageGuid()
                {
                    Modular = "BasicData",
                    MoudingType = eMoudingType.Tab,
                    Function = "FacilityNetwork",
                }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                {
                });
                FacilityNetwork.Elements = new List<AccordionElement>()
                        var FacilityNetwork = Get("设施管网", new PageGuid()
                        {
                            Modular = "BasicData",
                            MoudingType = eMoudingType.Tab,
                            Function = "FacilityNetwork",
                        }, svgImgItem32[7], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                        });
                        FacilityNetwork.Elements = new List<AccordionElement>()
                {
                    Get("管道",new PageGuid()
                        {
@@ -1128,14 +1161,14 @@
                    emitter,
                  };
                var asset_mgr_ele = new AccordionElement()
                {
                    Id = "asset",
                    Caption = "产品管理",
                    SvgImage = svgImgGroup32[2],
                    SvgImageSize = new Size(24, 24),
                    AllowGlyphSkinning = true,
                    Elements = new List<AccordionElement>() {
                        var asset_mgr_ele = new AccordionElement()
                        {
                            Id = "asset",
                            Caption = "产品管理",
                            SvgImage = svgImgGroup32[2],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>() {
                      Get("厂商管理",new PageGuid()
                        {
                            Modular = "BasicData",
@@ -1158,16 +1191,16 @@
                      FacilityNetwork,
                      Instrument,
                }
                };
                        };
                var system_config_ele = new AccordionElement()
                {
                    Id = "asset",
                    Caption = "系统配置",
                    SvgImage = svgImgGroup32[3],
                    SvgImageSize = new Size(24, 24),
                    AllowGlyphSkinning = true,
                    Elements = new List<AccordionElement>() {
                        var system_config_ele = new AccordionElement()
                        {
                            Id = "asset",
                            Caption = "系统配置",
                            SvgImage = svgImgGroup32[3],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>() {
                        Get("类型管理",new PageGuid()
                        {
                            Modular = "BasicData",
@@ -1253,17 +1286,34 @@
                                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);
                            }
                        }),
                     }
                };
                        };
                var auth_config_ele = new AccordionElement()
                {
                    Id = "asset",
                    Caption = "权限配置",
                    SvgImage = svgImgGroup32[4],
                    SvgImageSize = new Size(24, 24),
                    AllowGlyphSkinning = true,
                    Elements = new List<AccordionElement>() {
                        var auth_config_ele = new AccordionElement()
                        {
                            Id = "asset",
                            Caption = "权限配置",
                            SvgImage = svgImgGroup32[4],
                            SvgImageSize = new Size(24, 24),
                            AllowGlyphSkinning = true,
                            Elements = new List<AccordionElement>() {
                         Get("用户管理",new PageGuid()
                        {
                            Modular = "BasicData",
@@ -1363,113 +1413,492 @@
                             }
                        }),
                     }
                };
                        };
                list.Add(place_mgr_ele);
                list.Add(we_mgr_ele);
                list.Add(asset_mgr_ele);
                list.Add(system_config_ele);
                list.Add(auth_config_ele);
                        list.Add(place_mgr_ele);
                        list.Add(we_mgr_ele);
                        list.Add(asset_mgr_ele);
                        list.Add(system_config_ele);
                        list.Add(auth_config_ele);
                    }
                    break;
                case "ModelManage":
                    {
                        var hydraulicScenario = Get("水力场景", new PageGuid()
                        {
                            Modular = "ModelManage",
                            MoudingType = eMoudingType.Tab,
                            Function = " ",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                                //var page = new HydroSceneMgrPage();
                                //page.PageGuid = guid;
                                //page.PageTitle.Caption = caption;
                                //page.PageTitle.HeaderSvgImage = svg;
                                //page.PageTitle.SvgImageSize = size;
                                //CreatePage(page, guid);
                            }
                        });
                        var modelTemplate = Get("模型模版", new PageGuid()
                        {
                            Modular = "ModelManage",
                            MoudingType = eMoudingType.Tab,
                            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 = "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 = "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);
                        list.Add(modelTemplate);
                        list.Add(rapidModeling);
                        list.Add(modelEdit);
                    }
                    break;
                case "WaterSupplyAnalysis":
                    {
                        var systemCurve = Get("系统曲线", new PageGuid()
                        {
                            Modular = "WaterSupplyAnalysis",
                            MoudingType = eMoudingType.Tab,
                            Function = " ",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                                var page = new SystemCurvePage();
                                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",
                            MoudingType = eMoudingType.Tab,
                            Function = " ",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                            }
                        });
                        var operationalEvaluation = Get("运行评估", new PageGuid()
                        {
                            Modular = "WaterSupplyAnalysis",
                            MoudingType = eMoudingType.Tab,
                            Function = " ",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                            }
                        });
                        list.Add(systemCurve);
                        list.Add(forecastWater);
                        list.Add(operationalEvaluation);
                    }
                    break;
                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",
                            MoudingType = eMoudingType.Tab,
                            Function = "FlowPressAnalysis",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                                var page = new FlowPressAnalysis();
                                page.PageGuid = guid;
                                page.PageTitle.Caption = caption;
                                page.PageTitle.HeaderSvgImage = svg;
                                page.PageTitle.SvgImageSize = size;
                                CreatePage(page, guid);
                            }
                        });
                        var analysis2 = Get("末端压力分析", new PageGuid()
                        {
                            Modular = "DataAnalysis",
                            MoudingType = eMoudingType.Tab,
                            Function = "EndPressAnalysis",
                        }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                        {
                            if (!IsExistPage(guid, true))
                            {
                                var page = new EndPressAnalysis();
                                page.PageGuid = guid;
                                page.PageTitle.Caption = caption;
                                page.PageTitle.HeaderSvgImage = svg;
                                page.PageTitle.SvgImageSize = size;
                                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;
                default:
                    break;
            }
            if (modular == "ModelManage")
            {
                var hydraulicScenario = Get("水力场景", new PageGuid()
                {
                    Modular = "ModelManage",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                var modelTemplate = Get("模型模版", new PageGuid()
                {
                    Modular = "ModelManage",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                var rapidModeling = Get("快速建模", new PageGuid()
                {
                    Modular = "ModelManage",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                var modelEdit = Get("模型编辑", new PageGuid()
                {
                    Modular = "ModelManage",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                list.Add(hydraulicScenario);
                list.Add(modelTemplate);
                list.Add(rapidModeling);
                list.Add(modelEdit);
            }
            if (modular == "WaterSupplyAnalysis")
            {
                var systemCurve = Get("系统曲线", new PageGuid()
                {
                    Modular = "WaterSupplyAnalysis",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                var forecastWater = Get("水量预测", new PageGuid()
                {
                    Modular = "WaterSupplyAnalysis",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                var operationalEvaluation = Get("运行评估", new PageGuid()
                {
                    Modular = "WaterSupplyAnalysis",
                    MoudingType = eMoudingType.Tab,
                    Function = " ",
                }, svgImgItem32[4], new Size(18, 18), (caption, guid, svg, size) =>
                {
                    if (!IsExistPage(guid, true))
                    {
                    }
                });
                list.Add(systemCurve);
                list.Add(forecastWater);
                list.Add(operationalEvaluation);
            }
            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)
@@ -1486,6 +1915,7 @@
            ele.SvgImage = svg_img;
            ele.SvgImageSize = size;
            ele.AllowGlyphSkinning = glyph_skinning;
            ele.IsNormallyOpen = is_normally_open;
            return ele;
        }