lixiaojun
2024-12-10 8b0e025296ada3552e50dad2ca02f6b1e40bb97b
增加方案删除和更新
已删除2个文件
已修改8个文件
已添加3个文件
918 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/00-core/eSimulationVisualSource.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/02-list/SimulationVisualListHelper.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/04-select/ISimulationVisualSelectView.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/04-select/SimulationVisualSelectHelper.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/00-core/XhsSchemeChangeTypeCheckedListHorizCtrl.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/EditXhsSchemeDlg.Designer.cs 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/EditXhsSchemeDlg.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/EditXhsSchemeDlg.resx 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/00-core/eSimulationVisualSource.cs
@@ -37,6 +37,11 @@
        List,
        /// <summary>
        /// è®¾ç½®
        /// </summary>
        Set,
        /// <summary>
        /// æŸ¥è¯¢
        /// </summary>
        Search,
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/02-list/SimulationVisualListHelper.cs
@@ -13,6 +13,11 @@
        public SimulationVisualListHelper() { }
        /// <summary>
        /// åˆå§‹åŒ–事件
        /// </summary>
        public event Action InitialEvent;
        /// <summary>
        /// æ°´åŠ›ä¿¡æ¯
        /// </summary>
        public HydroModelInfo HydroInfo
@@ -21,7 +26,9 @@
            private set { _hydroInfo = value; }
        }
        private HydroModelInfo _hydroInfo = null;
        private Dictionary<string, HydroVisualInfo> _dict;//字典
        //字典
        private Dictionary<string, HydroVisualInfo> _dict;
        /// <summary>
        /// åˆå§‹åŒ–数据
@@ -33,7 +40,8 @@
            {
                return;
            }
            _dict = hydroInfo?.GetVisualDict();
            _dict = hydroInfo.GetVisualDict();
            InitialEvent?.Invoke();
        }
        /// <summary>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/03-vm/SimulationVisualVmListHelper.cs
@@ -12,40 +12,48 @@
        /// <summary>
        /// 
        /// </summary>
        public SimulationVisualVmListHelper(SimulationVisualListHelper visualListHelper, SimulationCalcuResultHelper calcuResultHelper)
        public SimulationVisualVmListHelper
            (
                SimulationVisualListHelper visualListHelper,
                SimulationCalcuResultHelper calcuResultHelper
            )
        {
            _visualListHelper = visualListHelper;
            _calcuResultHelper = calcuResultHelper;
            _visualListHelper.InitialEvent += () => Initial();
            Initial();
        }
        private SimulationVisualListHelper _visualListHelper = null;//可见列表辅助类
        private SimulationCalcuResultHelper _calcuResultHelper = null;//计算结果辅助类
        private Dictionary<string, HydroVisualViewModel> _dict;//字典
        //初始化
        private void Initial()
        {
            _dict = new Dictionary<string, HydroVisualViewModel>();
            var allVisualDict = _visualListHelper.GetVisualDict();
            if (allVisualDict != null && allVisualDict.Count > 0)
            {
                var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict();
                foreach (var visualKeyValue in allVisualDict)
                {
                    var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _visualListHelper.HydroInfo);
                    var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
                    if (calcuVisualResult != null)
                    {
                        vm.UpdateCalcuProperty(calcuVisualResult);
                    }
                    _dict.Add(visualKeyValue.Key, vm);
                }
            }
        }
        /// <summary>
        /// èŽ·å–å¯è§è§†å›¾å­—å…¸
        /// </summary>
        public Dictionary<string, HydroVisualViewModel> GetVisualDict()
        {
            if (_dict == null)
            {
                _dict = new Dictionary<string, HydroVisualViewModel>();
                var allVisualDict = _visualListHelper.GetVisualDict();
                if (allVisualDict != null && allVisualDict.Count > 0)
                {
                    var allCalcuResultVisualDict = _calcuResultHelper.GetVisualDict();
                    foreach (var visualKeyValue in allVisualDict)
                    {
                        var vm = HydroVisualViewModelBuilder.CreateVisualViewModel(visualKeyValue.Value, _visualListHelper.HydroInfo);
                        var calcuVisualResult = allCalcuResultVisualDict?.GetValue(visualKeyValue.Key);
                        if (calcuVisualResult != null)
                        {
                            vm.UpdateCalcuProperty(calcuVisualResult);
                        }
                        _dict.Add(visualKeyValue.Key, vm);
                    }
                }
            }
            return _dict;
        }
@@ -55,7 +63,7 @@
        public List<HydroVisualViewModel> GetVisualList()
        {
            var dict = GetVisualDict();
            return dict.Values.ToList();
            return dict?.Values.ToList();
        }
        /// <summary>
@@ -68,6 +76,10 @@
                return default;
            }
            var dict = GetVisualDict();
            if (dict == null || dict.Count < 1)
            {
                return default;
            }
            if (dict.ContainsKey(code))
            {
                return dict[code];
@@ -106,7 +118,7 @@
        public void UpdateProperty()
        {
            var dict = GetVisualDict();
            dict.ForEach(x => x.Value.UpdateProperty());
            dict?.ForEach(x => x.Value.UpdateProperty());
        }
        /// <summary>
@@ -150,6 +162,10 @@
        public void UpdateCalcuProperty(HydroCalcuResult calcuResult)
        {
            var dict = GetVisualDict();
            if (dict == null || dict.Count < 1)
            {
                return;
            }
            var allCalcuResultVisualDict = calcuResult?.GetVisualDict();
            foreach (var visualKeyValue in dict)
            {
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/04-select/ISimulationVisualSelectView.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/04-select/SimulationVisualSelectHelper.cs
ÎļþÒÑɾ³ý
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/01-info/00-core/XhsSchemeChangeTypeCheckedListHorizCtrl.cs
@@ -16,6 +16,8 @@
        private BindingList<XhsSchemeChangeTypeCheckedViewModel> _allBindingList = null;//所有绑定列表
        /// <summary>
        /// ç»‘定数据
        /// </summary>
@@ -28,6 +30,25 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<string> changeTypes)
        {
            var allList = XhsSchemeChangeTypeCheckedHelper.GetChangeTypes(hydroInfo);
            if (changeTypes != null && changeTypes.Count > 0)
            {
                foreach (var item in allList)
                {
                    if (changeTypes.Contains(item.Code))
                    {
                        item.Checked = true;
                    }
                }
            }
            SetBindingData(allList);
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(List<XhsSchemeChangeTypeCheckedViewModel> allList)
        {
            _allBindingList = new BindingList<XhsSchemeChangeTypeCheckedViewModel>();
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/EditXhsSchemeDlg.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,273 @@
namespace HStation.WinFrmUI
{
    partial class EditXhsSchemeDlg
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new Container();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            generalOkAndCancelCtrl1 = new GeneralOkAndCancelCtrl();
            xhsSchemeChangeTypeCheckedListHorizCtrl1 = new XhsSchemeChangeTypeCheckedListHorizCtrl();
            ckAllowCustom = new CheckEdit();
            setFlagsEditCtrl1 = new SetFlagsEditCtrl();
            txtDescription = new MemoEdit();
            txtNO = new TextEdit();
            txtName = new TextEdit();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
            dxErrorProvider1 = new DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider(components);
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)ckAllowCustom.Properties).BeginInit();
            ((ISupportInitialize)txtDescription.Properties).BeginInit();
            ((ISupportInitialize)txtNO.Properties).BeginInit();
            ((ISupportInitialize)txtName.Properties).BeginInit();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)layoutControlItem7).BeginInit();
            ((ISupportInitialize)layoutControlItem5).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem4).BeginInit();
            ((ISupportInitialize)layoutControlItem6).BeginInit();
            ((ISupportInitialize)dxErrorProvider1).BeginInit();
            SuspendLayout();
            //
            // layoutControl1
            //
            layoutControl1.Controls.Add(generalOkAndCancelCtrl1);
            layoutControl1.Controls.Add(xhsSchemeChangeTypeCheckedListHorizCtrl1);
            layoutControl1.Controls.Add(ckAllowCustom);
            layoutControl1.Controls.Add(setFlagsEditCtrl1);
            layoutControl1.Controls.Add(txtDescription);
            layoutControl1.Controls.Add(txtNO);
            layoutControl1.Controls.Add(txtName);
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 0);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(909, 193, 650, 400);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(563, 420);
            layoutControl1.TabIndex = 1;
            layoutControl1.Text = "layoutControl1";
            //
            // generalOkAndCancelCtrl1
            //
            generalOkAndCancelCtrl1.ButtonCancelMaxSize = new Size(100, 26);
            generalOkAndCancelCtrl1.ButtonCancelMinSize = new Size(100, 26);
            generalOkAndCancelCtrl1.ButtonOkMaxSize = new Size(100, 26);
            generalOkAndCancelCtrl1.ButtonOkMinSize = new Size(100, 26);
            generalOkAndCancelCtrl1.Location = new Point(12, 382);
            generalOkAndCancelCtrl1.Name = "generalOkAndCancelCtrl1";
            generalOkAndCancelCtrl1.Size = new Size(539, 26);
            generalOkAndCancelCtrl1.TabIndex = 10;
            //
            // xhsSchemeChangeTypeCheckedListHorizCtrl1
            //
            xhsSchemeChangeTypeCheckedListHorizCtrl1.Location = new Point(67, 60);
            xhsSchemeChangeTypeCheckedListHorizCtrl1.Name = "xhsSchemeChangeTypeCheckedListHorizCtrl1";
            xhsSchemeChangeTypeCheckedListHorizCtrl1.Size = new Size(484, 65);
            xhsSchemeChangeTypeCheckedListHorizCtrl1.TabIndex = 9;
            //
            // ckAllowCustom
            //
            ckAllowCustom.Location = new Point(338, 36);
            ckAllowCustom.Name = "ckAllowCustom";
            ckAllowCustom.Properties.AutoWidth = true;
            ckAllowCustom.Properties.Caption = "";
            ckAllowCustom.Size = new Size(20, 20);
            ckAllowCustom.StyleController = layoutControl1;
            ckAllowCustom.TabIndex = 8;
            ckAllowCustom.ToolTip = "方案创建后,是否允许调整";
            //
            // setFlagsEditCtrl1
            //
            setFlagsEditCtrl1.Location = new Point(67, 36);
            setFlagsEditCtrl1.Name = "setFlagsEditCtrl1";
            setFlagsEditCtrl1.Size = new Size(212, 20);
            setFlagsEditCtrl1.TabIndex = 5;
            //
            // txtDescription
            //
            txtDescription.Location = new Point(67, 129);
            txtDescription.Name = "txtDescription";
            txtDescription.Size = new Size(484, 249);
            txtDescription.StyleController = layoutControl1;
            txtDescription.TabIndex = 7;
            //
            // txtNO
            //
            txtNO.Location = new Point(338, 12);
            txtNO.Name = "txtNO";
            txtNO.Size = new Size(213, 20);
            txtNO.StyleController = layoutControl1;
            txtNO.TabIndex = 3;
            //
            // txtName
            //
            txtName.Location = new Point(67, 12);
            txtName.Name = "txtName";
            txtName.Size = new Size(212, 20);
            txtName.StyleController = layoutControl1;
            txtName.TabIndex = 0;
            //
            // Root
            //
            Root.AppearanceItemCaption.Options.UseTextOptions = true;
            Root.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem7, layoutControlItem5, layoutControlItem3, layoutControlItem1, layoutControlItem4, layoutControlItem6 });
            Root.Name = "Root";
            Root.Size = new Size(563, 420);
            Root.TextVisible = false;
            //
            // layoutControlItem2
            //
            layoutControlItem2.AllowHtmlStringInCaption = true;
            layoutControlItem2.Control = txtName;
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Size = new Size(271, 24);
            layoutControlItem2.Text = "<color=red>*</color>名称:";
            layoutControlItem2.TextSize = new Size(43, 14);
            //
            // layoutControlItem7
            //
            layoutControlItem7.Control = txtDescription;
            layoutControlItem7.Location = new Point(0, 117);
            layoutControlItem7.Name = "layoutControlItem7";
            layoutControlItem7.Size = new Size(543, 253);
            layoutControlItem7.Text = "说明";
            layoutControlItem7.TextSize = new Size(43, 14);
            //
            // layoutControlItem5
            //
            layoutControlItem5.Control = setFlagsEditCtrl1;
            layoutControlItem5.Location = new Point(0, 24);
            layoutControlItem5.Name = "layoutControlItem5";
            layoutControlItem5.Size = new Size(271, 24);
            layoutControlItem5.Text = "标签:";
            layoutControlItem5.TextSize = new Size(43, 14);
            //
            // layoutControlItem3
            //
            layoutControlItem3.Control = txtNO;
            layoutControlItem3.Location = new Point(271, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Size = new Size(272, 24);
            layoutControlItem3.Text = "编号:";
            layoutControlItem3.TextSize = new Size(43, 14);
            //
            // layoutControlItem1
            //
            layoutControlItem1.Control = ckAllowCustom;
            layoutControlItem1.Location = new Point(271, 24);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(272, 24);
            layoutControlItem1.Text = "自定义:";
            layoutControlItem1.TextSize = new Size(43, 14);
            //
            // layoutControlItem4
            //
            layoutControlItem4.Control = xhsSchemeChangeTypeCheckedListHorizCtrl1;
            layoutControlItem4.Location = new Point(0, 48);
            layoutControlItem4.MaxSize = new Size(0, 69);
            layoutControlItem4.MinSize = new Size(109, 69);
            layoutControlItem4.Name = "layoutControlItem4";
            layoutControlItem4.Size = new Size(543, 69);
            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem4.Text = "变更:";
            layoutControlItem4.TextSize = new Size(43, 14);
            //
            // layoutControlItem6
            //
            layoutControlItem6.Control = generalOkAndCancelCtrl1;
            layoutControlItem6.Location = new Point(0, 370);
            layoutControlItem6.Name = "layoutControlItem6";
            layoutControlItem6.Size = new Size(543, 30);
            layoutControlItem6.TextSize = new Size(0, 0);
            layoutControlItem6.TextVisible = false;
            //
            // dxErrorProvider1
            //
            dxErrorProvider1.ContainerControl = this;
            //
            // EditXhsSchemeDlg
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(563, 420);
            Controls.Add(layoutControl1);
            Name = "EditXhsSchemeDlg";
            StartPosition = FormStartPosition.CenterParent;
            Text = "编辑方案";
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)ckAllowCustom.Properties).EndInit();
            ((ISupportInitialize)txtDescription.Properties).EndInit();
            ((ISupportInitialize)txtNO.Properties).EndInit();
            ((ISupportInitialize)txtName.Properties).EndInit();
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)layoutControlItem7).EndInit();
            ((ISupportInitialize)layoutControlItem5).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlItem4).EndInit();
            ((ISupportInitialize)layoutControlItem6).EndInit();
            ((ISupportInitialize)dxErrorProvider1).EndInit();
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private XhsSchemeChangeTypeCheckedListHorizCtrl xhsSchemeChangeTypeCheckedListHorizCtrl1;
        private CheckEdit ckAllowCustom;
        private SetFlagsEditCtrl setFlagsEditCtrl1;
        private MemoEdit txtDescription;
        private TextEdit txtNO;
        private TextEdit txtName;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
        private GeneralOkAndCancelCtrl generalOkAndCancelCtrl1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
        private DevExpress.XtraEditors.DXErrorProvider.DXErrorProvider dxErrorProvider1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/EditXhsSchemeDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
using Mapster;
using System.Data;
namespace HStation.WinFrmUI
{
    public partial class EditXhsSchemeDlg : DevExpress.XtraEditors.XtraForm
    {
        public EditXhsSchemeDlg()
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.layoutControl1.SetupLayoutControl();
            this.generalOkAndCancelCtrl1.OkEvent += GeneralOkAndCancelCtrl1_OkEvent;
        }
        /// <summary>
        ///
        /// </summary>
        public event Action<XhsSchemeVmo> ReloadDataEvent;
        private XhsSchemeVmo _vmo = null;
        /// <summary>
        ///
        /// </summary>
        public async void SetBindingData(XhsSchemeVmo vmo, Yw.Model.HydroModelInfo hydroInfo)
        {
            if (vmo == null)
            {
                return;
            }
            _vmo = vmo.Adapt<XhsSchemeVmo>();
            this.txtName.EditValue = vmo.Name;
            this.txtNO.EditValue = vmo.NO;
            var flags = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(HStation.Xhs.DataType.XhsScheme);
            this.setFlagsEditCtrl1.SetBindingData(flags?.Select(x => x.Name).Distinct().ToList(), vmo.Flags);
            this.ckAllowCustom.Checked = vmo.AllowCustom;
            this.xhsSchemeChangeTypeCheckedListHorizCtrl1.SetBindingData(hydroInfo, vmo.ChangeTypes);
            this.txtDescription.EditValue = vmo.Description;
        }
        //验证
        private bool Valid()
        {
            this.dxErrorProvider1.ClearErrors();
            if (string.IsNullOrEmpty(this.txtName.Text.Trim()))
            {
                this.dxErrorProvider1.SetError(this.txtName, "必填项");
                return false;
            }
            return true;
        }
        //确定
        private async void GeneralOkAndCancelCtrl1_OkEvent()
        {
            if (_vmo == null)
            {
                return;
            }
            if (!Valid())
            {
                return;
            }
            _vmo.Name = this.txtName.Text.Trim();
            _vmo.NO = this.txtNO.Text.Trim();
            _vmo.Flags = this.setFlagsEditCtrl1.SelectedFlagList;
            _vmo.AllowCustom = this.ckAllowCustom.Checked;
            _vmo.ChangeTypes = this.xhsSchemeChangeTypeCheckedListHorizCtrl1.GetCheckedList();
            _vmo.Description = this.txtDescription.Text.Trim();
            var bol = await BLLFactory<HStation.BLL.XhsScheme>.Instance.Update(_vmo);
            if (!bol)
            {
                TipFormHelper.ShowError("更新失败!");
                return;
            }
            var vmo = await BLLFactory<HStation.BLL.XhsScheme>.Instance.GetByID(_vmo.ID);
            this.ReloadDataEvent?.Invoke(vmo);
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/EditXhsSchemeDlg.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="dxErrorProvider1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
</root>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -32,8 +32,8 @@
        {
            components = new Container();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(XhsProjectSimulationCorePage));
            DevExpress.Utils.SuperToolTip superToolTip1 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem1 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip2 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem2 = new DevExpress.Utils.ToolTipItem();
            ribbonControl1 = new DevExpress.XtraBars.Ribbon.RibbonControl();
            barBtnCheck = new DevExpress.XtraBars.BarButtonItem();
            barBtnCalcu = new DevExpress.XtraBars.BarButtonItem();
@@ -483,9 +483,9 @@
            barBtnRepair.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnRepair.ImageOptions.SvgImage");
            barBtnRepair.Name = "barBtnRepair";
            barBtnRepair.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText;
            toolTipItem1.Text = "通过试算,调整管段上下游";
            superToolTip1.Items.Add(toolTipItem1);
            barBtnRepair.SuperTip = superToolTip1;
            toolTipItem2.Text = "通过试算,调整管段上下游";
            superToolTip2.Items.Add(toolTipItem2);
            barBtnRepair.SuperTip = superToolTip2;
            barBtnRepair.ItemClick += barBtnRepair_ItemClick;
            // 
            // barBtnWorkingEvaluation
@@ -541,6 +541,7 @@
            barBtnEditScheme.Id = 82;
            barBtnEditScheme.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnEditScheme.ImageOptions.SvgImage");
            barBtnEditScheme.Name = "barBtnEditScheme";
            barBtnEditScheme.ItemClick += barBtnEditScheme_ItemClick;
            // 
            // barBtnDeleteScheme
            // 
@@ -548,6 +549,7 @@
            barBtnDeleteScheme.Id = 83;
            barBtnDeleteScheme.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnDeleteScheme.ImageOptions.SvgImage");
            barBtnDeleteScheme.Name = "barBtnDeleteScheme";
            barBtnDeleteScheme.ItemClick += barBtnDeleteScheme_ItemClick;
            // 
            // barBtnExportWord
            // 
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -81,7 +81,7 @@
            else
            {
                this.ribPageGroupForScheme.Visible = true;
                this.PageTitle.Caption = $"水力方案\r\n{_scheme.Name}";
                this.PageTitle.Caption = $"模拟方案\r\n{_scheme.Name}";
            }
        }
@@ -124,7 +124,7 @@
                {//鼠标左键点击事件
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Bimface);
                    SelectVisual(visual, eSimulationVisualSource.Bimface);
                };
            }
            return _bimfaceCtrl;
@@ -161,7 +161,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visuals = visualListHelper.GetVisualList(codes);
                    SelectVisual(visuals?.LastOrDefault(), eVisualSource.Q3d);
                    SelectVisual(visuals?.LastOrDefault(), eSimulationVisualSource.Q3d);
                };
            }
            return _q3dCtrl;
@@ -196,7 +196,7 @@
                _propertyCtrl.AllowEdit = true;
                _propertyCtrl.HydroViewEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Property);
                    SelectVisual(visual, eSimulationVisualSource.Property);
                };
                _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) =>
                { //强调连接节点
@@ -325,100 +325,84 @@
        #region é€‰æ‹©æž„ä»¶
        //可见来源
        protected enum eVisualSource
        {
            None,
            Bimface,
            Q3d,
            Property,
            List,
            Set,
            Search,
            Monitor,
            Check,
            Calcu,
            Warning,
        }
        //选择构件
        private Yw.Model.HydroVisualInfo _visual = null;
        //选择构件
        private void SelectVisual(HydroVisualInfo visual, eVisualSource source)
        private void SelectVisual(HydroVisualInfo visual, eSimulationVisualSource source)
        {
            _visual = visual;
            switch (source)
            {
                case eVisualSource.None:
                case eSimulationVisualSource.None:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Bimface:
                case eSimulationVisualSource.Bimface:
                    {
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Q3d:
                case eSimulationVisualSource.Q3d:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Property:
                case eSimulationVisualSource.Property:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                    }
                    break;
                case eVisualSource.List:
                case eSimulationVisualSource.List:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Set:
                case eSimulationVisualSource.Set:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Search:
                case eSimulationVisualSource.Search:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Monitor:
                case eSimulationVisualSource.Monitor:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Check:
                case eSimulationVisualSource.Check:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Calcu:
                case eSimulationVisualSource.Calcu:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Warning:
                case eSimulationVisualSource.Warning:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        this.barBtnSetMonitor.Enabled = visual != null;
@@ -430,7 +414,7 @@
        }
        //选择构件
        private void SelectVisual(string code, eVisualSource source)
        private void SelectVisual(string code, eSimulationVisualSource source)
        {
            var visual = GetVisual(code);
            SelectVisual(visual, source);
@@ -531,11 +515,11 @@
                _visualListCtrl.Dock = DockStyle.Fill;
                _visualListCtrl.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.List);
                    SelectVisual(visual, eSimulationVisualSource.List);
                };
                _visualListCtrl.HydroChangedInfoEvent += (visualList) =>
                {
                    SelectVisual(_visual, eVisualSource.List);
                    SelectVisual(_visual, eSimulationVisualSource.List);
                };
            }
            return _visualListCtrl;
@@ -739,11 +723,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -756,11 +740,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -773,11 +757,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -790,11 +774,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -807,11 +791,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -824,11 +808,11 @@
                dlg.SetBindingData(allVisualVmList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -841,11 +825,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -858,11 +842,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -875,11 +859,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -892,11 +876,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -909,11 +893,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -926,11 +910,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -943,11 +927,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -960,11 +944,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -977,11 +961,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -994,11 +978,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -1011,11 +995,11 @@
                dlg.SetBindingData(allVisualViewModelList);
                dlg.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Set);
                    SelectVisual(visual, eSimulationVisualSource.Set);
                };
                dlg.HydroChangedInfoEvent += visuals =>
                {
                    SelectVisual(visuals?.FirstOrDefault(), eVisualSource.Set);
                    SelectVisual(visuals?.FirstOrDefault(), eSimulationVisualSource.Set);
                    UpdateVisualListCtrl();
                };
                dlg.ShowDialog();
@@ -1249,12 +1233,12 @@
                _searchCtrl.InitialData(allVisualVmList);
                _searchCtrl.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Check);
                    SelectVisual(visual, eSimulationVisualSource.Check);
                };
                _searchCtrl.HydroSearchInfoEvent += (list) =>
                {
                    var visual = list?.FirstOrDefault();
                    SelectVisual(visual, eVisualSource.Search);
                    SelectVisual(visual, eSimulationVisualSource.Search);
                };
            }
            return _searchCtrl;
@@ -1476,7 +1460,7 @@
                    return;
                }
                _hydroInfo = hydroInfo;
                SelectVisual(visual: null, eVisualSource.None);
                SelectVisual(visual: null, eSimulationVisualSource.None);
                ResetVisualList();
                TipFormHelper.ShowSucceed("刷新成功!");
@@ -1633,7 +1617,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Monitor);
                    SelectVisual(visual, eSimulationVisualSource.Monitor);
                };
            }
            return _monitorValueListCtrl;
@@ -1732,7 +1716,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Check);
                    SelectVisual(visual, eSimulationVisualSource.Check);
                };
            }
            return _checkCtrl;
@@ -1896,7 +1880,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Warning);
                    SelectVisual(visual, eSimulationVisualSource.Warning);
                };
            }
            return _calcuWarningCtrl;
@@ -2089,7 +2073,7 @@
                pumps.ForEach(x => x.UpdateWorkingInfo(list));
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                SelectVisual(_visual, eSimulationVisualSource.None);
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
            };
@@ -2130,7 +2114,7 @@
                });
                var visualVmListHelper = GetVisualVmListHelper();
                visualVmListHelper.UpdateProperty(pumps.Select(x => x as Yw.Model.HydroVisualInfo).ToList());
                SelectVisual(_visual, eVisualSource.None);
                SelectVisual(_visual, eSimulationVisualSource.None);
                var gradingHelper = await GetGradingHelper();
                gradingHelper.Set();
            };
@@ -2164,7 +2148,7 @@
            dlg.SetBindingData(_hydroInfo, allWorkingList, allMonitorValueList);
            dlg.HydroViewEvent += (visual) =>
            {
                SelectVisual(visual, eVisualSource.Calcu);
                SelectVisual(visual, eSimulationVisualSource.Calcu);
            };
            dlg.HydroCalcuEvent += async (vm) =>
            {
@@ -2222,7 +2206,7 @@
                #region å½“前构件
                SelectVisual(_visual, eVisualSource.Calcu);
                SelectVisual(_visual, eSimulationVisualSource.Calcu);
                #endregion
@@ -2269,8 +2253,11 @@
            {
                return;
            }
            var vm = new ReportViewModel();
            vm.ProjectName = _project.Name;
            vm.Description = _project.Description;
            SimulationWordReport word = new SimulationWordReport();
            //word.Create(fileName);
            word.Create(fileName, vm);
        }
        #endregion
@@ -2398,14 +2385,14 @@
            {
                if (sources.Count == 1)
                {
                    SelectVisual(sources[0], eVisualSource.None);
                    SelectVisual(sources[0], eSimulationVisualSource.None);
                }
                else
                {
                    var source = sources.FirstOrDefault(x => x.Flags.Contains(HStation.Xhs.Flags.进口));
                    if (source != null)
                    {
                        SelectVisual(source, eVisualSource.None);
                        SelectVisual(source, eSimulationVisualSource.None);
                    }
                }
            }
@@ -2523,7 +2510,7 @@
                var dlg = new HydroSingleWorkingLossCurveDlg();
                dlg.HydroClickEvent += (code) =>
                {
                    SelectVisual(code, eVisualSource.None);
                    SelectVisual(code, eSimulationVisualSource.None);
                };
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
                dlg.ShowDialog();
@@ -2533,7 +2520,7 @@
                var dlg = new HydroMultiWorkingLossCurveDlg();
                dlg.HydroClickEvent += (code) =>
                {
                    SelectVisual(code, eVisualSource.None);
                    SelectVisual(code, eSimulationVisualSource.None);
                };
                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual);
                dlg.ShowDialog();
@@ -2614,12 +2601,74 @@
        #endregion
        #region æ–¹æ¡ˆç®¡ç†
        //更新方案
        private void UpdateScheme()
        {
            if (_scheme == null)
            {
                return;
            }
            if (_hydroInfo == null)
            {
                return;
            }
            var dlg = new EditXhsSchemeDlg();
            dlg.SetBindingData(_scheme, _hydroInfo);
            dlg.ReloadDataEvent += (rhs) =>
            {
                _scheme = rhs;
                this.PageTitle.Caption = $"模拟方案\r\n{_scheme.Name}";
                UpdatePageTitle(this.PageGuid, this.PageTitle);
                this.UpdateSchemeEvent?.Invoke(_scheme);
            };
            dlg.ShowDialog();
        }
        //编辑方案
        private void barBtnEditScheme_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            UpdateScheme();
        }
        //删除方案
        private async void DeleteScheme()
        {
            if (_scheme == null)
            {
                return;
            }
            var relation = await BLLFactory<Yw.BLL.HydroModelRelation>.Instance
                .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsScheme, _scheme.ID, HStation.Xhs.Purpose.Simulation);
            if (relation == null)
            {
                TipFormHelper.ShowError("水力模拟方案删除失败,请重试!");
                return;
            }
            if (!await BLLFactory<Yw.BLL.HydroModelRelation>.Instance.DeleteAllByID(relation.ID))
            {
                TipFormHelper.ShowError("水力模拟方案删除失败,请重试!");
                return;
            }
            if (!await BLLFactory<HStation.BLL.XhsScheme>.Instance.DeleteByID(_scheme.ID))
            {
                TipFormHelper.ShowError("水力模拟方案删除失败,请重试!");
                return;
            }
            this.RemoveSchemeEvent?.Invoke(_scheme);
            TipFormHelper.ShowSucceed("水力模拟方案删除成功!");
            ClosePage(this.PageGuid);
        }
        //删除方案
        private void barBtnDeleteScheme_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            DeleteScheme();
        }
        #endregion
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs
@@ -111,7 +111,7 @@
                {//鼠标左键点击事件
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Bimface);
                    SelectVisual(visual, eSimulationVisualSource.Bimface);
                };
            }
            return _bimfaceCtrl;
@@ -148,7 +148,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visuals = visualListHelper.GetVisualList(codes);
                    SelectVisual(visuals?.LastOrDefault(), eVisualSource.Q3d);
                    SelectVisual(visuals?.LastOrDefault(), eSimulationVisualSource.Q3d);
                };
            }
            return _q3dCtrl;
@@ -183,7 +183,7 @@
                _propertyCtrl.AllowEdit = false;
                _propertyCtrl.HydroViewEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Property);
                    SelectVisual(visual, eSimulationVisualSource.Property);
                };
                _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) =>
                { //强调连接节点
@@ -280,83 +280,74 @@
        #region é€‰æ‹©æž„ä»¶
        //可见来源
        protected enum eVisualSource
        {
            None,
            Bimface,
            Q3d,
            Property,
            List,
            Search,
            Monitor,
            Check,
            Calcu,
            Warning,
        }
        //选择构件
        private Yw.Model.HydroVisualInfo _visual = null;
        //选择构件
        private void SelectVisual(HydroVisualInfo visual, eVisualSource source)
        private void SelectVisual(HydroVisualInfo visual, eSimulationVisualSource source)
        {
            _visual = visual;
            switch (source)
            {
                case eVisualSource.None:
                case eSimulationVisualSource.None:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Bimface:
                case eSimulationVisualSource.Bimface:
                    {
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Q3d:
                case eSimulationVisualSource.Q3d:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Property:
                case eSimulationVisualSource.Property:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                    }
                    break;
                case eVisualSource.List:
                case eSimulationVisualSource.List:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Search:
                case eSimulationVisualSource.Set:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Monitor:
                case eSimulationVisualSource.Search:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Check:
                case eSimulationVisualSource.Monitor:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Calcu:
                case eSimulationVisualSource.Check:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eVisualSource.Warning:
                case eSimulationVisualSource.Calcu:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
                    }
                    break;
                case eSimulationVisualSource.Warning:
                    {
                        _bimfaceCtrl?.ZoomAndSelectComponent(visual?.Code);
                        SetPropertyCtrl(visual);
@@ -367,7 +358,7 @@
        }
        //选择构件
        private void SelectVisual(string code, eVisualSource source)
        private void SelectVisual(string code, eSimulationVisualSource source)
        {
            var visual = GetVisual(code);
            SelectVisual(visual, source);
@@ -478,7 +469,7 @@
                _visualListCtrl.Dock = DockStyle.Fill;
                _visualListCtrl.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.List);
                    SelectVisual(visual, eSimulationVisualSource.List);
                };
            }
            return _visualListCtrl;
@@ -635,12 +626,12 @@
                _searchCtrl.InitialData(allVisualVmList);
                _searchCtrl.HydroClickInfoEvent += (visual) =>
                {
                    SelectVisual(visual, eVisualSource.Check);
                    SelectVisual(visual, eSimulationVisualSource.Check);
                };
                _searchCtrl.HydroSearchInfoEvent += (list) =>
                {
                    var visual = list?.FirstOrDefault();
                    SelectVisual(visual, eVisualSource.Search);
                    SelectVisual(visual, eSimulationVisualSource.Search);
                };
            }
            return _searchCtrl;
@@ -948,7 +939,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Monitor);
                    SelectVisual(visual, eSimulationVisualSource.Monitor);
                };
            }
            return _monitorValueListCtrl;
@@ -1047,7 +1038,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Check);
                    SelectVisual(visual, eSimulationVisualSource.Check);
                };
            }
            return _checkCtrl;
@@ -1200,7 +1191,7 @@
                {
                    var visualListHelper = GetVisualListHelper();
                    var visual = visualListHelper.GetVisual(code);
                    SelectVisual(visual, eVisualSource.Warning);
                    SelectVisual(visual, eSimulationVisualSource.Warning);
                };
            }
            return _calcuWarningCtrl;
@@ -1546,14 +1537,14 @@
            {
                if (sources.Count == 1)
                {
                    SelectVisual(sources[0], eVisualSource.None);
                    SelectVisual(sources[0], eSimulationVisualSource.None);
                }
                else
                {
                    var source = sources.FirstOrDefault(x => x.Flags.Contains(HStation.Xhs.Flags.进口));
                    if (source != null)
                    {
                        SelectVisual(source, eVisualSource.None);
                        SelectVisual(source, eSimulationVisualSource.None);
                    }
                }
            }
@@ -1632,7 +1623,7 @@
            var dlg = new HydroSingleWorkingLossCurveDlg();
            dlg.HydroClickEvent += (code) =>
            {
                SelectVisual(code, eVisualSource.None);
                SelectVisual(code, eSimulationVisualSource.None);
            };
            dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
            dlg.ShowDialog();
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -112,6 +112,9 @@
    <Compile Update="03-simulation\05-function\SimulationFunctionCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\06-simulation\EditXhsSchemeDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\07-matching\02-pump\01-pumpsinglematching\PumpSingleMatchingCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>