using System; using System.Collections.Generic; using HDL_ON.DAL.Server; using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { /// /// 三相空开能源界面 /// public class AirSwitchP3EnergyPage : FrameLayout { static AirSwitchP3EnergyPage bodyView; /// /// 总功耗-饼图 /// MyEchartsViewOn myEchartsView_Pie; /// /// 曲线图数据string /// EchartsOption_BrokenLine brokenLine; /// /// 插查询的能源列表 /// List queryList = new List(); /// /// 查询条件 /// hour、week、month /// string curQueryType = "hour"; /// /// 能源列表区域 /// FrameLayout energyListView; /// /// 历史数据图表 /// MyEchartsViewOn myEchartsView_Line; //5C62FE Function device; /// /// 主页 /// public AirSwitchP3EnergyPage(Function function) { bodyView = this; device = function; } /// /// /// public void LoadPage() { new TopViewDiv(bodyView, Language.StringByID(StringId.EnergyMonitoring)).LoadTopView(0xFFF7F7F7); bodyView.BackgroundColor = 0xFFF5F7FA; var contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(667-64), BackgroundColor = 0xFFF5F7FA, }; bodyView.AddChidren(contentView); contentView.AddChidren(new Button() { Height = Application.GetRealHeight(12), }); brokenLine = new EchartsOption_BrokenLine(); #region 选择数据日期范围 var showDataTypeView = new FrameLayout() { X = Application.GetRealWidth(143), Y = Application.GetRealHeight(12), Width = Application.GetRealWidth(216), Height = Application.GetRealHeight(27), //BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg1.png", }; contentView.AddChidren(showDataTypeView); var btnShowHistroyData_Day = new Button() { Width = Application.GetRealWidth(54), Height = Application.GetRealHeight(27), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, IsSelected = true, TextID = StringId.day, SelectedBackgroundColor = 0x1F5C62FE, BackgroundColor = 0x1F5C62FE, BorderColor = CSS_Color.MainColor, BorderWidth = 2, }; showDataTypeView.AddChidren(btnShowHistroyData_Day); btnShowHistroyData_Day.SetCornerWithSameRadius((uint)Application.GetRealHeight(6), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft); var btnShowHistroyData_Month = new Button() { X = Application.GetRealWidth(54), Width = Application.GetRealWidth(54), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.month, SelectedBackgroundColor = 0x1F5C62FE, BackgroundColor = 0x00000000, IsSelected = false, BorderWidth = 1, BorderColor = CSS_Color.PromptingColor1, }; showDataTypeView.AddChidren(btnShowHistroyData_Month); var btnShowHistroyData_Year = new Button() { X = Application.GetRealWidth(54 * 2), Width = Application.GetRealWidth(54), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.Years, SelectedBackgroundColor = 0x1F5C62FE, BackgroundColor = 0x00000000, IsSelected = false, BorderWidth = 1, BorderColor = CSS_Color.PromptingColor1, }; showDataTypeView.AddChidren(btnShowHistroyData_Year); var btnShowHistroyData_Total = new Button() { X = Application.GetRealWidth(54 * 3), Width = Application.GetRealWidth(54), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, SelectedTextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.Total, SelectedBackgroundColor = 0x1F5C62FE, BackgroundColor = 0x00000000, IsSelected = false, BorderWidth = 1, BorderColor = CSS_Color.PromptingColor1, }; showDataTypeView.AddChidren(btnShowHistroyData_Total); btnShowHistroyData_Total.SetCornerWithSameRadius((uint)Application.GetRealHeight(6), HDLUtils.RectCornerBottomRight | HDLUtils.RectCornerTopRight); btnShowHistroyData_Total.MouseUpEventHandler = (sender, e) => { (sender as Button).SelectedBackgroundColor = 0x1F5C62FE; (sender as Button).BackgroundColor = 0x1F5C62FE; (sender as Button).BorderColor = CSS_Color.MainColor; (sender as Button).BorderWidth = 2; (sender as Button).IsSelected = true; btnShowHistroyData_Month.IsSelected = false; btnShowHistroyData_Month.BorderWidth = 1; btnShowHistroyData_Month.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Month.BackgroundColor = 0x00000000; btnShowHistroyData_Month.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Year.IsSelected = false; btnShowHistroyData_Year.BorderWidth = 1; btnShowHistroyData_Year.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Year.BackgroundColor = 0x00000000; btnShowHistroyData_Year.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Day.IsSelected = false; btnShowHistroyData_Day.BorderWidth = 1; btnShowHistroyData_Day.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Day.BackgroundColor = 0x00000000; btnShowHistroyData_Day.SelectedBackgroundColor = 0x00000000; }; btnShowHistroyData_Day.MouseUpEventHandler = (sender, e) => { (sender as Button).SelectedBackgroundColor = 0x1F5C62FE; (sender as Button).BackgroundColor = 0x1F5C62FE; (sender as Button).BorderColor = CSS_Color.MainColor; (sender as Button).BorderWidth = 2; (sender as Button).IsSelected = true; btnShowHistroyData_Month.IsSelected = false; btnShowHistroyData_Month.BorderWidth = 1; btnShowHistroyData_Month.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Month.BackgroundColor = 0x00000000; btnShowHistroyData_Month.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Year.IsSelected = false; btnShowHistroyData_Year.BorderWidth = 1; btnShowHistroyData_Year.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Year.BackgroundColor = 0x00000000; btnShowHistroyData_Year.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Total.IsSelected = false; btnShowHistroyData_Total.BorderWidth = 1; btnShowHistroyData_Total.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Total.BackgroundColor = 0x00000000; btnShowHistroyData_Total.SelectedBackgroundColor = 0x00000000; }; btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) => { (sender as Button).SelectedBackgroundColor = 0x1F5C62FE; (sender as Button).BackgroundColor = 0x1F5C62FE; (sender as Button).BorderColor = CSS_Color.MainColor; (sender as Button).BorderWidth = 2; (sender as Button).IsSelected = true; btnShowHistroyData_Day.IsSelected = false; btnShowHistroyData_Day.BorderWidth = 1; btnShowHistroyData_Day.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Day.BackgroundColor = 0x00000000; btnShowHistroyData_Day.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Year.IsSelected = false; btnShowHistroyData_Year.BorderWidth = 1; btnShowHistroyData_Year.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Year.BackgroundColor = 0x00000000; btnShowHistroyData_Year.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Total.IsSelected = false; btnShowHistroyData_Total.BorderWidth = 1; btnShowHistroyData_Total.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Total.BackgroundColor = 0x00000000; btnShowHistroyData_Total.SelectedBackgroundColor = 0x00000000; }; btnShowHistroyData_Year.MouseUpEventHandler = (sender, e) => { (sender as Button).SelectedBackgroundColor = 0x1F5C62FE; (sender as Button).BackgroundColor = 0x1F5C62FE; (sender as Button).BorderColor = CSS_Color.MainColor; (sender as Button).BorderWidth = 2; (sender as Button).IsSelected = true; btnShowHistroyData_Month.IsSelected = false; btnShowHistroyData_Month.BorderWidth = 1; btnShowHistroyData_Month.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Month.BackgroundColor = 0x00000000; btnShowHistroyData_Month.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Day.IsSelected = false; btnShowHistroyData_Day.BorderWidth = 1; btnShowHistroyData_Day.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Day.BackgroundColor = 0x00000000; btnShowHistroyData_Day.SelectedBackgroundColor = 0x00000000; btnShowHistroyData_Total.IsSelected = false; btnShowHistroyData_Total.BorderWidth = 1; btnShowHistroyData_Total.BorderColor = CSS_Color.PromptingColor1; btnShowHistroyData_Total.BackgroundColor = 0x00000000; btnShowHistroyData_Total.SelectedBackgroundColor = 0x00000000; }; #endregion contentView.AddChidren(new Button() { Height = Application.GetRealHeight(12), }); var historyDataView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(330), }; contentView.AddChidren(historyDataView); myEchartsView_Line = new MyEchartsViewOn() { Y = Application.GetRealWidth(10), Height = Application.GetRealWidth(280), }; historyDataView.AddChidren(myEchartsView_Line); //EnergyRow(energy, energyListView, index); LoadMothed_GetHistoryData(); } /// /// 读取历史数据 /// void LoadMothed_GetHistoryData() { var loadPage = new Loading() { LodingBackgroundColor = 0x88888888, }; bodyView.AddChidren(loadPage); new System.Threading.Thread(() => { try { Application.RunOnMainThread(() => { loadPage.Start(Language.StringByID(StringId.PleaseWait)); }); var sensorType = device.spk.Split(".")[1]; var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, device.deviceId, "power_a"); if (revertObj != null) { if (revertObj.Code == StateCode.SUCCESS) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.Data.ToString()); if (revertData == null || revertData.Count == 0) { #if DEBUG List vs = new List() { "813","313","213","123", "113","213","183","133", "133","513","133","413", }; brokenLine.InitXdataText(vs); revertData = new List() { new EnvironmentalSensorHistor{ fieldValue = "100"}, new EnvironmentalSensorHistor{ fieldValue = "200"}, new EnvironmentalSensorHistor{ fieldValue = "300"}, new EnvironmentalSensorHistor{ fieldValue = "400"}, new EnvironmentalSensorHistor{ fieldValue = "500"}, new EnvironmentalSensorHistor{ fieldValue = "400"}, new EnvironmentalSensorHistor{ fieldValue = "100"}, new EnvironmentalSensorHistor{ fieldValue = "200"}, new EnvironmentalSensorHistor{ fieldValue = "300"}, new EnvironmentalSensorHistor{ fieldValue = "400"}, new EnvironmentalSensorHistor{ fieldValue = "500"}, new EnvironmentalSensorHistor{ fieldValue = "400"}, }; if (device.GetAttribute("ydata") == null) { device.attributes.Add(new FunctionAttributes() { key = "ydata" }); } device.SetAttrState("ydata", brokenLine.InitYdataText(device.name, revertData, "#5C62FE") + ", "); #endif } else { List vs = new List(); if (brokenLine.YvalueText == "") { foreach (var data in revertData) { vs.Add(data.fieldName); } brokenLine.InitXdataText(vs); } if (device.GetAttribute("ydata") == null) { device.attributes.Add(new FunctionAttributes() { key = "ydata" }); } device.SetAttrState("ydata", brokenLine.InitYdataText(device.name, revertData, "#5C62FE") + ", "); } } } brokenLine.yTitle = Language.StringByID(StringId.EnergyConsumption) + "(kW)"; brokenLine.xTitle = Language.StringByID(StringId.timeMode); if (curQueryType != "hour") { brokenLine.xTitle = Language.StringByID(StringId.Date); } var opString = brokenLine.InitOption(30); Application.RunOnMainThread(() => { myEchartsView_Line.ShowWithOption(opString); }); } catch (Exception ex) { MainPage.Log($"sensor history error : {ex.Message}"); } finally { Application.RunOnMainThread(() => { loadPage.Hide(); }); } }) { IsBackground = true }.Start(); } } }