public static ChartData GetVisitingRate(CustomerVistAnalysis analysis) { float up = 100; if (analysis.TotalCustomer - analysis.Today.VistCount != 0) { if (analysis.TotalCustomer == 0) { analysis.TotalCustomer = 1; } up = (float)((analysis.TotalCustomer - analysis.Today.VistCount) / analysis.TotalCustomer) * 100; } var labels = new string[] { "总客户数", "拜访数", "拜访数", }; var dataSets = new List <ChartFloatDataset>(); var colors = RandomChartBuilder.GetDefaultColors(); var datas = new float[] { analysis.TotalCustomer, (float)(analysis?.Today?.Percentage), (up == 0 ? 100 : up) }; dataSets.Add(new ChartFloatDataset { type = Wesley.ChartJS.ChartTypes.Pie, label = "客户拜访分析", data = datas, tension = 0.4, backgroundColor = datas.Select((d, i) => { var color = colors[i % colors.Count]; return($"rgb({color.Item1},{color.Item2},{color.Item3})"); }) }); return(new ChartData() { datasets = dataSets, labels = labels }); }
private ChartData GetChartData(CustomerVistAnalysis analysis) { var labels = new[] { "今日拜访", "昨天拜访", "前天拜访", "上周拜访", "本周拜访", "上月拜访", "本年拜访" }.ToList(); var dataSets = new List <ChartNumberDataset>(); var colors = RandomChartBuilder.GetDefaultColors(); var datas = new int[] { analysis.Today?.VistCount ?? 0, analysis.Yesterday?.VistCount ?? 0, analysis.BeforeYesterday?.VistCount ?? 0, analysis.LastWeek?.VistCount ?? 0, analysis.ThisWeek?.VistCount ?? 0, analysis.LastMonth?.VistCount ?? 0, analysis.ThisYear?.VistCount ?? 0, }; dataSets.Add(new ChartNumberDataset { type = Wesley.ChartJS.ChartTypes.Bar, label = "客户拜访分析", data = datas, backgroundColor = datas.Select((d, i) => { var color = colors[i % colors.Count]; return($"rgb({color.Item1},{color.Item2},{color.Item3})"); }) }); return(new ChartData() { datasets = dataSets, labels = labels }); }