- 添加学生提交管理服务 (StudentSubmissionService, StudentSubmissionDetailService) - 新增学生提交相关控制器 (StudentSubmissionController, StudentSubmissionDetailController) - 添加学生提交数据传输对象 (StudentSubmissionDetailDto, StudentSubmissionSummaryDto) - 新增学生提交相关页面组件 (StudentExamView, ExamDetailView, StudentCard等) - 添加学生提交信息卡片组件 (SubmissionInfoCard, TeacherSubmissionInfoCard) - 更新数据库迁移文件以支持提交系统
This commit is contained in:
@@ -1,16 +1,44 @@
|
||||
@inherits LayoutComponentBase
|
||||
@layout AccountLayout
|
||||
@inject NavigationManager NavigationManager
|
||||
|
||||
<AuthorizeView Roles="Teacher">
|
||||
<Authorized>
|
||||
<MudPaper Class="d-flex flex-row flex-grow-1 overflow-hidden" Height="100%">
|
||||
<MudPaper Width="200px">
|
||||
<MudDivider Class="flex-grow-0" />
|
||||
<ExamNavMenu />
|
||||
</MudPaper>
|
||||
<MudPaper Class="d-flex flex-grow-1 overflow-auto">
|
||||
@Body
|
||||
</MudPaper>
|
||||
</MudPaper>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
|
||||
<MudPaper Class="d-flex flex-row flex-grow-1 overflow-hidden" Height="100%">
|
||||
<AuthorizeView Roles="Student">
|
||||
<Authorized>
|
||||
<MudPaper Class="d-flex flex-row flex-grow-1 overflow-hidden" Height="100%">
|
||||
<MudPaper Width="200px">
|
||||
<MudDivider Class="flex-grow-0" />
|
||||
<ExamNavMenu />
|
||||
</MudPaper>
|
||||
<MudPaper Class="d-flex h-100 w-100 flex-grow-1 overflow-auto">
|
||||
@Body
|
||||
</MudPaper>
|
||||
</MudPaper>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
|
||||
<MudPaper Width="200px">
|
||||
<MudDivider Class="flex-grow-0" />
|
||||
<ExamNavMenu />
|
||||
@code {
|
||||
[CascadingParameter]
|
||||
private Task<AuthenticationState> authenticationStateTask { get; set; }
|
||||
|
||||
</MudPaper>
|
||||
|
||||
<MudPaper Class="flex-grow-1 overflow-auto">
|
||||
@Body
|
||||
</MudPaper>
|
||||
</MudPaper>
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
if (authenticationStateTask is null)
|
||||
{
|
||||
NavigationManager.Refresh(forceReload: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,22 +1,39 @@
|
||||
@using Microsoft.AspNetCore.Identity
|
||||
|
||||
|
||||
<ul class="nav nav-pills flex-column">
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="exam/create" Match="NavLinkMatch.All">创建</NavLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="exam/manage">管理</NavLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/ChangePassword">Password</NavLink>
|
||||
</li>
|
||||
@* <li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/TwoFactorAuthentication">Two-factor authentication</NavLink>
|
||||
</li> *@
|
||||
</ul>
|
||||
|
||||
<AuthorizeView Roles="Teacher">
|
||||
<Authorized>
|
||||
|
||||
<ul class="nav nav-pills flex-column">
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="exam/create" Match="NavLinkMatch.All">创建</NavLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="exam/manage">管理</NavLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/ChangePassword">Password</NavLink>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
|
||||
|
||||
<AuthorizeView Roles="Student">
|
||||
<Authorized>
|
||||
<ul class="nav nav-pills flex-column">
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="exam/studentHomework" Match="NavLinkMatch.All">Homework</NavLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="exam/manage">管理</NavLink>
|
||||
</li>
|
||||
</ul>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
@code {
|
||||
private bool hasExternalLogins;
|
||||
private bool hasExternalLogins;
|
||||
|
||||
}
|
||||
|
@@ -9,3 +9,17 @@
|
||||
@Body
|
||||
</MudStack>
|
||||
</MudPaper>
|
||||
|
||||
|
||||
@code {
|
||||
[CascadingParameter]
|
||||
private Task<AuthenticationState> authenticationStateTask { get; set; }
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
if (authenticationStateTask is null)
|
||||
{
|
||||
// NavigationManager.Refresh(forceReload: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -9,11 +9,8 @@
|
||||
<NavLink class="nav-link" href="Account/Manage/Class">Class</NavLink>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/ChangePassword">Password</NavLink>
|
||||
<NavLink class="nav-link" href="Account/Manage/ChangePassword">重设密码</NavLink>
|
||||
</li>
|
||||
@* <li class="nav-item">
|
||||
<NavLink class="nav-link" href="Account/Manage/TwoFactorAuthentication">Two-factor authentication</NavLink>
|
||||
</li> *@
|
||||
</ul>
|
||||
|
||||
@code {
|
||||
|
Reference in New Issue
Block a user