using System; 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 { public class WetarHeaterJinmaoHistoryPage : FrameLayout { WetarHeaterJinmaoHistoryPage bodyView; Function function; FrameLayout infoView1; EchartsOption_Histogram tempEchartOption; 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 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; 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 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) { bodyView = this; function = deviceFunction; this.BackgroundColor = CSS_Color.BackgroundColor; } public void LoadPage() { var topView = new TopViewDiv(bodyView, function.name); topView.maginY = 10; topView.LoadTopView(); var contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(74 + 16), Height = Application.GetRealHeight(Application.DesignHeight - 74), }; bodyView.AddChidren(contentView); #region 温度值 infoView1 = new FrameLayout() { Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(382), Gravity = Gravity.CenterHorizontal, BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; contentView.AddChidren(infoView1); #region 时间条件选择 var infoView1_DateView = new HorizontalScrolViewLayout() { Width = Application.GetRealWidth(343 - 34), Height = Application.GetRealWidth(26), Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(17), BackgroundColor = CSS_Color.BackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = 0x00FFFFFF, BorderWidth = 0, ScrollEnabled = false, }; infoView1.AddChidren(infoView1_DateView); infoView1_Date_Day = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), BackgroundColor = CSS_Color.BackgroundColor, SelectedBackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = CSS_Color.BackgroundColor, BorderWidth = (uint)Application.GetRealWidth(1), Text = "日", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, IsSelected = true, }; infoView1_DateView.AddChidren(infoView1_Date_Day); infoView1_Date_Month = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), BackgroundColor = CSS_Color.BackgroundColor, SelectedBackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = CSS_Color.BackgroundColor, BorderWidth = (uint)Application.GetRealWidth(1), Text = "月", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, IsSelected = false, }; infoView1_DateView.AddChidren(infoView1_Date_Month); infoView1_Date_Year = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), BackgroundColor = CSS_Color.BackgroundColor, SelectedBackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = CSS_Color.BackgroundColor, BorderWidth = (uint)Application.GetRealWidth(1), Text = "年", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, IsSelected = false, }; infoView1_DateView.AddChidren(infoView1_Date_Year); var infoView1_DateInfoView = new FrameLayout() { Y = Application.GetRealWidth(43), Height = Application.GetRealWidth(55), }; infoView1.AddChidren(infoView1_DateInfoView); infoView1_DateInfo_PreIconButton = new Button() { X = Application.GetRealWidth(18), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(6), Height = Application.GetRealWidth(10), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/PreIcon.png", }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_PreIconButton); infoView1_DateInfo_PreClickButton = new Button() { Width = Application.GetRealWidth(32 + 6), }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_PreClickButton); infoView1_DateInfo_DateTextButton = new Button() { Gravity = Gravity.Center, Width = Application.GetRealWidth(200), TextAlignment = TextAlignment.Center, Text = DateTime.Now.ToString("yyyy-MM-dd"), TextColor = CSS_Color.FirstLevelTitleColor, IsBold = true, TextSize = 16, }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_DateTextButton); infoView1_DateInfo_NextIconButton = new Button() { X = Application.GetRealWidth(343 - 18 - 6), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(6), Height = Application.GetRealWidth(10), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/NextIcon.png", }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextIconButton); infoView1_DateInfo_NextClickButton = new Button() { X = Application.GetRealWidth(343 - 18 - 6 - 32), Width = Application.GetRealWidth(32 + 6), }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextClickButton); #endregion #region 数据图表 infoView1_EchartsView = new MyEchartsViewOn() { Y = Application.GetRealWidth(101), Height = Application.GetRealWidth(246), }; infoView1.AddChidren(infoView1_EchartsView); tempEchartOption = new EchartsOption_Histogram(); tempEchartOption.xTitle = "时间"; tempEchartOption.yTitle = "温度(℃)"; //tempEchartOption.InitXdataText(new List() //{ // "21","22","23","24","25","26","26","27","28","29", // "21","22","23","24","25","26","26","27","28","29", // "21","22","23","24" //}); //tempEchartOption.InitYdataText(new List() { // new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22" }, // new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "4", fieldValue= "21" }, // new EnvironmentalSensorHistor{ fieldName = "5", fieldValue= "41" }, // new EnvironmentalSensorHistor{ fieldName = "6", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "7", fieldValue= "31" }, // new EnvironmentalSensorHistor{ fieldName = "8", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "9", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "10", fieldValue= "21" }, // new EnvironmentalSensorHistor{ fieldName = "11", fieldValue= "24" }, // new EnvironmentalSensorHistor{ fieldName = "12", fieldValue= "41" }, // new EnvironmentalSensorHistor{ fieldName = "13", fieldValue= "32" }, // new EnvironmentalSensorHistor{ fieldName = "14", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "15", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "16", fieldValue= "22" }, // new EnvironmentalSensorHistor{ fieldName = "17", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "18", fieldValue= "21" }, // new EnvironmentalSensorHistor{ fieldName = "19", fieldValue= "41" }, // new EnvironmentalSensorHistor{ fieldName = "20", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "21", fieldValue= "31" }, // new EnvironmentalSensorHistor{ fieldName = "22", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "23", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "24", fieldValue= "21" }, //}); //var ddd = tempEchartOption.InitOption(); //infoView1_EchartsView.ShowWithOption(ddd); infoView1.AddChidren(new Button() { Height = Application.GetRealWidth(35), Y = Application.GetRealWidth(340), Text = "温度值", TextSize = 14, TextAlignment = TextAlignment.Center, TextColor = 0xFFC0C7D4 }); #endregion #endregion contentView.AddChidren(new Button() { Height = Application.GetRealWidth(16) }); if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.volume.ToString()) != null) { #region 用水量 infoView2 = new FrameLayout() { Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(382), Y = Application.GetRealHeight(16) + infoView1.Bottom, Gravity = Gravity.CenterHorizontal, BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(12), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; contentView.AddChidren(infoView2); #region 时间条件选择 var infoView2_DateView = new HorizontalScrolViewLayout() { Width = Application.GetRealWidth(343 - 34), Height = Application.GetRealWidth(26), Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(17), BackgroundColor = CSS_Color.BackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = 0x00FFFFFF, BorderWidth = 0, ScrollEnabled = false, }; infoView2.AddChidren(infoView2_DateView); infoView2_Date_Day = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), BackgroundColor = CSS_Color.BackgroundColor, SelectedBackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = CSS_Color.BackgroundColor, BorderWidth = (uint)Application.GetRealWidth(1), Text = "日", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, IsSelected = true, }; infoView2_DateView.AddChidren(infoView2_Date_Day); infoView2_Date_Month = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), BackgroundColor = CSS_Color.BackgroundColor, SelectedBackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = CSS_Color.BackgroundColor, BorderWidth = (uint)Application.GetRealWidth(1), Text = "月", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, IsSelected = false, }; infoView2_DateView.AddChidren(infoView2_Date_Month); infoView2_Date_Year = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), BackgroundColor = CSS_Color.BackgroundColor, SelectedBackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(13), BorderColor = CSS_Color.BackgroundColor, BorderWidth = (uint)Application.GetRealWidth(1), Text = "年", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, IsSelected = false, }; infoView2_DateView.AddChidren(infoView2_Date_Year); var infoView2_DateInfoView = new FrameLayout() { Y = Application.GetRealWidth(43), Height = Application.GetRealWidth(55), }; infoView2.AddChidren(infoView2_DateInfoView); infoView2_DateInfo_PreIconButton = new Button() { X = Application.GetRealWidth(18), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(6), Height = Application.GetRealWidth(10), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/PreIcon.png", }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_PreIconButton); infoView2_DateInfo_PreClickButton = new Button() { Width = Application.GetRealWidth(32 + 6), }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_PreClickButton); infoView2_DateInfo_DateTextButton = new Button() { Gravity = Gravity.Center, Width = Application.GetRealWidth(200), TextAlignment = TextAlignment.Center, Text = DateTime.Now.ToString("yyyy-MM-dd"), TextColor = CSS_Color.FirstLevelTitleColor, IsBold = true, TextSize = 16, }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_DateTextButton); infoView2_DateInfo_NextIconButton = new Button() { X = Application.GetRealWidth(343 - 18 - 6), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(6), Height = Application.GetRealWidth(10), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/NextIcon.png", }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextIconButton); infoView2_DateInfo_NextClickButton = new Button() { X = Application.GetRealWidth(343 - 18 - 6 - 32), Width = Application.GetRealWidth(32 + 6), }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextClickButton); #endregion #region 数据图表 infoView2_EchartsView = new MyEchartsViewOn() { Y = Application.GetRealWidth(101), Height = Application.GetRealWidth(246), }; infoView2.AddChidren(infoView2_EchartsView); echartOption2 = new EchartsOption_Histogram(); echartOption2.xTitle = "时间"; echartOption2.yTitle = "用水量(t)"; //echartOption2.InitXdataText(new List() //{ // "21","22","23","24","25","26","26","27","28","29", // "21","22","23","24","25","26","26","27","28","29", // "21","22","23","24" //}); //echartOption2.InitYdataText(new List() { // new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22" }, // new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "4", fieldValue= "21" }, // new EnvironmentalSensorHistor{ fieldName = "5", fieldValue= "41" }, // new EnvironmentalSensorHistor{ fieldName = "6", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "7", fieldValue= "31" }, // new EnvironmentalSensorHistor{ fieldName = "8", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "9", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "10", fieldValue= "21" }, // new EnvironmentalSensorHistor{ fieldName = "11", fieldValue= "24" }, // new EnvironmentalSensorHistor{ fieldName = "12", fieldValue= "41" }, // new EnvironmentalSensorHistor{ fieldName = "13", fieldValue= "32" }, // new EnvironmentalSensorHistor{ fieldName = "14", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "15", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "16", fieldValue= "22" }, // new EnvironmentalSensorHistor{ fieldName = "17", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "18", fieldValue= "21" }, // new EnvironmentalSensorHistor{ fieldName = "19", fieldValue= "41" }, // new EnvironmentalSensorHistor{ fieldName = "20", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "21", fieldValue= "31" }, // new EnvironmentalSensorHistor{ fieldName = "22", fieldValue= "23" }, // new EnvironmentalSensorHistor{ fieldName = "23", fieldValue= "11" }, // new EnvironmentalSensorHistor{ fieldName = "24", fieldValue= "21" }, //}); //infoView2_EchartsView.ShowWithOption(echartOption2.InitOption()); infoView2.AddChidren(new Button() { Height = Application.GetRealWidth(35), Y = Application.GetRealWidth(340), Text = "用水量", TextSize = 14, TextAlignment = TextAlignment.Center, TextColor = 0xFFC0C7D4 }); #endregion #endregion } contentView.AddChidren(new Button() { Height = Application.GetRealWidth(26) }); initQueryButton(); getTempHistory(); getWaterHistory(); } /// /// 读取温度值历史数据 /// hour=近24小时、day_hour =某日24小时、week=近一周、month = 近一月、custom_month=某年某月 y/M、custom_year=某年 y /// private void getTempHistory() { if (MainPage.NoLoginMode) { return; } var loadPage = new Loading() { LodingBackgroundColor = 0x88888888, BackgroundColor = 0x00FFFFFF, }; infoView1.AddChidren(loadPage); new System.Threading.Thread(() => { try { Application.RunOnMainThread(() => { loadPage.Start(); }); 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) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.Data.ToString()); List vs = new List(); foreach (var data in revertData) { vs.Add(data.fieldName); } tempEchartOption.InitXdataText(vs); tempEchartOption.InitYdataText(revertData); Application.RunOnMainThread(() => { infoView1_EchartsView.ShowWithOption(tempEchartOption.InitOption()); }); } } } catch (Exception ex) { MainPage.Log($"history error : {ex.Message}"); } finally { Application.RunOnMainThread(() => { loadPage.Hide(); }); } }) { IsBackground = true }.Start(); } /// /// 获取用水量历史记录 /// private void getWaterHistory() { if (MainPage.NoLoginMode) { return; } if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.volume.ToString()) == null) { return; } var loadPage = new Loading() { LodingBackgroundColor = 0x88888888, BackgroundColor = 0x00FFFFFF, }; infoView2.AddChidren(loadPage); new System.Threading.Thread(() => { try { Application.RunOnMainThread(() => { loadPage.Start(); }); 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(waterQueryType.ToString(), function.deviceId, WaterHeaterJinmao_AttrEnum.volume.ToString(), waterQueryTimeString); if (revertObj != null) { if (revertObj.Code == StateCode.SUCCESS) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.Data.ToString()); List vs = new List(); 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(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day); if (tempQueryType == QueryType.day_hour) { if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1 && tempQueryDate.Day == 1) { return; } tempQueryDate = tempQueryDate.AddDays(-1); infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd"); } else if (tempQueryType == QueryType.custom_month) { if (tempQueryDate.Year == 2023 && tempQueryDate.Month == 1) { return; } tempQueryDate = tempQueryDate.AddMonths(-1); tempQueryTime_Day = tempQueryDate.Day; infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM"); } else if (tempQueryType == QueryType.custom_year) { if (tempQueryDate.Year <= 2023) { return; } tempQueryDate = tempQueryDate.AddYears(-1); infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy"); } tempQueryTime_Year = tempQueryDate.Year; tempQueryTime_Month = tempQueryDate.Month; tempQueryTime_Day = tempQueryDate.Day; getTempHistory(); }; infoView1_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => { var tempQueryDate = new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day); if (tempQueryType == QueryType.day_hour) { if (tempQueryDate.Year >= DateTime.Now.Year && tempQueryDate.Month >= DateTime.Now.Month && tempQueryDate.Day >= DateTime.Now.Day) { return; } tempQueryDate = tempQueryDate.AddDays(1); infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd"); } else if (tempQueryType == QueryType.custom_month) { if (tempQueryDate.Year >= DateTime.Now.Year && tempQueryDate.Month >= DateTime.Now.Month) { return; } tempQueryDate = tempQueryDate.AddMonths(1); tempQueryTime_Day = tempQueryDate.Day; infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM"); } else if (tempQueryType == QueryType.custom_year) { if (tempQueryDate.Year >= DateTime.Now.Year) { return; } tempQueryDate = tempQueryDate.AddYears(1); infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy"); } tempQueryTime_Year = tempQueryDate.Year; tempQueryTime_Month = tempQueryDate.Month; tempQueryTime_Day = tempQueryDate.Day; 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; tempQueryType = QueryType.day_hour; if (DateTime.Now.Date < new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day)) { tempQueryTime_Year = DateTime.Now.Year; tempQueryTime_Month = DateTime.Now.Month; tempQueryTime_Day = DateTime.Now.Day; } 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; if (DateTime.Now.Date < new DateTime(tempQueryTime_Year, tempQueryTime_Month, tempQueryTime_Day)) { tempQueryTime_Year = DateTime.Now.Year; tempQueryTime_Month = DateTime.Now.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(); }; //-----------用水 if (function.attributes.Find((obj) => obj.key == WaterHeaterJinmao_AttrEnum.volume.ToString()) != null) { 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) { if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 1) { return; } waterQueryDate = waterQueryDate.AddDays(-1); infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd"); } else if (waterQueryType == QueryType.custom_month) { if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1) { return; } waterQueryDate = waterQueryDate.AddMonths(-1); waterQueryTime_Day = waterQueryDate.Day; infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM"); } else if (waterQueryType == QueryType.custom_year) { if (waterQueryDate.Year <= 2023) { return; } waterQueryDate = waterQueryDate.AddYears(-1); infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy"); } waterQueryTime_Year = waterQueryDate.Year; waterQueryTime_Month = waterQueryDate.Month; waterQueryTime_Day = waterQueryDate.Day; getWaterHistory(); }; infoView2_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) => { var waterQueryDate = new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day); if (waterQueryType == QueryType.day_hour) { if (waterQueryDate.Year >= DateTime.Now.Year && waterQueryDate.Month >= DateTime.Now.Month && waterQueryDate.Day >= DateTime.Now.Day) { return; } waterQueryDate = waterQueryDate.AddDays(1); infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM-dd"); } else if (waterQueryType == QueryType.custom_month) { if (waterQueryDate.Year == DateTime.Now.Year && waterQueryDate.Month == DateTime.Now.Month) { return; } waterQueryDate = waterQueryDate.AddMonths(1); waterQueryTime_Day = waterQueryDate.Day; infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM"); } else if (waterQueryType == QueryType.custom_year) { if (waterQueryDate.Year >= DateTime.Now.Year) { return; } waterQueryDate = waterQueryDate.AddYears(1); infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy"); } waterQueryTime_Year = waterQueryDate.Year; waterQueryTime_Month = waterQueryDate.Month; waterQueryTime_Day = waterQueryDate.Day; 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; if (DateTime.Now.Date < new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day)) { waterQueryTime_Year = DateTime.Now.Year; waterQueryTime_Month = DateTime.Now.Month; waterQueryTime_Day = DateTime.Now.Day; } 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; if (DateTime.Now.Date < new DateTime(waterQueryTime_Year, waterQueryTime_Month, waterQueryTime_Day)) { waterQueryTime_Year = DateTime.Now.Year; waterQueryTime_Month = DateTime.Now.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(); }; } } /// /// public void SetTempQureyDateDialog() { var pickerItems_Year = new List(); List pickerItems_Month = null; List 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(); 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(); 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); var btnToday = new Button() { X = Application.GetRealWidth(160 - 32) - btnConfrim.GetTextWidth(), Width = Application.GetRealWidth(160), TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, Visible = false, Enable = false, Text= "今日", }; topView.AddChidren(btnToday); 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) => { try { if (int1 < 0) { int1 = 1; } 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(); 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(); 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 (int2 >= pickerItems_Month.Count || int2 < 0) { int2 = 0; } if (pickerItems_Month[int2] != item2.ToString()) { int.TryParse(pickerItems_Month[int2], out item2); if (tempQueryType == QueryType.day_hour) { pickerItems_Day = new List(); 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()); } } } try { 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())); } catch (Exception ex) { MainPage.Log("Error", $"金茂历史数据控件异常:{ex.Message}"); } } } if (pickerItems_Day != null) { if (int3 >= pickerItems_Day.Count || int3 < 0) { int3 = 0; } if (pickerItems_Day[int3] != item3.ToString()) { int.TryParse(pickerItems_Day[int3], out item3); } } } catch (Exception ex) { MainPage.Log("Error", $"金茂热水器日期选择异常:{ex.StackTrace}"); } }; 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, 1).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(); }; if (tempQueryType == QueryType.day_hour) { try { btnToday.Visible = btnToday.Enable = true; btnToday.MouseUpEventHandler = (sender, e) => { item3 = tempQueryTime_Day = DateTime.Now.Day; item2 = tempQueryTime_Month = DateTime.Now.Month; item1 = tempQueryTime_Year = DateTime.Now.Year; pickerItems_Year = new List(); pickerItems_Year.Add("2023"); while (DateTime.Now.Year > 2022 + pickerItems_Year.Count) { pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString()); } pickerItems_Month = new List(); int addMonth = 0; while (DateTime.Now.Month > addMonth) { addMonth++; pickerItems_Month.Add(addMonth.ToString()); } pickerItems_Day = new List(); int addDay = 0; while (DateTime.Now.Day > addDay) { addDay++; pickerItems_Day.Add(addDay.ToString()); } 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())); }; } catch { } } } public void SetWaterQureyDateDialog() { var pickerItems_Year = new List(); List pickerItems_Month = null; List 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(); 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(); 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) => { try { if (int1 < 0) { int1 = 0; } 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(); 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(); 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 (int2 > pickerItems_Month.Count || int2 < 0) { int2 = 0; } if (pickerItems_Month[int2] != item2.ToString()) { int.TryParse(pickerItems_Month[int2], out item2); if (waterQueryType == QueryType.day_hour) { pickerItems_Day = new List(); 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) { int3 = 0; } if (pickerItems_Day[int3] != item3.ToString()) { int.TryParse(pickerItems_Day[int3], out item3); } } } catch (Exception ex) { MainPage.Log("Error", $"金茂热水器日期2选择异常:{ex.StackTrace}"); } }; 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, 1).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(); }; var btnToday = new Button() { X = Application.GetRealWidth(160 - 32) - btnConfrim.GetTextWidth(), Width = Application.GetRealWidth(160), TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.TextFontSize, Visible = false, Enable = false, Text = "今日", }; topView.AddChidren(btnToday); if (waterQueryType == QueryType.day_hour) { try { btnToday.Visible = btnToday.Enable = true; btnToday.MouseUpEventHandler = (sender, e) => { item3 = waterQueryTime_Day = DateTime.Now.Day; item2 = waterQueryTime_Month = DateTime.Now.Month; item1 = waterQueryTime_Year = DateTime.Now.Year; pickerItems_Year = new List(); pickerItems_Year.Add("2023"); while (DateTime.Now.Year > 2022 + pickerItems_Year.Count) { pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString()); } pickerItems_Month = new List(); int addMonth = 0; while (DateTime.Now.Month > addMonth) { addMonth++; pickerItems_Month.Add(addMonth.ToString()); } pickerItems_Day = new List(); int addDay = 0; while (DateTime.Now.Day > addDay) { addDay++; pickerItems_Day.Add(addDay.ToString()); } 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())); }; } catch { } } } } public enum QueryType { /// /// 近24小时、 /// hour, /// /// 某日24小时、 /// day_hour, /// /// 近一周、 /// week, /// /// 近一月、 /// month, /// /// 某年某月 y/M、 /// custom_month, /// /// 某年 y /// custom_year, } }