using AntDesign; using Microsoft.AspNetCore.Components; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text.Json; using System.Threading.Tasks; using wispro.sp.web.Services; using Blazor.ECharts.Options; using Blazor.ECharts.Options.Enum; using L = Blazor.ECharts.Options.Series.Line; namespace wispro.sp.web.Pages.Report { public partial class StaffStaticsReport { private int iType = 0; private EChartsOption option; private Blazor.ECharts.Components.ELine chart; internal class TJType { public string Name { get; set; } public int value { get; set; } } List Types = new List { new TJType { value = 0,Name = "人员每月绩效统计" }, new TJType { value = 2,Name = "人员每年绩效统计" }, new TJType { value = 1,Name = "部门每月绩效统计" }, new TJType { value = 3,Name = "部门每年绩效统计" }, new TJType { value = 4,Name = "人员专案绩效统计" }, }; share.ChartDatas Datas = new share.ChartDatas() { Title = "初始化标题", Datas = new List() { new share.ChartData(){ type ="部门一", value =1, year="2022-01", CustomerType ="", CustomerYear=""}, new share.ChartData(){ type ="部门一",value =5, year="2022-02",CustomerType ="", CustomerYear=""}, new share.ChartData(){ type ="部门二", value =3, year="2022-01", CustomerType ="", CustomerYear=""}, new share.ChartData(){ type ="部门二",value =4, year="2022-02",CustomerType ="", CustomerYear=""}, new share.ChartData(){ type ="部门三",value =2.5, year="2022-02",CustomerType ="", CustomerYear=""} }, ATitle = "部门", BTitle = "申诉月份" }; private void GetOption() { if (Datas != null) { List series = new List(); DataTable dt = Datas.GetTableData(); foreach (DataRow row in dt.Rows) { L.Line l = new L.Line(); l.Name = row[0].ToString(); List data = new List(); for (int i = 1; i < dt.Columns.Count; i++) { double dTem = 0; if(!double.TryParse(row[i].ToString(), out dTem)) { dTem = 0; } data.Add(dTem); } l.Data = data; series.Add(l); } option = new EChartsOption() { //Legend = new() { // Show = true, //}, Toolbox = new() { Show = true, Feature = new() { DataView = new() { ReadOnly = false }, Restore = new(), MagicType = new() { Type = new() { MagicTypeType.Bar, MagicTypeType.Line, MagicTypeType.Stack, MagicTypeType.Tiled, } }, SaveAsImage = new() { PixelRatio = 2, Name = "保存图片" } } }, Tooltip = new() { Trigger = TooltipTrigger.Item, Formatter = "{a}
{b}: {c}" }, Title = new() { Text = Datas.Title }, YAxis = new() { new() { Type = AxisType.Value, Name = "绩效", Position = PositionY.Start, AxisLine = new() { Show = true, } } }, XAxis = new() { new() { Type = AxisType.Category, Data = Datas.GetYear(), Name = Datas.BTitle, NameLocation = Location.Middle, AxisLabel = new() { Show = true }, } }, Series = series }; } } [Inject] ReportService reportService { get; set; } [Inject] MessageService msgService { get; set; } private bool _noIconLoading; private async Task OnButtonClick() { //option = null; await GetChartDatas(); Console.WriteLine(chart.OptionRaw); } private async Task OnButtonClick_1() { Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(option, new JsonSerializerOptions() { DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull })); await msgService.Success(chart.OptionRaw); } private async Task GetChartDatas() { _noIconLoading = true; Datas = await reportService.GetStaticReportData(iType); GetOption(); StateHasChanged(); _noIconLoading = false; } [Inject] protected IAuthService _authService { get; set; } protected async override Task OnInitializedAsync() { await _authService.CanVisitResource(); await GetChartDatas(); await base.OnInitializedAsync(); } private EchartsEventArgs callbackArgs; private List EventTypes = new List { EventType.click }; private void OnEchartsEvent(EchartsEventArgs args) { msgService.Info($"您点击了:[{args.SeriesName},{args.Name}]!"); callbackArgs = args; } } }