duheng
2025-03-12 cec8d92bdca1da0b2eafe6eb3130f4bf6f03028b
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy-analy/SimulationEnergyAnalyChartCtrl.cs
@@ -14,21 +14,21 @@
            this.pumpWorkingViewChart1.RunPointSelectedEvent += PumpWorkingViewChart1_RunPointSelectedEvent;
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private Yw.Model.HydroModelInfo _hydro = null;//水力信息
        private HydroWorkingVmo _working = null;//工况
        private HydroEnergyAnalyViewModel _vm = null;
        private HydroEnergyAnalyViewModel _vm = null;//能效分析视图
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData
            (
               Yw.Model.HydroModelInfo hydroInfo,
               Yw.Model.HydroModelInfo hydro,
               HydroWorkingVmo working,
               HydroEnergyAnalyViewModel vm
            )
        {
            if (hydroInfo == null)
            if (hydro == null)
            {
                return;
            }
@@ -40,7 +40,7 @@
            {
                return;
            }
            _hydroInfo = hydroInfo;
            _hydro = hydro;
            _working = working;
            _vm = vm;
            InitialGroups();
@@ -66,18 +66,6 @@
            this.repositoryItemImageComboBox1.Items.EndUpdate();
        }
        //初始化图表
        private void InitialChart(PumpWorkingViewViewModel vm)
        {
            this.pumpWorkingViewChart1.SetBindingData(vm);
            if (vm != null && vm.Items != null)
            {
                var item = vm.Items.FirstOrDefault();
                SetCurrent(item);
            }
            this.barCkE.Checked = this.pumpWorkingViewChart1.QEVisible;
        }
        //分组值改变
        private void barCmbGroup_EditValueChanged(object sender, EventArgs e)
        {
@@ -87,13 +75,35 @@
                return;
            }
            var vm = CreateViewModel(group);
            InitialPumpList(vm);
            InitialChart(vm);
        }
        //初始化
        private void InitialPumpList(PumpWorkingViewViewModel vm)
        {
            this.repositoryItemImageComboBox2.Items.BeginUpdate();
            this.repositoryItemImageComboBox2.Items.Clear();
            this.barCmbPumpList.EditValue = null;
            vm?.Items?.ForEach(x =>
            {
                this.repositoryItemImageComboBox2.Items.Add(x.Name, x, -1);
            });
            this.barCmbPumpList.EditValue = vm?.Items != null && vm.Items.Count > 0 ? vm.Items[0] : null;
            this.repositoryItemImageComboBox2.Items.EndUpdate();
        }
        //初始化图表
        private void InitialChart(PumpWorkingViewViewModel vm)
        {
            this.pumpWorkingViewChart1.SetBindingData(vm);
            this.barCkE.Checked = this.pumpWorkingViewChart1.QEVisible;
        }
        //创建
        private PumpWorkingViewViewModel CreateViewModel(string group)
        {
            if (_hydroInfo == null)
            if (_hydro == null)
            {
                return default;
            }
@@ -146,12 +156,19 @@
            return vm;
        }
        //水泵选择改变
        private void barCmbPumpList_EditValueChanged(object sender, EventArgs e)
        {
            var item = this.barCmbPumpList.EditValue as PumpWorkingViewItemViewModel;
            SetCurrent(item);
        }
        //设置当前
        private void SetCurrent(PumpWorkingViewItemViewModel item)
        {
            if (item != null)
            {
                this.barTxtPump.EditValue = item.Name;
                this.barCmbPumpList.EditValue = item;
                this.barTxtQ.EditValue = $"{Math.Round(item.Q, 1)}m³/h";
                this.barTxtH.EditValue = $"{Math.Round(item.H, 2)}m";
                this.barTxtP.EditValue = $"{Math.Round(item.P ?? 0, 1)}kW";
@@ -159,30 +176,31 @@
            }
        }
        //水泵工况图表运行点选择事件
        private void PumpWorkingViewChart1_RunPointSelectedEvent(PumpWorkingViewItemViewModel obj)
        {
            SetCurrent(obj);
        }
        //效率线选择
        private void barCkE_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.pumpWorkingViewChart1.QEVisible = this.barCkE.Checked;
        }
        //设置坐标
        private void barBtnCoord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.pumpWorkingViewChart1.SetChartAxis();
        }
        /// <summary>
        ///
        /// 导出图片
        /// </summary>
        public void ExportToImage(string fileName)
        {
            this.pumpWorkingViewChart1.ExportToImage(fileName);
        }
    }