重构作业结构:优化实体模型、DTO映射和前端界面
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 13s
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 13s
- 重构AppMainStruct、AssignmentQuestion、Question等实体模型 - 更新相关DTO以匹配新的数据结构 - 优化前端页面布局和组件 - 添加全局信息和笔记功能相关代码 - 更新数据库迁移和程序配置
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
<MudPaper Class="d-flex my-3 flex-column justify-content-center mx-auto" Height="@Height" Width="@Width" Elevation="0">
|
||||
<MudImage Width="150" Height="150" Class="rounded-pill justify-content-center" Src="ref/Keda.png"></MudImage>
|
||||
<MudText Class="mx-3"><b>TechHelper</b></MudText>
|
||||
</MudPaper>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public string Height { get; set; } = "250px";
|
||||
[Parameter]
|
||||
public string Width { get; set; } = "100%";
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
@using static TechHelper.Client.Pages.Student.BaseInfoCard.StudentSubmissionPreviewTableCard
|
||||
|
||||
|
||||
@if(StudentSubmission!=null)
|
||||
{
|
||||
<MudPaper Class="ma-2 pa-2 rounded-xl d-flex w-100 flex-nowrap">
|
||||
<MudText Class="flex-grow-0 flex-shrink-0" Style="width:60%"> @StudentSubmission.StudentName </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> @StudentSubmission.TotalProblems </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> @StudentSubmission.ErrorCount </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> @StudentSubmission.TimeSpent </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> @StudentSubmission.Score </MudText>
|
||||
</MudPaper>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudPaper Class="ma-1 pa-2 rounded-xl d-flex w-100 flex-nowrap">
|
||||
<MudText Class="flex-grow-0 flex-shrink-0" Style="width:60%"> 名称 </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> 题目总数 </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> 错误总数 </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> 时间 </MudText>
|
||||
<MudText Class="flex-grow-0 flex-shrink-0 text-start" Style="width:10%"> 得分 </MudText>
|
||||
</MudPaper>
|
||||
}
|
||||
@code{
|
||||
|
||||
[Parameter]
|
||||
public StudentSubmission StudentSubmission{ get; set; }
|
||||
}
|
@@ -0,0 +1,39 @@
|
||||
<MudPaper Class="ma-2 pa-2 rounded-xl d-flex flex-column flex-grow-1 overflow-auto" MaxHeight="100%">
|
||||
|
||||
<StudentSubmissionPreviewCard />
|
||||
@foreach (var submission in _studentSubmissions)
|
||||
{
|
||||
<StudentSubmissionPreviewCard StudentSubmission="@submission" />
|
||||
}
|
||||
|
||||
|
||||
</MudPaper>
|
||||
|
||||
@code {
|
||||
// 假设的学生提交数据模型
|
||||
public class StudentSubmission
|
||||
{
|
||||
public string StudentName { get; set; }
|
||||
public int TotalProblems { get; set; }
|
||||
public int ErrorCount { get; set; }
|
||||
public TimeSpan TimeSpent { get; set; }
|
||||
public int Score { get; set; }
|
||||
}
|
||||
|
||||
// 模拟数据列表
|
||||
private List<StudentSubmission> _studentSubmissions = new();
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
// 模拟获取或初始化数据,实际应用中可能来自数据库或API
|
||||
_studentSubmissions = new List<StudentSubmission>
|
||||
{
|
||||
new() { StudentName = "张三", TotalProblems = 10, ErrorCount = 2, TimeSpent = TimeSpan.FromMinutes(25), Score = 80 },
|
||||
new() { StudentName = "李四", TotalProblems = 10, ErrorCount = 1, TimeSpent = TimeSpan.FromMinutes(20), Score = 90 },
|
||||
new() { StudentName = "王五", TotalProblems = 10, ErrorCount = 5, TimeSpent = TimeSpan.FromMinutes(30), Score = 50 },
|
||||
new() { StudentName = "赵六", TotalProblems = 10, ErrorCount = 3, TimeSpent = TimeSpan.FromMinutes(28), Score = 70 },
|
||||
new() { StudentName = "钱七", TotalProblems = 10, ErrorCount = 0, TimeSpent = TimeSpan.FromMinutes(18), Score = 100 }
|
||||
// ... 可以添加更多模拟数据
|
||||
};
|
||||
}
|
||||
}
|
@@ -0,0 +1,79 @@
|
||||
@using MudBlazor
|
||||
@using System.Collections.Generic
|
||||
|
||||
<MudDataGrid Items="@Elements.Take(4)" Hover="@_hover" Dense="@_dense" Striped="@_striped" Bordered="@_bordered"
|
||||
RowStyleFunc="@_rowStyleFunc" RowClass="my-2 rounded-xl">
|
||||
<Columns >
|
||||
<PropertyColumn Property="x => x.Number" Title="Nr" />
|
||||
<PropertyColumn Property="x => x.Sign" />
|
||||
<PropertyColumn Property="x => x.Name" CellStyleFunc="@_cellStyleFunc" />
|
||||
<PropertyColumn Property="x => x.Position" />
|
||||
<PropertyColumn Property="x => x.Molar" Title="Molar mass" />
|
||||
</Columns>
|
||||
</MudDataGrid>
|
||||
|
||||
<div class="d-flex flex-wrap mt-4">
|
||||
<MudSwitch @bind-Value="_hover" Color="Color.Primary">Hover</MudSwitch>
|
||||
<MudSwitch @bind-Value="_dense" Color="Color.Secondary">Dense</MudSwitch>
|
||||
<MudSwitch @bind-Value="_striped" Color="Color.Tertiary">Striped</MudSwitch>
|
||||
<MudSwitch @bind-Value="_bordered" Color="Color.Warning">Bordered</MudSwitch>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
// Element类定义
|
||||
public class Element
|
||||
{
|
||||
public int Number { get; set; }
|
||||
public string Sign { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int Position { get; set; }
|
||||
public decimal Molar { get; set; }
|
||||
}
|
||||
|
||||
// 示例数据
|
||||
private IEnumerable<Element> Elements = new List<Element>
|
||||
{
|
||||
new Element { Number = 1, Sign = "H", Name = "Hydrogen", Position = 1, Molar = 1.008m },
|
||||
new Element { Number = 2, Sign = "He", Name = "Helium", Position = 0, Molar = 4.0026m },
|
||||
new Element { Number = 3, Sign = "Li", Name = "Lithium", Position = 1, Molar = 6.94m },
|
||||
new Element { Number = 4, Sign = "Be", Name = "Beryllium", Position = 2, Molar = 9.0122m },
|
||||
new Element { Number = 5, Sign = "B", Name = "Boron", Position = 13, Molar = 10.81m }
|
||||
};
|
||||
|
||||
private bool _hover;
|
||||
private bool _dense;
|
||||
private bool _striped;
|
||||
private bool _bordered;
|
||||
|
||||
// 行样式函数:Position为0的行显示为斜体
|
||||
private Func<Element, int, string> _rowStyleFunc => (x, i) =>
|
||||
{
|
||||
if (x.Position == 0)
|
||||
return "font-style:italic";
|
||||
|
||||
return "";
|
||||
};
|
||||
|
||||
// 单元格样式函数:根据元素编号设置背景色,根据摩尔质量设置字体粗细
|
||||
private Func<Element, string> _cellStyleFunc => x =>
|
||||
{
|
||||
string style = "";
|
||||
|
||||
if (x.Number == 1)
|
||||
style += "background-color:#8CED8C"; // 浅绿色
|
||||
|
||||
else if (x.Number == 2)
|
||||
style += "background-color:#E5BDE5"; // 浅紫色
|
||||
|
||||
else if (x.Number == 3)
|
||||
style += "background-color:#EACE5D"; // 浅黄色
|
||||
|
||||
else if (x.Number == 4)
|
||||
style += "background-color:#F1F165"; // 浅黄色
|
||||
|
||||
if (x.Molar > 5)
|
||||
style += ";font-weight:bold";
|
||||
|
||||
return style;
|
||||
};
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
<MudPaper Class="doc-section-component-container">
|
||||
<MudChart ChartType="ChartType.Bar" ChartSeries="@_series" Height="150px" Width="100%" XAxisLabels="@_xAxisLabels" AxisChartOptions="_axisChartOptions"></MudChart>
|
||||
</MudPaper>
|
||||
|
||||
@code{
|
||||
private string[] _xAxisLabels = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep" };
|
||||
private AxisChartOptions _axisChartOptions = new AxisChartOptions
|
||||
{
|
||||
};
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
_axisChartOptions.MatchBoundsToSize = true;
|
||||
}
|
||||
private List<ChartSeries> _series = new List<ChartSeries>()
|
||||
{
|
||||
new ChartSeries() { Name = "United States", Data = new double[] { 40, 20, 25, 27, 46, 60, 48, 80, 15 } }
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user