@using Entities.DTO @using TechHelper.Client.Services BETA版本 @StudentSubmissionDetail.AverageScore 总数: @StudentSubmissionDetail.TotalQuestions 总分: 150 排名: @StudentSubmissionDetail.TotalRank 平均: @StudentSubmissionDetail.ClassAverageScore 成绩的整体分布情况 类型分布 课时分布 @* 成绩趋势 分值区间 Success Warning Error Dark *@ @code { private AxisChartOptions _axisChartOptions = new AxisChartOptions { }; private ChartOptions options = new ChartOptions { InterpolationOption = InterpolationOption.NaturalSpline, YAxisFormat = "c2", ShowLegend = false, YAxisLines = false, XAxisLines = false, XAxisLabelPosition = XAxisLabelPosition.None, YAxisLabelPosition = YAxisLabelPosition.None, YAxisTicks = 100, ShowLabels = false, ShowLegendLabels = false }; public List Series = new List() { new ChartSeries() { Name = "类型错误数量分布", Data = new double[] { 35, 41, 35, 51, 49, 62, 69, 91, 148 } }, }; public string[] XAxisLabels = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep" }; Random random = new Random(); protected override void OnInitialized() { options.InterpolationOption = InterpolationOption.NaturalSpline; options.YAxisFormat = "c2"; options.ShowLegend = false; options.YAxisLines = false; options.XAxisLines = false; options.XAxisLabelPosition = XAxisLabelPosition.None; options.YAxisLabelPosition = YAxisLabelPosition.None; options.ShowLabels = false; options.ShowLegendLabels = false; options.LineStrokeWidth = 1; _axisChartOptions.MatchBoundsToSize = true; Series[0].LineDisplayType = LineDisplayType.Area; } [Parameter] public Guid SubmissionID { get; set; } = Guid.Empty; private StudentSubmissionDetailDto StudentSubmissionDetail { get; set; } = new StudentSubmissionDetailDto(); private IReadOnlyCollection _selected; #pragma warning restore 1998 #nullable restore #line (82, 8) - (143, 1) "D:\AllWX\AllC\TechHelper\TechHelper.Client\Pages\Common\Exam\SubmissionInfoCard.razor" [Inject] public IStudentSubmissionDetailService StudentSubmissionDetailService { get; set; } [Inject] public ISnackbar Snackbar { get; set; } protected override async Task OnInitializedAsync() { if (SubmissionID != Guid.Empty) { StudentSubmissionDetailDto result; try { result = await StudentSubmissionDetailService.GetSubmissionDetailAsync(SubmissionID); if (result != null) { StudentSubmissionDetail = result; XAxisLabels = result.ErrorTypeDistribution.Keys.ToArray(); Series.Clear(); Series.Add(new ChartSeries { Name = "类型错误数量分布", Data = result.ErrorTypeDistribution.Values.Select(d => (double)d).ToArray() }); Series.Add(new ChartSeries { Name = "类型错误成绩分布", Data = result.ErrorTypeScoreDistribution.Values.Select(d => (double)d).ToArray() }); } } catch (Exception ex) { Snackbar.Add($"获取提交错误, 请重试, {ex.Message}", Severity.Warning); } } } private void HandleSelectedValuesChanged(IReadOnlyCollection selected) { Series.ForEach(x => x.Visible = false); foreach (var item in selected) { var sv = Series.FirstOrDefault(predicate: x => x.Name == item); if (sv != null) { sv.Visible = true; } } } }