lixiaojun
2025-01-24 7b65f86343ca014b12894f09b7d62e8b5ac1f95d
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/04-link/05-resistance/00-core/HydroResistanceViewModel.cs
@@ -15,7 +15,7 @@
        /// </summary>
        public HydroResistanceViewModel(Yw.Model.HydroResistanceInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : base(rhs, hydroInfo)
        {
            this.LinkStatus = HydroResistanceStatusHelper.GetStatusName(rhs.LinkStatus);
            this.Elev = rhs.Elev;
            this.Material = rhs.Material;
            this.Diameter = rhs.Diameter;
            this.MinorLoss = rhs.MinorLoss;
@@ -23,22 +23,78 @@
        }
        /// <summary>
        /// 模式
        /// 运行模式
        /// </summary>
        [Category("数据")]
        [DisplayName("模式")]
        [Display(Name = "模式")]
        [PropertyOrder(103)]
        [DisplayName("运行模式")]
        [Description("局阻模式:使用局阻系数进行水力计算;损失模式:使用水头损失曲线进行水力计算")]
        [PropertyOrder(2001)]
        [Browsable(true)]
        [TypeConverter(typeof(HydroResistanceStatusConverter))]
        public override string LinkStatus { get; set; }
        public eResistanceMode ResistanceMode
        {
            get
            {
                var mode = eResistanceMode.Closed;
                switch (this.Vmo.LinkStatus)
                {
                    case Yw.Hydro.ResistanceStatus.Closed:
                        {
                            mode = eResistanceMode.Closed;
                        }
                        break;
                    case Yw.Hydro.ResistanceStatus.Open:
                        {
                            mode = eResistanceMode.MinorLoss;
                        }
                        break;
                    case Yw.Hydro.ResistanceStatus.None:
                        {
                            mode = eResistanceMode.CurveQL;
                        }
                        break;
                    default: break;
                }
                return mode;
            }
            set
            {
                switch (value)
                {
                    case eResistanceMode.Closed:
                        {
                            this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.Closed;
                        }
                        break;
                    case eResistanceMode.MinorLoss:
                        {
                            this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.Open;
                        }
                        break;
                    case eResistanceMode.CurveQL:
                        {
                            this.Vmo.LinkStatus = Yw.Hydro.ResistanceStatus.None;
                        }
                        break;
                    default: break;
                }
            }
        }
        /// <summary>
        /// 材料
        /// </summary>
        [Category("数据")]
        [DisplayName("材料")]
        [PropertyOrder(1001)]
        [PropertyOrder(2002)]
        [Browsable(true)]
        public double Elev { get; set; }
        /// <summary>
        /// 材料
        /// </summary>
        [Category("数据")]
        [DisplayName("材料")]
        [PropertyOrder(2003)]
        [Browsable(true)]
        public string Material { get; set; }
@@ -48,7 +104,7 @@
        [Category("数据")]
        [DisplayName("直径")]
        [DisplayUnit("mm")]
        [PropertyOrder(1002)]
        [PropertyOrder(2004)]
        [Browsable(true)]
        public double Diameter { get; set; }
@@ -57,7 +113,7 @@
        /// </summary>
        [Category("数据")]
        [DisplayName("局阻系数")]
        [PropertyOrder(1003)]
        [PropertyOrder(2005)]
        [Browsable(true)]
        public double MinorLoss { get; set; }
@@ -66,43 +122,10 @@
        /// </summary>
        [Category("数据")]
        [DisplayName("水头损失曲线")]
        [HydroCurvePro(HydroCurve.Resistance, HydroCurveType.CurveQL)]
        [PropertyOrder(1004)]
        [Browsable(false)]
        public virtual string Curve
        {
            get
            {
                if (string.IsNullOrEmpty(this.CurveQL))
                {
                    return "未配置";
                }
                return "已配置";
            }
        }
        /// <summary>
        /// 水头损失曲线
        /// </summary>
        [Category("数据")]
        [DisplayName("水头损失曲线")]
        [PropertyOrder(1005)]
        [PropertyOrder(2006)]
        [HydroCurvePro(HydroCurve.Resistance, HydroCurveType.CurveQL)]
        [Browsable(true)]
        public virtual string CurveQL { get; set; }
        /// <summary>
        /// 沿程损失
        /// </summary>
        [Category("计算结果")]
        [DisplayName("沿程损失")]
        [Display(Name = "沿程损失(m)")]
        [PropertyOrder(19009)]
        [DisplayUnit("m")]
        [HydroCalcuPro]
        [ShowEditor(false)]
        [Browsable(false)]
        public override double? CalcuFrictionLoss { get; set; }
        /// <summary>
        /// 流量
@@ -172,7 +195,7 @@
        public override void UpdateProperty()
        {
            base.UpdateProperty();
            this.LinkStatus = HydroResistanceStatusHelper.GetStatusName(this.Vmo.LinkStatus);
            this.Elev = this.Vmo.Elev;
            this.Material = this.Vmo.Material;
            this.Diameter = this.Vmo.Diameter;
            this.MinorLoss = this.Vmo.MinorLoss;
@@ -185,7 +208,7 @@
        public override void UpdateVmoProperty()
        {
            base.UpdateVmoProperty();
            this.Vmo.LinkStatus = HydroResistanceStatusHelper.GetStatusCode(this.LinkStatus);
            this.Vmo.Elev = this.Elev;
            this.Vmo.Material = this.Material;
            this.Vmo.Diameter = this.Diameter;
            this.Vmo.MinorLoss = this.MinorLoss;