wxr
2024-09-03 179c377723a79384efed619e0a5880390998035e
金茂备份
2个文件已添加
13个文件已修改
2389 ■■■■ 已修改文件
HDL-ON_Android/Assets/Phone/FunctionIcon/FunctionBg/InverterJinmaoFunctionBg.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/FunctionBg/InverterJinmaoFunctionBg.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmebly.cs 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs 1008 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoPage.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Acst/WetarHeaterJinmaoHistoryPage.cs 895 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_Histogram.cs 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/FunctionBg/InverterJinmaoFunctionBg.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -660,6 +660,8 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\PvBgRun.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\PvIconRun.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\EsIconFault.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\FunctionBg\AcstFunctionBg.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\FunctionBg\InverterJinmaoFunctionBg.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\values\colors.xml" />
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1842,6 +1842,7 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\Mode_Economic.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\Mode_QuickHeat_On.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\ModeFree_True.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\FunctionBg\InverterJinmaoFunctionBg.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Resources/Phone/FunctionIcon/FunctionBg/InverterJinmaoFunctionBg.png
HDL_ON/DAL/DriverLayer/Control.cs
@@ -1361,7 +1361,7 @@
                                break;
                            case SPK.WaterHeaterJinmao:
                                AcstParentPage.UpdateAcstSubInfo(localFunction);
                                WaterHeaterJinmaoPage.UpdateStatus(localFunction);
                                break;
                            case SPK.AirSwitch:
                                AirSwitchPage.UpdataState(localFunction);
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -793,311 +793,6 @@
                    action(curItemKey);
                }
            };
            return;
            //    Button lastButton = new Button();
            //Dialog dialog = new Dialog();
            //var pView = new FrameLayout()
            //{
            //    BackgroundColor = CSS_Color.DialogTransparentColor1,
            //};
            //dialog.AddChidren(pView);
            //var itemCount = items.Count;
            //var optionBaseViewHeight = ((itemCount > 3 ? itemCount : 3) + 1) * Application.GetRealHeight(50);
            //var optionBaseView = new FrameLayout()
            //{
            //    //Y = Application.GetRealHeight(439),
            //    Y = Application.GetRealHeight(647) - optionBaseViewHeight,
            //    Gravity = Gravity.CenterHorizontal,
            //    Width = Application.GetRealWidth(343),
            //    //Height = Application.GetRealHeight(208),
            //    Height = optionBaseViewHeight,
            //    //AnimateSpeed = 0.3f,
            //    //Animate = Animate.DownToUp,
            //    BackgroundColor = CSS_Color.MainBackgroundColor,
            //    Radius = (uint)Application.GetRealWidth(12),
            //};
            //pView.AddChidren(optionBaseView);
            //var topView = new FrameLayout()
            //{
            //    Gravity = Gravity.CenterHorizontal,
            //    Width = Application.GetRealWidth(343),
            //    Height = Application.GetRealHeight(50),
            //    BackgroundColor = CSS_Color.MainBackgroundColor,
            //    Radius = (uint)Application.GetRealWidth(12),
            //};
            //optionBaseView.AddChidren(topView);
            //var btnTitle = new Button()
            //{
            //    Gravity = Gravity.CenterHorizontal,
            //    TextAlignment = TextAlignment.Center,
            //    Width = Application.GetRealWidth(100),
            //    TextID = StringId.SceneDelay,
            //    IsBold = true,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //};
            //topView.AddChidren(btnTitle);
            //var btnCancel = new Button()
            //{
            //    X = Application.GetRealWidth(21),
            //    Width = Application.GetRealWidth(100),
            //    TextAlignment = TextAlignment.CenterLeft,
            //    TextColor = CSS_Color.PromptingColor1,
            //    TextSize = CSS_FontSize.TextFontSize,
            //    TextID = StringId.Cancel,
            //};
            //topView.AddChidren(btnCancel);
            //var btnConfrim = new Button()
            //{
            //    X = Application.GetRealWidth(160),
            //    Width = Application.GetRealWidth(160),
            //    TextAlignment = TextAlignment.CenterRight,
            //    TextColor = CSS_Color.MainColor,
            //    TextSize = CSS_FontSize.TextFontSize,
            //    TextID = StringId.Confirm,
            //};
            //topView.AddChidren(btnConfrim);
            //var itemsView = new VerticalScrolViewLayout()
            //{
            //    Y = topView.Bottom,
            //    Height = optionBaseViewHeight - Application.GetRealHeight(50),
            //    ScrollEnabled = itemCount > 4,
            //};
            //optionBaseView.AddChidren(itemsView);
            //bool isFrist = true;
            //Button btnLastSelectedTip = null;
            //foreach (var item in items)
            //{
            //    if (isFrist)
            //    {
            //        isFrist = false;
            //    }
            //    else
            //    {
            //        itemsView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
            //    }
            //    var row = new FrameLayout()
            //    {
            //        Height = Application.GetRealHeight(50),
            //    };
            //    itemsView.AddChidren(row);
            //    var btnTipSelected = new Button()
            //    {
            //        X = Application.GetRealWidth(303),
            //        Gravity = Gravity.CenterVertical,
            //        Width = Application.GetRealWidth(28),
            //        Height= Application.GetRealWidth(28),
            //        UnSelectedImagePath = "Public/ChooseIcon.png",
            //        SelectedImagePath = "Public/ChooseOnIcon.png",
            //    };
            //    row.AddChidren(btnTipSelected);
            //    if( item.Key == curItemKey)
            //    {
            //        btnTipSelected.IsSelected = true;
            //        btnLastSelectedTip = btnTipSelected;
            //    }
            //    var btnRowTitle = new Button()
            //    {
            //        X = Application.GetRealWidth(16),
            //        Text = item.Value,
            //        TextSize = CSS_FontSize.TextFontSize,
            //        TextColor = CSS_Color.FirstLevelTitleColor,
            //        TextAlignment = TextAlignment.CenterLeft,
            //    };
            //    row.AddChidren(btnRowTitle);
            //    btnRowTitle.MouseUpEventHandler = (sender, e) =>
            //    {
            //        if (btnTipSelected.IsSelected)
            //        {
            //            curItemKey = "0";
            //            btnTipSelected.IsSelected = false;
            //            btnLastSelectedTip = null;
            //        }
            //        else
            //        {
            //            curItemKey = item.Key;
            //            if (btnLastSelectedTip != null)
            //            {
            //                btnLastSelectedTip.IsSelected = false;
            //            }
            //            btnTipSelected.IsSelected = true;
            //            btnLastSelectedTip = btnTipSelected;
            //        }
            //    };
            //}
            //Button btn1 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "30s",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(20),
            //    Y = Application.GetRealHeight(80),
            //    IsSelected = curItemKey == "30"
            //};
            //optionBaseView.AddChidren(btn1);
            //Button btn2 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "1min",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(195),
            //    Y = Application.GetRealHeight(80),
            //    IsSelected = curItemKey == "60"
            //};
            //optionBaseView.AddChidren(btn2);
            //Button btn3 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "2min",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(20),
            //    Y = Application.GetRealHeight(140),
            //    IsSelected = curItemKey == "120"
            //};
            //optionBaseView.AddChidren(btn3);
            //Button btn4 = new Button()
            //{
            //    Width = Application.GetRealWidth(128),
            //    Height = Application.GetRealWidth(44),
            //    TextAlignment = TextAlignment.Center,
            //    TextSize = CSS_FontSize.SubheadingFontSize,
            //    TextColor = CSS_Color.FirstLevelTitleColor,
            //    Text = "5min",
            //    BorderColor = CSS_Color.PromptingColor1,
            //    BorderWidth = 1,
            //    Radius = (uint)Application.GetRealWidth(8),
            //    SelectedTextColor = CSS_Color.MainBackgroundColor,
            //    SelectedBackgroundColor = CSS_Color.MainColor,
            //    X = Application.GetRealWidth(195),
            //    Y = Application.GetRealHeight(140),
            //    IsSelected = curItemKey == "300"
            //};
            //optionBaseView.AddChidren(btn4);
            //dialog.Show();
            //pView.MouseUpEventHandler = (sender, e) =>
            //{
            //    dialog.Close();
            //};
            //btnCancel.MouseUpEventHandler = (sender, e) =>
            //{
            //    dialog.Close();
            //};
            //btnConfrim.MouseUpEventHandler = (sender, e) =>
            //{
            //    action(curItemKey);
            //    dialog.Close();
            //};
            //btn1.MouseUpEventHandler = (sender, e) => {
            //    btn1.IsSelected = !btn1.IsSelected;
            //    btn2.IsSelected = false;
            //    btn3.IsSelected = false;
            //    btn4.IsSelected = false;
            //    if(btn1.IsSelected)
            //    {
            //        curItemKey = "30";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
            //btn2.MouseUpEventHandler = (sender, e) => {
            //    btn2.IsSelected = !btn2.IsSelected;
            //    btn1.IsSelected = false;
            //    btn3.IsSelected = false;
            //    btn4.IsSelected = false;
            //    if (btn2.IsSelected)
            //    {
            //        curItemKey = "60";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
            //btn3.MouseUpEventHandler = (sender, e) => {
            //    btn3.IsSelected = !btn3.IsSelected;
            //    btn2.IsSelected = false;
            //    btn1.IsSelected = false;
            //    btn4.IsSelected = false;
            //    if (btn3.IsSelected)
            //    {
            //        curItemKey = "120";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
            //btn4.MouseUpEventHandler = (sender, e) => {
            //    btn4.IsSelected = !btn4.IsSelected;
            //    btn2.IsSelected = false;
            //    btn3.IsSelected = false;
            //    btn1.IsSelected = false;
            //    if (btn4.IsSelected)
            //    {
            //        curItemKey = "300";
            //    }
            //    else
            //    {
            //        curItemKey = "0";
            //    }
            //};
        }
    }
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -1790,7 +1790,7 @@
            {
                Height = Application.GetRealWidth(100),
                Width = Application.GetRealWidth(102),
                UnSelectedImagePath = "FunctionIcon/FunctionBg/AcstFunctionBg.png",
                UnSelectedImagePath = function.spk == SPK.AcstParent ? "FunctionIcon/FunctionBg/AcstFunctionBg.png" : "FunctionIcon/FunctionBg/InverterJinmaoFunctionBg.png",
            };
            view.AddChidren(btnFunctionViewBg);
            if (function.spk == SPK.AcstParent)
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -1179,6 +1179,13 @@
                        break;
                    case ShowFunction.Acst:
                    case ShowFunction.InverterJinmao:
                        //if(item == ShowFunction.Acst)
                        //{
                        //    btnFunctionViewBg.UnSelectedImagePath = "FunctionIcon/FunctionBg/SecurityMonitoringFunctionBg.png";
                        //}else if (item == ShowFunction.InverterJinmao)
                        //{
                        //    btnFunctionViewBg.UnSelectedImagePath = "FunctionIcon/FunctionBg/SecurityMonitoringFunctionBg.png";
                        //}
                        Button btnJMLogo = new Button()
                        {
                            Y = specialList.Contains(index) ? Application.GetRealWidth(147) : Application.GetRealWidth(104),
HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
@@ -279,11 +279,6 @@
                        scene.delay = obj;
                        btnSceneDelayInfo.Text = scene.GetDelayText();
                    };
                    Dictionary<string, string> items = new Dictionary<string, string>();
                    items.Add("30", "30s");
                    items.Add("60", "1min");
                    items.Add("120", "2min");
                    items.Add("300", "5min");
                    new PublicAssmebly().SetSceneDelayDialog( action ,scene.delay);
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -603,7 +603,8 @@
                    residenceAddFunctionView.AddChidren(btnResidenceAddFunctionText);
                    #endregion
                    if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl)
                    bool needShow = false;
                    if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl || needShow)
                    {
                        residenceFunctionCount++;
                        #region ---组合调光
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
@@ -10,7 +11,41 @@
    public class InverterJinmaoHistroyPage : FrameLayout
    {
        InverterJinmaoHistroyPage bodyView;
        Function device;
        Function function;
        FrameLayout infoView1;
        EchartsOption_Histogram echartOption1;
        MyEchartsViewOn infoView1_EchartsView;
        Button infoView1_Date_Day;
        Button infoView1_Date_Month;
        Button infoView1_Date_Year;
        Button infoView1_DateInfo_PreClickButton;
        Button infoView1_DateInfo_DateTextButton;
        Button infoView1_DateInfo_NextClickButton;
        Button infoView1_DateInfo_NextIconButton;
        Button infoView1_DateInfo_PreIconButton;
        QueryType queryType1 = QueryType.day_hour;
        int queryTime_Day1 = DateTime.Now.Day;
        int queryTime_Month1 = DateTime.Now.Month;
        int queryTime_Year1 = DateTime.Now.Year;
        string queryTimeString1 = DateTime.Now.ToString("yyyy/MM/dd");
        FrameLayout infoView2;
        MyEchartsViewOn infoView2_EchartsView;
        EchartsOption_Histogram echartOption2;
        Button infoView2_Date_Day;
        Button infoView2_Date_Month;
        Button infoView2_Date_Year;
        Button infoView2_DateInfo_PreClickButton;
        Button infoView2_DateInfo_DateTextButton;
        Button infoView2_DateInfo_NextClickButton;
        Button infoView2_DateInfo_NextIconButton;
        Button infoView2_DateInfo_PreIconButton;
        QueryType queryType2 = QueryType.day_hour;
        int queryTime_Day2 = DateTime.Now.Day;
        int queryTime_Month2 = DateTime.Now.Month;
        int queryTime_Year2 = DateTime.Now.Year;
        string queryTimeString2 = DateTime.Now.ToString("yyyy/MM/dd");
        /// <summary>
@@ -18,10 +53,10 @@
        /// </summary>
        MyEchartsViewOn tempEchartsView;
        public InverterJinmaoHistroyPage(Function function)
        public InverterJinmaoHistroyPage(Function deviceFunction)
        {
            bodyView = this;
            device = function;
            function = deviceFunction;
        }
        public void LoadPage()
@@ -149,7 +184,7 @@
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.Center,
                Text = "2024-8-12",
                Text = DateTime.Now.ToString("yyyy-MM-dd"),
                TextColor = CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 16,
@@ -169,6 +204,7 @@
            var infoView1_DateInfo_NextClickButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6 -32),
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextClickButton);
@@ -185,7 +221,7 @@
            var echartOption = new EchartsOption_Histogram();
            echartOption.xTitle = "时间";
            echartOption.yTitle = "温度(℃)";
            echartOption.yTitle = "电量(kw)";
            echartOption.InitXdataText(new List<string>()
            {
                "21","22","23","24","25","26","26","27","28","29",
@@ -353,7 +389,7 @@
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.Center,
                Text = "2024-8-12",
                Text = DateTime.Now.ToString("yyyy-MM-dd"),
                TextColor = CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 16,
@@ -373,6 +409,7 @@
            var infoView2_DateInfo_NextClickButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6 -32),
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextClickButton);
@@ -389,7 +426,7 @@
            var echartOption2 = new EchartsOption_Histogram();
            echartOption2.xTitle = "时间";
            echartOption2.yTitle = "温度(℃)";
            echartOption2.yTitle = "电量(kw)";
            echartOption2.InitXdataText(new List<string>()
            {
                "21","22","23","24","25","26","26","27","28","29",
@@ -444,8 +481,965 @@
            {
                Height = Application.GetRealWidth(26)
            });
            initQueryButton();
        }
        /// <summary>
        /// 读取温度值历史数据
        /// hour=近24小时、day_hour =某日24小时、week=近一周、month = 近一月、custom_month=某年某月 y/M、custom_year=某年 y
        /// </summary>
        private void getTempHistory()
        {
            if (MainPage.NoLoginMode)
            {
                return;
            }
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            infoView1.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    switch (queryType1)
                    {
                        case QueryType.day_hour:
                            queryTimeString1 = queryTime_Year1.ToString() + "/" + queryTime_Month1 + "/" + queryTime_Day1;
                            break;
                        case QueryType.custom_month:
                            queryTimeString1 = queryTime_Year1.ToString() + "/" + queryTime_Month1;
                            break;
                        case QueryType.custom_year:
                            queryTimeString1 = queryTime_Year1.ToString();
                            break;
                    }
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType1.ToString(), function.deviceId, InverterJinmao_AttrEnum.pv_electricity.ToString(), queryTimeString1);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            foreach (var data in revertData)
                            {
                                vs.Add(data.fieldName);
                            }
                            echartOption1.InitXdataText(vs);
                            echartOption1.InitYdataText(revertData);
                            Application.RunOnMainThread(() =>
                            {
                                infoView1_EchartsView.ShowWithOption(echartOption1.InitOption());
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"history error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 获取用水量历史记录
        /// </summary>
        private void getWaterHistory()
        {
            if (MainPage.NoLoginMode)
            {
                return;
            }
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            infoView2.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    switch (queryType2)
                    {
                        case QueryType.day_hour:
                            queryTimeString2 = queryTime_Year2.ToString() + "/" + queryTime_Month2 + "/" + queryTime_Day2;
                            break;
                        case QueryType.custom_month:
                            queryTimeString2 = queryTime_Year2.ToString() + "/" + queryTime_Month2;
                            break;
                        case QueryType.custom_year:
                            queryTimeString2 = queryTime_Year2.ToString();
                            break;
                    }
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType2.ToString(), function.deviceId, InverterJinmao_AttrEnum.load_electricity.ToString(), queryTimeString2);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            foreach (var data in revertData)
                            {
                                vs.Add(data.fieldName);
                            }
                            echartOption2.InitXdataText(vs);
                            echartOption2.InitYdataText(revertData);
                            Application.RunOnMainThread(() =>
                            {
                                infoView2_EchartsView.ShowWithOption(echartOption2.InitOption());
                            });
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"history 2 error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        private void initQueryButton()
        {
            infoView1_DateInfo_DateTextButton.MouseUpEventHandler = (sender, e) =>
            {
                SetTempQureyDateDialog();
            };
            infoView1_DateInfo_PreClickButton.MouseUpEventHandler = (sender, e) => {
                var tempQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
                if (queryType1 == QueryType.day_hour)
                {
                    tempQueryDate = tempQueryDate.AddDays(-1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 1)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType1 == QueryType.custom_month)
                {
                    tempQueryDate = tempQueryDate.AddMonths(-1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType1 == QueryType.custom_year)
                {
                    tempQueryDate = tempQueryDate.AddYears(-1);
                    if (tempQueryDate.Year == 2023)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                queryTime_Year1 = tempQueryDate.Year;
                queryTime_Month1 = tempQueryDate.Month;
                queryTime_Day1 = tempQueryDate.Day;
                infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_DateInfo_NextIconButton.Visible = false;
            infoView1_DateInfo_NextClickButton.Enable = false;
            infoView1_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => {
                var tempQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
                if (queryType1 == QueryType.day_hour)
                {
                    tempQueryDate = tempQueryDate.AddDays(1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 2)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = true;
                        infoView1_DateInfo_PreClickButton.Enable = true;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType1 == QueryType.custom_month)
                {
                    tempQueryDate = tempQueryDate.AddMonths(1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 2)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = true;
                        infoView1_DateInfo_PreClickButton.Enable = true;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType1 == QueryType.custom_year)
                {
                    tempQueryDate = tempQueryDate.AddYears(1);
                    if (tempQueryDate.Year == 2023)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                queryTime_Year1 = tempQueryDate.Year;
                queryTime_Month1 = tempQueryDate.Month;
                queryTime_Day1 = tempQueryDate.Day;
                infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_Date_Day.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Day.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = true;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = false;
                queryType1 = QueryType.day_hour;
                infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_Date_Month.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Month.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = false;
                infoView1_Date_Month.IsSelected = true;
                infoView1_Date_Year.IsSelected = false;
                queryType1 = QueryType.custom_month;
                infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM");
                getTempHistory();
            };
            infoView1_Date_Year.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Year.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = false;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = true;
                queryType1 = QueryType.custom_year;
                infoView1_DateInfo_DateTextButton.Text = queryTime_Year1.ToString();
                getTempHistory();
            };
            //-----------用水
            infoView2_DateInfo_DateTextButton.MouseUpEventHandler = (sender, e) =>
            {
                SetWaterQureyDateDialog();
            };
            infoView2_DateInfo_PreClickButton.MouseUpEventHandler = (sender, e) => {
                var waterQueryDate = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2);
                if (queryType2 == QueryType.day_hour)
                {
                    waterQueryDate = waterQueryDate.AddDays(-1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 1)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month && waterQueryDate.Day == DateTime.Now.Day - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType2 == QueryType.custom_month)
                {
                    waterQueryDate = waterQueryDate.AddMonths(-1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (queryType2 == QueryType.custom_year)
                {
                    waterQueryDate = waterQueryDate.AddYears(-1);
                    if (waterQueryDate.Year == 2023)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                queryTime_Year2 = waterQueryDate.Year;
                queryTime_Month2 = waterQueryDate.Month;
                queryTime_Day2 = waterQueryDate.Day;
                infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_DateInfo_NextIconButton.Visible = false;
            infoView2_DateInfo_NextClickButton.Enable = false;
            infoView2_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => {
                var waterQueryDate = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2);
                if (queryType2 == QueryType.day_hour)
                {
                    waterQueryDate = waterQueryDate.AddDays(1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 2)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = true;
                        infoView2_DateInfo_PreClickButton.Enable = true;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month && waterQueryDate.Day == DateTime.Now.Day)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType2 == QueryType.custom_month)
                {
                    waterQueryDate = waterQueryDate.AddMonths(1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 2)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = true;
                        infoView2_DateInfo_PreClickButton.Enable = true;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (queryType2 == QueryType.custom_year)
                {
                    waterQueryDate = waterQueryDate.AddYears(1);
                    if (waterQueryDate.Year == 2023)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                queryTime_Year2 = waterQueryDate.Year;
                queryTime_Month2 = waterQueryDate.Month;
                queryTime_Day2 = waterQueryDate.Day;
                infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_Date_Day.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Day.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = true;
                infoView2_Date_Month.IsSelected = false;
                infoView2_Date_Year.IsSelected = false;
                queryType2 = QueryType.day_hour;
                infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_Date_Month.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Month.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = false;
                infoView2_Date_Month.IsSelected = true;
                infoView2_Date_Year.IsSelected = false;
                queryType2 = QueryType.custom_month;
                infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM");
                getWaterHistory();
            };
            infoView2_Date_Year.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Year.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = false;
                infoView2_Date_Month.IsSelected = false;
                infoView2_Date_Year.IsSelected = true;
                queryType2 = QueryType.custom_year;
                infoView2_DateInfo_DateTextButton.Text = queryTime_Year2.ToString();
                getWaterHistory();
            };
        }
        /// <summary>
        /// </summary>
        public void SetTempQureyDateDialog()
        {
            var pickerItems_Year = new List<string>();
            List<string> pickerItems_Month = null;
            List<string> pickerItems_Day = null;
            int item1 = queryTime_Year1;
            int item2 = queryTime_Month1;
            int item3 = queryTime_Day1;
            pickerItems_Year.Add("2023");
            while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
            {
                pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
            }
            if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
            {
                pickerItems_Month = new List<string>();
                if (queryTime_Year1 == DateTime.Now.Year)
                {
                    int addMonth = 0;
                    while (DateTime.Now.Month > addMonth)
                    {
                        addMonth++;
                        pickerItems_Month.Add(addMonth.ToString());
                    }
                }
                else
                {
                    for (var i = 1; i < 13; i++)
                    {
                        pickerItems_Month.Add(i.ToString());
                    }
                }
                if (queryType1 == QueryType.day_hour)
                {
                    pickerItems_Day = new List<string>();
                    if (queryTime_Month1 == DateTime.Now.Month)
                    {
                        int addDay = 0;
                        while (DateTime.Now.Day > addDay)
                        {
                            addDay++;
                            pickerItems_Day.Add(addDay.ToString());
                        }
                    }
                    else
                    {
                        for (var i = 1; i <= DateTime.DaysInMonth(queryTime_Year1, queryTime_Month1); i++)
                        {
                            pickerItems_Day.Add(i.ToString());
                        }
                    }
                }
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(queryTime_Year1.ToString()),
                pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(queryTime_Month1.ToString()),
                pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(queryTime_Day1.ToString()));
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
            {
                if (pickerItems_Year[int1] != item1.ToString())
                {
                    int.TryParse(pickerItems_Year[int1], out item1);
                    if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
                    {
                        pickerItems_Month = new List<string>();
                        if (item1 == DateTime.Now.Year)
                        {
                            int addMonth = 0;
                            while (DateTime.Now.Month > addMonth)
                            {
                                addMonth++;
                                pickerItems_Month.Add(addMonth.ToString());
                            }
                        }
                        else
                        {
                            for (var i = 1; i < 13; i++)
                            {
                                pickerItems_Month.Add(i.ToString());
                            }
                        }
                        if (queryType1 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                    }
                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                }
                if (pickerItems_Month != null)
                {
                    if (pickerItems_Month[int2] != item2.ToString())
                    {
                        int.TryParse(pickerItems_Month[int2], out item2);
                        if (queryType1 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                    }
                }
                if (pickerItems_Day != null)
                {
                    if (int3 >= pickerItems_Day.Count)
                    {
                        int3 = 0;
                    }
                    if (pickerItems_Day[int3] != item3.ToString())
                    {
                        int.TryParse(pickerItems_Day[int3], out item3);
                    }
                }
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                queryTime_Year1 = item1;
                infoView1_DateInfo_DateTextButton.Text = queryTime_Year1.ToString();
                if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
                {
                    if (item2 != queryTime_Month1)
                    {
                        queryTime_Month1 = item2;
                    }
                    infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM");
                    if (queryType1 == QueryType.day_hour)
                    {
                        if (item3 != queryTime_Day1)
                        {
                            queryTime_Day1 = item3;
                        }
                        infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM-dd");
                    }
                }
                getTempHistory();
            };
        }
        public void SetWaterQureyDateDialog()
        {
            var pickerItems_Year = new List<string>();
            List<string> pickerItems_Month = null;
            List<string> pickerItems_Day = null;
            int item1 = queryTime_Year2;
            int item2 = queryTime_Month2;
            int item3 = queryTime_Day2;
            pickerItems_Year.Add("2023");
            while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
            {
                pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
            }
            if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
            {
                pickerItems_Month = new List<string>();
                if (queryTime_Year2 == DateTime.Now.Year)
                {
                    int addMonth = 0;
                    while (DateTime.Now.Month > addMonth)
                    {
                        addMonth++;
                        pickerItems_Month.Add(addMonth.ToString());
                    }
                }
                else
                {
                    for (var i = 1; i < 13; i++)
                    {
                        pickerItems_Month.Add(i.ToString());
                    }
                }
                if (queryType2 == QueryType.day_hour)
                {
                    pickerItems_Day = new List<string>();
                    if (queryTime_Month2 == DateTime.Now.Month)
                    {
                        int addDay = 0;
                        while (DateTime.Now.Day > addDay)
                        {
                            addDay++;
                            pickerItems_Day.Add(addDay.ToString());
                        }
                    }
                    else
                    {
                        for (var i = 1; i <= DateTime.DaysInMonth(queryTime_Year2, queryTime_Month2); i++)
                        {
                            pickerItems_Day.Add(i.ToString());
                        }
                    }
                }
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(queryTime_Year2.ToString()),
                pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(queryTime_Month2.ToString()),
                pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(queryTime_Day2.ToString()));
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
            {
                if (pickerItems_Year[int1] != item1.ToString())
                {
                    int.TryParse(pickerItems_Year[int1], out item1);
                    if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
                    {
                        pickerItems_Month = new List<string>();
                        if (item1 == DateTime.Now.Year)
                        {
                            int addMonth = 0;
                            while (DateTime.Now.Month > addMonth)
                            {
                                addMonth++;
                                pickerItems_Month.Add(addMonth.ToString());
                            }
                        }
                        else
                        {
                            for (var i = 1; i < 13; i++)
                            {
                                pickerItems_Month.Add(i.ToString());
                            }
                        }
                        if (queryType2 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                    }
                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                }
                if (pickerItems_Month != null)
                {
                    if (pickerItems_Month[int2] != item2.ToString())
                    {
                        int.TryParse(pickerItems_Month[int2], out item2);
                        if (queryType2 == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                    }
                }
                if (pickerItems_Day != null)
                {
                    if (int3 >= pickerItems_Day.Count)
                    {
                        int3 = 0;
                    }
                    if (pickerItems_Day[int3] != item3.ToString())
                    {
                        int.TryParse(pickerItems_Day[int3], out item3);
                    }
                }
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                queryTime_Year2 = item1;
                infoView2_DateInfo_DateTextButton.Text = queryTime_Year2.ToString();
                if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
                {
                    if (item2 != queryTime_Month2)
                    {
                        queryTime_Month2 = item2;
                    }
                    infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM");
                    if (queryType2 == QueryType.day_hour)
                    {
                        if (item3 != queryTime_Day2)
                        {
                            queryTime_Day2 = item3;
                        }
                        infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM-dd");
                    }
                }
                getWaterHistory();
            };
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoPage.cs
@@ -145,10 +145,10 @@
#if __IOS__
            pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.TopLeft;
            pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(8);
            pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(4);
#else
            pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.BottomLeft;
            pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth();
            pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(4);
#endif
            pvGenerate_todayUintButton = new Button()
            {
@@ -838,11 +838,7 @@
                TextAlignment = TextAlignment.BottomLeft,
                IsBold = true,
            };
#if __IOS__
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
#endif
            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
            var socialContribution_Info1_UintButton = new Button()
@@ -908,11 +904,7 @@
                TextAlignment = TextAlignment.BottomLeft,
                IsBold = true,
            };
#if __IOS__
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
#endif
            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton);
            var socialContribution_Info2_UintButton = new Button()
@@ -978,11 +970,7 @@
                TextAlignment = TextAlignment.BottomLeft,
                IsBold = true,
            };
#if __IOS__
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
#endif
            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton);
            var socialContribution_Info3_UintButton = new Button()
HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
@@ -10,7 +10,7 @@
{
    public class WaterHeaterJinmaoPage : FrameLayout
    {
        FrameLayout bodyView;
        static WaterHeaterJinmaoPage bodyView;
        VerticalScrolViewLayout contentView;
        FrameLayout bottomView;
        Function function;
@@ -255,12 +255,9 @@
                TextAlignment = TextAlignment.TopCenter,
                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---"),
            };
#if __IOS__
            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8);
#else
            btnTempValues.Width = btnTempValues.GetTextWidth();
#endif
            btnTempValues.Gravity = Gravity.CenterHorizontal;
            infoView_Temp_View.AddChidren(btnTempValues);
            btnTempValuesUint = new Button()
@@ -433,11 +430,7 @@
                TextAlignment = TextAlignment.TopCenter,
                Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"),
            };
#if __IOS__
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
#endif
            setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
            setTempView.AddChidren(setTemp_ValuesButton);
@@ -733,11 +726,7 @@
                TextAlignment = TextAlignment.BottomLeft,
                IsBold = true,
            };
#if __IOS__
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
#endif
            socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton);
            socialContribution_Info1_UintButton = new Button()
@@ -803,11 +792,7 @@
                TextAlignment = TextAlignment.BottomLeft,
                IsBold = true,
            };
#if __IOS__
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
#endif
            socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton);
@@ -874,11 +859,7 @@
                TextAlignment = TextAlignment.BottomLeft,
                IsBold = true,
            };
#if __IOS__
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
#else
            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
#endif
            socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton);
            socialContribution_Info3_UintButton = new Button()
@@ -1026,84 +1007,84 @@
        /// 更新界面状态
        /// </summary>
        /// <param name="temp"></param>
        public void UpdateStatus(Function temp)
        public static void UpdateStatus(Function temp)
        {
            if (bodyView == null)
            {
                return;
            }
            //免费热水
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()));
                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateFreeMode();
                    bodyView.updateFreeMode();
                });
            }
            //热水温度
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()));
                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateTemp();
                    bodyView.updateTemp();
                });
            }
            //热水器模式
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()));
                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateModeUI();
                    bodyView.updateModeUI();
                });
            }
            //热水器设置温度
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()))
            {
                function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()));
                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()));
                Application.RunOnMainThread(() =>
                {
                    updateSetTemp();
                    bodyView.updateSetTemp();
                });
            }
            //热水流量
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()))
            {
                Application.RunOnMainThread(() =>
                {
                    updateFlow();
                    bodyView.updateFlow();
                });
            }
            //热水总量
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) ||
                function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) ||
                bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()))
            {
                Application.RunOnMainThread(() =>
                {
                    updateVolume();
                    bodyView.updateVolume();
                });
            }
            //社会贡献-节电量
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()))
            {
                updateSocialContribution1();
                bodyView.updateSocialContribution1();
            }
            //社会贡献-co2
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()))
            {
                updateSocialContribution2();
                bodyView.updateSocialContribution2();
            }
            //社会贡献-植树
            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()))
            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()))
            {
                updateSocialContribution3();
                bodyView.updateSocialContribution3();
            }
            //开关按钮
            if (function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) != temp.GetAttrState(FunctionAttributeKey.OnOff.ToString()))
            if (bodyView.function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) != temp.GetAttrState(FunctionAttributeKey.OnOff.ToString()))
            {
                updatePowerButton();
                bodyView.updatePowerButton();
            }
        }
HDL_ON/UI/UI2/FuntionControlView/Acst/WetarHeaterJinmaoHistoryPage.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.Stan;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
@@ -19,6 +20,13 @@
        Button infoView1_DateInfo_PreClickButton;
        Button infoView1_DateInfo_DateTextButton;
        Button infoView1_DateInfo_NextClickButton;
        Button infoView1_DateInfo_NextIconButton;
        Button infoView1_DateInfo_PreIconButton;
        QueryType tempQueryType = QueryType.day_hour;
        int tempQueryTime_Day = DateTime.Now.Day;
        int tempQueryTime_Month = DateTime.Now.Month;
        int tempQueryTime_Year = DateTime.Now.Year;
        string tempQueryTimeString = DateTime.Now.ToString("yyyy/MM/dd");
        FrameLayout infoView2;
@@ -30,6 +38,13 @@
        Button infoView2_DateInfo_PreClickButton;
        Button infoView2_DateInfo_DateTextButton;
        Button infoView2_DateInfo_NextClickButton;
        Button infoView2_DateInfo_NextIconButton;
        Button infoView2_DateInfo_PreIconButton;
        QueryType waterQueryType = QueryType.day_hour;
        int waterQueryTime_Day = DateTime.Now.Day;
        int waterQueryTime_Month = DateTime.Now.Month;
        int waterQueryTime_Year = DateTime.Now.Year;
        string waterQueryTimeString = DateTime.Now.ToString("yyyy/MM/dd");
        public WetarHeaterJinmaoHistoryPage(Function deviceFunction)
@@ -141,7 +156,7 @@
            };
            infoView1.AddChidren(infoView1_DateInfoView);
            var infoView1_DateInfo_PreIconButton = new Button()
            infoView1_DateInfo_PreIconButton = new Button()
            {
                X = Application.GetRealWidth(18),
                Gravity = Gravity.CenterVertical,
@@ -162,7 +177,7 @@
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.Center,
                Text = "2024-8-12",
                Text = DateTime.Now.ToString("yyyy-MM-dd"),
                TextColor = CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 16,
@@ -170,7 +185,7 @@
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_DateTextButton);
            var infoView1_DateInfo_NextIconButton = new Button()
            infoView1_DateInfo_NextIconButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6),
                Gravity = Gravity.CenterVertical,
@@ -182,6 +197,7 @@
            infoView1_DateInfo_NextClickButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6 -32),
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextClickButton);
@@ -346,7 +362,7 @@
            };
            infoView2.AddChidren(infoView2_DateInfoView);
            var infoView2_DateInfo_PreIconButton = new Button()
            infoView2_DateInfo_PreIconButton = new Button()
            {
                X = Application.GetRealWidth(18),
                Gravity = Gravity.CenterVertical,
@@ -367,14 +383,14 @@
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(200),
                TextAlignment = TextAlignment.Center,
                Text = "2024-8-12",
                Text = DateTime.Now.ToString("yyyy-MM-dd"),
                TextColor = CSS_Color.FirstLevelTitleColor,
                IsBold = true,
                TextSize = 16,
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_DateTextButton);
            var infoView2_DateInfo_NextIconButton = new Button()
            infoView2_DateInfo_NextIconButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6),
                Gravity = Gravity.CenterVertical,
@@ -386,6 +402,7 @@
            infoView2_DateInfo_NextClickButton = new Button()
            {
                X = Application.GetRealWidth(343 - 18 - 6 -32),
                Width = Application.GetRealWidth(32 + 6),
            };
            infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextClickButton);
@@ -457,14 +474,22 @@
            {
                Height = Application.GetRealWidth(26)
            });
            initQueryButton();
        }
        /// <summary>
        /// 读取温度值历史数据
        /// hour=近24小时、day_hour =某日24小时、week=近一周、month = 近一月、custom_month=某年某月 y/M、custom_year=某年 y
        /// </summary>
        private void getTempHistory(string queryType)
        private void getTempHistory()
        {
            if (MainPage.NoLoginMode)
            {
                return;
            }
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
@@ -480,7 +505,20 @@
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType, function.deviceId, WaterHeaterJinmao_AttrEnum.temp.ToString());
                    switch (tempQueryType)
                    {
                        case QueryType.day_hour:
                            tempQueryTimeString = tempQueryTime_Year.ToString() + "/" + tempQueryTime_Month + "/" + tempQueryTime_Day;
                            break;
                        case QueryType.custom_month:
                            tempQueryTimeString = tempQueryTime_Year.ToString() + "/" + tempQueryTime_Month ;
                            break;
                        case QueryType.custom_year:
                            tempQueryTimeString = tempQueryTime_Year.ToString();
                            break;
                    }
                    var revertObj = new HttpServerRequest().GetSensorHistory(tempQueryType.ToString(), function.deviceId, WaterHeaterJinmao_AttrEnum.temp.ToString(),tempQueryTimeString);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
@@ -519,9 +557,12 @@
        /// <summary>
        /// 获取用水量历史记录
        /// </summary>
        /// <param name="queryType"></param>
        private void getWaterHistory(string queryType)
        private void getWaterHistory()
        {
            if (MainPage.NoLoginMode)
            {
                return;
            }
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
@@ -536,8 +577,20 @@
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    switch (waterQueryType)
                    {
                        case QueryType.day_hour:
                            waterQueryTimeString = waterQueryTime_Year.ToString() + "/" + waterQueryTime_Month + "/" + waterQueryTime_Day;
                            break;
                        case QueryType.custom_month:
                            waterQueryTimeString = waterQueryTime_Year.ToString() + "/" + waterQueryTime_Month;
                            break;
                        case QueryType.custom_year:
                            waterQueryTimeString = waterQueryTime_Year.ToString();
                            break;
                    }
                    var revertObj = new HttpServerRequest().GetSensorHistory(queryType, function.deviceId, WaterHeaterJinmao_AttrEnum.volume.ToString());
                    var revertObj = new HttpServerRequest().GetSensorHistory(waterQueryType.ToString(), function.deviceId, WaterHeaterJinmao_AttrEnum.volume.ToString(),waterQueryTimeString);
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
@@ -576,6 +629,113 @@
        private void initQueryButton()
        {
            infoView1_DateInfo_DateTextButton.MouseUpEventHandler = (sender, e) =>
            {
                SetTempQureyDateDialog();
            };
            infoView1_DateInfo_PreClickButton.MouseUpEventHandler = (sender, e) => {
                var tempQueryDate = new DateTime(tempQueryTime_Year,tempQueryTime_Month,tempQueryTime_Day);
                if (tempQueryType == QueryType.day_hour)
                {
                    tempQueryDate = tempQueryDate.AddDays(-1);
                    if(tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 1)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if(tempQueryType == QueryType.custom_month)
                {
                    tempQueryDate = tempQueryDate.AddMonths(-1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if(tempQueryType == QueryType.custom_year)
                {
                    tempQueryDate = tempQueryDate.AddYears(-1);
                    if (tempQueryDate.Year == 2023)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year - 1)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = true;
                        infoView1_DateInfo_NextClickButton.Enable = true;
                    }
                }
                tempQueryTime_Year = tempQueryDate.Year;
                tempQueryTime_Month = tempQueryDate.Month;
                tempQueryTime_Day = tempQueryDate.Day;
                infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_DateInfo_NextIconButton.Visible = false;
            infoView1_DateInfo_NextClickButton.Enable = false;
            infoView1_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => {
                var tempQueryDate = new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day);
                if (tempQueryType == QueryType.day_hour)
                {
                    tempQueryDate = tempQueryDate.AddDays(1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 2)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = true;
                        infoView1_DateInfo_PreClickButton.Enable = true;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (tempQueryType == QueryType.custom_month)
                {
                    tempQueryDate = tempQueryDate.AddMonths(1);
                    if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 2)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = true;
                        infoView1_DateInfo_PreClickButton.Enable = true;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month )
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (tempQueryType == QueryType.custom_year)
                {
                    tempQueryDate = tempQueryDate.AddYears(1);
                    if (tempQueryDate.Year == 2023)
                    {
                        infoView1_DateInfo_PreIconButton.Visible = false;
                        infoView1_DateInfo_PreClickButton.Enable = false;
                    }
                    if (tempQueryDate.Year == DateTime.Now.Year)
                    {
                        infoView1_DateInfo_NextIconButton.Visible = false;
                        infoView1_DateInfo_NextClickButton.Enable = false;
                    }
                }
                tempQueryTime_Year = tempQueryDate.Year;
                tempQueryTime_Month = tempQueryDate.Month;
                tempQueryTime_Day = tempQueryDate.Day;
                infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_Date_Day.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Day.IsSelected)
                {
@@ -584,12 +744,723 @@
                infoView1_Date_Day.IsSelected = true;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = false;
                //getTempHistory("day")
                tempQueryType = QueryType.day_hour;
                infoView1_DateInfo_DateTextButton.Text = new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day).ToString("yyyy-MM-dd");
                getTempHistory();
            };
            infoView1_Date_Month.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Month.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = false;
                infoView1_Date_Month.IsSelected = true;
                infoView1_Date_Year.IsSelected = false;
                tempQueryType = QueryType.custom_month;
                infoView1_DateInfo_DateTextButton.Text = new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day).ToString("yyyy-MM");
                getTempHistory();
            };
            infoView1_Date_Year.MouseUpEventHandler = (sender, e) => {
                if (infoView1_Date_Year.IsSelected)
                {
                    return;
                }
                infoView1_Date_Day.IsSelected = false;
                infoView1_Date_Month.IsSelected = false;
                infoView1_Date_Year.IsSelected = true;
                tempQueryType = QueryType.custom_year;
                infoView1_DateInfo_DateTextButton.Text = tempQueryTime_Year.ToString();
                getTempHistory();
            };
            //-----------用水
            infoView2_DateInfo_DateTextButton.MouseUpEventHandler = (sender, e) =>
            {
                SetWaterQureyDateDialog();
            };
            infoView2_DateInfo_PreClickButton.MouseUpEventHandler = (sender, e) => {
                var waterQueryDate = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day);
                if (waterQueryType == QueryType.day_hour)
                {
                    waterQueryDate = waterQueryDate.AddDays(-1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 1)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month && waterQueryDate.Day == DateTime.Now.Day - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (waterQueryType == QueryType.custom_month)
                {
                    waterQueryDate = waterQueryDate.AddMonths(-1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                else if (waterQueryType == QueryType.custom_year)
                {
                    waterQueryDate = waterQueryDate.AddYears(-1);
                    if (waterQueryDate.Year == 2023)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year - 1)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = true;
                        infoView2_DateInfo_NextClickButton.Enable = true;
                    }
                }
                waterQueryTime_Year = waterQueryDate.Year;
                waterQueryTime_Month = waterQueryDate.Month;
                waterQueryTime_Day = waterQueryDate.Day;
                infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_DateInfo_NextIconButton.Visible = false;
            infoView2_DateInfo_NextClickButton.Enable = false;
            infoView2_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => {
                var waterQueryDate = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day);
                if (waterQueryType == QueryType.day_hour)
                {
                    waterQueryDate = waterQueryDate.AddDays(1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 2)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = true;
                        infoView2_DateInfo_PreClickButton.Enable = true;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month && waterQueryDate.Day == DateTime.Now.Day)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (waterQueryType == QueryType.custom_month)
                {
                    waterQueryDate = waterQueryDate.AddMonths(1);
                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 2)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = true;
                        infoView2_DateInfo_PreClickButton.Enable = true;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                else if (waterQueryType == QueryType.custom_year)
                {
                    waterQueryDate = waterQueryDate.AddYears(1);
                    if (waterQueryDate.Year == 2023)
                    {
                        infoView2_DateInfo_PreIconButton.Visible = false;
                        infoView2_DateInfo_PreClickButton.Enable = false;
                    }
                    if (waterQueryDate.Year == DateTime.Now.Year)
                    {
                        infoView2_DateInfo_NextIconButton.Visible = false;
                        infoView2_DateInfo_NextClickButton.Enable = false;
                    }
                }
                waterQueryTime_Year = waterQueryDate.Year;
                waterQueryTime_Month = waterQueryDate.Month;
                waterQueryTime_Day = waterQueryDate.Day;
                infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_Date_Day.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Day.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = true;
                infoView2_Date_Month.IsSelected = false;
                infoView2_Date_Year.IsSelected = false;
                waterQueryType = QueryType.day_hour;
                infoView2_DateInfo_DateTextButton.Text = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day).ToString("yyyy-MM-dd");
                getWaterHistory();
            };
            infoView2_Date_Month.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Month.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = false;
                infoView2_Date_Month.IsSelected = true;
                infoView2_Date_Year.IsSelected = false;
                waterQueryType = QueryType.custom_month;
                infoView2_DateInfo_DateTextButton.Text = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day).ToString("yyyy-MM");
                getWaterHistory();
            };
            infoView2_Date_Year.MouseDownEventHandler = (sender, e) => {
                if (infoView2_Date_Year.IsSelected)
                {
                    return;
                }
                infoView2_Date_Day.IsSelected = false;
                infoView2_Date_Month.IsSelected = false;
                infoView2_Date_Year.IsSelected = true;
                waterQueryType = QueryType.custom_year;
                infoView2_DateInfo_DateTextButton.Text = waterQueryTime_Year.ToString();
                getWaterHistory();
            };
        }
        /// <summary>
        /// </summary>
        public void SetTempQureyDateDialog()
        {
            var pickerItems_Year = new List<string>();
            List<string> pickerItems_Month = null;
            List<string> pickerItems_Day = null;
            int item1 = tempQueryTime_Year;
            int item2 = tempQueryTime_Month;
            int item3 = tempQueryTime_Day;
            pickerItems_Year.Add("2023");
            while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
            {
                pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
            }
            if(tempQueryType == QueryType.custom_month || tempQueryType == QueryType.day_hour)
            {
                pickerItems_Month = new List<string>();
                if (tempQueryTime_Year == DateTime.Now.Year)
                {
                    int addMonth = 0;
                    while (DateTime.Now.Month > addMonth)
                    {
                        addMonth++;
                        pickerItems_Month.Add(addMonth.ToString());
                    }
                }
                else
                {
                    for (var i = 1; i < 13; i++)
                    {
                        pickerItems_Month.Add(i.ToString());
                    }
                }
                if (tempQueryType == QueryType.day_hour)
                {
                    pickerItems_Day = new List<string>();
                    if (tempQueryTime_Month == DateTime.Now.Month)
                    {
                        int addDay = 0;
                        while (DateTime.Now.Day > addDay)
                        {
                            addDay++;
                            pickerItems_Day.Add(addDay.ToString());
                        }
                    }
                    else
                    {
                        for (var i = 1; i <= DateTime.DaysInMonth(tempQueryTime_Year, tempQueryTime_Month); i++)
                        {
                            pickerItems_Day.Add(i.ToString());
                        }
                    }
                }
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(tempQueryTime_Year.ToString()),
                pickerItems_Month == null ? 0: pickerItems_Month.IndexOf(tempQueryTime_Month.ToString()),
                pickerItems_Day == null? 0: pickerItems_Day.IndexOf(tempQueryTime_Day.ToString()));
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
            {
                if (pickerItems_Year[int1] != item1.ToString())
                {
                    int.TryParse(pickerItems_Year[int1], out item1);
                    if (tempQueryType == QueryType.custom_month || tempQueryType == QueryType.day_hour)
                    {
                        pickerItems_Month = new List<string>();
                        if (item1 == DateTime.Now.Year)
                        {
                            int addMonth = 0;
                            while (DateTime.Now.Month > addMonth)
                            {
                                addMonth++;
                                pickerItems_Month.Add(addMonth.ToString());
                            }
                        }
                        else
                        {
                            for (var i = 1; i < 13; i++)
                            {
                                pickerItems_Month.Add(i.ToString());
                            }
                        }
                        if (tempQueryType == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                    }
                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                }
                if (pickerItems_Month != null)
                {
                    if (pickerItems_Month[int2] != item2.ToString())
                    {
                        int.TryParse(pickerItems_Month[int2], out item2);
                        if (tempQueryType == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                    }
                }
                if (pickerItems_Day != null)
                {
                    if (int3 >= pickerItems_Day.Count)
                    {
                        int3 = 0;
                    }
                    if (pickerItems_Day[int3] != item3.ToString())
                    {
                        int.TryParse(pickerItems_Day[int3], out item3);
                    }
                }
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                tempQueryTime_Year = item1;
                infoView1_DateInfo_DateTextButton.Text = tempQueryTime_Year.ToString();
                if (tempQueryType == QueryType.custom_month || tempQueryType == QueryType.day_hour)
                {
                    if (item2 != tempQueryTime_Month)
                    {
                        tempQueryTime_Month = item2;
                    }
                    infoView1_DateInfo_DateTextButton.Text = new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day).ToString("yyyy-MM");
                    if (tempQueryType == QueryType.day_hour)
                    {
                        if (item3 != tempQueryTime_Day)
                        {
                            tempQueryTime_Day = item3;
                        }
                        infoView1_DateInfo_DateTextButton.Text = new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day).ToString("yyyy-MM-dd");
                    }
                }
                getTempHistory();
            };
        }
        public void SetWaterQureyDateDialog()
        {
            var pickerItems_Year = new List<string>();
            List<string> pickerItems_Month = null;
            List<string> pickerItems_Day = null;
            int item1 = waterQueryTime_Year;
            int item2 = waterQueryTime_Month;
            int item3 = waterQueryTime_Day;
            pickerItems_Year.Add("2023");
            while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
            {
                pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
            }
            if (waterQueryType == QueryType.custom_month || waterQueryType == QueryType.day_hour)
            {
                pickerItems_Month = new List<string>();
                if (waterQueryTime_Year == DateTime.Now.Year)
                {
                    int addMonth = 0;
                    while (DateTime.Now.Month > addMonth)
                    {
                        addMonth++;
                        pickerItems_Month.Add(addMonth.ToString());
                    }
                }
                else
                {
                    for (var i = 1; i < 13; i++)
                    {
                        pickerItems_Month.Add(i.ToString());
                    }
                }
                if (waterQueryType == QueryType.day_hour)
                {
                    pickerItems_Day = new List<string>();
                    if (waterQueryTime_Month == DateTime.Now.Month)
                    {
                        int addDay = 0;
                        while (DateTime.Now.Day > addDay)
                        {
                            addDay++;
                            pickerItems_Day.Add(addDay.ToString());
                        }
                    }
                    else
                    {
                        for (var i = 1; i <= DateTime.DaysInMonth(waterQueryTime_Year, waterQueryTime_Month); i++)
                        {
                            pickerItems_Day.Add(i.ToString());
                        }
                    }
                }
            }
            Dialog dialog = new Dialog();
            var pView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(pView);
            var optionBaseView = new FrameLayout()
            {
                Y = Application.GetRealHeight(456 - 60),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(260),
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            pView.AddChidren(optionBaseView);
            var topView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealHeight(40),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(topView);
            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
            var btnCancel = new Button()
            {
                X = Application.GetRealWidth(21),
                Width = Application.GetRealWidth(100),
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Cancel,
            };
            topView.AddChidren(btnCancel);
            var btnConfrim = new Button()
            {
                X = Application.GetRealWidth(160),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterRight,
                TextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.TextFontSize,
                TextID = StringId.Confirm,
            };
            topView.AddChidren(btnConfrim);
            UIPickerView uIPickerView = new UIPickerView()
            {
                Y = Application.GetRealHeight(40),
                Height = Application.GetRealHeight(210),
                Radius = (uint)Application.GetRealWidth(12),
            };
            optionBaseView.AddChidren(uIPickerView);
            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(waterQueryTime_Year.ToString()),
                pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(waterQueryTime_Month.ToString()),
                pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(waterQueryTime_Day.ToString()));
            dialog.Show();
            pView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            btnCancel.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
            {
                if (pickerItems_Year[int1] != item1.ToString())
                {
                    int.TryParse(pickerItems_Year[int1], out item1);
                    if (waterQueryType == QueryType.custom_month || waterQueryType == QueryType.day_hour)
                    {
                        pickerItems_Month = new List<string>();
                        if (item1 == DateTime.Now.Year)
                        {
                            int addMonth = 0;
                            while (DateTime.Now.Month > addMonth)
                            {
                                addMonth++;
                                pickerItems_Month.Add(addMonth.ToString());
                            }
                        }
                        else
                        {
                            for (var i = 1; i < 13; i++)
                            {
                                pickerItems_Month.Add(i.ToString());
                            }
                        }
                        if (waterQueryType == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                    }
                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                }
                if (pickerItems_Month != null)
                {
                    if (pickerItems_Month[int2] != item2.ToString())
                    {
                        int.TryParse(pickerItems_Month[int2], out item2);
                        if (waterQueryType == QueryType.day_hour)
                        {
                            pickerItems_Day = new List<string>();
                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
                            {
                                int addDay = 0;
                                while (DateTime.Now.Day > addDay)
                                {
                                    addDay++;
                                    pickerItems_Day.Add(addDay.ToString());
                                }
                            }
                            else
                            {
                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
                                {
                                    pickerItems_Day.Add(i.ToString());
                                }
                            }
                        }
                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
                    }
                }
                if (pickerItems_Day != null)
                {
                    if (int3 >= pickerItems_Day.Count)
                    {
                        int3 = 0;
                    }
                    if (pickerItems_Day[int3] != item3.ToString())
                    {
                        int.TryParse(pickerItems_Day[int3], out item3);
                    }
                }
            };
            btnConfrim.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
                waterQueryTime_Year = item1;
                infoView2_DateInfo_DateTextButton.Text = waterQueryTime_Year.ToString();
                if (waterQueryType == QueryType.custom_month || waterQueryType == QueryType.day_hour)
                {
                    if (item2 != waterQueryTime_Month)
                    {
                        waterQueryTime_Month = item2;
                    }
                    infoView2_DateInfo_DateTextButton.Text = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day).ToString("yyyy-MM");
                    if (waterQueryType == QueryType.day_hour)
                    {
                        if (item3 != waterQueryTime_Day)
                        {
                            waterQueryTime_Day = item3;
                        }
                        infoView2_DateInfo_DateTextButton.Text = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day).ToString("yyyy-MM-dd");
                    }
                }
                getWaterHistory();
            };
        }
    }
    public enum QueryType
    {
        /// <summary>
        /// 近24小时、
        /// </summary>
        hour,
        /// <summary>
        /// 某日24小时、
        /// </summary>
        day_hour,
        /// <summary>
        /// 近一周、
        /// </summary>
        week,
        /// <summary>
        /// 近一月、
        /// </summary>
        month,
        /// <summary>
        /// 某年某月 y/M、
        /// </summary>
        custom_month,
        /// <summary>
        /// 某年 y
        /// </summary>
        custom_year,
    }
}
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_Histogram.cs
@@ -72,6 +72,72 @@
            return YvalueText;
        }
#if __ANDROID__
        public string optionString = @"{
                              grid: {
                                    top: '10%',
                                    left: '15%',
                                    right: '15%',
                                    bottom: '10%',
                                    },
                              xAxis: {
                                data: [{xData}],
                                axisTick: {
                                  show: false
                                },
                                axisLine: {
                                  show: false
                                },
                                name:'{xName}',
                                nameGap:5,
                                nameTextStyle:{
                                  color:'#7C8590',
                                  fontSize:10
                                },
                                axisLabel: {
                                  color: '#7C8590',
                                  fontSize:10
                                }
                              },
                              yAxis: {
                                name:'{yName}',
                                nameGap:12,
                                nameTextStyle:{
                                  color:'#030D1C',
                                  fontSize:10
                                },
                                axisLine: {
                                  show: false
                                },
                                axisTick: {
                                  show: false
                                },
                                axisLabel: {
                                  color: '#7C8590',
                                  fontSize:10
                                }
                              },
                              dataZoom: [
                                {
                                  type: 'inside'
                                }
                              ],
                              series: [
                                {
                                  type: 'bar',
                                  showBackground: false,
                                  itemStyle: {
                                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                                      { offset: 0, color: '#6AB7F9' },
                                      { offset: 0.5, color: '#5AA6FF' },
                                      { offset: 1, color: '#6B97F9' }
                                    ])
                                  },
                                  data: [{yData}]
                                }
                              ]
                            }";
#else
        public string optionString = @"{
                              grid: {
@@ -136,7 +202,7 @@
                                }
                              ]
                            }";
#endif
    }